510 likes | 751 Views
Baze podataka i aplikacije. Uvod. Klijent server arhitektura SUBP – serverska strana Aplikacija koja koristi BP – klijentska strana. Integrisana okruženja. Klijent i server su jedno Primer Access-a i MS JetDB Sve je u jednom fajlu Platformska zavisnost. Integrisana okruženja.
E N D
Uvod • Klijent server arhitektura • SUBP – serverska strana • Aplikacija koja koristi BP – klijentska strana
Integrisana okruženja • Klijent i server su jedno • Primer Access-a i MS JetDB • Sve je u jednom fajlu • Platformska zavisnost
Integrisana okruženja Raslojavanje po potrebi
Slojevita struktura aplikacija • Pojavom OOP omogućeno je: • razdvajanje podataka od logike njihove obrade • razdvajanje podataka od interfejsa prema korisnicima podataka. • Aplikacije se grade od objekata • Objekti preuzimaju odovornost za obavljanje specifičnih funkcionalnosti aplikacije
Slojevita struktura aplikacija Primeri: Grupa objekata od kojih se gradi korisnički interfejs Grupa objekata koji ostvaruju konekciju na BP, izvršavaju upite i prihvataju rezultate upita Objekti međusobno komuniciraju preko funkcionalnih poziva Objekti mogu biti fizički razdvojeni (na različitim računarskim platformama Za takve aplikacije kažemo da su ditribuirane
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).
Slojevita struktura aplikacija • Osnovni aplikacioni model je troslojni model • Prezentcioni sloj (presentation layer) • Sloj poslovne logike (buisness logic layer) • Sloj podataka (data layer)
Slojevita struktura aplikacija • Aplikacije mogu imati više od tri sloja • Podaci mogu biti razdvojeni na više različitih mesta • Rasterećenje hardverskih (serverskih) platformi • Više nivoa obrade • Primer: Web aplikacije
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 između davalaca i korisnika servisa) i, • WSDL – Web Service Definition Language - za potrebe opisa servisa, definisan je poseban jezik
Slojevita struktura aplikacija • Tri komponente Web servisa: • Davalac servisa, korisnik servisa, provajder • Web servisi omogućavaju: • Povezivanje različitih aplikacija, tehnologija i računarskih platformi
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
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
Pristupa BP - Prezentacioni sloj - VBA skripta koja sadrži SQL naredbu
- Prezentacioni sloj - Pristup BP iz ASP (Active Server Pages) stranice
Pristupa BP - Prezentacioni sloj - Posebno dizajnirani tag-ovi za pristupanje BP iz prezentacionog sloja
Pristupa BP - Prezentacioni sloj - Pristupanje BP iz PHP stranice
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.*
Pristup BP - sloj poslovne logike - C++ kod koji preuzima nazive proizvoda iz tabele u BP i dodaje ih u listu proizvoda u korisničkom interfejsu
Pristup BP - sloj poslovne logike - Java kod koji u tabelu t_mtutor_groups u BP dodaje novi zapis (novi naziv grupe)
Pristup BP - sloj podataka - • Izmeštanje SQL naredbi iz izvornog koda aplikacije u SUBP
Pristup BP - sloj podataka - • Ugnježdene procedure (stored procedures) • Skupovi instrukcija koje se često koriste • Njihovom upotrebom programeri se oslobađaju višestrukih pozivanja istih komandi • Najbrže se izvršavaju jer se proces prevođenja instrukcija vrši na SQL serveru • Procedurese nalaze na jednom mestu, a ne na više mesta u aplikacijama (npr. nafront-endkraju – prezentacioni sloj), pa je njihova izmena i ažuriranje mnogo lakše
Pristup BP - sloj podataka - • Ugnježdene procedure (stored procedures) • Kada se izvrši procedura, samo rezultat obrade se šalje ka sledećem sloju • Najmanje opterećenje mreže, poboljšanje performansi • Procedurama se mogu prosleđivati parametri i promenljive • Procedure se mogu pozivati i iz drugih procedura • Najčešće se pišu u nekom od proširenja jezika SQL koje definiše proizvođač konkretnog DBMS • Oracle – PL/SQL • Microsoft SQL Server – Tansact-SQL
Pristup BP - sloj podataka - • Preduslov - SUBP mora da poseduje mogućnosti kreiranja procedura • SQL naredbe se ugnježdavaju kao procedure (stored procedure) u ciljnu BP
Pristup BP - sloj podataka - • Poziv ugnježdenih procedura
Pristup BP - sloj podataka - • Trigeri, okidači (triggers) • Programska procedura u okviru SUBP, koja se aktivira određenim događajem: • upis novog zapisa u tabelu • brisanje određenog zapisa • modifikacija postojećeg zapisa • Trigerpredstavlja jedan od mehanizama za proveru uslova integriteta baze podataka • Npr. Pre upisa u tabelu dobavljač-artikal proveriti da li dobavljač dobavlja dati proizvod
Pristup BP - sloj podataka - • Trigeri, okidači (triggers) • Triger pokreće određenu aktivnost nad bazom, uvek kada se desi jedan od navedenih događaja • Tačnije rečeno, SUBP inicira izvršenje okidača, odmah po nastajanju događaja • Rad okidača je van kontrole aplikativnog programa koji je vezan na SUBP, a obavezno se izvršava
Pristup BP - sloj podataka - • Trigeri, okidači (triggers) • Sintaksa trigera je sledeća: • 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
Pristup BP - sloj podataka - • Trigeri, okidači (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
Razmena podataka između 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 čemu se otvara administatorski dijalog prozor
Razmena podataka između BP i aplikacija- ODBC - Dodavanje novog ODBC veznika
Razmena podataka između BP i aplikacija- ODBC - Izbor ODBC drajvera
Razmena podataka između BP i aplikacija- ODBC - Zadavanje imena ODBC izvora podataka Izbor BP
Razmena podataka između 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
Razmena podataka između BP i aplikacija • JDBC (Java DB Connectivity)
Razmena podataka između BP i aplikacija- JDBC - • Posredstvom JDBC-a je moguće dobiti informacije o: • strukturi baze podataka i njenih tabela • Posredstvom klase DatabaseMetaData je moguće dobiti informacije o strukturi baze
Razmena podataka između BP i aplikacija- JDBC - • Moguće je dobiti detaljne informacije o: • tabelama, • ograničenjima, • uskladištenim procedurama, • user-ima, • JDBC drajveru pomoću kojega je uspostavljena konekcija...
Razmena podataka između BP i aplikacija- JDBC - • KlasaResultSetMetaDatamože da posluži kao izvor detaljnih informacija o: • broju kolona, • nazivu svake od njih, • tipu, • dužini polja...
Razmena podataka između BP i aplikacija- JDBC - • Ova klasa takođe poseduje veliki broj metoda od kojih su najvažnije: • int getColumnCount() – vraća broj kolona • String getColumnLabel(int i) – vraća naziv i-te kolone • int getColumnType(int i) – vraća tip i-te kolone