Internetowe Bazy Danychroman.ptak.staff.iiar.pwr.wroc.pl/IBD_wyklad_2017_nr1.pdf · Wydanie II,...
Transcript of Internetowe Bazy Danychroman.ptak.staff.iiar.pwr.wroc.pl/IBD_wyklad_2017_nr1.pdf · Wydanie II,...
Internetowe Bazy Danych
dr in. Roman Ptak
Katedra Informatyki Technicznej
Plan wykadu 1.
Sprawy organizacyjne
Wprowadzenie w zagadnienie
Projektowanie systemw informatycznych
Analiza ekonomiczna SWOT
Przykady serwisw internetowych
Wybr technologii oraz architektury
Jzyki programowania
Serwery baz danych
Technologie udostpniania informacji
Technologie dostpu do danych
2
Sprawy organizacyjne
Forma zaj:
wykad (15 h)
laboratorium/projekt (15 h)
Wykady: wtorki (TN) 14:15-16:45
10.10, 24.10, 7.11, 21.11, 5.12
Materiay odstpne pod adresem:
roman.ptak.staff.iiar.pwr.wroc.pl
3
Konsultacje
dr in. Roman Ptak
e-mail: [email protected]
bud. C3, pok. 321
PN, 11-13
PT, 11-13
4
Warunki zaliczenia przedmiotu
Zaliczenie wykadu na ocen na podstawie
kolokwium zaliczeniowego (i obecnoci na
wykadzie)
Zwolnienie z kolokwium na podstawie
oceny z laboratoriw
Zaliczenie laboratoriw na ocen
projekty
5
Program wykadu
Wprowadzenie - architektura internetowych
systemw z bazami danych
Technologie bazodanowe
Technologie webowe
Bezpieczestwo internetowych baz danych
Zasady uywania jzyka PHP (i innych
technologii) w projektach internetowych baz
danych
Budowa systemw z uyciem technologii MySQL
Przygotowywanie dokumentacji projektowej 6
Tim Converse, Joyce Park, Clark Morgan, PHP5 i
MySQL. Biblia, Helion, 2005.
Luke Welling, Laura Thomson, PHP i MySQL.
Tworzenie stron WWW. Vademecum
profesjonalisty, Helion, 2009.
Julie C. Meloni, PHP, MySQL i Apache dla
kadego. Wydanie III, Helion 2007.
Thomas Connolly, Carolyn Begg, Systemy baz
danych. Praktyczne metody projektowania,
implementacji i zarzdzania. Tom 2, RM, 2004.
Literatura podstawowa
7
Literatura uzupeniajca
Marcin Lis, PHP. 101 praktycznych skryptw.
Wydanie II, Helion, 2007.
ukasz Sosna, 101 porad. PHP i MySQL, Mikom,
2005.
Stephan Schmidt et al., PEAR. Programowanie w
PHP, Helion, 2007.
Jacek Matulewski, Sawomir Orowski,
Technologie ASP.NET i ADO.NET w Visual Web
Developer, Helion, 2007.
8
Literatura uzupeniajca - c.d.
Mark Lutz, Python. Wprowadzenie. Wydanie IV,
Helion, 2010.
Jeff Forcier, Paul Bissex, Wesley Chun, Python i
Django. Programowanie aplikacji webowych,
Helion, 2009.
Aidas Bendoraitis, Aplikacje internetowe z
Django. Najlepsze receptury, Helion, 2015.
Larry Ullman, Ruby. Szybki start, Helion, 2009.
Edward Benson, Rails. Sztuka programowania,
Helion, 2009. 9
WPROWADZENIE
Czym s internetowe bazy danych?
Zbir danych dostpny w Internecie z
moliwoci edycji i zarzdzania nim.
Uporzdkowany zbir danych z pewnej
dziedziny tematycznej, zorganizowany w
sposb umoliwiajcy ich wyszukiwanie
wedug zadanych kryteriw.
Czsto stosowane s relacyjne bazy
danych podzbiory danych s ze sob
powizane, wsppracujce ze sob. 11
Cele projektw informatycznych
wykorzystujcych bazy danych:
zastpienie dotychczasowego systemu w celu
poprawienia wydajnoci (gdy system rczny lub
komputerowy nie nada z przetwarzaniem duej iloci
transakcji lub nie umoliwia ich realizacji na du skal),
obnik kosztw zwizanych z realizacj transakcji lub
dystrybucj informacji (np. rezygnacja z papierowego
przekazywania informacji w duych firmach), a w
przypadku sklepw internetowych brak kosztw
zwizanych z obsug osb nie dokonujcych adnych
transakcji,
uzyskanie lepszego obiegu informacji w przypadku
systemw zwizanych z jej dystrybucj lub zwikszenie
liczby klientw. 12
Cele projektw informatycznych
wykorzystujcych bazy danych:
popraw image przedsibiorstwa,
zwikszenie dostpnoci firmy dla klienta (nie
jest problemem 24 h dostp),
uzyskanie moliwoci zbierania i
wykorzystywania informacji o gucie i
upodobaniach klientw (w tym zakresie stosowane s nawet techniki znane
wczeniej ze zwykych sklepw, np. ustawianie przy
kasach odpowiednich produktw = np. wywietlanie w
odpowiedni sposb informacji w oknie koszyka).
13
Typowe zastosowania internetowych
baz danych:
serwisy WWW - m. in. uniezalenienie
prezentowanych treci od wygldu
witryny,
cz informacyjna i transakcyjna serwisu
e commerce,
inne usugi np. serwer poczty WWW, forum
internetowe, baza dokumentw.
14
ANALIZA SYSTEMW
INFORMATYCZNYCH
Zakres funkcjonalny systemw informatycznych:
misja i produkty firmy, rynki i klienci,
analiza otoczenia i czynnikw
zewntrznych zwizanych z technologi
informatyczn,
analiza potencjau firmy z uwzgldnieniem
wsparcia informatycznego,
analiza technologii informatycznej.
16
Ryzyka i zagroenia zwizane z projektem:
ze oszacowanie kosztw przedsiwzicia,
niedopracowany lub nieprzemylany projekt
interfejsu,
trudnoci z implementacj nieprzewidzianych
wczeniej elementw skalowalno systemu,
niezrozumienie lub za specyfikacja potrzeb
zleceniodawcy i odbiorcy projektu przez
informatykw.
17
Ryzyka i zagroenia (inne):
trudnoci z dotarciem odbiorcy do naszej
witryny,
dziaania hakerw (crackerw),
awarie sprztu oraz bdy w oprogramowaniu,
czsto zmieniajce si przepisy prawne,
zawodno dostawcw,
aktualizacja danych (np. modyfikacja cen).
18
Analiza SWOT
Jedna z technik analitycznych, sucych
do porzdkowania wszelkich informacji na
temat danej firmy.
Pomaga w analizie zewntrznej jak i
wewntrznej danego rodowiska.
19
Analiza SWOT
20
Przykady
21
Ogrodnictwo
Zakad fryzjerski
przykad2
Krgielnia
przykad3
rda: http://www.megapedia.pl/analiza-swot.html
http://analiza-swot.pl/zobacz-przyklady/salon-fryzjerski
http://analiza-swot.pl/zobacz-przyklady/kregielnia
http://roman.ptak.staff.iiar.pwr.wroc.pl/Analiza_SWOT_salonu_fryzjerskiego.docxhttp://roman.ptak.staff.iiar.pwr.wroc.pl/Analiza_SWOT_kregielni.docx
Przykadowe czynniki system informatyczny
Pozytywne Negatywne
Wewntrzne
Dowiadczenie i wiedza
specjalistyczna pracownikw
Moliwoci realizacji usug
w szeroki zakresie
Renoma firmy na rynku
Brak systemw klasy CRM
Brak aplikacji bazodanowych
Zbytnie obcienie prac
Brak strony WWW
Zewntrzne
Nawizanie wsppracy z
innymi firmami
Nowe technologie na rynku
Moliwo outsorsingu
Zmiana przepisw prawnych
Kryzys gospodarczy
Ataki crackerw na system
22
ANALIZA POWIZA SWOT
Czy okrelona mocna strona pozwala
wykorzysta dan szans? (SO)
Czy okrelona mocna strona pozwala
ograniczy dane zagroenie? (ST)
Czy okrelona saba strona ogranicza
moliwo wykorzystania danej szansy?
(WO)
Czy okrelona saba strona potguje dane
zagroenie? (WT) 23
ANALIZA POWIZA TOWS
Czy okrelona szansa potguje dan siln
stron? (OS)
Czy okrelone zagroenie ogranicza dan
siln stron? (TS)
Czy okrelona szansa pozwala osabi dan
sab stron? (OW)
Czy okrelone zagroenie wzmacnia dan
sab stron? (TW)
24
Strategie organizacji
Agresywna (S-O)
Konserwatywna (S-T)
Konkurencyjna (W-O)
Defensywna (W-T)
25
PRZYKADY SERWISW
26
Allegro.pl
27
Allegro.pl
Adres: www.allegro.pl
System operacyjny: LinuxBSD
Serwer WWW: Apache
Baza danych: MySQL
Autoryzacja: Login i haso przesane
niekodowanym tekstem,
moliwoci SSL
Technologia: PHP
ledzenie sesji: ID sesji przekazywany w
cookie
Liczba ofert / uytkownikw: 48,1 mln / 11,5* mln (* 2011 r.) 28
Eurobazar.pl
29
Eurobazar.pl
Adres: www.eurobazar.pl
System operacyjny: Linux
Serwer WWW: Apache
Baza danych: MySQL
Autoryzacja: Login i haso przesane
niekodowanym tekstem
Technologia: PHP
ledzenie sesji: ID sesji w adresie oraz kopia
cookie
Liczba ofert / uytkownikw: 2000 / 55000
30
Przykad odwoania do serwisu
Adres: http://www.eurobazar.pl/index.php?session_id=
47c34d814c12e97733982afd7cb69781
31
Realizacje IBD
32
Database Driven Websites
sklepy internetowe, blogi, CMS i inne
WYBR TECHNOLOGII
ORAZ ARCHITEKTURY
33
Rozwj systemw komputerowych
Lata 30/40 XX w. pierwsze komputery
Systemy scentralizowane (np. IBM Mainframe od 1952 r.)
dostp poprzez terminale
Systemy sieciowe
Architektury klient-server
wykorzystanie sieci komputerowych (LAN, WAN)
dwuwarstwowe, trjwarstwowe, wielowarstwowe
rozproszone BD | rozproszone przetwarzanie danych
(scentralizowana BD w sieci WAN, np. Internet)
przetwarzanie w chumurze (ang. cloud computing) XXI w.
34
Oparte o due komputery (mainframes);
rozwj od pocztku 1950 roku.
Uytkownicy korzystaj z systemu poprzez
zdalne terminale znakowe lub sie
lokaln;
Posiadaj scentralizowane systemy
operacyjne.
Systemy scentralizowane
35
Pocztek Internetu: 29 padziernika 1969 r. -
powstay pierwsze wzy sieci ARPANET (ang.
Advanced Research Projects Agency Network)
Wykorzystuj sieciowe systemy operacyjne -
Unix BSD (rozwijany od 1969 roku)
Rne rodzaje systemw:
Unix/Linux,
Windows (serwery i stacje robocze),
system Novell NetWare.
Systemy sieciowe
36
Udostpnienie uytkownikom zdalnym zasobw i
usug zarzdzanych lokalnie przez serwery
Zapewnienie udogodnie w dostpie do
rozproszonych zasobw
Zwikszenie efektywnoci i niezawodnoci
przetwarzania.
Cele projektantw systemw sieciowych
37
Wspdzielenie zasobw;
Uatwiona komunikacja sieciowa;
Zwikszona wydajno przetwarzania;
Zwikszona niezawodno.
Zalety systemw sieciowych:
38
Scentralizowna BD - przykad
39
ROZPROSZONE
BAZY DANYCH
Rozproszona baza danych logicznie
powizany zbir danych, wspuytkowany
przez wiele osb, fizycznie rozproszony w
sieci komputerowej
Rozproszony system zarzdzania baz
danych (RSZBD) oprogramowanie
umoliwiajce zarzdzenie rozproszon
baz danych
Rozproszenie danych jest niewidoczne
(przezroczyste) dla uytkownika
Rozproszona baza danych
41
Zbir wsppracujcych z sob baz danych
(lokalne BD)
Kada z baz lokalnych znajduje si na
innym serwerze
Z punktu widzenia uytkownika bazy
lokalne logicznie stanowi jedn BD
Rozproszona baza danych
42
Rozproszona baza danych
43
Sie
komputerowa
BD BD
BD
Wze 2 Wze 4
Wze 3
Wze 1
Rozproszona BD - przykad
44
dane umieszczone blisko uytkownika
skrcenie czasu transmisji sieciowej
mniejsze ryzyko utraty wszystkich danych
na skutek awarii systemu
wzrost niezawodnoci caego systemu
Zalety rozproszonych BD
45
utrudniony dostp do penego
(zintegrowanego) zbioru danych
konieczno utrzymywania kopii danych
(replik) i ich odwieania
Wady rozproszonych BD
46
Sprztowe komponenty rozproszonej bazy
danych (RBD)
wzy - komputery, na ktrych dziaa lokalna BD
sie komputerowa
Programowe komponenty RBD
protokoy sieciowe, np. TCP/IP, IPX/SP, LU6.2, DEC
Net
dedykowane oprogramowanie realizujce dostp z
jednej bazy danych do drugiej
Komponenty architektury
47
PRZETWARZANIE ROZPROSZONE
Rnica pomidzy rozproszonymi SZBD a
przetwarzaniem rozproszonym
Przetwarzanie rozproszone
scentralizowana baza danych, do ktrej
mona uzyska dostp poprzez sie
komputerow np. WAN Internet
Internetowe bazy danych
Przetwarzanie rozproszone
49
Przetwarzanie rozproszone
50
Sie
komputerowa
BD
Wze 2 Wze 4
Wze 3
Wze 1
BAZY DANYCH W
ARCHITEKTURACH SIECIOWYCH
Bazy danych w architekturze klient/serwer
Aplikacja klienta i serwer bazy danych - znana jako
dwuwarstwowa architektura aplikacji.
Jednak model dwuwarstwowy nie jest odpowiedni
dla WWW.
Dua liczba uytkownikw, dziaajcych za
porednictwem WWW, generujcych ogromn liczb
transakcji.
Obcienie dystrybucj, instalacj, uaktualnianiem i
zarzdzaniem kodem klienta na setkach PC.
52
Zastosowanie przegldarek webowych
Problemy te rozwizuje si przechodzc na
przegldarki webowe, stanowice szeroko
rozpowszechniony i oglnodostpny interfejs.
Aplikacje korzystajce z tej technologii maj
architektur trzywarstwow:
1) dane na serwerze wspierajcym (back-end),
2) logika aplikacji i kod dostpu do danych na serwerze
warstwy poredniej,
3) aplikacja klienta (front-end).
53
Architektura trjwarstwowa
Klient
Klient
Serwer WWW Serwer
bazy danych
Zadania aplikacji
Reguy biznesowe
Obsuga danych
Przechowywanie danych
Reguy integralnoci
Interfejs uytkownika
Kontrola wprowadzonych danych
54
Sposoby poczenia systemu
klient/serwer z WWW
1) Przepisanie aplikacji w technologii internetowej,
wykorzystujcej interfejsy Java, HTML, HTTP i serwer
webowy.
2) Model data publishing, ktry zakada pobieranie
istniejcych danych klient/serwer i ich konwersj w
serwerze webowym na format HTML.
3) Przemieszczanie czci logiki aplikacji do przegldarki
klienta w formie apletw Javy lub ActiveX.
55
Cienki vs. Gruby klient
Terminy funkcjonujce w sieciach o
architekturze klient-serwer
Cienki klient (ang. lean, zero, slim, thin
client)
np. przegldarka internetowa
Gruby klient (ang. heavy, rich, thick, fat
client)
np. Swing, ActiveX
56
Realizacja da HTTP
57
Dziaanie skryptw na serwerze
58
Rich Internet Application (RIA)
Aplikacje internetowe, oferujce bogaty,
dynamiczny, jednoekranowy interfejs,
tzw. (ang.) one-screen-application.
Rozwizaniami trjwarstwowe:
baza danych,
oprogramowanie na serwerze i
przegldarka internetowa.
Kada z tych warstw jest budowana z uyciem
innych technologii. Kluczowy jest interfejs
uruchamiany w przegldarce. Oprogramowanie
to jest tworzone gwnie w JavaScript. 59
Model trjwarstwowy
Warstwa prezentacji
Warstwa biznesowa
Warstwa integracji
Baza danych 60
Model-widok-kontroler (MVC)
Popularny wzorzec projektowy
fremeworki: Rails,
Witryny internetowe to aplikacje MVC
61
Widok Kontroler
Model
JZYKI PROGRAMOWANIA
Technologie
62
TIOBE Index for September 2017
Sep 2017 Sep 2016 Change Programming
Language Ratings Change
1 1 Java 12.687% -5.55%
2 2 C 7.382% -3.57%
3 3 C++ 5.565% -1.09%
4 4 C# 4.779% -0.71%
5 5 Python 2.983% 1.32%
6 7 PHP 2.210% -0.64%
7 6 JavaScript 2.017% -0.91%
8 9 Virtual Basic .NET 1.982% -0.36%
9 10 Perl 1.952% -0.38%
10 12 Ruby 1.933% -0.03%
rdo: www.tiobe.com/tiobe-index/ 63
TIOBE Index for October 2016
Oct 2016 Oct 2015 Change Programming
Language Ratings Change
1 1 Java 18.799% -0.74%
2 2 C 9.835% -6.35%
3 3 C++ 5.797% +0.05%
4 4 C# 4.367% -0.46%
5 5 Python 3.775% -0.74%
6 8 JavaScript 2.751% +0.46%
7 6 PHP 2.741% +0.18%
8 7 Virtual Basic .NET 2.660% +0.20%
9 9 Perl 2.495% +0.25%
10 14 Objective-C 2.263% +0.84%
rdo: www.tiobe.com/tiobe-index/ 64
TIOBE Index for September 2016
Sep 2016 Sep 2015 Change Programming
Language Ratings Change
1 1 Java 18.236% -1.33%
2 2 C 10.955% -4.67%
3 3 C++ 6.657% -0.13%
4 4 C# 5.493% +0.58%
5 5 Python 4.302% +0.64%
6 7 JavaScript 2.929% +0.59%
7 6 PHP 2.847% +0.32%
8 11 Asemblery 2.417% +0.061%
9 8 Virtual Basic .NET 2.343% +0.28%
10 9 Perl 2.333% +0.43%
rdo: www.tiobe.com/tiobe-index/ 65
TIOBE Index for October 2015
Oct 2015 Oct 2014 Change Programming
Language Ratings Change
1 2 Java 19.543% +6.04%
2 1 C 16.190% -1.47%
3 4 C++ 5.749% +0.88%
4 5 C# 4.825% +0.08%
5 8 Python 4.512% +2.18%
6 7 PHP 2.561% -0.38%
7 13 Visual Basic .NET 2.462% +0.71%
8 12 JavaScript 2.292% +0.52%
9 9 Perl 2.247% +0.13%
10 16 Ruby 1.825% +0.70%
rdo: www.tiobe.com 66
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
TIOBE Index for September 2014
Sep 2014 Sep 2013 Change Programming
Language Ratings Change
1 1 C 16.721% -0.25%
2 2 Java 14.140% -2.01%
3 4 Objective-C 9.935% +1.37%
4 3 C++ 4.674% -3.99%
5 6 C# 4.352% -1.21%
6 7 Basic 3.547% -1.29%
7 5 PHP 3.121% -3.31%
8 8 Python 2.782% -0.39%
9 9 JavaScript 2.448% +0.43%
10 10 Transact-SQL 1.675% -0.32%
rdo: www.tiobe.com 67
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
TIOBE Programming Community Index
rdo: www.tiobe.com/tiobe-index/ 68
Wielo jzykw/technologii
69
PHP
JavaScript
obecnie take po stronie serwerowej, z uyciem
silnika nazywanego: Node.js
Java / JSP
Python
Ruby
ASP.NET zwykle z jzykiem programowania C#
inne
SERWERY BAZ DANYCH
70
Wersje BD
Produkt Producent Najnowsza wersja Licencja
MySQL Oracle 5.7.19 GPL lub komercyjna
MariaDB Monty Program Ab 10.2.9 GPL v. 2
Microsoft SQL
Server
Microsoft 2016
(13.0.1601.5)
Microsoft EULA
Oracle
Database
Oracle 12c (12.2.0.1) komercyjna
PostgreSQL PostgreSQL Global
Development Group
9.6.5 PostgreSQL
SQLite D. Richard Hipp 3.20.1 Public domain
Informix IBM 12.10.xC7 EULA
DB2 IBM 11.1 EULA
71
DB-Engines Ranking
72
Oct 2017 Oct 2016 Change Programming
Language Ratings Change
1 1 Oracle 1348.80 -68.30
2 2 MySQL 1298.83 -63.82
3 3 Microsoft SQL Server 1210.32 -3.86
4 5 PostgreSQL 373.27 +54.58
5 4 MongoDB 329.40 +10.60
6 6 DB2 194.59 +14.03
7 8 Microsoft Access 129.45 +4.78
8 7 Cassandra 124.79 -10.27
9 9 Redis 122.05 +12.51
10 11 Elasticsearch 120.23 +21.12
rdo: http://db-engines.com/en/ranking
http://www.tiobe.com/
Due bazy danych
Microsoft SQL Server 2016
Oracle 12c
IBM Informix Extended Parallel Server (XPS)
SAP Sybase Adaptive Server Enterprise 16.0
(ASE)
Interbase XE7
73
rednie bazy danych
MySQL
MariaDB
PostgreSQL
Firebird 3.0.1
Microsoft Visual FoxPro 9.0
MS Access 2016
74
Mae bazy danych
mSQL 3.11
SQLite
Nie nadaj si do tworzenia
wielodstpowych aplikacji internetowych.
75
MySQL
Silniki baz danych
ISAM
MyISAM
InnoDB
BerkeleyDB (BDB)
MERGE
HEAP
76
Kryteria wyboru skadowych systemu
dla potrzeb IBD
Ilo i rodzaj danych przechowywanych w
systemie.
Szacowana liczba uytkownikw mogcych
jednoczenie korzysta z systemu.
Skalowalno i wieloplatformowo.
Bezpieczestwo i ochrona danych.
77
Kryteria wyboru skadowych systemu
dla potrzeb IBD (2)
Zabezpieczenie przed kradzie kodu oraz
utrat danych.
rodowisko programistyczne.
Obsugiwana platforma sprztowa
(najczciej pod ktem wykorzystania
nowych moliwoci SO).
Koszt.
78
Pomiar popularnoci PHP (program Netcraft)
rdo: php.net/usage.php 79
Zestaw oprogramowania
LAMP Linux + Apache + MySQL/MariaDB +
PHP/Perl/Python
WAMP Windows + Apache + MySQL + PHP
MAMP Mac OS X + Apache + MySQL + PHP
XAMPP X (Cross-platform) Apache,
MySQL, PHP, Perl
80
Uproszczony schemat architektury LAMP
rdo: wikipedia.org 81
Bazy danych obsugiwane przez PHP
Baza
danych
Typ Obsuga Platforma Licencja Uwagi
Adabas D R ODBC U, W Komercyjna Niemiecka,
rozprowadzana z SuSE
Linux
DBA/DBM Paski plik Warstwa
abstrakcji
U Open source,
komercyjna
Sleepycat, Gnu DBM,
cdb
dBase P Tylko import W Komercyjna Bez SQL
Empress R ODBC U, W Komercyjna Korporacyjna, dostpne
JDBC
filepro R Tylko import U, W Komercyjna Nie do zada
produkcyjnych
IBM DB2 R ODBC U, W Komercyjna Korporacyjna, dostpne
JDBC
Informix R Wasna U, W Komercyjna Korporacyjna
Interbase R Wasna U, W Komercyjna Korporacyjna, dostpne
JDBC 82
Bazy danych obsugiwane przez PHP (2)
Baza danych Typ Obsuga Platforma Licencja Uwagi
MS Access R ODBC W Komercyjna Nie do zada produkcyjnych
MS SQL Server R Wasna W Komercyjna Korporacyjna
mSQL R Wasna U Shereware Bardzo maa
MySQL R ODBC U, W Komercyjna,
Shareware
Kilka licencji
Oracle R Wasna U, W Komercyjna Korporacyjna
Orecle8 R Wasna U, W Komercyjna Korporacyjna, integracja z
Java
PostgreSQL O-R Wasna U Open source Wsparcie komercyjne
Solid R ODBC U, W Komercyjna Wbudowana baza danych,
firma fiska
SQLite FF Wasna U, W Open source Wbudowana baza danych
Sybase R Wasna U, W Komercyjna Korporacyjna
rdo: T. Converse et al., PHP5 i MySQL, Gliwice 2005, s. 283. 83
Warstwa abstrakcji bazy danych
DBAL (Database abstraction layer)
w PHP:
AdoDB (Active Data Objects Database)
PEAR DB biblioteki PEAR (PHP Extension and
Application Repository)
Metabase
PEAR MDB2
PDO (PHP Data Objects) - obiekty danych
PHP
84
PEAR DB
Nakadka na rozszerzenia bazodanowe PHP
Pakiet zorientowany obiektowo
Cel: uoglnienie procesu komunikacji z
bazami danych
Dokumentacja i przykady:
http://pear.php.net/manual/pl/package.
database.db.intro-connect.php
85
Szablony PHP
Smarty
http://www.smarty.net
Oddzielenie kodu PHP od statycznego kodu
HTML (trjwarstwowa architektura)
86
Przykad uycia Smartw
// ----------- PHP page -----------------------
include('Smarty.class.php');
// create object
$smarty = new Smarty;
// assign some content. This would typically come from
// a database or other source, but we'll use static
// values for the purpose of this example.
$smarty->assign('name', 'george smith');
$smarty->assign('address', '45th & Harris');
// display it
$smarty->display('index.tpl'); 87
Przykad uycia Smartw (cd.)
// ----- smarty template -------------------
User Info
User Information:
Name: {$name}
Address: {$address}
88
PHP i Smarty
Przykadowa implementacja architektury
MVC dla aplikacji opartej na PHP moe
wyglda nastpujco:
Kontroler - skrypty PHP.
Model - obiektowe klasy jzyka PHP.
Widok - szablony Smarty, wspomagane HTML,
CSS i innymi podobnymi technologiami.
89
Frameworki PHP
Symfony
Zend
CodeIgniter
Kohana
PRADO Framework
90
TECHNOLOGIE UDOSTPNIANIA
INFORMACJI
91
Technologie udostpniania informacji
HTML (HyperText Markup Language)
ISAPI (Internet Server Application
Programming Interface)
CGI (Common Gateway Interface)
ASP (Active Server Pages)
PHP (PHP Hypertext Preprocessor)
JSP (JavaServer Pages)
XML (Extensible Markup Language) 92
HTML (HyperText Markup Language)
Hipertekstowy jzyk znacznikw (ang.
tags) stosowany do pisania stron WWW
Strona internetowa
Witamy...
93
ISAPI (Internet Server API)
API (Application Programming Interface)
rozszerzenie programistyczne firmy Mircrosoft dla
serwera WWW o nazwie IIS Internet Information
Services (np. skadnik Windows 2003 Server).
Gwne zastosowania: jako wstpny filtr lub
aplikacja na serwerze.
Wydajniejsze od CGI (m.in. jednokrotne zaadowanie
biblioteki DLL jeden proces i uruchamianie
wtkw).
Zadania wykonywane s po stronie serwera.
94
Architektura IIS 5.0
rdo: http://www.digilab.com.pl/pub/RESOURCE.KIT/W2K%20SERVER%20RESOURCE%20KIT%20PL/IIS/roz01.htm 95
CGI (Common Gateway Interface)
Standard wymiany informacji (1993):
przegldarka WWW usuga WWW skrypt CGI
pami
Gwne zastosowania: przetwarzanie danych
(formularze).
Zadania wykonywane s po stronie serwera.
Wada: maa wydajno (ale oprogramowanie
FastCGI)
Zagroenie dla bezpieczestwa (przy nieuwadze
programisty). 96
PHP
PHP Hypertext Preprocessor
Dawniej skrt rozwijano jako Personal
Home Page
Skryptowy jzyk programowania stosowany
gwnie do tworzenia dynamicznych stron
WWW
Wykonywany po stronie serwera
97
PHP
Zalety:
Obsuga bardzo wielu platform,
Licencjonowanie OpenSource,
Zachowanie poufnoci kodu wykonywanie po stronie
serwera,
Dostpno narzdzi wspomagajcych.
Wady:
Trudnoci z przenaszalnoci (ze wzgldu na
bezporedni dostp do bazy danych),
Obsugi wyjtkw dopiero od wersji 5 i to czciowo.
98
PHP
Przyklad
99
Style PHP
Minimalny
Maksymalny
redni
rdo: https://code.google.com/p/dompdf/wiki/FAQ 100
ASP (Active Server Pages)
Standard firmy Microsoft
W plikach *.asp umieszczony jest skrypt VBS (Visial
Basic Script)
Technologia umoliwiajca poczenie HTMLa,
specjalnych skryptw i komponentw COM
Serwer wykonuje napotkane polecenia i do
przegldarki zwraca HTML (Uwaga: komponenty COM
mog by wykonywane rwnie po stronie klienta)
Wsppraca z bazami danych: ODBC, OLE DB, ADO
Wada: gwnie zwizane z jednym systemem
operacyjnym 101
ASP
Przyklad
102
J2EE
Servlety
JSP
Enterprise JavaBeans (EJB)
sesyjne EJB (ang. session EJB) bezstanowe i
stanowe
sterowane komunikatami EJB (ang. message-
driven EJB)
encyjne EJB (ang. entity EJB)
inne rdo: http://edu.pjwstk.edu.pl/wyklady/iab/scb/index.html
103
JSP (Java Server Pages)
Technologia tworzenia dynamicznych stron WWW
z wykorzystaniem jzyka wplecionego w kod
strony
Odmiana servletw aplikacji w Javie
uruchamianych po stronie serwera
Strona JSP zamieniana jest na servlet, ktry
wykonuje operacje i kade kolejne zapytania do
tej strony (prekompilacja zamiana na servwlety
ju przy uruchamianiu)
104
JSP
Zastosowania:
Due serwisy oddzielenie warstwy prezentacji
(kod HTML) od warstwy logiki (kod Javy),
Niezaleno od platformy,
Modelowanie z uyciem narzdzi CASE (jzyk
obiektowy).
Wady
Dua pracochonno,
Raczej nie wykorzystana w maych serwisach (due
wymagania instalacja oraz wyszy koszt).
105
XML
Jzyk znacznikw umoliwiajcy tworzenie
swoich wasnych znacznikw formatujcych,
definiujcych w DTD (Documetn Type Definition)
dokumentu.
Niektre odmiany zwizane z XMLem:
Okrelajce struktur dokumentu: DTD, XML-Data,
XML-Schema,
Okrelajce dowizania: XLink, Xpath
W zakresie prezentacji i przetwarzania: XSL
(Extensible Stylesheet Language), XSLT (XSL
Transforming), DOM (Document Object Model). 106
XML
Wady:
nie wspomagany przez niektre przegldarki
wymaga wikszej dokadnoci przy pisaniu ni
HTML
107
Rozszerzenie HTML po stronie klienta
Uruchamianie aplikacji po stronie klienta
(ang. client-side)
CSS, Dynamic HTML
Skrypty wykonywane po stronie klienta
Java Script
VBScript
Aplety Java
Animacje Flash 108
Aplety Java
Przesyane wraz z dokumentem HTML i
wykonywane na wirtualnej maszynie
wbudowanej w przegldark
Zastosowania:
Efekty graficzne
Narzdzia pomocnicze np. dla chata
Realizacja tzw. cienkich klientw
Brak moliwoci dostpu do zasobw
lokalnych komputera 109
Java Script
Jzyk skryptowy interpretowany przez
przegldark.
Zastosowania:
Programy reagujce na zdarzenia,
Elementy animacyjne,
Weryfikacja poprawnoci formularzy
110
PERL
Interpretowany jzyk programowania.
Program jest wczeniej kompilowany do
kodu poredniego.
111
Python
Jzyk programowania wysokiego poziomu
oglnego przeznaczenia.
Czsto uywany jako jzyk skryptowy.
Django - wysokopoziomowy, opensource'owy
framework przeznaczony do tworzenia aplikacji
internetowych, napisany w Pythonie.
Django opiera si na wzorcu projektowym
podobnym do MVC nazywanym MVT (Model-View-
Template).
112
Ruby On Rails (RoR)
Framework do szybkiego tworzenia aplikacji
webowych.
Zosta napisany w jzyku Ruby z uyciem
architektury MVC (ang. Model-View-Controller).
RoR moe wsppracowa z rnymi odmianami
relacyjnych baz danych.
113
TECHNOLOGIE DOSTPU DO
DANYCH
114
Technologie dostpu do danych
ODBC (Open DataBase Connectivity)
JDBC (Java DataBase Connectivity)
OLE DB (Object Linking and Embeding for
DataBases)
DAO (Data Access Object)
ADO (ActiveX Data Object)
ADO.NET (ActiveX Data Objects for .NET)
115
ODBC (Open DataBase Connectivity)
Standard interfejsu (w oparciu o SQL) do
heterogenicznych baz danych moliwo zastosowania
jednej aplikacji do rnych systemw zarzdzania baz
danych.
API niezalene od jzyka programowania, systemu
operacyjnego i bazy danych.
Ok. 200 sterownikw do rnego rodzaju rde danych.
Zastosowanie: dostp do relacyjnych baz danych.
Ograniczenia: zoone wykonywanie operacji, dua ilo
kodu wpyw na przetwarzanie.
116
ODBC (Open DataBase Connectivity)
Aplikcja
Manager sterownikw
Sterownik Sterownik
117
JDBC (Java DataBase Connectivity)
Standard interfejsu czcy aplikacj Javy z
zewntrzn baz danych.
JDBC API (aplikacja Driver Manager)
sterownik (np. JDBC-NET, JDBC-ODBC, sterownik
wbudowany w API).
SQLJ standard umoliwiajcy osadzanie
instrukcji SQL w plikach rdowych (ORACLE,
Sybase, IBM, Informix, Tandem).
Cel: atwiejsze pisanie kodu, eliminacja bdw,
translacja na JDBC.
118
OLE DB (Object Linking and Embeding
for DataBases)
Interfejs programistyczny firmy Microsoft
sucy do uzyskania dostpu do danych.
Jest to obiekt COM, ktry funkcjonuje w
podobny sposb jak ODBC, ale w
odniesieniu do dowolnego rda danych, a
nie tylko do baz danych SQL.
Bezporedni dostp lub poprzez ODBC.
119
ADO (ActiveX Data Object)
Zbir interfejsw (poziom aplikacji)
korzystajcych z OLE DB.
ActiveX komponenty do uycia w rnych
narzdziach, m.in. Delphi, VB, C++, Java.
Przeznaczenie: system Windows.
Uzalenienie od dostawcy (poprzez
nakadk OLE-DB).
120
ADO.NET (ActiveX Data Objects for .NET)
Produkt Microsoftu wywodzcy si z ADO.
Zbir programw i bibliotek uywanych w celu
dostpu do baz danych zintegrowanych ze
rodowiskiem .NET.
Framework ORM.
121
Zaleno technologii
rdo: http://mytechconnect.wordpress.com/2011/03/22/sql-difference-between-odbc-and-oledb/ 122
DZIKUJ ZA UWAG
Pytania?