Baze podataka i aplikacije - PowerPoint PPT Presentation

1 / 57
About This Presentation
Title:

Baze podataka i aplikacije

Description:

Title: Baze podataka i aplikacije Author: Goran imi , Mladen Veinovi Last modified by: Mladen Created Date: 12/24/2006 4:49:38 PM Document presentation format – PowerPoint PPT presentation

Number of Views:175
Avg rating:3.0/5.0
Slides: 58
Provided by: Goran951951
Category:

less

Transcript and Presenter's Notes

Title: Baze podataka i aplikacije


1
Baze podataka i aplikacije
Lekcija 13
Baze podataka
2
Sadržaj
  • Uvod
  • Integrisana rešenja
  • Slojevita struktura aplikacija
  • Specificnosti pristupa BP iz razlicitih slojeva
  • Tehnologije koje omogucavaju razmenu podataka
    izmedu BP i aplikacija

3
Uvod
  • Klijent server arhitektura
  • SUBP serverska strana
  • Aplikacija koja koristi BP klijentska strana

4
Integrisana okruženja
  • Klijent i server su jedno
  • Primer Access-a i MS JetDB
  • Sve je u jednom fajlu
  • Platformska zavisnost

5
Integrisana okruženja
6
Integrisana okruženja
7
Integrisana okruženja
8
Integrisana okruženja
9
Integrisana okruženja
  • Raslojavanje po potrebi

10
Slojevita struktura aplikacija
  • Pojavom OOP omoguceno je
  • razdvajanje podataka od logike njihove obrade
  • razdvajanje podataka od interfejsa prema
    korisnicima podataka.
  • Aplikacije se grade od objekata
  • Objekti preuzimaju odovornost za obavljanje
    specificnih funkcionalnosti aplikacije

11
Slojevita struktura aplikacija
  • Primeri
  • Grupa objekata od kojih se gradi korisnicki
    interfejs
  • Grupa objekata koji ostvaruju konekciju na BP,
    izvršavaju upite i prihvataju rezultate upita
  • Objekti medusobno komuniciraju preko
    funkcionalnih poziva
  • Objekti mogu biti fizicki razdvojeni (na
    razlicitim racunarskim platformama
  • Za takve aplikacije kažemo da su ditribuirane

26.12.2006.
Predavanja
11
12
Slojevita struktura aplikacija
  • Raslojavanje aplikacije - odvajanje njenih delova
    prema funkcionalnosti
  • Slojevi grupisani objekti srodnih
    funkcionalnosti
  • Pravilo dobrog dizajna aplikacija
  • izmedu objekata (klasa) u istom sloju treba da se
    postigne visoka kohezija (high cohesion),
  • slaba sprega izmedu slojeva (low coupling).

13
Slojevita struktura aplikacija
  • Osnovni aplikacioni model je troslojni model
  • Prezentcioni sloj (presentation layer)
  • Sloj poslovne logike (buisness logic layer)
  • Sloj podataka (data layer)

14
Slojevita struktura aplikacija
15
Slojevita struktura aplikacija
  • Aplikacije mogu imati više od tri sloja
  • Podaci mogu biti razdvojeni na više razlicitih
    mesta
  • Rasterecenje hardverskih (serverskih) platformi
  • Više nivoa obrade
  • Primer Web aplikacije

16
Slojevita struktura aplikacija
17
Slojevita struktura aplikacija
  • Aplikacije servisi (nezavisne softverske
    komponente )
  • Web servisi su zasnovani na tri osnovna
    standarda
  • XML extensible markup language - (za
    prikazivanje podataka),
  • SOAP simple object access protokol (za razmenu
    podataka izmedu davalaca i korisnika servisa) i,
  • WSDL Web Service Definition Language - za
    potrebe opisa servisa, definisan je poseban jezik

18
Slojevita struktura aplikacija
Tri komponente Web servisa Davalac servisa,
korisnik servisa, provajder Web servisi
omogucavaju Povezivanje razlicitih aplikacija,
tehnologija i racunarskih platformi
19
Pristup BP
  • Specificnosti pristupa BP iz razlicitih slojeva
  • Pristup podacima iz prezentacionog sloja
  • Pristup podacima iz sloja poslovne logike
  • Pristup iz sloja podataka

20
Pristupa BP - Prezentacioni sloj -
  • Prezentacioni sloj sadrži objekte korinickog
    interfejsa
  • Uokvireni prozori sa naslovnom linijom koji
    sadrže kontrole za interakciju sa korisnikom

21
Pristupa BP - Prezentacioni sloj -
22
Pristupa BP - Prezentacioni sloj -
1Private Sub Form_Close() 2DoCmd.RunSQL "UPDATE KolicineSred SET KOLIC 3Forms!TSredstva!RecSum WHERE KolicineSred.ID_BR 4Forms!TSredstva!ID_BR AND 5KolicineSred.SifDugForms!TSredstva!SifDug" 6End Sub
VBA skripta koja sadrži SQL naredbu
23
Pristupa BP - Prezentacioni sloj -
24
Pristupa BP - Prezentacioni sloj -
25
- Prezentacioni sloj -
1 lthtmlgt 2 ltbodygt 3 lt 4 set connServer.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 sqlsql " VALUES 9 sqlsql "('" Request.Form("firma") "', 10 sqlsql "'" Request.Form("adresa") "', 11 sqlsql "'" Request.Form("postkod") "') 12 on error resume next 13 conn.Execute sql,recaffected 14 if errltgt0 then 15 Response.Write("Nemate prava na dodavanje podataka!") 16 else 17 Response.Write("lth3gtKlijent " Request.Form("firma") 18 " je dodatlt/h3gt") 19 end if 20 conn.close 21 gt 22 lt/bodygt 23 lt/htmlgt
Pristup BP iz ASP (Active Server Pages) stranice
26
Pristupa BP - Prezentacioni sloj -
1 ltsqlquery var"upit1"gt2 SELECT FROM moja_tabela3 lt/sqlquerygt 4 ltcforEach var"naziv_polja" items"upit1.columnNames"gt5 ltthgtltcout value"naziv_polja"/gtlt/thgt6 lt/cforEachgt7 ltcforEach var"red" items"upit1.rows"gt8 lttrgt9 ltcforEach var"kolona" items"red"gt10 lttdgtltcout value"kolona.value"/gtlt/tdgt11 lt/cforEachgt12 lt/trgt13 lt/cforEachgt
Posebno dizajnirani tag-ovi za pristupanje BP iz
prezentacionog sloja
27
Pristupa BP - Prezentacioni sloj -
1 mysql_connect("biblioteka.snemanja.net3617",username,password)2 _at_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 i07 while (i lt num) 8 naslov mysql_result(result,i,"naslov")9 autor mysql_result(result,i,"autor") 10 i 11
Pristupanje BP iz PHP stranice
28
Pristup BP - sloj poslovne logike -
  • Najcešce korišcen pristup kod višeslojnih
    aplikacija
  • Entiteti (klase ili moduli) zaduženi za
    komunikciju sa BP
  • Uslužne klase koje omogucavaju interakciju sa BP
  • CDatabase, CRecordset klase iz Microsoft (MFC)
  • ResultSet, Connection klase u Java-inom paketu
    java.sql.

29
Pristup BP - sloj poslovne logike -
30
Pristup BP - sloj poslovne logike -
C kod koji preuzima nazive proizvoda iz tabele
u BP i dodaje ih u listu proizvoda u korisnickom
interfejsu
31
Pristup BP - sloj poslovne logike -
Java kod koji u tabelu t_mtutor_groups u
BP dodaje novi zapis (novi naziv grupe)
32
Pristup BP - sloj podataka -
  • Izmeštanje SQL naredbi iz izvornog koda
    aplikacije u SUBP

33
Pristup BP - sloj podataka -
  • Ugnježdene procedure (stored procedures)
  • Skupovi instrukcija koje se cesto koriste
  • Njihovom upotrebom programeri se oslobadaju
    višestrukih pozivanja istih komandi
  • Najbrže se izvršavaju jer se proces prevodenja
    instrukcija vrši na SQL serveru
  • Procedure se nalaze na jednom mestu, a ne na više
    mesta u aplikacijama (npr. na front-end kraju
    prezentacioni sloj), pa je njihova izmena i
    ažuriranje mnogo lakše

34
Pristup BP - sloj podataka -
  • Ugnježdene procedure (stored procedures)
  • Kada se izvrši procedura, samo rezultat obrade se
    šalje ka sledecem sloju
  • Najmanje opterecenje mreže, poboljšanje
    performansi
  • Procedurama se mogu prosledivati parametri i
    promenljive
  • Procedure se mogu pozivati i iz drugih procedura
  • Najcešce se pišu u nekom od proširenja jezika SQL
    koje definiše proizvodac konkretnog DBMS
  • Oracle PL/SQL
  • Microsoft SQL Server Tansact-SQL

35
Pristup BP - sloj podataka -
  • Preduslov - SUBP mora da poseduje mogucnosti
    kreiranja procedura
  • SQL naredbe se ugnježdavaju kao procedure (stored
    procedure) u ciljnu BP

1 CREATE PROCEDURE spUsedTestSets(IN u_id INTEGER(11)) 2 BEGIN 3 SELECT FROM t_mtutor_used_test_sets WHERE ( user_id u_id ) 4 END
36
Pristup BP - sloj podataka -
  • 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
37
Pristup BP - sloj podataka -
  • Trigeri, okidaci (triggers)
  • Programska procedura u okviru SUBP, koja se
    aktivira odredenim dogadajem
  • upis novog zapisa u tabelu
  • brisanje odredenog zapisa
  • modifikacija postojeceg zapisa
  • Triger predstavlja jedan od mehanizama za proveru
    uslova integriteta baze podataka
  • Npr. Pre upisa u tabelu dobavljac-artikal
    proveriti da li dobavljac dobavlja dati proizvod

38
Pristup BP - sloj podataka -
  • Trigeri, okidaci (triggers)
  • Triger pokrece odredenu aktivnost nad bazom, uvek
    kada se desi jedan od navedenih dogadaja
  • Tacnije receno, SUBP inicira izvršenje okidaca,
    odmah po nastajanju dogadaja
  • Rad okidaca je van kontrole aplikativnog programa
    koji je vezan na SUBP, a obavezno se izvršava

39
Pristup BP - sloj podataka -
  • Trigeri, okidaci (triggers)
  • Sintaksa trigera je sledeca
  • Tip može biti BEFORE, AFTER i INSTEAD OF
  • CREATE OR REPLACE TRIGGER /naziv_trigera/ /tip
    trigera/ ON /naziv tabele/ BEGIN
    /izvrsne_instrukcije_trigera/ END

40
Pristup BP - sloj podataka -
  • Trigeri, okidaci (triggers)
  • Oracle ima trigere koji se aktiviraju i kada se
    menja šema RBP
  • Schema-level triggers
  • After Creation
  • Before Alter
  • After Alter
  • Before Drop
  • After Drop
  • Before Logoff
  • After Logon

41
Razmena podataka izmedu BP i aplikacija
  • Tehnologije koje omogucavaju razmenu podataka
    izmedu BP i aplikacija ODBC
  • DAO (Data Access Objects)
  • ADO
  • JDBC

42
Razmena podataka izmedu BP i aplikacija- ODBC -
  • 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 cemu se otvara administatorski dijalog
    prozor

43
Razmena podataka izmedu BP i aplikacija- ODBC -
Dodavanje novog ODBC veznika
44
Razmena podataka izmedu BP i aplikacija- ODBC -
Izbor ODBC drajvera
45
Razmena podataka izmedu BP i aplikacija- ODBC -
Zadavanje imena ODBC izvora podataka
Izbor BP
46
Razmena podataka izmedu BP i aplikacija- ODBC -
Izbor BP
47
Razmena podataka izmedu BP i aplikacija- ODBC -
  • 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 sa podacima u
brokerskoj klasi
48
Razmena podataka izmedu BP i aplikacija- DAO -
  • Automatizacija potpuna nezavisnost objekata
    aplikacije od prezentacije podataka u ciljnoj BP
  • Potpunija kontrola i jednostavniji pristup svim
    entitetima u SUBP
  • Razliciti DAO paketi i biblioteke

49
Razmena podataka izmedu BP i aplikacija- DAO -
  • Svi objekti u SUBP su obavijeni odgovarajucim
    aplikacionim objektima
  • SUBP
  • BP
  • Tabele
  • Polja
  • indeksi
  • Upiti
  • ...
  • Grupe
  • Korisnici

50
Razmena podataka izmedu BP i aplikacija- DAO -
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)..
51
Razmena podataka izmedu BP i aplikacija- DAO -
DAO u Web okruženju
52
Razmena podataka izmedu BP i aplikacija- ADO -
  • ADO ActiveX Data Objects
  • Pristup svemu što može da poseduje podatke
    (e-mailovi, Excel tabele, datoteke)
  • ADO sloj nadgradnje nad OLE radi uprošcavanja
    pristupa podacima

53
Razmena podataka izmedu BP i aplikacija
  • JDBC (Java DB Connectivity)

54
Razmena podataka izmedu BP i aplikacija- JDBC -
  • Posredstvom JDBC-a je moguce dobiti informacije
    o
  • strukturi baze podataka i njenih tabela
  • Posredstvom klase DatabaseMetaData je moguce
    dobiti informacije o strukturi baze

55
Razmena podataka izmedu BP i aplikacija- JDBC -
  • Moguce je dobiti detaljne informacije o
  • tabelama,
  • ogranicenjima,
  • uskladištenim procedurama,
  • user-ima,
  • JDBC drajveru pomocu kojega je uspostavljena
    konekcija...

56
Razmena podataka izmedu BP i aplikacija- JDBC -
  • Klasa ResultSetMetaData može da posluži kao izvor
    detaljnih informacija o
  • broju kolona,
  • nazivu svake od njih,
  • tipu,
  • dužini polja...

57
Razmena podataka izmedu BP i aplikacija- JDBC -
  • Ova klasa takode poseduje veliki broj metoda od
    kojih su najvažnije
  • int getColumnCount() vraca broj kolona
  • String getColumnLabel(int i) vraca naziv i-te
    kolone
  • int getColumnType(int i) vraca tip i-te kolone
Write a Comment
User Comments (0)
About PowerShow.com