78
1 KOMPONENTE SUBP (1) Baza podataka podaci, metapodaci, baza indeksa (2) Sistem za upravljanjem skladištenjem podataka upravljanje datotekama i upravljanje baferima (3) Ulazi u BP upiti, aplikacije, odrţavanje šeme BP. Preko jezika BP (DL) koji se sastoji od DDL i od DML. (4) Upravljanje transakcijama i oporavkom da obezbedi da BP ostane u konzistentnom stanju u konkurentnoj obradi podataka (rešavanje konflikata). TRANSAKCIJA I ACID OSOBINE -Niz operacija nad bazom izvršenje jedne logičke jedinice posla u realnom sistemu. (1) Atomnost sve operacije uspešne ili nijedna – ostvaruje se preko commit i rollback. (2) Konzistentnost transakcija je jedinica konzistentnosti. Za vreme obavljanja transakcije moţe da se naruši ali ne i pre i posle. (3) Izolacija kada se 2 transakcije istovremeno izvršavaju njihovi efekti moraju biti izolovani (4) Trajnost efekti transakcije ne mogu biti izgubljeni. ANSI/SPARC ARHITEKTURA -Tronivovska arhitektura čiji nivoi imaju za cilj da odvoje logičku od fizičke i aplikacione strukture BP. (1) Interni nivo (fizički) kako su podaci fizički organizovani – IDDL (Internal DDL) (2) Konceptualni nivo (šema BP) definiše opštu logičku strukturu, sve podatke u sistemu i njihove logičke odnose i koji treba da omogući upravljanje podacima kao zajedničkim resursom u celom sistemu. (3) Eksterni nivo (podšema) definiše specifičnu logičku strukturu, za specifične zahteve. MODELI PODATAKA I 4 OSNOVNE KOMPONENTE -Intelektualni alati pomoću kojih se modeluje sistem kao skup objekata, njihovih atributa i veza. (1) Struktura modela skup koncepata za opis objekata, atributa i veza (2) Ograničenja na vrednosti podataka, moraju uvek da budu zadovoljena. (3) Operacije nad konceptima strukture, preko kojih se prikazuku i menjaju elementi BP (4) Dinamička pravila integriteta definiše se osnovno dinamičko ponašanje. Din.pravilo se moţe predstaviti trojkom <operacija, ograničenje, akcija> OPERACIJE U MOV-U -Insert, Delete, Update, Connect (pojavljivanja O1 klase A sa pojavljivanjem O2 klase B), Disconnect, Reconnect. -Postoje i 2 operacije pretraţivanja – navigacione operacije i upitni jezik MOV-a. OPERACIJE NAD RELACIJAMA RELACIONA ALGEBRA -Konvencionalne skupovne operacije: (1) Unija ( ) daje sve elemente obe relacije, bez dupliranja (2) Presek ( ) daje sve elemente koji se pojavljuju u obe relacije (zajedničke) (3) Razlika ( ) daje sve elemente prve relacije koji nisu elementi druge (4) Dekartov proizvod ( ) daje parove koje čine jedna n-torka prve i jedna n-torka druge relacije (npr. prva ima 1 2 3, druga A B pa C D, rezultujuća će imati 1 2 3 A B pa 1 2 3 C D).

Baze Teorija

Embed Size (px)

DESCRIPTION

baze podataka 2015

Citation preview

1 KOMPONENTE SUBP (1) Baza podataka podaci, metapodaci, baza indeksa (2) Sistem za upravljanjem skladitenjem podataka upravljanje datotekama i upravljanje baferima (3) Ulazi u BP upiti, aplikacije, odravanje eme BP. Preko jezika BP (DL) koji se sastoji od DDL i od DML. (4) Upravljanje transakcijama i oporavkom da obezbedi da BP ostane u konzistentnom stanju u konkurentnoj obradi podataka (reavanje konflikata). TRANSAKCI J A IACI D OSOBI NE -Niz operacija nad bazom izvrenje jedne logike jedinice posla u realnom sistemu. (1) Atomnost sve operacije uspene ili nijedna ostvaruje se preko commit i rollback. (2) Konzistentnost transakcija je jedinica konzistentnosti. Za vreme obavljanja transakcije moe da se narui ali ne i pre i posle. (3) I zolacija kada se 2 transakcije istovremeno izvravaju njihovi efekti moraju biti izolovani (4) Trajnost efekti transakcije ne mogu biti izgubljeni. ANSI /SPARC ARHI TEKTURA -Tronivovska arhitektura iji nivoi imaju za cilj da odvoje logiku od fizike i aplikacione strukture BP. (1) I nterni nivo (fiziki) kako su podaci fiziki organizovani IDDL (Internal DDL) (2) Konceptualni nivo (ema BP) definie optu logiku strukturu, sve podatke u sistemu i njihove logike odnose i koji treba da omogui upravljanje podacima kao zajednikim resursom u celom sistemu. (3) Eksterni nivo (podema) definie specifinu logiku strukturu, za specifine zahteve. MODELIPODATAKA I 4 OSNOVNE KOMPONENTE -Intelektualni alati pomou kojih se modeluje sistem kao skup objekata, njihovih atributa i veza. (1) Struktura modela skup koncepata za opis objekata, atributa i veza (2) Ogranienja na vrednosti podataka, moraju uvek da budu zadovoljena. (3) Operacije nad konceptima strukture, preko kojih se prikazuku i menjaju elementi BP (4) Dinamika pravila integriteta definie se osnovno dinamiko ponaanje. Din.pravilo se moe predstaviti trojkom OPERACI J E U MOV-U -Insert, Delete, Update, Connect (pojavljivanja O1 klase A sa pojavljivanjem O2 klase B), Disconnect, Reconnect. -Postoje i 2 operacije pretraivanja navigacione operacije i upitni jezik MOV-a. OPERACI J E NAD RELACI J AMA RELACI ONA ALGEBRA -Konvencionalne skupovne operacije: (1) Unija (

) daje sve elemente obe relacije, bez dupliranja (2) Presek (

) daje sve elemente koji se pojavljuju u obe relacije (zajednike) (3) Razlika (

) daje sve elemente prve relacije koji nisu elementi druge (4) Dekartov proizvod (

) daje parove koje ine jedna n-torka prve i jedna n-torka druge relacije (npr. prva ima 1 2 3, druga A B pa C D, rezultujua e imati 1 2 3 A B pa 1 2 3 C D). 2 -Specijalne relacione operacije (1) Projekcija

()* + unarna operacija koja vadi vertikalni podskup iz neke relacije (npr. ID, ime, starost; odatle radimo

() i dobijamo listu u kojoj su sva prva pojavljivanja nekog imena i njihova starost) (2) Selekcija -

()*()+ unarna operacija koja selektuje n-torke koje zadovoljavaju neki uslov (vadi horizontalni podskup npr.

()). (3) Spajanje(JOIN) -

,

-

*

( )+ binarna operacija koja spaja dve relacije na taj nain da se u rezultatu pojavljuju oni parovi n-torki jedne i druge relacije koje zadovoljavaju neki zadati uslov (npr.

,

-

e spojiti n-torke sa istim ID-jevima). (4) Deljenje- ( ),-()

((

) )() operacija pogodna za upite sa reima svi, sve, sva. Rezultat je n-torka x koja uzima vrednosti iz A.X, a par postoji u A za sve vrednosti y koje se pojavljuju u B(Z) (npr. prva sa P1 P2 P3, druga sa brojevima indexa 1 P1, 1 P2, 2 P1, 3 P3, 1 P3, a

,

-

daje rezultat tabelu brInd 1 jer se deli redom i uzimaju se samo one kolone koje imaju za sve tri iz prve isti brInd i ta kolona se vraa). -Dodatne operacije rel.algebre koje se definiu zbog postojanja nula vrednosti: ABABAB abxyab a??ba? ?b???b ???? xy (1) MAYBE_SELECT ( ) selektuju se one n-torke za koje se predikat sraunava u nula vrednost (

) e dati u dve kolone (A i B) ? B, ? ?. (2) MAYBE_J OI N u rezultatu se pojavljuju one n-torke za koje se predikat sraunava u nula vrednost

, -

daje rezultat sa kolonama A B C D E, i redom: a1 b1 c1 ? e1, a1 b1 c3 ? e3, a2 b2 c1 ? e1, a2 b3 c3 ? e3, ? b3 c1 ? e1, ? b3 c2 d2 e2, ? b3 c3 ? e3. ABCDE a1b1c1?e1 a2b2c2d2e2 ?b3c3?e3 (3) OUTER_J OI N ako hoemo da uradimo operaciju ekvispajanja relacija R1(A,B) i R2(C,D) po A=C a

()

() tada e se u rezultatu gubiti podaci. U tom sluaju ih spoljno spajanje moe sauvati. Postoje 3 vrste spoljnog spajanja koje prikazujemo preko sledeih tabela: ABCD 1234 2122 4? a) Levo spoljno spajanje () navode se sve n-torke relacije R1 a za one koje se ne spajaju sa n-torkama R2, atributi iz R2 dobijaju nula vrednost (npr, - bi dalo tabelu sa kolonama A B C D i to redom: 1 2 ? ?, 2 1 2 2, 4 ? ? ?). b) Desno spoljno spajanje () navode se sve n-torke relacije R2 a za one koje se ne spajaju sa n-torkama R1, atributi iz R1 dobijaju nula vrednost (npr, - bi dalo tabelu sa kolonama A B C D i to redom: ? ? 3 4, 2 1 2 2). c) Centralno spoljno spajanje () pojavljuju se sve n-torke obe relacije a one koje nedostaju dopunjavaju se nula vrednostima.,- 3 (4) OUTER_UNI ON operacija unije se moe izvesti samo nad relacijama koje su kompatibilne. Dodavanjem novih atributa i postavljanjem na nula vrednost dve nekompatibilne relacije se mogu uiniti kompatibilnim. (ako je R1 A B C sa 2 reda a R2 A D sa tri reda onda ce R5 biti A B C D sa 5 unosa. RELACIONI RAUN N-TORKI-Predikatski raun prvog reda u kome promenljive uzimaju vrednosti n-torke relacija date BP. -Sud afirmativna reenica koja je ili istinita ili neistinita. Predikat je af.re. koja ima smisla i sadri promenljive, a postaje sud kada te promenljive dobiju konkretnu vrednost. Predikatski raun je mat.teorija iji su objekti predikati. Atomi (atomske formule) su simboli suda. -Formule se formiraju preko pravila: (1) Atom je formula (2) P1 je formulai NOT P1 je (P1) su formule (3) P1 i P2 su formuleP1 AND(OR) P2 su isto formule (4) P1(S) formula koja sadri slobodnu promenljivu Si () i () su isto formule. -Kvantifikatori: (1) egzistencijalni () daje true ako postoji bar jedna vrednost X sa koju se predikatska formula F sraunava u true i (2) univerzalni () daje true ako je za svako X F true. -Opti iskaz relacionog rauna: Neka su R1..Rn relacije u nekoj BP, A..:C atributi ovih relacija respektivno i F formula.:

-Primer Prikai brInd i imena studenata starijih od 20 god:

RELACIONI RAUN DOMENA -Promenljive uzimaju vrednosti iz nekih domena atributa relacija posmatrane relacione BP. -Uslov lanstva: R(izraz, izraz...), gde je izraz oblika A:v, gde je A atribut relacije a v ili neka promenljiva ili konstanta. Uslov lanstva se sraunava u true ako postoji n-torka u relaciji R koja ima zadate vrednosti navedenih atributa (npr. Student(brind=12, Smera=01) e biti true ako postoji n-torka u relaciji student sa navedenim vrednostima). -Opti iskaz relacionog rauna domena: . -Primer Prikai brInd i imena studenata starijih od 20 god: ( ) QBE (QUERY BY EXAMPLE) -implementacija relacionog rauna domena. Ima dvodimenzionalnu sintaksu: -Postupak rada: (1) Ako se unese u rubriku naziv relacije, u rubrukama tog reda e se ispisati imena atributa. (2) U kolonama ispod se navode operacije koje se odnose na celu n-torku. Koriste se sledee operacije: print(P), insert(I), delete(D), update(U). (3) Uslovi u istom redu se spajaju sa AND (4) Ako se eli OR mora se pisati u razliitim redovima. 4 PRAVI LA I NTEGRI TETA MODELA (1) I ntegritet entiteta (kljua) Nijedan atribut koji je primarni klju ili njegov deo ne moe da bude null. (2) Referencijalni integritet Ako R2 ima spoljni klju koji je vezuje sa R1 preko primarnog kljua, tada vrednost FK mora da bude jednaka PK ili null. R1 i R2 ne moraju biti razliite. Primer: Student (brInd, Smera), Smer(Smera), Prijava (Prijave, brInd) -

()

()*+. -Ova pravila se navode zajedno sa definicijom spoljnjeg kljua u opisu relacije: ()

POSLOVNA PRAVI LA I NTEGRI TETA -Pravila integriteta stanja (1) Pravila integriteta za domene (domen je skup vrednosti atributa i moe biti predefinisani ili semantiki). (2) Pravila integriteta za atrubute definiu se preko sledee etvorke . Ogranienje je predikat nad atrubutom, a akcija moe biti samo odbijanje operacije koja je prouzrokovala naruavanje uslova, te se zbog toga ona obino ne navodi. (3) Pravila integriteta za relacije omoguava vezivanje vrednosti jednog za vrednost drugog atributa u jednoj relaciji (CREATE INTEGRITY RULE naziv_ogranienja predikat). Promenljive u predikatu mogu biti samo atributi jedne relacije. Atributi se oznaavaju dot notacijom. (4) Pravila integriteta za bazu preko njih je mogue iskazati bilo kakvo sloeno ogranienje na vrednosti atributa u BP, ogranienje koje povezuje vrednosti atributa iz vie relacija. -Pravila integriteta prelaza iz stanja u stanje ako se uvede i konvencija da se oznakom oznaavaju promenljive koje uzimaju vrednosti iz relacija pre operacije, a bez te one koje uzimaju vrednosti iz relacije posle posmatrane operacije, moe se iskazati i ogranienje prelaza iz stanja u stanje preko istog relacionog rauna n-torki. SPOLJ NO SPAJ ANJ E U SQL-U -OUTER JOIN se koristi da bi se u rezultat spajanja ukljulili i oni redovi koji ne zadovoljavaju uslov. (1) LEFT ukljuuje sve sa leve strane JOIN-a tako to se praznim redom proiruje tabela sa desne strane. (2) RI GHT ukljuuje sve sa desne strane JOIN-a tako to se praznim redom proiruje tabela sa leve strane. (3) FULL ukljuuje sve redove iz obe i proiruje obe praznim redom -Primer: ,-

( ) 5 POGLED U SQL-U (VI EW) -Ako dodelimo ime tabeli koja je rezultat nekog upita: ()() () -Osnovne prednosti u korienju pogleda: (1) Jednostavnost korienja definisane tabele pogleda mogu da se stave jednostavno na uvid korisnicima. (2) Sigurnost podataka pogledi su moan mehanizam kontrole pristupa (3) Performanse pogled se uva u kompajliranom obliku brz rad (4) Nezavisnost podataka za ostvarivanje nezavisnosti programa od baze podataka. -Uslovi koje treba da isputni pogled da bi posluio za auriranje: u FROM samo jedna tabela; nema HAVING, GROUP BY ni DISTINCT; WHERE ne moe da sadri podupit nad tabelom iz FROM-a; sve kolone u upitu moraju biti bazne kolone i moraju biti ukljuene i sve not null kolone tabele nad kojom je pogled definisan. OGRANIENJA U SQL-U (1) Ogranienja domena CHECK na sve kolone nad jednim domenom (2) Ogranienja tabele UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK (3) Opte ogranienje CHECK uslov nad podacima vie tabela; ako je zadovoljeno TRUE ili UNKNOWN. -UNIQUE true akko ne postoje 2 reda sa istim NOT NULL vrednostima u kolonama gde je sprecifirano ogranienje. ( () () ) -PRIMARY KEY true ako ne postoje 2 ista i nema null...-FOREIGN KEY referencirana i referencirajua kolona i tabela. () ()() -CHECK definie uslov ograniavanja dozvoljenih vrednosti kolona, meuzavisnosti kolona i redova ili opte ogranienje: ()(()) ( () ))

() -Provera ogranienja da bi se provera odloila za kraj transakcije stavlja se DEFERRABLE. Suprotno sa NOT. Moe biti INITIALY DEFERRED, kada se na poetku odloi i INITIALY IMEDIATE, kojim se moe odloiti provera do kraja transakcije korienjem SET CONSTRAINTS. 6 ARHI TEKTURA OBJ ETNI H SUBP (1) Objektni model ODMG model, izveden iz OMG koji je objekti model definisan kao zajednika osnovna za objektne PJ, komunikaciju objekata u kl-server arh. i objektne baze podataka. (2) Objektni specifikacioni jezici ODL i OIF (Object Interchange Format). (3) Objektni upitni jezik OQL ima znatno vee mogunosti od SQL-a zbog prednosti objektnog modela. (4) Language binding C++, Java i Smalltalk podrka za manipulaciju perzistentnim objektima, operisanje preko OQLa, upravljanje transakcijama i sl. -Slika levo specifikacija ODL -> preprocesor (koji pokazuje na prevodilac sa desne) i baza na dnu (povezana pristupom podacima sa aplikacijom). Sa desne izvorni kod -> prevodilac -> binarni kod (u koji ulazi i runtime) -> linker-> aplikacija. NASLEIVANJA U ODMG-U (1) Nasleivanje ponaanja koristi se veza nadtip-podtip (ISA veza). Podtipovi nasleuju operacije nadtipova Npr: INTERFACE A{}, INTERFACE B:A{}. Podrano je viestruko nasleivanje ponaanja ali ne i overloading. (2) Nasleivanje stanja extends nasleuje se celpkupno stanje i ponaanje. Veza extends je tranzitivna. Slika UML dijagram na vrhu Interface A vezan za njega preko ISA Interface B pa preko ISA C, pa preko extends D. OQL - ULAZNE TAKE, DEFINICIJA PROMENLJIVIH I OSNOVNI UPISNI BLOK -Ulazne take bilo koji opseg neke klase, bilo koji perzistentni objekat ije je ime definisano preko BIND -OQL ima isto SELECT, FROM, WHERE, a moe i preko imena objekta da vrati taj objekat. -Ako se referencira kolekcija mora se staviti i iterator u FROM, npr: STUDENTI X (X IN STUDENTI, STUDENTI AS X), prvi deo vraa set, ili e sledea stvar u FROM vratiti bag:

-Izraz putanje u OQL-u Koristi se za konstrukciju uputa. Omoguava da se od ulazne take doe do nekog objekta. Definie se dot notacijom: Student.ImenaSt ovo je literal tipa string -Struktura kao rezultat OQL upita moe da se vrati i kompleksna struktura koja se definie u samom upitu. OBJ EKTNO-RELACI ONIMODEL -Karakteristike: (1) Mogunost definisanja novih tipova. Atribut relacije moe biti definisan nad osnovnim predefinisanim tipom. Mogunost definisanja novog tipa kao seta. Relacija sa atributom ija je vrednost nova relacija ugnjedena relacija. (2) Mogunost definisanja metoda njima se definiu operacije nad korisnikim tipovima. (3) N-torke imaju ulogu objekata svaka n-torka moe da ima identifikator. Postojanje ovog identifikatora omoguuje dva naina povezivanja: a) Konvencijalni na osnovu vrednosti primarnih i spoljnih kljueva b) Objektni referenciranjem identifikatora povezanih n-torki. 7 KORISNIKI DEFINISANI TIPOVI O-R MODELA (1) DISTINCT tip jednostavni, perzistentni korisniki def. tip ijim je uvoenjem podralo strogo tipiziranje. Nije podrano nasleivanje mora da bude FINAL. npr: (()

) -U ovom sluaju bi se definisalo CREATE TYPE METAR AS INTEGER FINAL; i CREATE TYPE KVMETAR AS INTEGER FINAL ime bi se omoguilo postojanje ogranienja da se ne moe pri nekom update-u rei IRINA = POVRINA. Ako nam je namera da manipuliemo dalje meusobno ovim podacima, to se moe uraditi i npr. preko CAST(DUINA AS INTEGER)* CAST(POVRSINA AS INTEGER). (2) Struktuirani tip perzistentni imenovani tip sa jednim ili vie atributa. Za definisanje se koriste metode preko kojih je omogueno uaurenje. Deklaracija metode se navodi nakon deklaracije tipa. Metode mogu biti originalne i redefinisane, moraju biti navedene u definiciji tipa. Pozivaju se preko dot notacije. Kljune rei: -UNDER ime_nadtipa omoguava da str.tip bude podtip nekog drugog str.tipa -NOT INSTANTIABLE ne dozvoljava generisanje konstruktor metode i ne moe se instancirati, ali njegovi podtipovi mogu (ako nemaju isto ovo ogranienje). -NOT FINAL uvek stoji, jer str.tip nije konaan i moe da ima podtipove. KONSTRUI SANITI POVIO-R MODELA (1) Referentni tip tabele nad struktuiranim tipovima mogu imati i referentnu kolonu koja slui kao identifikator. Navodi se kaoREF IS naziv_atributa nain generisanja. Nain generisanja moe biti SYSTEM GENERATED ili DERIVED. -Ako je X vrednost tipa REF(T) tada ntorku t ili neku njenu komponentu moemo dobiti na 2 naina preko operatora -> (x->A je vrednost atributa u ntorki t); ili korienjem operatora DEREF koji se primenjuje na referencu i vraa referenciranu n-torku. (2) Tip vrsta niz polja koje ine parovi . Oblika: ROW (ULICA CHAR (30), BROJ INTEGER, GRAD CHAR(30)). (3) Kolekcija grupa koja se sastoji od nula ili vie elemenata istog tipa. Broj elemenata kardinalnost kolekcije. Tip kolekcije je odreen vrstom i tipom elemenata kolekcije. Nisu podrani viedimenzioni nizovi u SQL:1999 standardu. Dva niza su uporediva samo ako su tipovi njihovih elemenata uporedivi. Npr. CLAN CHAR (20) ARRAY[20]. SEMANTI KA ECA PRAVI LA -ECA pravila su pravila u aktivnim bazama podataka, produkciona pravila, ON dogaaj IF uslov DO akcija. Sastoje se od trojki . Razlikujemo primitivne i sloene dogaaje: -Primitivni dogaaji: (1) Airiranje podataka u onim aktivnim sistemima koji su nadogradnja relacionih to su insert, uprade i delete, a u onim koji su nadogradnja objektnih kreiranje brisanje ili izmena nekog objekta kao i poziv metode koja modifikuje objekte. (2) Prikaz podataka od aktivnih SELECT, od objektnih poziv metode za prikaz objekta. (3) Vremenski dogaaj apsolutan ili periodian. (4) Aplikativno definisan dogaaj odreuje ga sama aplikacija. 8 -Sloeni dogaaji (1) Logiki operatori kombinacija AND, OR ili NOT (2) Sekvenca ECA pravilo se moe pokrenuti nakon odreene sekvence dogaaja. (3) Vremenska kompozicija kombinacija vremenskih i dogaaja koji nisu vremenski, npr. 5s nakon dogaaja D1. OBRADA ECA PRAVI LA (VRSTE POVEZI VANJ A) -Osnovni naini povezivanja: (1) Trenutno istog trenutka kada se desi dogaaj. (2) Odloeno eka da se zavri transakcija pa se onda odrauje akcija. (3) Razdvojeno pri dogaaju otvara se nova transakcija. -Sloeniji naini povezivanja: (1) Trenutan/odloen evaluacija uslova se vri odmah pri dogaaju ali se izvravanje akcije odlae. (2) Razdvojen/razdvojen evaluacija uslova se ne vri odmah nego kasnije i to kao odvojena transakcija to je sluaj i sa izvravanjem akcije. SQL:1999 TRI GERI-Sprecifina vrsta ECA pravila dogaaj je auriranje, uslov je proizvoljni predikat, a akcija niz SQL naredbi. Osnovne karakteristike: (1) Trigeri su objekti eme baze podataka koji su vezani tano za jednu tabelu i koji se pozivaju svaki put kada se obavi INSERT, UPDATE i/ili DELETE. (2) Primenjuju se za voenje loga (urnala) o izvrenim operacijama nad BP. -Klasifikacija je kompleksna, postoji vie podela: (1) BEFORE i AFTER trigeri (2) I NSERT, UPDATE i DELETE trigeri (3) Statement-level i row-level trigeri -Primer trigera: Ograniiti poviicu plate za najvie 20% CREATE TRIGGER KontrolaPoveanja AFTER UPDATE OF Plata ON Radnik REFERENCING OLD ROW AS StariRed NEW ROW AS NoviRed FOR EACH ROW WHEN (NoviRed.Plata>StariRed.Plata*1.2) UPDATE RADNIK SET Plata = StariRed.Plata*1.2 WHERE Radnika = NoviRed.Radnika DOBRO OFORMLJ EN XML DOKUMENT IVALI DAN DOKUMENT -Uslovi za dobro oformljen dokument postoji deklaracija, samo jedan koreni element, svi atributi i elementi su sintaksno ispravni. -Validan dokument onaj koji potuje strukturu definisanu u opisu dokumenta (emi). 9 OPERACI J E SA XML DOKUMENTI MA (1) Navigacione XPATH omoguava odresiranje delova i navigaciju do njih. Dokument posmatra kao stablo vorova. Definie koren dokumenta koji je fiktivni vor ije je dete koreni element. Izraz putanje se zadaje preko / i //. Preko * se referenciraju sva deca nekog elementa. F-je: vorova, tekstualne, logike i numerike. (2) Specifikacione XQUERY upitni jezik. Pretpostavlja postojanje XML eme. Upiti se mogu podeliti na: a) Upiti nad jednim dokumentom prost neizmenjen sadraj. Za identifikovanje se koristi sintaksa document(uri), npr document(ex.xml)//Otpremnica[broj=10]. b) Upiti nad jednim dokumentom izmenjeni sadraj. Definie se preko FLWR upita (for, let, where, return), npr: FOR $iterator in xpath LET $prom:=xpath WHERE uslov RETURN xml c) Upiti nad vie dokumenata isto FLWR, samo sa vie iteratora u FOR-u. Moe se koristiti i distinct-values f-ja. TRANSAKCI J E UPOREDNA OBRADA -Menader transakcija upravlja celokupnim izvrenjem transakcija. Nakon zahteva za w ili r ide prosleuje se planer-u. -Planer vodi rauna o redosledu izvravanja akcija u skupu transakcija. Ako se naruava integritet BP moe da odloi izvravanje neke akcije. Iniciranjem akcije itanja ili pisanja dolazi se do bafera. -Serijabilnost kada uporedno izvravanje transakcija proizvodi isti rezultat kao i neko serijsko izvrenje istog skupa.-Skup transakcija je izvren korektno akko je taj skup serijabilan. -Oblik jednog skupa transakcija

()

() KONFLI KT-SERI J ABILNOST -Konflikt situacija u kojoj izmena redosleda dve operacije u izvrenju dovodi do izmene efekata na bazu bar jedne od transakcija iz posmatranog izvrenja. Nije konflikt:

()

() ili

()

() ak i kada je X=Y,

()

(),

()

(). -Dve susedne operacije razliitih transakcija mogu da zamene mesta ako se operacije obavljaju nad istim elementom i ako je bar jedna od njih upisivanje. -Konflikt-ekvivalencija ako se jedan skup transakcija moe transformisati nekonfliktnim izmenama mesta susednih operacija. -Konflikt-serijabilnost ako je izvrenje konflikt-ekv. sa nekim serijskim izvrenjem. -Graf predhoena transakcija transakcije su vorovi a grane predhoenje transakcija. Kae se da Ti predhodi Tj u izvrenju S ako postoje operacije Oi i Oj tako da Oi predhodi Oj u S, i Oi i Oj se odnose na isti element BP, barem jedna operacija je upisivanje. -Npr.

()

()

()

()

()

()

()

()

()

()

()

()

()

()

()

(). Prva je serijabilna, druga nije. 10 PROTOKOLI ZAKLJUAVANJA -Planer teko moe da obavi proveru serijabilnosti i preduzima akcije u realnom vremenu. Zato se serijabilnost najee ostvaruje forsirano kroz mehanizam zakljuavanja omoguava se transakciji da postavi lokot (XL ekskluzivno, ne moe niko da postavi bilo koji drugi lokot, i SL deljeno, moe druga da postavi samo SL). -Protokol zakljuavanja: (1) Transakcija koja ita postavi SL (2) Transakcija koja hoe da menja postavlja XL. Ako postoji SL treba da se transformie u XL. (3) Ako postoji nekompatibilni lokot transakcija ide u stanje ekanja. (4) XL se oslobaa obavezno, a po pravilu i SL na kraju, sa COMMIT i ROLLBACK -Moe doi do pojave dva XL na istom mestu. Zato se koristi dvofazni protokol zakljuavanja: (1) pre operisanja sa objektom mora da se postavi lokot na njega (faza irenja, a oslobaanje lokota je faza skupljanja) (2) nakon oslobaanja lokota transakcija vie ne moe da postavi lokote ni na jedan objekat baze. -Ako u nekom skupu sve transakcije potuju dvofazni prot.zaklj. taj skup je uvek serijabilan. VREMENSKO OZNAAVANJE (TIMESTAMPING) -Jedan od protokola za ostvarivanje serijabilnosti. Svakoj transakciji se dodeljuje univerzalni identifikator u redosledu kako pristiu, a sva fizika auriranja se odvijaju tek sa COMMIT. -Konflikti nastaju u izvrenju kada neka starija transakcija zahteva da vidi neki rekord koga je mlaa aurirala, ili ako hoe da aurira taj isti rekord. Konflikti se reavaju resetovanjem stare. -Svakom objektu se pridruuje dve oznake: (1) RMAX najvei identifikator transakcije koja je uspeno izvrila itanje (2) UMAX najvei identifikator transakcije koja je uspeno izvrila update. -Algoritam timestamping-a: Read(R) if t>=UMAX then [accept] RMAX:=MAX(t,RMAX)else [konflikt] restart t Write(R) [zajedno sa commit] if t>=UMAX and t>=RMAX then UMAX:= telse restart T; IVI I MRTVI LOKOTI -ivi lokot neka transakcija je u stalnom ekanju na neki objekat zato to druge uvek pre nje postavljaju lokot. Reava se jednosavno, uvoenjem nekog redosleda zakljuavanja (npr. FIFO). -Mrtvi lokot kada lokoti koji su postavljeni na objektima od strane 2 transakcije dovode obe u stanje ekanja. Naini razreavanja: (1) Prekidanje posle isteka nekog intervala vremena ponitava se transakcija (2) Prevencija lokota uvode se protokoli; jedan se zasniva na ureenju elemenata BP, a drugi na dodeljivanju spec.vrem.oznake transakciji. Ako je transakcija koja trai lokot starija od one koji ga dri dozvoljava se ekanje, u suprotnom se prekida. (3) Detekcija mrtvog vora dozvoljava da doe do mrtvog lokota, pa se ona koja ga je izazvala ubije, ide rollback, a ona sama eventualno restartuje sa nadom da nee ponovo da dovede do lokota. Za detekciju se koristi graf ekanja vorovi su transakcije, a grana Ti Tj postoji ako Ti zahteva neki objekat koji je Tj zakljuala. Svodi se na nalaenje ciklusa. 11 OPORAVAK BP -Vraanje u korektno stanje nakon nekog otkaza. Da bi oporavak mogao da se izvri mora SUBP da obezbedi redundantnost podataka. Jedan skup ovih podataka se uva u logu a drugi u arhivskoj memoriji gde se povremeno pravi dump cele baze. -Strategija oporavka: (1) Ako su oteene memorijske jedinice koristi se arhivska kopija, za to vreme ne sme nijedna transakcija da bude aktivna. (2) Ako nije fiziki oteena preko loga. -Jedan protokol oporatva se zasniva na checkpoint-ovima. U pojedinim predefinisanim takama vremena na log se upisuje rekord take ispitivanja koji sadri listu trenutno izvrenih transakcija. Postupak: (1) formiraju se 2 liste transakcija: UNDO i REDO (2) pretrauje se log unapred, od checkpoint-a (3) ako se nae BEGIN sa T, T se dodaje u UNDO (4) ako se nae COMMIT za T, T se prebacuje iz UNDO u REDO (5) koristei vrednosti pre i posle iz loga ponitavaju se sve one T u UNDO, a restartuju one u REDO. OPORAVAK U DI STRI BUI RANI M BAZAMA PODATAKA -Jedna transakcija moe da aurira neke podatke u bazi pod ORACLE i u bazi sa SQL serverom. Da bi se obezbedila atomnost definie se dvonivovski mehanizam oporavka: (1) Na prvom nivou mehanizmi oporavka lokalnih SUBP (2) Na drugom nivou koordinator koordinira mehanizme sa prvog nivoa, implementira se dvofazni protokol potvrivanja (kada svi SUPB na prvom poalju signal da je deo transakcije kojom upravljaju zavren koordinator odgovara sa pripremi se, ovi piu u log i alju OK ili NOT OK, a ako istekne vreme ekanja podrazumeva se NOT OK. U drugoj fazi, ako su svi poslali OK vri se COMMIT, u suprotnom ide ROLLBACK svih delova transakcije). Baze podataka ispitna pitanja 2011. 2014. www.puskice.org 1. Navesti sve Specijalne relacione operacije relacione algebre. OBAVEZNO dati primere za svaku vrstu operacije. Projekcija operacija projekcije je unarna operacija koja iz neke relacije selektuje skup navedenih atributa, odnosno vadi vertikalni podskup iz odgovarajue tabele. Formalno se definie na sledei nain : Neka jeR(A1, A2, , An) relacija, X podskup njenih atributa. Oznaimo sa Y komplement{A1, A2, , An} - X. Rezultat operacije projekcije relacije R po atributima X je x(R)={x | y, R} Selekcijaunarnaoperacijakojaizdaterelacijeselektujen-torkekojezadovoljavajuzadatiuslov,vadihorizontalnipodskup tabele. Formalno se definie na sledei nain: Data je relacijaR(A1,A2,,An)i predikat definisan nad njenim atributima.Rezultat operacije selekcije:(R) = {x | x RAND(x)} je skup n-torki x relacije R koje zadovoljavaju uslov . Spajanje(JOIN)binarna operacija koja spaja dve relacije na taj nain da se u rezultatu pojavljuju oni parovi n-torki jedne i druge relacije koje zadovoljavaju uslov zadat nad njihovim atributima. Dva tipa: ekvispajanje i prirodno spajanje. Date su relacije R1(A1, A2, , An) i R2(B1, B2, , Bm) i predikat definisan nad njihovim atributima. Obeleimo sa X i Y skupove atributa relacija R1 i R2, respektivno. Rezultat operacije spajanja ovih relacija je R1[x]R2 = { | x R1 AND y R2 AND (x,y)} Baze podataka ispitna pitanja 2011. 2014. www.puskice.org BrIndSifPred 152/97P1 152/97P2 021/94P1 003/94P3 152/97P3 Ekvispajanje: Oigledno je da se u rezultatu ekvispajanja uvek pojavljuju dve iste kolone(MLB). Ako se jedna od te dve kolone izbaci, takvo spajanje se naziva prirodno spajanje.Prirodno spajanje podrazumeva i da su atributi po kojima se relacije spajaju istoimeni. Prirodno spajanje: Pr4:= Gradjanin * Student Deljenje operacija pogodna za upite u kojima se javlja re svi(sve, sva). Neka su A(X,Y) i B(Z) relacije gde su X, Y i Z skupovi atributa takvi da su Y i Z jednakobrojni, a odgovarajui domeni su im jednaki. Rezultat operacije deljenja: [Y Z]B=R(X) gde n-torka x uzima vrednosti iz A.X, a par postoji u A za sve vrednosti y koje se pojavljuju u B(Z). PredmetPrijava SifPred P1 P2 P3 Baze podataka ispitna pitanja 2011. 2014. www.puskice.org Prijava [Prijava.SifPred Predmet.SifPred] Predmet BrInd 152/97 2.Objasniti ta je pogled. Koje su osnovne prednosti u korienju pogleda? Dati uslove koje treba da ispuni pogled da bi mogao da poslui zaauriranje baze. Pogled je virtuelna tabela, prozorkroz koji se vide podacibaze podataka , koristi se kao bilo koja druga tabela pri izvetavanju,nema svoje podatke i ne zauzima nikakav memorijski prostor. Prednosti: jednostavnost korienja, tajnost, performanse, nezavisnost podataka Uslovi: -Pogled mora biti definisan nad jednom tabelom -U definiciju pogleda moraju biti ukljuene sve NOT NULL kolone te tabele -Kolone pogleda moraju sadrati samo prost , neizmenjen sadraj kolona tabele nad kojom je pogled definisan 3. Nasleivanje u objektnim bazama podataka. Navesti primere i objasniti ih.UODMGsedefiniudveposebnevrstenasleivanja:nasleivanjeponaanjainasleivanjestanja.Zanasleivanje ponaanjasekoristivezanadtip-podtip(kojaseponekadnazivavezageneralizacija-specijalizacija).Nadtipu nasleivanju ponaanjamorada budeinterfejs. Za nasleivanjestanja koristi se specifina veza EXTENDS (Proirenje). U ovoj vezi izmeu klasa, podreena klasa nasleuje celokupno stanje i ponaanje klase koju proiruje. 1. Nasleivanjeponaanja.injenicajedajeNastavnikpodtipRadnik-a,aAsistentpodtip Nastavnika, to se oznaava na sledei nain: intrerface Radnik {...specifikacija tipa Radnik..} interface Nastavnik: Radnik {...specifikacija tipa Nastavnik..}interface Asistent: Nastavnik {...specifikacija tipa Asistent..}class StalniRadnik: Radnik {...specifikacija tipa StalniRadnik..} class PrivremeniRadnik:Radnik {...specifikacija tipa PrivremeniRadnik..} U podtipu se moe i redefinisati ponaanje specifikovano u nadtipu. Na primer, ako je u tipu Radnik specifikovana operacijaObraunZarade, ista operacija se moe razliito implementirati za podtipove StalniRadnik i PrivremeniRadnik. Osobina da se ista operacija izvrpava na razliit nain u zavisnosti od tipa objekta nad kojim se izvrava, naziva se polimorfizam. U ODMG modelu podrano je viestruko nasleivanje ponaanja. Tada se, meutim, moe desiti da dve ili vie nasleenih operacijaimajuistinaziv,arazliitbroji/ilitipargumenata.Dabiseovajproblemizbegao,nijedozvoljeno preoptereenje (overloading) imena operacija (davanje istih imena operacijama razliitih tipova). 2. Nasleivanje stanja class Lice { attribute string ime; attribute Date datumRoenja; Baze podataka ispitna pitanja 2011. 2014. www.puskice.org }; class ZaposlenoLice extends Lice: Radnik { attribute Date datumZapoljavanja; attribute Carency plata; relationship Rukovodilac ef inverse Rukovodilac ::podreeni; }; class Rukovodilac extends ZaposlenoLice { relationship set podreeni inverse ZaposlenoLice ef; }; Odnos nadtip-podtip (generalizacija-specijalizacija) u ODMG modelu se primenjuje samo na nasleivanje ponaanja. Zbog toga interfejs i klasa mogu biti podtipovi samo interfejsa. Interfejsi i klase ne mogu biti podtipovi klasa. Poto se interfejs ne moe instancirati, on slui samo a to da se iz njega naslede neke operacije. 4.Navesti svedodatne operacije relacione algebre koje su uvedene zbog postojanja nula vrednosti u BP i OBAVEZNO dati primere. Tablica istinitosti trovrednoste logik ? predstavlja nula vrednost, odnosno logiku vrednost moda ModaSelekcija (MAYBE_SELECT) selektuju se one n-torke relacije za koje se predikat selekcije, na osnovu trovrednosnih tablica istinitosti sraunava u nula vrednost. Rezultat operacije je (selektovane su samo oni redovi koji u A koloni imaju nula vrednost) Baze podataka ispitna pitanja 2011. 2014. www.puskice.org ModaSpajanje (MAYBE_JOIN) u rezultatu spajanja se pojavljuju one n-torke za koje se predikat spajanja sraunava u nula vrednost na osnovu trovrednosnih tablica istinitosti. SpoljnaUnija(OUTER_UNION)dodavanjemnovihatributaipostavljanjemnjihovihvrednostinanulavrednost mogu se dve nekompatibilne relacije uiniti kompatibilnim. Spoljna unija podrazumeva da su na ovaj nain dve nekompatibilne relacije uinjene kompatibilnim i da je zatim izvrena operacija unije. Baze podataka ispitna pitanja 2011. 2014. www.puskice.org 5. Prikazati emu komponenti SUPB i opisati ulogu komponenti Baza podataka njena primarna uloga je uvanje podataka. Na njoj se nalazi i renik podataka, tj. metapodaci (podaci o samoj bazi) kao to su: struktura baze, prava korienja i pravila ouvanja integriteta. Jedan deo baze obuhvata i baza indeksa (indeks struktura podataka koja omoguava brz pristup indeksiranim podacima). SUBP upravljanje datotekama i upravljanje baferima. Upravljanje datotekama vodi rauna o lokaciji datoteka na bazi podataka i o pristupu blokovima podatakanazahtevupravljanjabaferima.Blokovipodatakasukontinualnisegmentimemorije veliine od 4000 do 16000 bajta. Svaki disk je obino podeljen na nekoliko blokova podataka. Upravljanjebaferimanakonpristupaodreenomblokuprihvatatajbloksadiska,dodeljujemu stranicu centralne memorije i zadrava ga tu u skladu sa odreenim algoritmom. Nakon toga oslobaa tu stranicu i braa blok na taj disk. Ulazi u SUBP upiti, aplikacije i upravljanje emom baze podataka. Ulazi u SUBP realizovani su preko nekog jezika baze podataka, koji je zasnovan na nekom modelu podataka. Jezici baze podataka su: jezik za opis podataka (Data Definition Language - DDL) koji se koristi za realizaciju odravanja eme baze podataka i jezik za manipulaciju podacima (Data Manipulation Language - DML) preko koga se vri pretraivanje baze preko upita i modifikovanje baze podataka.Upiti omoguavaju pretraivanje baze podataka preko zahteva za podacima iz baze, sa uslovima koje ti podaci moraju da ispune. Preko upita je mogue i menjati sadraj baze. Aplikacije programi pomou kojih se realizuje prethodno definisani zahtev za podacima iz baze, izgrauju se korienjem standardnih programskih jezika u koje se ugrauje jezik baze podataka. Jezik baze podataka omoguava pristup, pretraivanje i menjanje podataka u bazi, a standardni programski jezik realizaciju sloenijih algoritama. Odravanje eme baze podataka podrazumeva kreiranje i modifikaciju eme baze podataka (koja obuhvata opis strukture, prava korienja i pravila ouvanja integriteta baze). Baze podataka ispitna pitanja 2011. 2014. www.puskice.org 6. Operacije u modelu objekti - veze -Ubacivanje (Insert) novog pojavljivanja objekta u klasu, -Izbacivanje (Delete) pojavljivanja objekta iz klase, -Auriranje (Update) odnosno izmena vrednosti nekog atributa datog pojavljivanja objekta neke klase, -Povezivanje (Connect) pojavljivanja O1 klase A sa pojavljivanjem O2 klase B, -Razvezivanje (Disconnect) pojavljivanja O1 klase A od pojavljivanja O2 klase B, -Prevezivanje (Reconnect) pojavljivanja O1 klase A os pojavljivanja O2 klase B. 7. Spoljno spajanje. Objasniti svaku vrstu SS i OBAVEZNO dati primer Spoljno spajanje se koristi da bi se u rezultat spajanja ukljuili i oni redovi koji ne zadovoljavaju uslov spajanja. Moe biti levo, desno i centralno. SifraRadnikaImePrezimeSifraOdelj SifraOdeljenjaNazivOdeljenja 1000PP1 1Uprava 1001MM1 2Racunarski centar 1002ZZ2 3Prizvodnja 1003LL2 1004RR 1) Levo spoljno spajanje omoguava ukljuivanje u rezultujuu tabelu svih redova tabele sa leve strane JOIN klauzule tako to se praznim redom proiruje tabela sa desne strane. odeljenje LEFT OUTER JOIN radnik USING (SifraOdeljenja) SifraOdeljenjaNazivOdeljenjaSifraRadnikaImePrezimeSifraOdelj 1Uprava1000PP1 1Uprava1001MM1 2Racunarski centar1002ZZ2 2Racunarski centar1003LL2 3Proizvodnja??? 2) Desno spoljno spajanje omoguava ukljuivanje u rezultujuu tabelu svih redova tabele sa desne strane JOINklauzule tako to se praznim redom proiruje tabela sa leve strane. odeljenje RIGHT OUTER JOIN radnik USING (SifraOdeljenja) SifraOdeljenjaNazivOdeljenjaSifraRadnikaImePrezimeSifraOdelj 1Uprava1000PP1 1Uprava1001MM1 2Racunarski centar1002ZZ2 2Racunarski centar1003LL2 ??1004RR? Baze podataka ispitna pitanja 2011. 2014. www.puskice.org 3) Centralno spajanjeomoguuje ukljuivanje u rezultujuu tabelu svih redova i leve i desne tabele tako tose obe tabele proiruju praznim redom. SifraOdeljenjaNazivOdeljenjaSifraRadnikaImePrezimeSifraOdelj 1Uprava1000PP1 1Uprava1001MM1 2Racunarski centar1002ZZ2 2Racunarski centar1003LL2 3Proizvodnja??? ??1004RR? 8. Semantika i obrada ECA pravila Svako pravilo se odnosi na odreeni dogaaj,vri proveru uslova po nastanku dogaaja i izvrava definisanu akciju ako je uslov bio zadovoljen. Pravila u aktivnim bazama podataka su poznata pod imenom ECA (Event-Condition-Action)produkciona pravila i specifikuju se na sledei nain: Da bi se pravilo moglo formirati prethodno moraju biti definisani dogaaji. Generalno govorei, mogue je razlikovati primitivne i sloene dogaaje. Primitivni dogaaji su: Auriranje podataka Prikaz podataka Vreme Aplikativno definisan dogaaj Akcije se pokreu neposredno nakon (posle) ili neposredno pred (i ranije) detektovanja dogaaja. Sloenidogaajiseformiraju kombinovanjemprimitivnihiprethodnodefinisanihsloenih dogaaja. Korisni operatori za kombinovanje dogaaja mogu biti: Logiki operatori. Dogaaji mogu biti kombinovani korienjem logikih operatora AND, OR, NOT (I, ILI, NE, itd.). Sekvenca. Pravilo moe biti pokrenuto kada se dva ili vie dogaaja pojave u odreenom, definisanom redosledu. Vremenska kompozicija. Pravilo moe biti pokrenuto kombinovanjem vremenskih i dogaaja koji nisu vremenski, na prajmer "5 sekundi nakon dogaaja D1" ili "Svaki sat nakon prvog pojavljivanja dogaaja D2". Baze podataka ispitna pitanja 2011. 2014. www.puskice.org Uslovmoebitipredikatnadstanjembazepodataka,upitnadbazompodatakailiizvravanje odreene aplikativne procedure. U poslednja dva sluaja uslov je zadovoljen ako upit, odnosno aplikativna procedura vraa neke podatke. Akcija je bilokoji program.Takav programmoe daukljuuje ioperacije nadbazom podatakai implicitno ili eksplicitno generie nove dogaaje. Postoji nekoliko razliitih naina povezivanja transakcije, odnosno dogaaja koji pokree pravilo i izvravanja ECA-pravila: Trenutan nain Prouzrokujeprekidizvravanjatransakcijeodmahpoidentfikovanjudogaajazakojipostoji definisano ECA-pravilo, nakon ega se to pravilo proverava . Odloen nain Izrvavanje pravila se odlae do zavretka transakcije koja je proizvela dogaaj. Razdvojen nain Pravilo postaje sasvim nova transakcija koja se izvrava nezavisno od polazne. 9. Navesti, opisati i dati primer za sloene konstruisane tupove u objektno- relacionom modelu -Referentnitiptabeledefinisanedirektnonadstruktuiranimtipovimmogudaimaju referentnukolonu,kojasluikaoidentifikatorn-torki.Predstavljapreferencunaneki objekat, tabelu. Primer: REF IS -Tip vrsta je niz polja koji ine parovi (,). U SQL: 1999 je mogue definisati kolonu u tabeli koja e imati kompleksnu strukturu. Tip vrsta se specificira sledeom sintaksom: ROW(ulica CHAR(30), broj INTEGER, grad CHAR (20)) Primer: CREATE TABLE student(br_indeksa CHAR(6), ime CHAR(15), prezime CHAR(15), adresa ROW(ulica CHAR(30), broj INTEGER, grad CHAR(20))); Baze podataka ispitna pitanja 2011. 2014. www.puskice.org - KolekcijaPredstavljagrupukojasesastojiodnulailivieelemenataistogtipa.Broj elemenata kolekcije se nazivakardinalnostkolekcije.Tipkolekcijejeodreenvrstomkolekcijeitipomelemenatakolekcije.SQL:1999 standardobezbeujesamojednuvrstukolekcijeniz,dokjestandardizacijadrugihvrstaostavljenazanaredne generacije jezika. Formalna definicija niza: ARRAY[] Primer: CREATE TABLE sekcija (naziv CHAR (15), clan CHAR (20), ARRAY[20]); INSERT INTO sekcija (naziv,clan) VALUES (dramska, ARRAY [Markovic,Popovic]); SELECT naziv, clan[2] AS ime FROM sekcija; 10. Objasniti i dati primer za sledee OQL koncepte: -Definisanje (iteratorske) promenljive, -OQL putanja, -Struktura kao rezultat izvravanja SQL upita KadgodsekolekcijareferencirauOQL-u,neophodnojenadnjomdefinisatipromenljivu(tzv. iteratorska promenljiva) koja uzima vrednost iz te kolekcije. Ova promenljiva se definie na isti nainkaouSQL-u,uFROMdeluupita.UzSELECTdeoseopisujerezultat,aWHERE definie uslov za selekciju elemenata kolekcije. Promenljivu x je mogue definisati na sledee naine: Studenti x x in studenti studenti as x Za konstrukciju upita koristi se i tzv. izraz putanje (Path Expression). Ovaj izraz omoguava da se, polazei od neke ulazne take u bazu, dospe do eljenog objekta ili atributa. Izraz putanje je istovremeno i upit. Izraz putanje se definie korienjem tzv. dot notacije. Primer: odsekZaIS.sef; - vraa objekat tipa Nastavnik,odsekZaIS.imenast; - vraa literal tipa string,odsekZaIS.rade; - vraa objekat tipa set odsekZaIs.rade.imenast; - nije dozvoljeno, jer deo odseka ZaIS.rade ove putanje vraa kolekciju Upit u OQL moe da vrati kao rezultat i kompleksnu strukturu koja se definie u samom upitu. Na primer: select struct (OsnovniPodaci: struct(BrojInd: x.bi, ImeStudenta: x.ime), Ocene: (select struct (NazivPredmeta: y.pred.nazivpr, Ocena: y.ocena) from x.polozio y), SrednjaOcena: x.sred_ocena) from studenti x; Baze podataka ispitna pitanja 2011. 2014. www.puskice.org Prethodni upit daje kao rezultat strukturu koja predstavlja nenormalizovanu tabelu sledeeg oblika: OsnovniPodaciOcene SrednjaOcena BrojIndImeStudentaPredmetOcena 10. a)Navesti i objasniti osnovne elemente grafa prethoenja transakcija, dati definiciju kada Ti predhodi Tj b) Proveriti da li postoji konflikt serijabilnost izvrenja S1 skupa transakcija a posle i S2. Dati obrazloenje. S1: r2(A), r2(B), w2(A), r1(B), w1(B), r3(A), w3(A), w3(B) S2: r2(A), r2(B), r1(B), w1(B), r3(A), w3(A), w3(B), w2(A) Graf prevoenja transakcija se sastoji od vorova koji predstavljaju transakcije i usmerenih grana koje prikazuju prethoenje transakcija. Kae se da transakcija Ti predhodi transakciji Tj(Ti5 AND ocena 5000 AND kol < 50000 AND MOD (kol, 50) = 0); -Pravila integriteta za atribute, preko kojih se definiu dozvoljene vrednosti nekog atributa nezavisno od vrednosti drugih atributa u bazi. Mogu se definisati preko sledee etvorke Primer: CRETE DOMAIN ocene INT (2) FORALL ocenA (ocene > 5 AND ocene 7 AND Student.BrInd = Prijava.BrInd AND Prijava.SifPred = Predmet.SifPred AND Predmet.NazivPred = Matematika)); 13. NavestisvekonvencionalneskupovneoperacijeDati primere. R1 R2 BrIndImeStarostSifSmer 152/97Ana1901 223/95Mirko2101 021/94Zoran2002 Unija Rezultat operacije unije R3 := R1 unija R2 je relacija R3 koja sadri sve n-torke koje se pojavljuju bilo u R1 bilo u R2 BrIndImeStarostSifSmer 152/97Ana1901 223/95Mirko2101 021/94Zoran2002 003/94Milos2201 DiferencijaRezultatoperacije diferencijeR3 :=R1- R2su n-torke relacijeR1koje nisu istovremeno i n-torke relacije R2. BrIndImeStarostSifSmer 152/97Ana1901 Presek Rezultat operacije preseka R3 := R1 presek R2 je relacija R3 koja sadri n-torke koje se pojavljuju u obe relacije R1 i R2. BrIndImeStarostSifSmer 223/95Mirko2101 021/94Zoran2002 Dekartov proizvod Rezultat ove operacije R3 := R1 x R2 je relacija R3 ije su n-torke svi parovi koje ine jedna n-torka relacije R1 i jedna n-torka relacije R2. BrIndImeStarostSifSmer 223/95Mirko2101 021/94Zoran2002 003/94Milos2201 Baze podataka ispitna pitanja 2011. 2014. www.puskice.org Operacije unije, preseka i Dekartovog proizvoda su kumulativne i asocijativne, to ne vai i za operaciju razlike. 14. Ukratko objasniti 4 osnovne komponente svakog modela podataka. Svaki model podataka treba da ine sledee komponente: 1)Struktura modela, odnosno skup koncepata za opis objekata sistema, njihovih atributaa i njihovih meusobnih veza, 2)Ogranienja na vrednosti podataka u modelu,koja u svakom trenutku posmatranja moraju biti zadovoljena, 3)Operacije nad konceptima strukture, preko kojih je mogue prikazati i menjati vrednosti podataka u bazi, 4)Dinamika pravila integriteta, kojima se definie osnovno dinamiko ponaanje modela. Moe se predstaviti trojkom 15.Vremensko ozaavanje transakcija. Svakatransakcijana ulazuu sistemdobijeidentifikacionibroju redosledu dolaska.Problem nastaje kad neka transakcija hoe da ita neki slog koji je neka mlaa transakcija (transakcija sa manjim identifikatorom) ve aurilala, ili kada neka transakcija hoe da aurira neki slog koji je mlaa transakcija ve videla ili aurirala.Konflikti se razreavaju ponovnim startovanjem transakcije. Svakom objektu baze podataka pridruuju se dve oznake: -RMAX, Najvei identifikator transakcije koja je uspeno izvrila itanje posmatranog objekta i -UMAX, Najvei identifikator transakcije koja je uspeno izvrila auriranje posmatranog objekta. Algoritam vremenskog oznaavanja: read(R) if (t >= UMAX) then//operacijaseprihvata RMAX:=MAX(t,RMAX); else //konflikt restart T; write(R) //zajedno sa COMMIT : if( t >= UMAX and t >= RMAX) then //operacija se prihvata UMAX := t; else { konflikt} restart T; U ovoj tehnici se objekti se ne zakljuavaju i ne dolazi do pojavljivanja ni mrtvih ni ivih lokota. Meutim, obino dolazi do velikog broja restartovanja transakcija. Takoe, naredbe se moraju baferovati do commit-a. 16.Protokoli zakljuavanja. Ovaj protokol omoguava da transakcija zakljua objekta baze podataka kome je pristupila, da bi onemoguiladadrugetransakcijenekorektnooperiusaistimobjektom.Postojiekskluzivnoideljivozakljuavanje.Akoneka transakcijapostaviekskluzivnilokotnaobjekatbazepodataka,nijednadrugatransakcijanemoenatajobjekatda postavibilokojidrugilokot.Akonekatransakcijapostavideljivilokotnaobjekatbazepodataka,nekadruga transakcija takoe moe da postavi deljivi lokot na isti objekat baze, ali ni jedna druga transakcija ne moe da postavi ekskluzivni lokot na taj objekat. Dvofazni protokol zakljuavanja: Baze podataka ispitna pitanja 2011. 2014. www.puskice.org 1. Pre nego to operie sa nekim objektom baze, transakcija mora da postavi lokot na njega 2. Posle oslobaanja nekog lokota, transakcija ne moe da postavi lokot ni na jedan objekat baze Ako sve transakcije potuju dvofazni protokol zakljuavanja, taj skup se serijabilno izvrava. Imajuiuviduekskluzivniideljivilokot,protokolzakljuavanjakojibimogaodareiprikazaneproblememoese iskazati na sledei nain: 1.Transakcijakojaelidaproitanekiobjekatbazepodataka(n-torku,npr.)moraprvodapostavideljivilokotnataj objekat 2. Transakcija koja eli da aurira neki objekat baze podataka mora prvo da postavi ekskluzivni lokot na taj objekat. Ako je ta transakcija ranije postavila S lokot, ona treba da taj lokot transformie u X lokot 3. Ako transakcija nije uspela da postavi lokot na eljeni objekat baze podataka, zbog toga to neka druga transakcija ve dri nekompatibilan lokot nad posmatranim objektom, tada ona prelazi u stanje ekanja 4.TransakcijaoslobaaXlokotobavezno,apopraviluiSlokotnakrajusaCOMMITiliROLLBACK naredbom. 17. Uporediti sledee termine: 1.) Kandidat za klju; determinanta Kandidat za klju je determinanta koja u potpunosti funkcionalno odreuje sve nekljune atribute posmatrane relacije.Determinantarelacije R je bilo koji atribut, prost ili sloen, od koga neki drugi atribut u relaciji potpuno funkcionalno zavisi. 2.) Nepotpuna funkcionalna zavisnost; tranzitivna zavisnost AtributY relacije Rjepotpunofunkcionalnozavisanod atributa XrelacijeRakojefunkcionalnozavistanodatributaX,anijefunkcionalnozavisanniodjednogpravog podskupa atributa X. AtributCjetranzitivnosavisanodatribuatAakojefunkcionalnozavisanodAiakojefunkcionalnozavisanodnekog atributa V koji je i sam funkcionalno zavisan od A 3.) relacija; tabela Uslovi koje tabela treba da ispuni da bi bila relacija: znaajan, 4.) integritet entiteta; referencijalni integritet Integritet entiteta ni jedan atribut koji je primarni klju ili je deo primarnog kljua neke bazne relacije ne moe da uzme nula vrednost. Referencijalniintegritetakonekabaznarelacijaposedujespoljnikljukojiovurelacijupovezujesanekomdrugom, prekoprimarnogkljua,tadavrednostsekundarnogkljuamoradabudebilojednakavrednostiprimarnogkljuailinula vrednosti. 5.) relaciona algebra; relacioni raun Relacionaalgebrajeproceduralni,arelacioniraunjeneproceduralnijezik.Obasekoristezaiskazivanjeoperacija relacionog modela. Baze podataka ispitna pitanja 2011. 2014. www.puskice.org 6.) vrednosna ogranienja; strukturna ogranienja u MOV-u Strukturna ogranienja su jeziki iskaz grafike predstave MOV-a i odnose se na kardinalnosti preslikavanja. Vrednosna ogranienja definiu dozvoljene vrednosti atributa i dozvoljene promene ovih vrednosti. 7.) operacija spajanja; operacija unije u Relacionom modelu Unija sadri sve n-torke koje se pojavljuju u bar jednoj od tabela. Spajanje podrazumeva da n- torke obe relacije zadovoljavaju uslov zadat nad njihovim atributima. 8.) distinkt tip; struktuirani tip u Objektno-relacionom modelu Distinktnitipovisujednostavni,perzistentni,imenovani,korisnikidefinisaniikonani,tj.nemogudaimaju podtipove i nije podrano nasleivanje. Struktuirani tip moe da ima jedan ili vie atributa, da podrava nasleivanje i ima metode i ne mora da ima sopstvene instance. Nije konaan. 9.) nasleivanje ponaaja; nasleivanje stanja u Objektnim SUBP Odgovor se nalazi u 3. pitanju 18. Objasniti pojmove ivog i mrtvog lokota. Navesti i objasnite tehnike za razreavanje mrtvog lokota U toku izvrenja skupa transakcija, mogue je da dve ili vie transakcija formiraju mrtvi lokot, odnosno da lokoti koje su one postavile na objekte baze podataka sve njih dovode u stanje ekanja. ivi lokot je situacija u kojoj je neka transakcija stalno u stanju ekanja na neki objekat baze podataka zbog toga to druge transakcije uvek pre nje postave lokot na taj objekat. Problem ivog lokota se jednostavno reava uvoenjem nekog redosleda zakljuavanja objekata (FIFO). Za reavanje problema mrtvih lokota koriste se 3 tehnike: 1)Prekidanjetransakcijeposleistekaintervalavremena.Koristiparametatimeoutkojimenaderlokotadodeljuje transakcijipripokuajuzakljuavanjanekogobjekta.Kadovovremeisteknetransakcijaseponitavaiponovo startuje. 2) Prevencija lokota. Jedan od protokola za prevenciju mrtvog vora se zasniva na ureenju elemenata baze podataka. Blokovi se mogu urediti po njihovim adresama na spoljnoj memoriji. Ako se zahteva da svaka transakcija zakljua elemente u njihovom redosledu koji je definisan na spoljnoj memoriji, do mrtvog vora nee doi. 3)Detekcija mrtvog vora dozvoljava se da do mrtvog vora doe, pa se tada neka od transakcija koja ge je izazvala ubije,njeniefektinabazuponite,aonaeventualnoponovostartuje,nadajuisedatadaneeizazvatimrtvi lokot. Za otkrivanje mrtvih lokota u sistemu se koristi tzv. graf ekanja (Wait-For graf). 19. Prikazati arhitekturu objektnih SUBP i dati opis svih komponenti ANCI|SPARC tronivovska arhitektura (11. pitanje) 1 1. Ogranienja u relacionom modelu.DINAMIKA PRAVILA INTEGRITETA Pravila integriteta definiu dozvoljena stanja i dozvoljene prelaze sistema iz stanja u stanje. Pravilo integriteta u relacionom modelu se iskazuje definisanjem ogranienja na vrednosti atributa i akcijama koje se preduzimaju kada neka operacija auriranja narui posmatrano ogranienje. OGRANIENJA I PRAVILA INTEGRITETA Uobiajeno je da se u relacionom modelu definiu dve vrste pravila integriteta: Pravila integriteta modela, koja su posledica strukture relacinog modela, pa su zbog toga opta i moraju da vae u svakom konkretnom relacionom modelu. Definiu se dva opta pravila integriteta relacionog modela: (1) Integritet entiteta (integritet kljua): Ni jedan atribut koji je primarni klju ili deo primarnog kljua neke bazne relacije ne moe da uzme nula vrednost. (2) Referencijalni integritet. Ako neka bazna relacija (recimo R2) poseduje spoljni klju (recimo SK) koji ovu relaciju povezuje sa nekom drugom baznom relacijom (recimo R1), preko primarnog kljua (recimo PK), tada svaka vrednost SK mora biti bilo jednaka nekoj vrednosti PK, ili biti nula vrednost. Relacije R1 i R2 ne moraju biti Poslovna pravila integriteta, odnosno specifina ogranienja za dati relacioni model. Naziv "poslovna" proistie iz injenice da se preko ovih ogranienja iskazuju specifini odnosi vrednosti atributa koji vae u datom realnom (najee poslovnom) sistemu. Uobiajeno je da se ova pravila integriteta podele na sledee podtipove: Pravila integriteta za domene, preko kojih se specifikuje koje vrednosti postoje u domenu; Pravila integriteta za atribute, preko kojih se definiu dozvoljene vrednosti nekog atributa nezavisno od vrednosti drugih atributa u bazi; Pravila integriteta za relacije, preko kojih je mogue vezati vrednost jednog, za vrednost drugog atributa u jednoj relaciji; Pravila integriteta za bazu, preko kojih je mogue povezati vrednosti atributa iz vie relacija. SQL standard podrzava sledece vrste ogranicenja:

Ogranicenja domena Ogranicenja tabela i kolona Opsta ogranicenja

Ogranicenjedomena jeCHECKogranicenje. Primenjuje se na sve kolone definisane nad posmatranim domenom. Ogranicenje tabele definisano je za jednu baznu tabelu. Ogranicenje tabele je: -UNIQUE ogranicenje, -PRIMARY KEY ogranicenje, -referencijalno (FOREIGN KEY) ogranicenje ili -CHECK ogranicen 2 -UNIQUE ogranicenje obezbedjuje jedinstvenost vrednosti jedne ili vise kolona bazne tabele. UNIQUE ogranicenje je zadovoljeno ako i samo ako ne postoje dva reda bazne tabele sa istim definisanim (NOT NULL) vrednostima u kolonama nad kojima je ogranicenje specificirano. -PRIMARY KEY ogranicenje definise primarni kljuc tabele. Ono je zadovoljeno ako i samo ako ne postoje dva reda bazne tabele sa istim vrednostima u kolonama nad kojima je ogranicenje specificirano i ne postoji ni jedna nedefinisana vrednost ni u jednoj od navedenih kolona. -Referencijalno ogranicenje realizuje referencijalni integritet na taj nacin sto specificira jednu ili vise kolona bazne tabele kao referencirajuce kolone i njima odgovarajuce referencirane kolone u nekoj (ne neophodno razlicitoj) baznoj tabeli.

Tabela sa referencirajucim kolonama naziva se referencirajuca tabela, a tabela sa referenciranim kolonama - referencirana tabela. Nad referenciranim kolonama referencirane tabele definisano je PRIMARY KEY ili UNIQUE ogranicenje. Referencijalno ogranicenje je zadovoljeno ako su, za svaki red referencirajuce tabele, vrednosti referencirajucih kolona jednake vrednostima odgovarajucih referenciranih kolona nekog reda referencirane tabele. Ako neka od referencirajucih kolona sadrzi null vrednost, zadovoljenje referencijalnog integriteta zavisi od tretmana null vrednosti (match opcija). Kao deo specifikacije referencijalnog ogranicenja mogu se navesti i akcije za zadovoljavanje ogranicenja, kojima se definisu promene koje treba sprovesti nad referencirajucom tabelom, a bez kojih bi promene nad referenciranom tabelom dovele do narusavanja referencijalnog ogranicenja.

CHECK ogranicenje definise uslov. Ogranicenje je naruseno ako je za bilo koji red tabele rezultat evaluacije uslova FALSE (lazno), a zadovoljeno ako je rezultat TRUE (istinito) ili UNKNOWN (nepoznato). Opste ogranicenje (assertion) je CHECK ogranicenje, kojim se definise uslov nad podacima vise tabela baze podataka. Ogranicenje je naruseno ukoliko je rezultat evaluacije uslova FALSE (lazno), a zadovoljeno ako je rezultat TRUE (istinito) ili UNKNOWN (nepoznato). SQL:1999 standard, kao i SQL-92, definise ogranicenje kolone kao sintaksnu skracenicu ogranicenja tabele . Medjutim, pored UNIQUE, PRIMARY KEY, FOREIGN KEY i CHECK ogranicenja, ogranicenje kolone moze biti i NOT NULL. 2. Objasniti definicije i dati primer za ulazne take, definisanje promenljivih i osnovni upitni blok OQL-a. Moe se koristiti ODL ema reenja zadatka 2b. -ULAZNE TAKE U BAZU PODATAKA MOGU DA BUDU BILO KOJI OPSEG (EXTENT) NEKE KLASE ILI BILO KOJI PERZISTENTNI OBJEKAT IJE JE IME DEFINISANO PREKO OPERACIJE bind OBJEKTA Database . NA PRIMER ULAZNA TAKA odseci ukazuje na PERZISTENTNU KOLEKCIJU OBJEKATA. -KAD GOD SE KOLEKCIJA REFERENCIRA U OQL-u,NEOPHODNO JE NAD NJOM DEFINISATI PROMENLJIVU (TZV ITERATORSKA PROMENLJIVA) KOJA UZIMA VREDNOST IZ TE KOLEKCIJE. OVA PROMENLJIVA SE DEFINIE NA ISTI NAIN KAO U SQL-u, u from DELU UPITA. UZ select DEO SE OPISUJE REZULTAT, A where DEFINIE USLOV ZA SELEKCIJU ELEMENATA KOLEKCIJE. PROMENLJIVU x JE MOGUE DEFINISATI NA SLEDEE NAINE: Studenti x x in studenti studenti as x 3 Osnovni uitni oblik blok selectfromwherenpr: select x.ime from studenti x where x.pol = M; NIJE NEOPHODNO DA SE UPIT POSTAVLJA PREKO select...from...where KLAUZULE. U NAJPROSTIJEM SLUAJU JE DOVOLJNO NAVESTI NAZIV PERZISTENTNOG OBJEKTA. SVAKI PERZISTENTNI OBJEKAT SAM PO SEBI SE U OQL-u TRETIRA KAO UPIT. 3. Prikazati i objasniti ANSI/SPARC arhitekturu sistema za upravljanje bazom podataka. ANSI/SPARC arhitektura je troniovska arhitektura u kojoj pojedini nivoi imaju za cilj da, s jedne strane, ucine neyavisnom logicku od fizicke strukture baze podataka, a sa druge strane, aplikacione programe I od fizicke I od celokupne logicke strukture baze. Niovi u ovoj arhitekturi su: Interni (fizicki) nivo, koje definise nacin na koji su podaci fizicki organizovani na spoljnim memorijama; Na internom nivou, preko jezika koji se naziva interni jezik za definiciju podataka (Internal Data Definition Language-IDDL), sepcificira se fizicka organizacija podataka. Definisu se fizicki zapisi (blokovi), nacin na koji se pojedini podaci memorisu, metode pristupa, indeksi iindeksiranje itd. Konceptualni nivo (sema baze podataka), koji definise opstu logicku strukturu baze podataka, sve podatke u sistemu, njihove logicke odnose (veze) I koji treba da omoguci upravljanje podacima kao zajednickim resursom u celom sistemu; Na konceptualnom nivou opisuje se opsta logicka struktura baze podataka kao I preslikavanje odnosno prevodjenje ove strukture u interni nivo. Eksterni (korisnicki) nivo (podsema), na kome se definise logicka struktura podataka pogodna za specificne zahteve, odnosno programe; Na eksternom nivou se definisu podmodeli baze podataka pogodni za razvoj pojedinacnih aplikacija. Porgramer razvija svoju palikaciju na dlogickom struktuorom koja predstavlja njegov pogled na celokupnu bazu podataka, odnosno nacin na koji je on vidi. (Sema je na sledecoj strani) 4 Slika seme: 4. Protokoli zakljuavanja.Proveru serijabilnosti i preduzimanje odgovarajuih akcija planer izvrenja teko moe da obavi u realnom vremenu. Zbog toga se serijabilnosti izvravanja skupa transakcija najee ostvaruje forsirano primenjujui mehanizam zakljuavanja (locking). Ekskluzivno zakljuavanje ( exclusive (XL) lock ili write lock). Ako neka transakcija postavi ekskluzivni lokot na objekat baze podataka, nijedna druga transakcija ne moe na taj objekat da postavi bilo koji drugi lokot. Deljivo zakljuavanje (shared (SL) lock ili read lock). Ako neka transakcija postavi deljivi lokot na objekat baze podataka, neka druga transakcija takoe moe da postavi deljivi lokot na isti objekat baze, ali nijedna druga ne moe da postavi ekskluzivni lokot na taj objekat. Imajui u vidu ekskluzivni i deljivi lokot, protokol zakljuavanja koji bi mogao da rei prikazane probleme moe se iskazati na sledei nain: 1. Transakcija koja eli da proita neki objekat baze podataka (n-torku, na primer) mora prvo da postavi deljivi lokot na taj objekat; 5 2. Transakcija koja eli da aurira neki objekat baze podataka mora prvo da postavi ekskluzivni lokot na taj objekat. Ako je ta transakcije ranije postavila S lokot, ona treba da taj lokot transformie u X lokot; 3. Ako transakcija nije uspela da postavi lokot na eljeni objekat baze podataka, zbog toga to neka druga transakcija ve dri nekompatibilan lokot nad posmatranim objektom, tada ona prelazi u stanje ekanja; 4. Transakcija oslobaa E lokot obavezno, a po pravilu i S lokot na kraju, sa COMMIT ili ROLLBACK naredbom. I X i S lokot se postavljaju implicitno, zajedno sa operacijama auriranja, odnosno itanja podataka baze. Dvofazni protokol zakljuavanja: Pre nego to operie sa nekim objektom baze podataka, transakcija mora da postavi lokot na njega; Posle oslobaanja nekog lokota, transakcija ne moe vie postaviti lokot ni na jedan objekat baze. Moe se dokazati teorema da ako u nekom skupu sve transakcije potuju dvofazni protokol zakljuavanja, taj skup se uvek serijabilno izvrava. 5. Osnovne karakteristike i klasifikacija SQL:1999 trigera.Trigeri su specifina vrsta ECA (Event-Condition_Action) pravila. -Dogaaj je operacija auriranja baze podataka, uslov je proizvoljni SQL predikat, a akcija je sekvenca SQL naredbi. -Sekvenca SQL naredbi se izvrava ako je detektovan dogaaj (pokrenuta odgovarajua operacija auriranja baze) i ako je uslov zadovoljen (sraunava se u true). -Osnovne karakteristike trigera SQL:1999 standard definie trigere kao objekte eme baze podataka, koji su vezani za tano jednu baznu tabelu i koji se pozivaju svaki put: kada se ubaci jedan ili vie redova u tabelu za koju je definisan triger (INSERT naredba), kada se promeni jedan ili vie redova u tabeli za koju je definisan triger (UPDATE naredba), ili kada se obrie jedan ili vie redova iz tabele za koju je definisan triger (DELETE naredba). Klasifikacija trigera> SQL:1999 trigeri mogu biti kategorizovani na vie naina, u skladu sa razliitim aspektima posmatranja: Trigeri mogu da se pozivaju neposredno pre (BEFORE) ili neposredno posle (AFTER) izvravanja SQL naredbe (operacije auriranja) za koju je definisan triger. U skladu sa time mogu se razvrstati kao: - BEFORE trigeri - AFTER trigeri U zavisnosti od toga koji od tri tipa operacija auriranja baze podataka (INSERT, UPDATE, DELETE) predstavlja dogaaj koji izaziva pokretanje trigera, trigeri mogu biti: - INSERT trigeri - UPDATE trigeri - DELETE trigeri 6 Triger se moe izvriti jednom za operaciju auriranja koja ga pokree ili jednom za svaki red koji je auriran (ubaen, izmenjen ili obrisan) operacijom koja pokree triger. U skladu sa time razlikuju se: - trigeri koji se pokreu na nivou naredbe (statement-level trigeri) - trigeri koji se pokreu na nivou reda (row-level trigeri) 6. Objasniti koncept pogleda u relacionom modelu. Prikazati i objasniti SQL:1999 sintaksu naredbe za kreiranje pogleda.Sta je pogled ? Pogled je "prozor" kroz koji se vide podaci baze podataka, Pogled je virtuelna tabela (sa njim se radi gotovo kao sa baznom tabelom, mada nema svoje podatke i ne zauzima nikakav memorijski prostor). Preciznije receno, pogled se koristi kao bilo koja druga tabela pri izvestavanju. Azuriranje baze podataka preko pogleda ima brojna ogranicenja. Ne moze se vrsiti azuriranje preko pogleda ukoliko je pogled definisan nad vise tabela. Takvo azuriranje bi znacilo da se jednom naredbom vrsI azuriranje vise tabela baze podataka, sto je suprotno definiciji INSERT, DELETE i UPDATE naredbi. Zatim se ne moze vrsiti azuriranje preko pogleda ukoliko se u definiciji pogleda iza SELECT klauzule nalaze funkcije i aritmeticki izrazi. Isto tako, azuriranje se ne moze vrsiti ukoliko u definiciju pogleda nisu ukljucene sve NOT NULL kolone tabele nad kojom je pogled definisan. Zasto koristiti pogled ? Jednostavnost koriscenja - uproscava upite, Tajnost - mocan mehanizam kontrole pristupa podacima, Performanse - cuva se u kompajliranom obliku, Nezavisnost podataka - menjaju se definicije pogleda, a ne aplikacioni programi koji koriste podatke baze podataka preko pogleda. Sintaksa: CREATEVI EWnazi v- pogl eda [( nazi vi at r i but apogl eda) ]AS SELECT. . .FROM . . . } bilo koja ispravna select naredba Primer: Kreirati pogled sa atributima odeljenje, posao, ukupna i srednja primanja radnika odredjenog zanimanja u odredjenom odeljenju. CREATEVI EWFI NANSI J E ( ODELJ ENJ E#, POSAO, UKUPNAPLATA, SREDNJ APLATA) AS SELECTODELJ ENJ E#, POSAO, SUM ( PLATA) , AVG( PLATA)FROM RADNI K GROUPBYODELJ ENJ E#, POSAO; 7 7. Nasleivanje u objektnim bazama podataka. Navesti primere i objasniti ih.NASLEIVANJE: U ODMG se definiu dve posebnevrstenasleivanja: nasleivanje ponaanja i nasleivanje stanja. -Za nasleivanje ponaanja se koristi veza nadtip-podtip (koja se ponekad naziva veza generalizacija-specijalizacija ili ISA veza. Nadtip u nasleivanju ponaanja mora da bude Interfejs. -Za nasleivanje stanja koristi se specifina veza EXTENDS (Proirenje). U ovoj vezi izmeu klasa, podreena klasa nasleuje celokupno stanje i ponaanje klase koju proiruje. 1.NASLEIVANJE PONAANJA Za nasleivanje ponaanja se koristi veza nadtip-podtip. injenica da je Nastavnik podtip Radnika, a Asistent podtip Nastavnika oznaava se na sledei nain: intrerface Radnik {...specifikacija tipa Radnik..} interface Nastavnik: Radnik {...specifikacija tipa Nastavnik..} interface Asistent: Nastavnik {...specifikacija tipa Asistent..} class StalniRadnik: Radnik {...specifikacija tipa StalniRadnik..} class PrivremeniRadnik:Radnik {...specifikacija tipa PrivremeniRadnik..} U podtipu se moe i redefinisati ponaanje specifikovano u nadtipu. Na primer, ako je u tipu Radnik specifikovana operacija ObraunZarade, ista operacija se moe razliito implementirati za podtipove StalniRadnik I PrivremeniRadnik. Osobina da se ista operacija izvrava na razliit nain u zavisnosti od tipa objekta sa kojim se izvrava, naziva se polimorfizam. U ODMG modelu podrano je viestruko nasleivanje ponaanja. Tada se, meutim, moe desiti da dve (ili vie) nasleene operacije imaju isti naziv, a razliit broj i/ili tip argumenata. Da bi se ovaj problem izbegao, nije dozvoljenopreoptereenje(overloading)imena operacija (davanje istih imena operacijama razliitih tipova) u takvoj hijerarhiji nasleivanja. 2.NASLEIVANJE STANJA ODMG model uvodi EXTENDS vezu za definisanje nasleivanja stanja. Na primer, class Lice { attribute string ime; attribute Date datumRoenja; }; class ZaposlenoLice extends Lice: Radnik { attribute Date datumZapoljavanja; attribute Carency plata; relationship Rukovodilac ef inverse Rukovodilac ::podreeni; }; class Rukovodilac extends ZaposlenoLice { relationship set podreeni inverse ZaposlenoLice ef; }; Odnos tip-podtip (generalizacija-specijalizacija) u ODMG modelu se primenjuje samo na nasleivanje ponaanja. Zbog toga interfejs i klasa mogu biti podtipovi samo interfejsa. Interfejsi i klase ne mogu biti podtipovi klasa. Poto se interfejs ne moe instancirati, on (slino apstraktnoj klasi u nekim OO jezicima) slui samo za to da se iz njega naslede neke operacije. 8 Poto se preko odnosa podtip/nadtip nasleuje samo ponaanje, ako se eli u podtipu isti atribut koji postoji u interfejsu koji je nadtip, on se u podtipu mora kopirati. 8. Spoljna unija. Objasniti operaciju i dati primer.Spajanje tabela moze biti unutrasnje (INNER) ili spoljno (OUTER). -Ukoliko se vrsta spajanja ne navede eksplicitno podrazumeva se unutrasnje spajanje. -Ponovimo primere za ekvispajanje i prirodno spajanje sa eksplicitnim navodjenjem klauzule za unutrasnje (INNER) spajanje: SELECT * FROM RADNIK INNER JOIN ODELJENJE ON RADNIK.ODELJENJE# = ODELJENJE.ODELJENJE#; SELECT * FROM RADNIK NATURAL INNER JOIN ODELJENJE; Spoljno spajanje moze biti levo (LEFT), desno (RIGHT) i centralno (FULL). Levo spoljno spajanje omogucuje ukljucivanje u rezultujucu tabelu svih redova tabele sa leve strane JOIN klauzule tako sto se praznim redom prosiruje tabela sa desne strane. Desno spoljno spajanje omogucuje ukljucivanje u rezultujucu tabelu svih redova tabele sa desne strane JOIN klauzule tako sto se praznim redom prosiruje tabela sa leve strane. Centralno spoljno spajanje omogucuje ukljucivanje u rezultujucu tabelu svih redova i leve i desne tabele tako sto se obe tabele prosiruju praznim redom.Smisli proste primere Rezultat ukljuuje sve redove obe tabele i dodaje prazan red u obe tabele.

TabelaX RB XIme X 1X1 2X2 3X3

TabelaY RB YIme YRB X 10Y11 20Y230Y32

9 SELECT Ime X, Ime Y FROM TabelaX LEFT OUTER JOIN TabelaY ON TabelaX.RB X = TabelaY.RB X Ime XIme Y X1Y1 X2Y3 X3

SELECT ImeX, ImeY FROM TabelaX RIGHT OUTER JOIN TabelaY ON TabelaX.RB X = TabelaY.RB X Ime XIme Y X1Y1 Y2 X2Y3

SELECT ImeX, ImeY FROM TabelaX FULL OUTER JOIN TabelaY ON TabelaX.RB X = TabelaY.RB X

Ime XIme Y X1Y1 X2Y3 X3 Y2 9. Vremensko oznaavanje transakcija.Svaka transakcija na ulazu u sistem dobije identifikacioni broj u redosledu dolaska. Problem nastaje kad neka transakcija hoe da vidi rekord koji je neka mlaa transakcija (transakcija sa manjim identifikatorom) ve aurilala, ili kada neka transakcija hoe da aurira neki rekord koji je mlaa transakcija ve videla ili aurirala. Svakom objektu baze podataka pridruuju se dve oznake: RMAX, najvei identifikator transakcije koja je uspeno izvrila itanje posmatranog objekta i UMAX, najvei identifikator transakcije koja je uspeno izvrila auriranje posmatranog objekta. Algoritam vremenskog oznaavanja read(R) if t >= UMAX then { operacija se prihvata} RMAX := MAX(t, RMAX); else { konflikt} restart T; write(R) { zajedno sa COMMIT} if t >= UMAX and t >= RMAX 10 then { operacija se prihvata} UMAX := t; else { konflikt} restart T; 10. Konstruisani tipovi objektno-relacionog modela. (9 poena)Konstruisani tipovi Referentni tipovi prost tip -Referenciranju moe biti odredjen opseg (SCOPE), koji se specificira navodjenjem naziva relacije ije se n-torke referenciraju: A REF(T) SCOPE R Referentna kolona tabele ije se n-torke referenciraju odredjuje se dodavanjem sledee klauzule u CREATE TABLE naredbu tabele: REF IS -Naziv atributa je naziv dat koloni koja e sluiti kao "identifikator objekta" za kolonu. Nain generisanja je tipino: SYSTEM GENERATED, sa znaenjem da je SUBP odgovoran za odravanje jedinstvenosti vrednosti kolone u svakoj n-torki DERIVED, sa znaenjem da e SUBP koristiti vrednosti primarnog kljua relacije za izvodjenje jedinstvenih vrednosti kolone Tip vrsta-slozen tip Tip vrsta je niz polja koja ine parovi (, ) novina u SQL:1999 je to da je sada mogue definisati promenljive i parametre koji su tipa vrsta, odnosno definisati kolonu u tabeli koja e imati kompleksnu strukturu ROW ( [{, } ]) Tip vrste u tabeli moe: -predstavljati vrstu tabele ili -pripadati jednoj koloni tabele kao sloeni tip podatka Primer: CREATE TABLE adresa (ulica CHAR(30), broj INTEGER, grad CHAR(20)); CREATE TABLE student (br_indeksa CHAR(6), ime CHAR(15), prezime CHAR(15), adresa ROW (ulica CHAR(30), broj INTEGER, grad CHAR(20))); 11 Kolekcija-slozen tip Kolekcija je grupa koja se sastoji od nula ili vie elemenata istog tipa. Broj elemenata kolekcije se naziva kardinalnost kolekcije Niz A je uredjena kolekcija u kojoj je svaki elemenat povezan sa tano jednom rednom pozicijom (koja se naziva indeks) Dva niza su uporediva ako i samo ako su tipovi njihovih elemenata uporedivi -Formalna definicija niza je: ARRAY [] Sledeom naredbom se ubacuje jedna n-torka u tabelu sekcija i zatim se prikazuje naziv sekcije i lan sekcije na drugoj poziciji u nizu kojim su predstavljeni lanovi. -CREATE TABLE sekcija(naziv CHAR(15), clan CHAR(20) ARRAY[20]); -INSERT INTO sekcija (naziv,clan) VALUES (dramska, ARRAY [Markovic, Popovic, Denic]); -SELECT naziv, clan[2] AS ime FROM sekcija; 11. Katalog baze podataka; model objekti-veze za relacioni katalog.-Katalog je imenovana kolekcija sema baze podataka u SQL okruzenju. SQL okruzenje sadrzi nula ili vise kataloga, a katalog sadrzi jednu ili vise sema. Svaki katalog sadrzi semu sa nazivom INFORMATION_SCHEMA, koja predstavlja recnik podataka. Nju cini skup pogleda, odnosno sistemskih tabela, koje sadrze sve bitne informacije o SQL okruzenju. Sadrzaj sistemskih tabela se automatski odrzava. -Sema je kolekcija svih objekata koji dele isti prostor imenovanja. Svaki objekat (tabela, pogled, itd.) pripada tacno jednoj semi. Pod pripadnoscu se ne podrazumeva fizicka pripadnost, vec hijerarhijska veza u kojoj, na primer, sema sadrzi nula ili vise tabela, a svaka tabela logicki pripada tacno jednoj semi. -U SQL standardu ne postoje naredbe za kreiranje i unistavanje kataloga.Nacinnjihovogkreiranjaiunistavanjaje implementaciono-definisan (implementation-defined), odnosno prepusten je vlasnicima softverskih proizvoda koji implementiraju SQL okruzenje. -Pun naziv objekata seme ima tri komponente, razdvojene tackama: naziv kataloga, naziv seme i naziv objekta. Ako je posmatrani objekat tabela, tada se njen pun naziv specificira na sledeci nacin: ... Objekti seme se mogu referencirati sa eksplicitnim ili implicitnim nazivom kataloga i seme: FROM -- nekvalifikovan naziv FROM .-- delimicno kvalifikovan naziv FROM ..-- potpuno kvalifikovan naziv 12 model objekti-veze za relacioni katalog: 12. Navesti sve dodatne operacije relacione algebre koje su uvedene zbog postojanja nula vrednosti u bazi podataka i OBAVEZNO dati primere. Valja znati sledece : 13 Tabela R3 i osnovne skupovne operacije sa nula: 14 15 16 13. Operacija deljenja relacione algebre: dati definiciju, primer i postupak izvoenja na osnovu drugih operacija relacione algebre. 17 14. Objasniti pojmove ivog i mrtvog lokota i opisati naine razreavanja.U toku izvrenja skupa transakcija, mogue je da dve ili vie transakcija formiraju mrtvi lokot, odnosno da lokoti koje su one postavile na objekte baze podataka sve njih dovode u stanje ekanja. Pored pojma mrtvog lokota, ponekad se definie i pojam ivog lokota. To je situacija u kojoj je neka transakcija stalno u stanju ekanja na neki objekat baze podataka zbog toga to druge transakcije uvek pre nje postave lokot na taj objekat. Problem ivog lokota jednostavno se reava uvoenjem nekog redosleda zakljuavanja objekta (na primer FIFO). -Za razreavanje problema mrtvih lokota koriste se tri tehnike: 1. Prekidanje transakcije posle isteka intervala vremena predvienog za ekanje na lokot za neki elemenat. Ovo pravilo koristi parametar timeout koji menader lokota dodeljuje transakciji pri pokuaju zakljuavanja nekog objekta. Kada ovo vreme istekne transakcija se ponitava i ponovo startuje, oekujui da tada nee proizvesti mrtvi lokot. 2. Prevencija lokota. Mogu se definisati razliiti protokoli koji e spreiti da do mrtvog vora doe. Jedan od takvih protokola se zasniva na ureenju elemenata baze podataka. Na primer, blokovi se mogu urediti po njihovim adresama na spoljnoj memoriji (A1 < A2 < A3 < ...< An). Ako se zahteva da svaka transakcija zakljua elemente u njihovom definisanom redosledu, oigledno je da do mrtvog vora ne moe da doe. Na primer ako T1 zahteva A1 pa A2, transakcija T2 nee moi da trai lokote u redosledu A2 pa A1, koji bi doveo do mrtvog vora, jer ovakvo zakljuavanje nije po definisanom protokolu. Drugi protokol prevencije zasniva se na dodeljivanju, za ovaj protokol specifine, vremenske oznake transakciji. Ako je transakcija koja zahteva lokot starija (manja vremenska oznaka) od transakcije koja dri lokot na elementu baze, dozvoljava joj se ekanje na dobijanje lokota, u protivnom se prekida. Mogue je primeniti i obrnuti uslov prekidanja. 3. Detekcija mrtvog vora. Dozvoljava da mrtvog lokota doe, pa se tada neka od transakcija koja ga je izazvala "ubije", njeni efekti na bazu podataka ponite, a ona sama, eventualno, ponovo startuje, nadajui se da tada nee izazvati mrtvi lokot. Za otkrivanje mrtvih lokota u sistemu koristi se tzv. graf ekanja (Wait-For graf) iji su vorovi transakcije T u izvrenju, a grana Ti - Tj postoji ako transakcija Ti zahteva neki objekat koji je transakcija Tj zakljuala. Na Slici 11.15 prikazan je jedan graf ekanja. Transakcija T1 eka na objekat koji je zakljuala transakcija T2, ova eka na objekat koji je zakljuala T3, a T3 eka na objekat koji je zakljuala T1. Ispitivanje mrtvih lokota se moe vriti bilo svaki put kada neka transakcija prelazi u stanje "ekaj", bilo periodino, ili se moe smatrati da je mrtvi lokot nastao ako transakcija nita nije uradila u predefinisanom periodu vremena. Oigledno je da se nalaenje mrtvog lokota svodi na nalaenje ciklusa u grafu ekanja. Kriterijumi za izbor transakcije koja e se ponititi ("rtve") mogu biti razliiti, na primer, transakcija koja je poslednja startovala ili transakcija koja zahteva najmanje lokota. "Ubijanje" transakcije i ponitavanje njenih efekata oslobaa i sve lokote koje je ona postavila. 18 15. Fiziko projektovanje relacionih baza podataka.FIZICKO PROJEKTOVANJE BAZA PODATAKA SE VRSI NAKON POTPUNOG LOGICKOG PROJEKTOVANJA, NA OSNOVU JASNE LOGICKE STRUKTURE BAZE PODATAKA. FIZICKO PROJEKTOVANJE BAZA PODATAKA VEOMA JE ZAVISNO OD KONKRETNOG SUBP. NIJE UOBICAJENO DA SE VRSE NEKI DETALJNI FIZICKI PRORACUNI, RADIJE SE PRIMENJUJU EKSPERTSKA ZNANJA I KASNIJE PODESAVANJE FIZICKE STRUKTURE. FIZICKO PROJEKTOVANJE RELACIONIH BAZA PODATAKA - KORACI: 1. PRILAGODJAVANJE LOGICKE STRUKTURE KONKRETNOM SKUPU APLIKACIJA - DENORMALIZACIJA 2. DISTRIBUCIJA BAZE PODATAKA - RAZLICITE KLIJENT- SERVER ARHITEKTURE 3. KLASTEROVANJE - PODACI KOJI SE ZAJEDNO KORISTE TREBA DA BUDU FIZICKI BLISKI 4. ODREDJIVANJE METODA PRISTUPA (INDEKSIRANJE I EVENTUALNO HESING) 16. Oporavak u distribuiranim bazama podataka.Slike sa fotoaparata -Dvonivoskimehanizamoporavkabazepodataka.Naprvomnivousumehanizmi oporavkalokalnihSUBP,anadrugomtzv.Koordinatorkojikoordiniramehanizme oporavkasaprvognivoa.Implementirasedvofazniprotokolpotvrivanjasasledee dve faze: 1.kadasviSUBPnaprvomnivoupoaljusignalkoordinatorudajedeotransakcije zavren, koordinator odgovara porukom pripremi se. Upisuju se neophodni podaci na log i alje ok ili not ok u zavisnosti od uspenosti. 2.akosusviSUBPposlaliporukeokvrisepotvrivanje(COMMIT)svihdelova transakcije. U protivnom se ponitavaju promene (ROLL BACK). 17. Objasniti slinosti i razlike izmeu slededih koncepata:a) Relaciona algebra; Relacioni raun-relacionaalgebrajeproceduralni,arelacioniraunjeneproceduralnijezik.Obese koriste za iskazivanje operacija relacionog modela. b) Vrednosna ogranienja; Strukturna ogranienja u Modelu objekti-veze-strukturnaogranienjasujezikiiskazgrafikepredstaveMOV-aiodnosesena kardinalnostipreslikavanja.Vrednosnaogranienjadefiniudozvoljenevrednosti atributa i dozvoljene promene ovih vrednosti. c) Operacija spajanja; Operacija unije u Relacionom modelu-Unijasadrisven-torkekojesepojavljujubiloujednojodtabela.Spajanje podrazumeva n-torke obe relacije da zadovoljavaju uslov zadat nad njihovim atributima. d) Distinkt tip; Struktuirani tip u Objektno-relacionom modelu-distinkttipovisujednostavni,perzistentni,imenovani,korisnikidefinisaniikonani,tj. ne mogu da imaju podtipove i nije podrano nasleivanje. Struktuirani tip moe da ima jedan ili vie atributa, podrava nasleivanje i ima metode i ne mora da ima sopstvene instance. Nije konaan. e) Deljivi lokot; Ekskluzivni lokot-ako jedna transakcija postavi ekskluzivni lokot ni jedna druga ne moe da uradi isto sa tim atributom. Kod deljivih lokota vie transakcija moe da ih postavi na isti objekat, ali ni jedna ne moe da stavi ekskluzivni ako postoji ve neki deljivi lokot. (10 poena) 19 18. ta je Transakcija? Objasniti skup osobina koje transakcija mora da poseduje.Transakcija je jedno izvrenje neke "logike jedinice posla", jedno izvrenje neke logike celine jednogprograma, ili jedno izvrenje celog programa. Transakcija mora da poseduje sledei skup osobina (ACID osobine): 1. Atomnost (Atomicity). Transakcija, kao "logika jedinica posla", mora predstavljati atomski skup aktivnosti. 2. Konzistentnost (Consistency). Izvrenje transakcije treba da prevede bazu podataka iz jednog u drugo konzistentno stanje. 3. Izolacija (Isolation). Transakcija ne treba svoje promene baze podataka da uini vidljivim drugim transakcijama pre nego to se ona okona, odnosno promene potvrde u bazi podataka. 4. Trajnost (Durability). Kada su, u bazi podataka, potvrene promene koje je izvrila neka transakcija, ove promene se vie ne mogu izgubiti. 19. Objasniti pojam Renik podataka. Renik baze podataka u SQL okruenju. MOV za relacioni renik.Baza podataka, pored podataka, sadri i metapodatke, odnosno tzv Recnik podataka (Data Dictionary, Data Directory, Catalog). Renik baze podataka opisuje posmatranu bazu podataka (strukturu baze, pravila ouvanja integriteta podataka, prava korienja i slino). Renik podataka je "baza podataka o bazi podataka", pa se taj deo baze podataka naziva i metabaza podataka.SQL okruenje definie i sledee: ema je kolekcija tabela, pogleda, domena, tvrdnji (assertions) Katalog je kolekcija ema. U katalogu postoji i informaciona ema (INFORMATION_SCHEME), katalog u uem smislu rei, u kojoj se daju informacije o svim emama u katalogu. Klaster je kolekcija kataloga. MOV za relacioni: 20 20. Objasniti sledede koncepte:a) Determinanta; Kandidat za kljuDeterminanta realacije R je bilo koji atribut, prost ili slozen, od koga neki drugi atribut u relaciji potpuno funkcionalno zavisi. Kolekcija atributa K takvih da zadovoljavaju uslove jedinstvenosti i neredundandnosti nazivaju se kandidati za klju. b) Potpuna funkcionalna zavisnost; Tranzitivna zavisnostPotpuna funkcionalna zavisnost se definie: Atribut Y relacije R je potpuno funkcionalno zavisan od atributa X relacije R ako je funkcionalno zavisan od atributa X, a nije funkcionalno zavisan ni od jednog pravog podskupa atributa X.Atribut C je tranzitivno funkcionalno zavisan od atributa A ako je funkcionalno zavisan od A i ako je funkcionalno zavisan od nekog atributa B koji je sam funkcionalno zavisan od A.A B BC AC B-/->A C-/->A c) Uslovi koje treba tabela da zadovolji da bi bila relacijaTabela mora da zadovolji sledee uslove da bi bila relacija 1.Ne postojie duplikati vrsta 2.Redosled vrsta nije znaajan 3.Redosled kolona nije znaajan 4.Sve vrednosti atributa u relacijama su atomske odnosno nije dozvoljeno da vrednosti nekih atributa u relaciji budu relacije.d) Integritet entiteta; Referencijalni integritetIntegritet entiteta (integritet kljua) Ogranienje u ovom pravilu integriteta se iskazuje na sledei nain. Ni jedan atribut koji je primarni klju ili deo primarnog kljua neke bazne relacije ne moe da uzme nula vrednost.Referencijalni integritet. Ako neka bazna relacija (recimo R2) poseduje spoljni klju (recimo SK) koji ovu relaciju povezuje sa nekom drugom baznom relacijom (recimo R1), preko primarnog kljua (recimo PK) tada se svaka vrednost SK mora biti bilo jednaka nekoj vrednosti PK ili biti nula vrednost. Relacija R1 i R2 ne moraju biti razliite.e) Objasniti dvofazni protokol zakljuavanja(10 poena) Dvofazni protokol zakljuavanja Pre nego to operie sa nekim objektom baze podataka, transakcija mora da postavi lokot na njega; Posle oslobaanja nekog lokota, transakcija ne moe vie postaviti lokot ni na jedan objekat baze. -Moe se dokazati teorema da ako u nekom skupu sve transakcije potuju dvofazni protokol zakljuavanja, taj skup se uvek serijabilno izvrava. 21. Vrste ogranienja u relacionom modelu. Pokazati na primeru definisanje ogranienja.Kada se proveravaju ogranienja? Ogranicenja domena Ogranicenja tabela i kolona Opsta ogranicenja 21

Ogranicenjedomena jeCHECKogranicenje. Primenjuje se na sve kolone definisane nad posmatranim domenom. Ogranicenje tabele definisano je za jednu baznu tabelu. Ogranicenje tabele je: -UNIQUE ogranicenje, -PRIMARY KEY ogranicenje, -referencijalno (FOREIGN KEY) ogranicenje ili -CHECK ogranicen -UNIQUE ogranicenje obezbedjuje jedinstvenost vrednosti jedne ili vise kolona bazne tabele. UNIQUE ogranicenje je zadovoljeno ako i samo ako ne postoje dva reda bazne tabele sa istim definisanim (NOT NULL) vrednostima u kolonama nad kojima je ogranicenje specificirano. CREATETABLERADNI K ( . . .MLBCHAR( 13) UNI QUE,. . .. . . ) ; -PRIMARY KEY ogranicenje definise primarni kljuc tabele. Ono je zadovoljeno ako i samo ako ne postoje dva reda bazne tabele sa istim vrednostima u kolonama nad kojima je ogranicenje specificirano i ne postoji ni jedna nedefinisana vrednost ni u jednoj od navedenih kolona. CREATETABLEODELJ ENJ E ( ODELJ ENJ E# I NTEGERPRI MARYKEY,. . .. . . ) ; -Referencijalno ogranicenje realizuje referencijalni integritet na taj nacin sto specificira jednu ili vise kolona bazne tabele kao referencirajuce kolone i njima odgovarajuce referencirane kolone u nekoj (ne neophodno razlicitoj) baznoj tabeli. CREATETABLERADNI K ( . . .. . .ODELJ ENJ E# I NTEGERNOTNULL REFERENCESODELJ ENJ E( ODELJ ENJ E#) ,. . . ) ; 22 Tabela sa referencirajucim kolonama naziva se referencirajuca tabela, a tabela sa referenciranim kolonama - referencirana tabela. Nad referenciranim kolonama referencirane tabele definisano je PRIMARY KEY ili UNIQUE ogranicenje. Referencijalno ogranicenje je zadovoljeno ako su, za svaki red referencirajuce tabele, vrednosti referencirajucih kolona jednake vrednostima odgovarajucih referenciranih kolona nekog reda referencirane tabele. Ako neka od referencirajucih kolona sadrzi null vrednost, zadovoljenje referencijalnog integriteta zavisi od tretmana null vrednosti (match opcija). Kao deo specifikacije referencijalnog ogranicenja mogu se navesti i akcije za zadovoljavanje ogranicenja, kojima se definisu promene koje treba sprovesti nad referencirajucom tabelom, a bez kojih bi promene nad referenciranom tabelom dovele do narusavanja referencijalnog ogranicenja.

CHECK ogranicenje definise uslov. Ogranicenje je naruseno ako je za bilo koji red tabele rezultat evaluacije uslova FALSE (lazno), a zadovoljeno ako je rezultat TRUE (istinito) ili UNKNOWN (nepoznato). CREATETABLERADNI K ( . . . I MEVARCHAR( 20) NOTNULLCHECK( I ME= UPPER( I ME) ) , . . . . . . ) ; Opste ogranicenje (assertion) je CHECK ogranicenje, kojim se definise uslov nad podacima vise tabela baze podataka. Ogranicenje je naruseno ukoliko je rezultat evaluacije uslova FALSE (lazno), a zadovoljeno ako je rezultat TRUE (istinito) ili UNKNOWN (nepoznato). SQL:1999 standard, kao i SQL-92, definise ogranicenje kolone kao sintaksnu skracenicu ogranicenja tabele . Medjutim, pored UNIQUE, PRIMARY KEY, FOREIGN KEY i CHECK ogranicenja, ogranicenje kolone moze biti i NOT NULL. Provera ogranicenja: Ogranicenja se, po default-u, proveravaju na kraju izvrsavanja svake SQL naredbe. SQL:1999 standard dozvoljava da se provera ogranicenja odlozi i izvrsi na kraju transakcije. Za svako ogranicenje je moguce specificirati da li je ili ne dozvoljeno odlaganje provere do kraja transakcije, sto se zapisuje navodjenjem opcije[NOT] DEFERRABLE. Ako je izabrana opcija DEFERRABLE, tada je neophodno navesti da li je na pocetku transakcije provera ogranicenja odlozena (INITIALLY DEFERRED) ili ne (INITIALLY IMMEDIATE). Provera ogranicenja, koje je specificirano kao INITIALLY IMMEDIATE DEFERRABLE, moze se odloziti do kraja transakcije koriscenjem naredbe SET CONSTRAINTS.

23 22. Prikazati emu komponenti Sistema za upravljanje bazama podataka i opisati ulogu svake komponente. 1. Baza podataka : Njena primarna uloga je uvanje podataka. Meutim, na njoj se nalazi i Renik podataka, tj. metapodaci (podaci o samoj bazi) kao to su : struktura baze, prava korienja i pravila ouvanja integriteta (koja slue da se njima definie tanost, tj dozvoljene vrednosti podataka, i konzistentnost, tj.dozvoljeni odnosi podataka). Pored toga jedan deo baze obuhvata I baza indeksa,gde indeks u najoptijem smislu predstavlja strukturu podataka koja omoguava brz pristup indeksiranim podacima.Velike baze pored sekundarne memorije (kao to je disk) mogu zahtevati I tercijalnu memoriju reda terabajta (kao to je npr. Sistem kompakt diskova sa robotom za pristup konkretnom disku ). 2. Sistem za upravljanje skladitenjem podataka : Sastoji se od Upravljanja datotekama i Upravljanja baferima . Upravljanje datotekama vodi rauna o lokaciji datoteka na bazi podataka i o pristupu blokovima podataka na zahtev Upravljanja baferima. Blokovi podataka su kontinualni segmenti memorije veliine od 4000 do 16000 bajta. Svaki disk je obino podeljen na nekoliko blokova podataka. Upravljanje baferima nakon pristupa odreenom bloku prihvata taj blok sa diska, dodeljuje mu stranicu centralne memorije I zadrava ga tu u skladu sa odreenim algoritmom. Nakon toga oslobaa tu stranicu I vraa taj blok na disk. 24 3. Ulazi u SUBP upiti, aplikacije I upravljanje emom baze podataka : Ulazi u SUBP realizovani su preko nekog jezika baze podataka, koji je zasnovan na nekom modelu podataka. Jezici baze podataka su: Jezik za opis podataka (Data Definition Language - DDL) koji se koristi za realizaciju odravanja eme baze podataka, I Jezik za manipulaciju podacima (Data Manipulation Language - DML) preko koga se vri pretraivanje baze preko upita I modifikovanje baze podataka. Jezici baze mogu biti neproceduralni ili mogu imati I proceduralne delove u sebi. Neproceduralni jezici omoguavaju specifikovanje uslova koje rezultat treba da zadovolji ali ne omoguavaju specifikovanje procedure preko koje se dolazi do rezultata pa je njihova osnovna namena specifikovanje upita zbog ega se nazivaju jo I upitni jezici. Meutim, mogu se koristiti I za kreiranje I modifikovanje eme baze podataka, zbog ega je neophodna transformacija neproceduralnog iskaza u niz akcija koje treba da obavi Sistem za upravljanje skladitenjem podataka. Ova transformacija vri se preko Procesora upita I njen najtei deo je optimizacija upita, tj.nalaenje najpogodnijeg niza akcija. Najpoznatiji upitni jezik je SQL kod relacionih baza I QQL kod objektnih. Upiti omoguavaju pretraivanje baze podataka preko zahteva za podacima iz baze, sa uslovima koje ti podaci moraju da ispune. Preko upita je mogue I menjati sadraj baze. Aplikacije programi, pomou kojih se realizuje prethodno definisani zahtev za podacima iz baze, izgrauju se korienjem standardnih programskih jezika u koje se ugrauje jezik baze podataka. Jezik baze podataka omoguava pristup, pretraivanje I menjanje podataka u bazi, a standardni programski jezik realizaciju sloenijih algoritama.Aplikacije mogu biti definisane I preko generatora aplikacija, koji generie aplikacije na osnovu slinoti izmeu structure definisanog korisnikog interfejsa I structure podataka u bazi. On daje okvir aplikacije sa specifikovanim procedurama, koje predstavljaju odziv sistema na odreene akcije korisnika. Kod ovh procedura treba da razvije programer preko Jezika IV generacije (kombinacije proceduralnih I neroceduralniih jezika). Odravanje eme baze podataka podrazumeva kreiranje i modifikaciju eme baze podataka (koja obuhvata opis strukture, prava korienja I pravila ouvanja integriteta baze). 4. Upravljanje transakcijama I oporavkom: Omoguava da baza podataka ostane u konzistentnom stanju pri konkurentnoj obradi podataka (kada dva ili vie korisnika istovremeno pristupaju istim podacima) a kopiranjem podataka na arhivske memorije I registrovanjem promena koje su