Internetowe Bazy Danychroman.ptak.staff.iiar.pwr.wroc.pl/IBD_wyklad_2017_nr1.pdf · Wydanie II,...

123
Internetowe Bazy Danych dr inż. Roman Ptak Katedra Informatyki Technicznej [email protected]

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

[email protected]

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?