Baze podataka - Teorija

Embed Size (px)

Citation preview

FAKULTET STROJARSTVA I RAUNARSTVA STRUNI STUDIJ RAUNARSTVA

BAZE PODATAKA Teorijski dio ispita

Asistent:Goran Kraljevid, dipl.ing.ra.

1. Navedite definiciju baze podataka. Koje su osobine zajednike za sve sustave baza podataka? Baza podataka je skup meusobno povezanih podataka,pohranjenih zajedno bez tetne ili nepotrebne (nekontrolirane) zalihosti (redundancije), s ciljem da ih koriste razliite aplikacije. Podaci su pohranjeni u obliku neovisnom od programa koji ih koriste. Unos, izmjena i dohvat podataka obavlja se ISKLJUIVO kroz zajedniko i kontrolirano suelje. Zajednike osobine za sve sustave baza podataka (Ullman): - Apstraktni model podataka - Visoka razina pristupa ili upitnih jezika - Upravljanje transakcijama u viekorisnikom okruenju - Kontrola pristupa i vlasnitvo nad podacima - Validacija podataka i provjera konzistentnosti - Konzistentni oporavak podataka nakon ispada sustava i/ili strojne opreme 2. Navedite osnovne funkcije sustava za upravljanje bazom podataka (DBMS). Funkcije SUBP-a: - Definiranje baze podataka (DDLData Definition Language) - Manipuliranje podacima u bazi (DMLData Manipulation Language) Upravljake funkcije: - Sigurnost i zatita od neovlatenog pristupa - Ouvanje integriteta (backup i recovery) - Statistiko pradenje rada baze podataka - Optimizacija rada 3. Na koji nain SUBP (DBMS) omogudava razdvajanje fizike i logike organizacije podataka. - Vana posljedica primjene SUBP jest razdvajanje fizike i logike organizacije podataka. Dok logika organizacija podataka predstavlja organizaciju sa stanovita korisnika baze podataka ili programera te je koncentrirana na vrste podataka i njihove meusobne logike veze, fizika organizacija predstavlja organizaciju fizike pohrane podataka unutar raunala. Oblik i organizacija pohranjenih podataka tu su esto potpuno razliiti od njihovog logikog oblika i organizacije. - U okviru toga, zadada je SUBP-a omoguditi korisniku (programeru) manipuliranje podacima uz poznavanje samo logikog opisa baze podataka, a ne nuno i poznavanja naina fizike pohrane podataka. 4. Koja je osnovna razlika izmeu relacijskih i svih ostalih baza podataka (mrenih, hijerarhijskih, objektnih)? Relacijski model podataka se temelji na matematikoj teoriji relacija - Vedina suvremenih DBMS je bazirana na relacijskom modelu - Informacije su pohranjene kao zapisi ili slogovi (records) urelacijama (tablicama) - Baza podataka je skup relacija (tablica)

5. Objasnite operatore unije, razlike i presjeka u relacijskom modelu. Navedite primjer. Unija relacija koju ine sve n-torke prve i druge relacije.

Razlika relacija koju ine sve n-torke koje se nalaze u prvoj, ali se ne nalaze u drugoj relaciji.

Presjek relacija koju ine n-torke zajednike za obje relacije.

6. Objasnite operatore selekcije i projekcije u relacijskom modelu. Navedite primjer. Selekcija (ogranienje, restrikcija, izbor) rezultat su samo one n-torke koje zadovoljavaju postavljene uvjete.

Projekcija rezultat je izbor odreenih atributa polazne relacije

7. Objasnite razliku izmeu operatora kartezijevog produkta i spajanja u relacijskom modelu. Navedite primjer. Spajanje iz dvije relacije stvara novu relaciju od svih kombinacija parova n-torki koji zadovoljavaju postavljene uvjete. U svakoj se tablici (relaciji) bira stupac (polje) preko ijih se vrijednosti uspostavlja veza. Kartezijev produkt relacija koju ine sve mogude kombinacije parova n-torki s tim da je prva n-torka iz prve, a druga iz druge relacije.

8. Koje su osobine zajednike za primarni i jedinstveni klju, a po emu se razlikuju? Navedite primjer. I primarni i jedinstveni klju moraju ispuniti uvjete jedinstvenosti i minimalnosti, ali relacija moe imati SAMO JEDAN primarni klju, dok jedinstvenih kljueva moe imati vie. 9. Pojasniti to je primarni, a to vanjski klju i u emu je razlika izmeu njih. Navedite primjer. - Primarni klju (primary key) kandidat klju koji je odabran da jedinstveno odredi n-torku unutar relacije. - Vanjski ili strani klju (foreign key) atribut ili skup atributa unutar jedne relacije koji odgovara kandidat kljuu neke (mogude i iste) relacije. 10. Koje uvjete mora ispuniti atribut da bi bio primarni, a koje da bi bio strani klju? Referencijalni i entitetski integritet. 11. Navedite i objasnite dva osnovna tipa integriteta (vezana za primarni i strani klju). Referencijalni integritet - Ako u relacijskoj shemi R postoji strani klju (foreign key) koji odgovara primarnom kljuu (primary key) relacijske sheme S, tada svaka vrijednost stranog kljua u relaciji r(R) mora biti ili jednaka vrijednosti primarnog kljua neke n-torke iz relacije s(S) ili jednaka NULL vrijednosti.

Relacije OSOBA i MJESTO ne zadovoljavaju pravilo referencijalnog integriteta jer u relaciji OSOBA postoji vrijednost stranog kljua (77000) za koju ne postoji odgovarajuda n-torka u relaciji MJESTO. Entitetski integritet - Vrijednost primarnog kljua kao cjeline, ne smije biti jednaka NULL vrijednosti. Ako je primarni klju relacije sloen, niti jedna njegova komponenta ne smije poprimiti NULL vrijednost.

12. to je to null vrijednost? U emu je razlika izmeu NULL vrijednosti i nule (0) ? To nije nikakva vrijednost to je prazan prostor(NULL),a nula je neka vrijednost. 13. Pojasniti pojam entiteta, atributa i veze meu entitetima. Entitet je bilo koji objekt u sustavu koji elimo modelirati i o kojem elimo sauvati informaciju. Atribut je svaki detalj koji slui da poblie odredi, identificira, klasificira, kvantificira ili izrazi stanje entiteta. Entiteti se mogu povezivati jedan s drugim u veze (relacije). Broj entiteta u vezi predstavlja STUPANJ VEZE.

14. to je kardinalnost veze? Koje vrste veza postoje? Odnos omjera meu povezanim entitetima nazivamo kardinalnost veze.

15. U emu je razlika izmeu jakog i slabog entiteta? Navedite primjer. Jaki entitet - njegova egzistencija nije vezana za postojanje nekog drugog entiteta, a kod slabog ovisi. 16. Navedite primjer usporedne veze. Objasnite na koji nain se navedeni primjer preslikava u relacije. Usporedna veza - dvije usporedne veze izmeu dva entiteta ...

-

Svaku vezu zamijenimo s po jednim stranim kljuem u relaciji na strani veze VIE (usporedne veze se preslikaju u jednu, ali s uvoenjem dodatnog stranog kljua). Da bi razlikovali veze meu entitetima stranim kljuevima damo razliite nazive.

17. Navedite primjer povratne veze. Objasnite na koji nain se navedeni primjer preslikava u relacije. Povratna veza - veza entiteta na samog sebe ...

- Doda se strani klju jednak primarnom kljuu relacije. -Za povratne veze vrijedi da je strani klju jednak primarnom kljuu relacije, ali pod drugim imenom. 18. Objasnite na koji nain se ER model (veza vie:vie) preslikava u relacije. Navedite primjer. Doda se novi entitet, koji sadri primarne kljueve obaju rubnih entiteta. Ti atributi zajedno tvore sloeni primarni klju novonastalog entiteta. 19. Kada se relacija nalazi u prvoj normalnoj formi? Navedite primjer. Tablica se nalazi u prvoj normalnoj formi ako su svi nekljuni atributi funkcijski ovisni o kljuu. 20. Kada se relacija nalazi u drugoj normalnoj formi? Navedite primjer. Tablica je u drugoj normalnoj formi ako i samo ako je u 1NF i ako su svi nekljuni atributi potpuno funkcijski ovisni o kljuu. 21. Kada se relacija nalazi u tredoj normalnoj formi? Navedite primjer. Tablica je u tredoj normalnoj formi ako i samo ako je u 2NF i ako niti jedan nekljuni atribut nije tranzitivno ovisan o kljuu. 22. Objasnite razliku izmeu sigurnosti i integriteta baze podataka. Sigurnost baze podataka se brine da samo ovlateni korisnici pristupaju podacima. Integritet baze podataka se brine da ovlateni korisnici koriste podatke na ispravan nain.

23. Objasnite razliku izmeu sistemskih i objektnih privilegija (prava). Navedite primjere sistemskih i objektnih privilegija. - Vie od 100 sistemskih privilegija: Tipine DBA privilegije: - CREATE USER - DROP USER - DROP ANY TABLE - BACKUP ANY TABLE - SELECT ANY TABLE - CREATE ANY TABLE Najede koritene objektne privilegije su: - SELECT tablice, pogledi, sekvence - INSERT, UPDATE, DELETE tablice, pogledi - INDEX, REFERENCES tablice - ALTER tablice, sekvence - EXECUTE procedure - ALL, ALL PRIVILEGES 24. Koja se SQL naredba koristi za dodjelu, a koja za povlaenje prava rada nad objektima baze podataka? Navedite primjer. GRANT - Osnovna sintaksa za dodjeljivanje sistemskih privilegija: GRANT sistemske_privilegije TO korisnik|uloga|PUBLIC [WITH ADMIN OPTION] REVOKE - Osnovna sintaksa za ukidanje sistemskih privilegija: REVOKE sistemske_privilegije FROM korisnik|uloga|PUBLIC 25. to su to role i emu slue? Navedite primjer. To su uloge i slue za lake dodjeljivanje odreenih prava. CREATE ROLE uloga_1 IDENTIFIED BY uloga_1; GRANT create session, create table, create view TO uloga_1; GRANT uloga_1 TO pero; 26. to je transakcija? Navedite primjer. Pod transakcijom se podrazumijeva aktivnost ili niz aktivnosti koje izvrava jedan korisnik ili aplikacijski program, a koja ita ili aurira sadraj baze podataka.To je logika radna jedinica baze podataka. Transakcija se logiki mora provesti kao nedjeljiva cjelina: - svaka transakcija unosi promjenu u bazi - pojedinane operacije unutar transakcije nisu bitne same za sebe

1) UPDATE racun SET saldo=saldo-500 WHERE id_racuna=1; 2) UPDATE racun SET saldo=saldo+500 WHERE id_racuna=2; Transakcija se mora izvriti u potpunosti (u gornjem sluaju obe UPDATE naredbe) ili nikako SVE ili NITA. 27. Nabrojite i pojasnite tzv. ACID osobine transakcija. - Atomicity sve ili nita (transakcije nije mogude samo djelomino izvriti) - Consistency transakcija mora transformirati bazu iz jednog konzistentnog stanja u drugo - Isolation uinak transakcije postaje vidljiv drugim transakcijama tek nakon zavretka transakcije. Promatrajudi izvana transakcija moe biti ili izvedena ili ne. - Durability rezultat uspjeno zavrenih (potvrenih) transakcija se trajno biljei u bazu podataka i ne smije se izgubiti zbog naknadnih greaka (ak ni u sluaju pada sustava). 28. U emu je temeljna razlika izmeu implicitnog i eksplicitnog COMMIT-a (potvrde)? Navedite 2 naredbe koje trae eksplicitnu i 2 naredbe koje imaju implicitnu potvrdu. Mogude je vratiti sustav u stanje prije izvravanja naredbi iz transakcije: korisnik koji radi izmjene podataka kroz transakciju moe vidjeti efekte tih izmjena (npr.izvravanjem SELECT iskaza) ostali korisnici ne mogu vidjeti efekte navedenih izmjena n-torke nad kojima se rade izmjene kroz transakciju (INSERT, UPDATE, DELETE) automatski se zakljuavaju i ostali korisnici ih ne mogu mijenjati. Napomena: U Oracle sustavu implicitno zakljuavanje de se desiti za sve SQL iskaze osim SELECT-a. 29. Navedite i pojasnite tehnike kontrole konkurentnosti kod viekorisnikog pristupa bazi podataka. Konzervativne (pesimistine) uzrokuju odgaanje transakcija u sluaju da de biti u konfliktu s drugim transakcijama u bududnosti. - Zakljuavanje (locking) - Timestamp Optimistine su bazirane na pretpostavci da su konflikti rijetki tako da dozvoljavaju transakcijama da nastave i nesinkronizirane i samo provjeravaju konflikt na kraju, kada se transakcija potvruje. 30. Navedite i pojasnite vrste zakljuavanja. Zakljuavanje (locking) mehanizam zabrane pristupa zapisima koje netko obrauje: - prije obavljanja operacije podaci se zakljuavaju - transakcija koja trai zakljuavanje mora ekati dok ono ne bude odobreno Dijeljeno zakljuavanje (shared lock, read lock) obavlja se prije itanja.. Ekskluzivno zakljuavanje (exclusive lock, write lock) prethodi zapisivanju...

to se zakljuava? - granulacija: polje, zapis, tablica, stranica (fiziki blok na kojem su zapisi pohranjeni)... 31. Pojasnite to je mrtva toka (deadlock) i kako do nje dolazi. Navedite primjer. Mrtva toka (deadlock) nastaje kada dvije (ili vie) transakcija, obje (sve) ekaju da se otpusti zakljuavanje koje dri druga transakcija.

32. to je pogled? U emu je razlika izmeu pogleda (view) i relacije (tablice)? - pogled prozor u podatke - podaci se izvode, ne posjeduju - pohranjuje se kao SELECT izraz u rjenik podataka Uporaba pogleda - za ogranienje pristupa podacima - za pojednostavljenje sloenih upita - za omogudavanje neovisnosti podataka - za prikaz razliitih pogleda na iste podatke Jednostavni pogled - podaci su iz jedne tablice - ne sadri funkcije ili grupe - moe izvriti DML Sloeni pogled - podaci su iz vie tablica - sadri funkcije ili grupe - ne moe izvriti DML 33. U emu je razlika izmeu jednostavnog i sloenog pogleda? Navedite primjer. Jednostavni pogled - podaci su iz jedne tablice - ne sadri funkcije ili grupe - moe izvriti DML Slozeni pogled - podaci su iz vie tablica - sadri funkcije ili grupe - ne moe izvriti DML

34. U kojim sluajevima je preporueno koristiti indekse u bazi, a u kojim sluajevima ih ne bi trebalo koristiti. Indekse bi u principu trebalo primjenjivati u sljededim sluajevima: - za atribute prema kojima se obavlja spajanje relacija - za atribute koji se esto koriste za postavljanje uvjeta selekcije - za atribute prema kojima se esto obavlja grupiranje ili sortiranje Indekse ne bi trebalo primjenjivati ukoliko: - vrijednosti atributa za kojeg se gradi indeks imaju relativno mali broj razliitih vrijednosti (npr. spol_osobe s doputenim vrijednostima M, , u relaciji s 30 000 n-torki) - u relaciji predstoji velik broj upisa, izmjena ili brisanja n-torki.Preporuljivo je u takvim sluajevima postojede indekse izbrisati, te ih ponovo izgraditi tek nakon obavljenih promjena na podacima. - relacija sadri vrlo mali broj n-torki (npr. do stotinu). U takvim sluajevima sustav lake pristupa sekvencijalnom pretragom, nego prolaskom kroz strukturu B-stabla. 35. U emu je temeljna razlika izmeu DDL i DML naredbi SQL-a? Navedite po 3 naredbe iz svake skupine. DDL (Data Definition Language) - izrazi za definiranje podataka CREATE, ALTER, DROP, GRANT, REVOKE ... DML (Data Manipulation Language) - izrazi za upravljanje podacima SELECT, INSERT, UPDATE, DELETE ... 36. Navedite agregatne funkcija prema ISO standardu. Gdje se u SELECT iskazu mogu koristiti agregatne funkcije? ISO standard definira 5 agregatnih funkcija: - COUNT - SUM - AVG - MIN - MAX Ove funkcije se izvravaju nad jednim stupcem tablice i vradaju jednu vrijednost. VANO Agregatne funkcije se mogu koristiti samo u SELECT listi i HAVING iskazu. Primjer SELECT SUM(placa), AVG(placa), MIN(placa), MAX(placa) FROM djelatnik; SELECT COUNT(*) broj_djelatnika FROM djelatnik; SELECT COUNT (DISTINCT sifra_radmj) FROM djelatnik; DISTINCT eliminira duple vrijednosti Nema efekta na funkcije MIN i MAX, ali ima na SUM i AVG. Moe se navesti samo jedanput u upitu.

37. Za to se koriste iskazi GROUP BY i HAVING? Navedite primjer. GROUP BY Grupiranje se obavlja tako da se n-torke koje imaju jednake vrijednosti atributa navedenih u listi za grupiranje, kombiniraju u zajedniku grupu. Za svaku dobivenu grupu, u rezultatu se pojavljuje samo jedna n-torka. Grupiranje je vrlo korisno u kombinaciji s agregatnim funkcijama. Primjer: SELECT sifra_radmj, AVG(placa) prosj_placa FROM djelatnik GROUP BY sifra_radmj; Bilo koji atribut ili izraz u SELECT listi koji nije agregatna funkcija mora biti i u GROUP BY iskazu. Meutim, doputeno je u GROUP BY iskazu koristiti i one atribute koji se ne nalaze u SELECT listi. HAVING Koristi se ako se eli specificirati koje grupe treba prikazati, odnosno, koristi se za restrikciju grupa koje se prikazuju, tj. za ispitivanje vrijednosti agregatnih funkcija. VANO WHERE iskaz se ne moze koristiti za restrikciju grupa. WHERE se koristi samo za restrikciju pojedinanih redaka. WHERE GROUP BY HAVING WHERE dio naredbe odreuje koje n-torke de formirati grupe. GROUP BY lista odreuje strukturu grupa tj. po kojim atributima se obavlja grupiranje n-torki. HAVING dio naredbe odreuje koje od nastalih grupa de biti prihvadene kao rezultat. HAVING primjeri: SELECT sifra_radmj radno_mjesto, AVG(placa) prosj_placa FROM djelatnik GROUP BY sifra_radmj HAVING AVG(placa)>1500; 38. U kojem se sluaju koristi OUTER JOIN (vanjsko spajanje tablica). Navedite primjer. Primjer: SELECT id, ime, naziv_mjesta FROM osoba, mjesto WHERE osoba.pbr=mjesto.pbr;

Primjer: SELECT d.id_djelatnika, d.ime, d.prezime, d.placa, rm.naziv_radmj FROM djelatnik d, radno_mjesto rm WHERE d.sifra_radmj=rm.sifra_radmj AND placa>2000; SELECT d.id_djelatnika, d.ime, d.prezime, d.placa, rm.naziv_radmj, o.naziv_odjela FROM djelatnik d, radno_mjesto rm, odjel o WHERE d.sifra_radmj=rm.sifra_radmj AND rm.sifra_odjela=o.sifra_odjela (+) AND placa>2000; 39. U emu je razlika izmeu SQL operatora EXISTS i IN? Navedite primjer. IN operator SELECT ime, prezime, placa, sifra_radmj FROM djelatnik WHERE placa IN ( SELECT MIN(placa) FROM djelatnik d, radno_mjesto rm, odjel o WHERE d.sifra_radmj=rm.sifra_radmj AND rm.sifra_odjela=o.sifra_odjela GROUP BY o.sifra_odjela ); Nakon izvravanja podupita, SUBP (npr. Oracle) de ovako vidjeti vanjski upit ... SELECT ime, prezime, placa, sifra_radmj FROM djelatnik WHERE placa IN (700,900,1000,1200); EXISTS operator EXISTS operator testira postojanje redaka u rezultatu podupita: ako podupit vrati bar jedan redak operator EXISTS de vratiti TRUE. ako podupit ne vrati niti jedan redak operator EXISTS de vratiti FALSE. SELECT id_djelatnika, ime, prezime, sifra_radmj FROM djelatnik d WHERE EXISTS (SELECT 'X' FROM djelatnik WHERE id_sefa=d.id_djelatnika);

40. Pojasnite nain rada korelacijskog upita.

Podupit (unutarnji upit) se izvrava jedanput za svaki redak izvanjskog upita. Primjer: Prikai sve djelatnike koji zarauju vie od prosjene plade u njihovom odjelu. SELECT ime, prezime, d.sifra_radmj, placa FROM djelatnik d, radno_mjesto vanjski_rm WHERE d.sifra_radmj=vanjski_rm.sifra_radmj AND placa > ( SELECT AVG(placa) FROM djelatnik d, radno_mjesto rm WHERE d.sifra_radmj=rm.sifra_radmj AND rm.sifra_odjela = vanjski_rm.sifra_odjela );