46
Baze podataka i aplikacije Baze podataka Baze podataka Lekcija 13 Lekcija 13

Baze podataka i aplikacije

  • Upload
    misae

  • View
    83

  • Download
    0

Embed Size (px)

DESCRIPTION

Lekcija 13. Baze podataka i aplikacije. Baze podataka. Sadržaj. Uvod Integrisana rešenja Slojevita struktura aplikacija Specifičnosti pristupa BP iz različitih slojeva Tehnologije koje omogućavaju razmenu podataka između BP i aplikacija. Uvod. Klijent server paradigma - PowerPoint PPT Presentation

Citation preview

Baze podataka i aplikacije

Baze podatakaBaze podataka

Lekcija 13Lekcija 13

26.12.2006. Predavanja 2

Sadržaj

• Uvod

• Integrisana rešenja

• Slojevita struktura aplikacija

• Specifičnosti pristupa BP iz različitih slojeva

• Tehnologije koje omogućavaju razmenu podataka između BP i aplikacija

26.12.2006. Predavanja 3

Uvod

• Klijent server paradigma• SUBP – serverska strana• Aplikacija koja koristi BP – klijentska strana

Uspostavakonekcije

Zahtev za servisomDavanjeservisa

Raskidkonekcije

26.12.2006. Predavanja 4

Integrisana okruženja

• Klijent i server su jedno• Primer Access-a i MS JetDB• Sve je u jednom fajlu • Platformska zavisnost

JetDB engineAccess

Forms

Reports

Queries

Modules

26.12.2006. Predavanja 5

Integrisana okruženja

JetDB engineAccess

Forms

Reports

Queries

Modules

26.12.2006. Predavanja 6

Integrisana okruženja

JetDB engineAccess

Forms

Reports

Queries

Modules

26.12.2006. Predavanja 7

Integrisana okruženja

JetDB engineAccess

Forms

Reports

Queries

Modules

26.12.2006. Predavanja 8

Integrisana okruženja

JetDB engineAccess

Forms

Reports

Queries

Modules

26.12.2006. Predavanja 9

Integrisana okruženja

• Raslojavanje po potrebi

26.12.2006. Predavanja 10

Slojevita struktura aplikacija

• Pojavom OOP omogućeno je:– razdvajanje podataka od logike njihove

obrade – razdvajanje podataka od interfejsa prema

korisnicima podataka.

• Objekti preuzimaju odovornost za obavljanje specifičnih funkcionalnosti aplikacije

26.12.2006. Predavanja 11

Slojevita struktura aplikacija

• Raslojavanje aplikacije - odvajanje njenih delova prema funkcionalnosti

• Slojevi – grupisani objekti srodnih funkcionalnosti

• Pravilo dobrog dizajna aplikacija: – između objekata (klasa) u istom sloju treba da

se postigne visoka kohezija (high cohesion), – slaba sprega između slojeva (low coupling).

26.12.2006. Predavanja 12

Slojevita struktura aplikacija

• Osnovni aplikacioni model je troslojni model– Prezentcioni sloj (presentation layer)– Sloj poslovne logike (buisness logic layer)– Sloj podataka (data layer)

26.12.2006. Predavanja 13

Slojevita struktura aplikacija

26.12.2006. Predavanja 14

Slojevita struktura aplikacija

• Aplikacije mogu imati više od tri sloja

• Podaci mogu biti razdvojeni na više različitih mesta

• Više nivoa obrade

• Primer: Web aplikacije

26.12.2006. Predavanja 15

Slojevita struktura aplikacija

26.12.2006. Predavanja 16

Slojevita struktura aplikacija

• Aplikacije servisi (nezavisne softverske komponente )

• Web servisi su zasnovani na tri osnovna standarda:

– XML (za prikazivanje podataka), – SOAP (za razmenu podataka između

davalaca i korisnika servisa) i, – WSDL za potrebe opisa servisa, definisan je

poseban jezik

26.12.2006. Predavanja 17

Slojevita struktura aplikacija

26.12.2006. Predavanja 18

Pristup BP

• Specifičnosti pristupa BP iz različitih slojeva

– Pristup podacima iz prezentacionog sloja– Pristup podacima iz sloja poslovne logike– Pristup iz sloja podataka

26.12.2006. Predavanja 19

Pristupa BP - Prezentacioni sloj -

• Prezentacioni sloj sadrži objekte koriničkog interfejsa

• Uokvireni prozori sa naslovnom linijom koji sadrže kontrole za interakciju sa korisnikom

26.12.2006. Predavanja 20

Pristupa BP - Prezentacioni sloj -

26.12.2006. Predavanja 21

1:Private Sub Form_Close()2:DoCmd.RunSQL "UPDATE KolicineSred SET [KOLIC] = 3:Forms![TSredstva]![RecSum] WHERE

KolicineSred.ID_BR = 4:Forms![TSredstva]![ID_BR] AND 5:KolicineSred.SifDug=Forms![TSredstva]![SifDug];"6:End Sub

Pristupa BP - Prezentacioni sloj -

26.12.2006. Predavanja 22

Pristupa BP - Prezentacioni sloj -

26.12.2006. Predavanja 23

Pristupa BP - Prezentacioni sloj -

26.12.2006. Predavanja 24

1: <html>2: <body>3: <%4: set conn=Server.CreateObject("ADODB.Connection")5: conn.Provider="Microsoft.Jet.OLEDB.4.0"6: conn.Open "d:/webdata/partneri.mdb“7: sql="INSERT INTO kupci (naz_firme, adresa, postbroj)"8: sql=sql & " VALUES “9: sql=sql & "('" & Request.Form("firma") & "',“10: sql=sql & "'" & Request.Form("adresa") & "',“11: sql=sql & "'" & Request.Form("postkod") & "')“12: on error resume next13: conn.Execute sql,recaffected14: if err<>0 then15: Response.Write("Nemate prava na dodavanje podataka!")16: else 17: Response.Write("<h3>Klijent " & Request.Form("firma") 18: & " je dodat</h3>")19: end if20: conn.close21: %>22: </body>23: </html>

Pristup BP iz ASP stranice

- Prezentacioni sloj -

26.12.2006. Predavanja 25

1: <sql:query var="upit1">2: SELECT * FROM moja_tabela3: </sql:query>4: <c:forEach var="naziv_polja" items="${upit1.columnNames}">5: <th><c:out value="${naziv_polja}"/></th>6: </c:forEach>7: <c:forEach var="red" items="${upit1.rows}">8: <tr>9: <c:forEach var="kolona" items="${red}">10: <td><c:out value="${kolona.value}"/></td>11: </c:forEach>12: </tr>13: </c:forEach>

Posebno dizajnirani tag-ovi za pristupanje BP iz prezentacionog sloja

Pristupa BP - Prezentacioni sloj -

26.12.2006. Predavanja 26

1: mysql_connect("biblioteka.snemanja.net:3617",$username,$password);2: @mysql_select_db("biblioteka") or die( "Nema konekcije sa BP");3: $result = mysql_query("SELECT * FROM knjige");4: $num = mysql_numrows($result);5: mysql_close();6: $i=0;7: while ($i < $num) {8: $naslov = mysql_result($result,$i,"naslov");9: $autor = mysql_result($result,$i,"autor");10: $i++;11: }

Pristupanje BP iz PHP stranice

Pristupa BP - Prezentacioni sloj -

26.12.2006. Predavanja 27

Pristup BP - sloj poslovne logike -

• Najčešće korišćen pristup kod višeslojnih aplikacija• Entiteti (klase ili moduli) zaduženi za komunikciju

sa BP• Uslužne klase koje omogućavaju interakciju sa BP • CDatabase, CRecordset klase iz Microsoft (MFC) • ResultSet, Connection klase u Java-inom paketu

java.sql.*

26.12.2006. Predavanja 28

Pristup BP - sloj poslovne logike -

26.12.2006. Predavanja 29

C++ kod koji preuzima nazive proizvoda iz tabele u BPi dodaje ih u listu proizvoda u korisničkom interfejsu

Pristup BP - sloj poslovne logike -

26.12.2006. Predavanja 30

Java kod koji u tabelu t_mtutor_groups u BPdodaje novi zapis (novi naziv grupe)

Pristup BP - sloj poslovne logike -

26.12.2006. Predavanja 31

• Izmeštanje SQL naredbi iz izvornog koda aplikacije u SUBP

Pristup BP - sloj podataka -

26.12.2006. Predavanja 32

• Preduslov - SUBP mora da poseduje mogućnosti kreiranja procedura

• SQL naredbe se ugnježdavaju kao procedure (stored procedure) u ciljnu BP

1: CREATE PROCEDURE `spUsedTestSets`(IN u_id INTEGER(11))2: BEGIN3: SELECT * FROM `t_mtutor_used_test_sets` WHERE ( user_id = u_id );4: END;

Pristup BP - sloj podataka -

26.12.2006. Predavanja 33

• Poziv ugnježdenih procedura

1: cs = conn.prepareCall("{call spUsedTestSets(?)}");2: cs.setInt("user_id", u_id);3: rs = cs.executeQuery();4: while( rs.next() ){5: int test_id = rs.getInt("test_set_id");6: Date test_dat = rs.getDate("date");7: }

Pristup BP - sloj podataka -

26.12.2006. Predavanja 34

Razmena podataka između BP i aplikacija

• Tehnologije koje omogućavaju razmenu podataka između BP i aplikacija ODBC– DAO (Data Access Objects)– ADO– JDBC

26.12.2006. Predavanja 35

• Pre kreiranja aplikacije potrebno je izvršiti registrovanje BP kojoj se pristupa posredstvom ODBC drajvera.

• Registracija je obavezna bez obzira na tip BP

• U Windows-ovom kontrol-panelu se bira ikonica ODBC, pri čemu se otvara administatorski dijalog prozor

Razmena podataka između BP i aplikacija

- ODBC -

26.12.2006. Predavanja 36

Dodavanje novogODBC veznika

Razmena podataka između BP i aplikacija

- ODBC -

26.12.2006. Predavanja 37

Izbor ODBC drajvera

Razmena podataka između BP i aplikacija

- ODBC -

26.12.2006. Predavanja 38

Zadavanje imenaODBC izvora podataka

Izbor BP

Razmena podataka između BP i aplikacija

- ODBC -

26.12.2006. Predavanja 39

Izbor BP

Razmena podataka između BP i aplikacija

- ODBC -

26.12.2006. Predavanja 40

• Dalje se kreiraju brokerske klase koje koriste ODBC preko datog naziva, da bi uspostavile interakciju sa podacima u BP

Naziv ODBC-a

Naziv tabele

Povezivanje polja u tabeli sapodacima u brokerskoj klasi

Razmena podataka između BP i aplikacija

- ODBC -

26.12.2006. Predavanja 41

• Automatizacija – potpuna nezavisnost objekata aplikacije od prezentacije podataka u ciljnoj BP

• Potpunija kontrola i jednostavniji pristup svim entitetima u SUBP

• Različiti DAO paketi i biblioteke

Razmena podataka između BP i aplikacija

- DAO -

26.12.2006. Predavanja 42

• Svi objekti u SUBP su obavijeni odgovarajućim aplikacionim objektima:– SUBP– BP

• Tabele– Polja– indeksi

• Upiti

• ...

– Grupe– Korisnici

Razmena podataka između BP i aplikacija

- DAO -

26.12.2006. Predavanja 43

1: try{2: CDaoDatabase db;3: db.Open(“s_erw05.mdb”):4: db.Execute(“INSERT INTO t_masters VALUES (‘test’,’test_pwd’,0)”);5: db.Close();6: }catch(CDaoException* pe){..;}

1: CDaoDatabase db; CDaoMasterSet ms; 2: try{3: ms.Open(AFX_DAO_USE_DEFAULT_TYPE,4: “SELECT * FROM t_masters WHERE status = 0 ”):4: while (!ms.IsEOF()){5: fillCombo(ms.m_sUserName);6: ms.MoveNext();7: }7: }catch(CDaoException* pe){..;}

Razmena podataka između BP i aplikacija

- DAO -

26.12.2006. Predavanja 44

DAO DAO u Web okruu Web okruženjuženju

Razmena podataka između BP i aplikacija

- DAO -

26.12.2006. Predavanja 45

• ADO – ActiveX Data Objects• Pristup svemu što može da poseduje

podatke (e-mailovi, Excel tabele, datoteke)• ADO sloj nadgradnje nad OLE radi

uprošćavanja pristupa podacima

Razmena podataka između BP i aplikacija

- ADO -

26.12.2006. Predavanja 46

• JDBC (Java DB Connectivity)

Razmena podataka između BP i aplikacija