1 / 75

Baze podataka

Lekcija 11. Baze podataka. Zavisnost i normalne forme. Sadržaj:. Šeme relacija loše strukture Loše i dobre dekompozicije Funkcijske zavisnosti Dekompozicija skupa funkcijskih zavisnosti Normalne forme Postupci normalizacije. Dobre i loše šeme.

bonnie
Télécharger la présentation

Baze podataka

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lekcija 11 Baze podataka Zavisnost i normalne forme Predavanja

  2. Sadržaj: • Šeme relacija loše strukture • Loše i dobre dekompozicije • Funkcijske zavisnosti • Dekompozicija skupa funkcijskih zavisnosti • Normalne forme • Postupci normalizacije Predavanja

  3. Dobre i loše šeme • Do sada nije razmatrano zašto su strukture šema relacija i šeme RBP dobre • Kada su postavljene strukture dobre ? • Dobro je kada se kroz upite i samu strukturu RBP ne uočavaju nepogodnosti • Do sada su uvedene samo formalne definicije • Šema relacije: skup atributa i ograničenja nad njima • Šema RBP: skup šema relacija i ograničenja nad njima Predavanja

  4. Dobre i loše šeme • Razmatrana (podrazumevana) ograničenja: • Unikatnost atributa u šemi relacije i unikatnost n-torki • Uslov identifikacionog integriteta za primarni ključ (nije dozvoljena NULL vrednost za atribut u sastavu primarnog ključa) • Uslov referencijalnog integriteta za strani ključ (svaki strani ključ u relaciji može imati ili vrednost primarnog ključa u ciljnoj relaciji ili NULL vrednost) • Vrednosti ostalih atributa u relacijama, mogle su da budu proizvoljne Predavanja

  5. Dobre i loše šeme • Iz prakse se zna za šeme relacija sa “lošim strukturama” • Nepogodnosti u radu sa relacijama • Razlog za to je sledeći: između atributa jedne relacije mogu postojati zavisnosti kojima se ograničavaju vrednosti atributa u n-torkama • Vremenom je formulisana posebna oblast matematike – Teorija zavisnosti • Iz ove teorije: formulacija normalnih formi - kao kriterijuma za valjanost šema relacija • Normalizacija – dekompozicija šeme relacije loše strukture na dve ili više šema koje su u skladu sa željenom “normalnom formom” Predavanja

  6. Sadržaj: • Šeme relacija loše strukture • Loše i dobre dekompozicije • Funkcijske zavisnosti • Dekompozicija skupa funkcijskih zavisnosti • Normalne forme • Postupci normalizacije Predavanja

  7. Š.R. loše strukture • Ilustracija kroz nekoliko pogodno odabranih primera izvedenih iz RBP Biblioteka • Primer 1Nova šema relacije, kao rezultat želje da se smanji šema RBP, tako što će se podaci o naslovima i autorima objediniti u jednu š.r.AUTOR(SIFA, IME, SIFN, KOJI) • SIFA, SIFN čine primarni ključ • Određeni autor je samo jednom autor određenog naslova Predavanja

  8. Š.R. loše strukture • Neka u jednom trenutku postoji prethodni sadržaj • U budućnosti, može postojati potreba da se unose novi naslovi za autora: ZP0 Z.Petrović, pa bi se on pojavljivao više puta • Često je uz ime potrebno evidentirati i neki dodatni podatak o autoru, koji bi se opet pojavljivao više puta uz Z.Petrović autor(SIFA IME SIFN KOJI) JN0 J.Nikolić RBP0 2 ZP0Z.Petrović PP00 1 AP1 A.Petrović PJC0 1 ZP0Z.Petrović PJC0 2 Predavanja

  9. Š.R. loše strukture • Ako se pokuša izbegavanje unosa imena autora više puta (samo prvi put se upisuje, a u ostalim slučajevima NULL), gube se neke informacije • Nemogućnost postavljanja upita: • Npr: Imena svih autora jednog naslova • Npr: Svi naslovi autora određenog imena Predavanja

  10. Š.R. loše strukture • Osnovni nedostatak relacije autor je:redudansa – višestruko ponavljanje u relaciji • Ovaj nedostatak izaziva probleme kod sva tri vida ažuriranja relacije: • Višestruko unošenje: ime autora unosi se onoliko puta koliko je napisao naslova • Višestruko menjanje: eventualne promene imena autora vrše se na svim mestima • Višestruko uklanjanje: ako se želi potpuno uklanjanje podataka o autoru, vrši se onoliko puta koliko je napisao naslova Predavanja

  11. Š.R. loše strukture • Uz nedostatke ažuriranja postoje još dva drastična nedostatka: • Anomalija unošenja: ne mogu se uneti podaci o autoru, a da se pri tome ne unesu i podaci o bar jednom njegovom naslovu • Anomalija uklanjanja: uklanjanjem podataka o jedinom naslovu koji je napisao neki autor uklanjaju se i podaci o tom autoru • Za razliku od razmatrane šeme relacije autor, šeme relacija iz RBP Biblioteka nemaju navedene nedostatke • Ime svakog autora unosi se samo jednom i nezavisno od podataka o naslovu Predavanja

  12. Š.R. loše strukture • Uzrok ograničenja u Primeru 1 • Svakoj vrednosti atributa SIFA, koji je deo primarnog ključa, odgovara jedna vrednost atributa IME koji nije deo primarnog ključa • Kada se u relaciji autor ponovi vrednost atributa SIFA, mora se ponoviti i IME AUTOR(SIFA, IME, SIFN, KOJI) Predavanja

  13. Š.R. loše strukture • Primer 2Neka je formirana posebna šema relacije koja objedinjava podatke o naslovima i oblastimaNASLOV( SIFN, NAZIVN, SIFO, NAZIVO) • Za sadržaj RBP Biblioteka odgovarajuća relacija naslov bi bila: naslov (SIFN NAZIVN SIFO NAZIVO) RBP0 Relacione baze podataka BP Baze podataka RK00 Računarske komunikacije RM Računarske mreže PP00 PASCAL programiranje PJProgramski jezici PJC0 Programski jezik C PJProgramski jezici Predavanja

  14. Š.R. loše strukture • Ako bi se zahtevao novi unos npr: C++, postojalo bi tri puta PJ “Programski jezici” • Izbegavanje višestrukog unošenja, kao u prošlom primeru (NULL vrednosti), dovelo bi do gubitka informacije (nemogućnost pravog upita) • Uzrok ograničenja u Primeru 2: • Svakoj vrednosti atributa SIFO, koji nije deo primarnog ključa, odgovara jedna vrednost atributa NAZIVO, koji takođe nije deo primarnog ključa NASLOV( SIFN, NAZIVN, SIFO, NAZIVO) Predavanja

  15. Š.R. loše strukture • Primer 3Posmatra se šema relacije koja evidentira podatke o pozajmicama dopunjene sa šiframa naslova:POZAJMICA(SIFN, SIFC, DATUM, DANA, SIFK) Pozajmica ( SIFNSIFCDATUM DANA SIFK) PJC0 JJ0 01.09.05. 5 004 * PP00 PP0 02.09.05. 2 007 PJC0 JJ1 03.09.05. 6 005 PP00 JJ0 04.09.05. 7 008 RBP0 PP0 05.09.05. 4 002 PP00 JJ1 06.09.05. 3 009 PJC0 JJ1 07.09.05. 2 004 * Predavanja

  16. Š.R. loše strukture • Osnovna anomalija: za istu vrednost atributa SIFK, dva puta se morala uneti vrednost PJC0(atribut SIFN) • Uzrok ograničenja u Primeru 3 • Svakoj vrednosti atributa SIFK, koji nije deo primarnog ključa, odgovara jedna vrednost atributa SIFN koji je deo primarnog ključa • U RBP Biblioteka nema nedostataka, zato što su razdvojene šeme relacija:POZAJMICA i KNJIGA POZAJMICA(SIFN, SIFC, DATUM, DANA, SIFK) Predavanja

  17. Š.R. loše strukture • Zaključci: • Ako je struktura šeme relacije takva da postoji višestruko ponavljanje pojedinih vrednosti ne ključnih atributa, takva šema relacije je loša • Šema relacije kod koje postoje neželjene veze, može se zameniti sa više šema relacija, kod kojih navedeni nedostaci nisu prisutni Predavanja

  18. Sadržaj: • Šeme relacija loše strukture • Loše i dobre dekompozicije • Funkcijske zavisnosti • Dekompozicija skupa funkcijskih zavisnosti • Normalne forme • Postupci normalizacije Predavanja

  19. Loše i dobre dekompozicije • Opšte napomene: • Dekomponuje se i šema relacije i relacija nad njom • U nastalim šemama relacija moraju biti prisutni svi atributi polazne šeme (da se ne izgubi deo podataka) • Ne mogu se pojaviti novi atributi koji nisu postojali u polaznoj šemi relacije • U najnepovoljnijem slučaju, relacija koja se dekomponuje nije prazna, pa njensadržaj treba preneti u novonastale relacije Predavanja

  20. Loše i dobre dekompozicije • Primer 1: (Loša dekompozicija) • Sprovedimo sledeću dekompoziciju:POZAJMICA (SIFN, SIFC, DATUM, DANA, SIFK) POZ1 (SIFC, DATUM, DANA, SIFK) POZ2 (SIFN) • Odgovarajuće relacije poz1 i poz2 mogu se dobiti kao rezultat projekcija:SIFC,DATUM,DANA,SIFK(pozajmica)poz1SIFN(pozajmica)poz2 Predavanja

  21. Loše i dobre dekompozicije • Sadržaj dobijenih relacija je sledeći: Poz1 ( SIFC DATUM DANA SIFK) JJ0 01.09.05. 5 004 PP0 02.09.05. 2 007 JJ1 03.09.05. 6 005 JJ0 04.09.05. 7 008 PP0 05.09.05. 4 002 JJ1 06.09.05. 3 009 JJ1 07.09.05. 2 004 Poz2 ( SIFN ) PJC0 PP00 RBP0 Predavanja

  22. Loše i dobre dekompozicije • Uvidom u sadržaj relacija zaključuje se sledeće: • Ne postoje veze između šifara naslova i ostalih podataka o pozajmicama • Pokušaj rekonstrukcije svih podataka o pozajmicama: • prirodnim spajanjem, • dobiće se Dekartov proizvod sa 21 n-torkom • šeme relacija nemaju ni jedan zajednički atribut(presek atributa je prazan skup) • Dobijenih 14 n-torki je nepotrebno Predavanja

  23. Pozajmica ( SIFNSIFCDATUMDANA SIFK) PJC0 JJ0 01.09.05. 5 004 PJC0 PP0 02.09.05. 2 007 ? PJC0 JJ1 03.09.05. 6 005 PJC0 JJ0 04.09.05. 7 008 ? PJC0 PP0 05.09.05. 4 002 ? PJC0 JJ1 06.09.05. 3 009 ? PJC0 JJ1 07.09.05. 2 004 PP00 JJ0 01.09.05. 5 004 ? PP00 PP0 02.09.05. 2 007 PP00 JJ1 03.09.05. 6 005 ? PP00 JJ0 04.09.05. 7 008 PP00 PP0 05.09.05. 4 002 ? PP00 JJ1 06.09.05. 3 009 PP00 JJ1 07.09.05. 2 004? RBP0 JJ0 01.09.05. 5 004 ? RBP0 PP0 02.09.05. 2 007 ? RBP0 JJ1 03.09.05. 6 005 ? RBP0 JJ0 04.09.05. 7 008 ? RBP0 PP0 05.09.05. 4 002 RBP0 JJ1 06.09.05. 3 009 ? RBP0 JJ1 07.09.05. 2 004 ? Predavanja

  24. Loše i dobre dekompozicije • Primer 2: (Loša dekompozicija)POZAJMICA (SIFN, SIFC, DATUM, DANA, SIFK) POZ1 (SIFC, DATUM, DANA, SIFK) POZ2 (SIFC,SIFN) • Projekcijama se dobija: Poz1 ( SIFC DATUM DANA SIFK) JJ0 01.09.05. 5 004 PP0 02.09.05. 2 007 JJ1 03.09.05. 6 005 JJ0 04.09.05. 7 008 PP0 05.09.05. 4 002 JJ1 06.09.05. 3 009 JJ1 07.09.05. 2 004 Poz2 ( SIFC SIFN ) JJ0 PJC0 PP0 PP00 JJ1 PJC0 JJ0 PP00 PP0 RBP0 JJ1 PP00 Predavanja

  25. Loše i dobre dekompozicije • Ovoga puta, nastale relacije imaju kao presek zajednički atribut SIFC • Može se zaključiti i sledeće: • Veze između šifara naslova (SIFN) i ostalih podataka ne postoje direktno ni u jednoj relaciji • Rekonstrukcija svih pozajmica prirodnim spajanjem po atributu SifC daje 14 n-torki (7 su suvišne) • Osnovni kriterijum za očuvanje podataka pri dekompoziciji šeme relacije je:Dekompozicija je bez gubitaka ako je reverzibilna, tj. ako se prirodnim spajanjem novonastalih relacija dobija polazna relacija Predavanja

  26. Pozajmica ( SIFN SIFC DATUM DANA SIFK) PJC0 JJ0 01.09.95. 5 004 PJC0 JJ0 04.09.95. 7 008 ? PP00 PP0 02.09.95. 2 007 PP00 PP0 05.09.95. 4 002 ? PJC0 JJ1 03.09.95. 6 005 PJC0 JJ1 06.09.95. 3 009 ? PJC0 JJ1 07.09.95. 2 004 PP00 JJ0 01.09.95. 5 004 ? PP00 JJ0 04.09.95. 7 008 RBP0 PP0 02.09.95. 2 007 ? RBP0 PP0 05.09.95. 4 002 PP00 JJ1 03.09.95. 6 005 ? PP00 JJ1 06.09.95. 3 009 PP00 JJ1 07.09.95. 2 004 ? Predavanja

  27. Loše i dobre dekompozicije • U prethodnim primerima, problem je što postoji višestruko spajanje n-torki • Važno je da pri dekompoziciji, svaka vrednost zajedničkog atributa u bar jednoj od nastalih relacija ne sme da se ponavlja • Formulacija prethodnog uslova: Zajednički atribut (ili skup atributa) treba da je kandidat ključ u bar jednoj od nastalih relacija • Sledeći prethodni pristup, dolazi se do dekompozicije koja postoji u RBP Biblioteka Predavanja

  28. Loše i dobre dekompozicije • Primer 3: (Dobra dekompozicija) • POZAJMICA (SIFN, SIFC, DATUM, DANA, SIFK) POZ1 (SIFC, DATUM, DANA, SIFK) POZ2 (SIFK,SIFN) • Projekcijama se dobija: Poz1 ( SIFC DATUM DANA SIFK) JJ0 01.09.95. 5 004 PP0 02.09.95. 2 007 JJ1 03.09.95. 6 005 JJ0 04.09.95. 7 008 PP0 05.09.95. 4 002 JJ1 06.09.95. 3 009 JJ1 07.09.95. 2 004 Poz2 ( SIFK SIFN ) 004 PJC0 007 PP00 005 PJC0 008 PP00 002 RBP0 009 PP00 Predavanja

  29. Loše i dobre dekompozicije • Ako se pokuša rekonstrukcija svih pozajmica prirodnim spajanjem po atributu SifK dobija se 7 n-torki koje odgovaraju prvobitnom sadržaju • Svaka n-torka relacija poz1 se spaja sa tačno jednom n-torkom relacije poz2 Pozajmica ( SIFN SIFC DATUM DANA SIFK) PJC0 JJ0 01.09.05. 5 004 PP00 PP0 02.09.05. 2 007 PJC0 JJ1 03.09.05. 6 005 PP00 JJ0 04.09.05. 7 008 RBP0 PP0 05.09.05. 4 002 PP00 JJ1 06.09.05. 3 009 PJC0 JJ1 07.09.05. 2 004 Predavanja

  30. Loše i dobre dekompozicije • Zaključak:Neka su R i r šema relacije i relacija, koja se dekomponuje na R1 i R2, tj. r1 i r2, pri čemu postoji bar jedan zajednički atribut tj.R1  R2   Tada važi: • Uslov očuvanja atributa pri dekompozicijiR1  R2 = R • Uslov očuvanja podataka (reverzibilnost)R1(r) >*< R2(r) = r • Dekompozicija je reverzibilna ako je:R1  R2 R1  R1  R2 R2(značenje simbola  je “jednoznačno određuje”) Predavanja

  31. Sadržaj: • Šeme relacija loše strukture • Loše i dobre dekompozicije • Funkcijske zavisnosti • Dekompozicija skupa funkcijskih zavisnosti • Normalne forme • Postupci normalizacije Predavanja

  32. Funkcijske zavisnosti • Do sada su razmatrane zavisnosti pojedinačnih atributa:Svakoj vrednosti jednog atributa odgovara samo jedna vrednost drugog atributa • U opštem slučaju to može važiti za podskupove atributa šeme relacije • Definicija: Nad šemom relacije R postoji funkcijska zavisnost XY ako u relaciji r važi da se svako r[X] preslikava na samo jedan element skupa r[Y] Predavanja

  33. Funkcijske zavisnosti • U praksi je uočeno da se na osnovu postojanja nekog skupa zavisnosti, mogu da se izvedu nove zavisnosti • Primer:Posmatra se šema relacije NASLOVNASLOV(SIFN, NAZIVN, SIFO, NAZIVO)Postoje zavisnosti:SIFN  NAZIVN i SIFO  NAZIVONa osnovu prethodnog može se izvesti da važi:SIFN, SIFO  NAZIVN, NAZIVO Predavanja

  34. Funkcijske zavisnosti • Primer:za prethodnu šemu relacije NASLOV važi i sledeće:SIFN  SIFO i SIFO  NAZIVONa osnovu prethodnog može se izvesti da jednoj šifri naslova odgovara samo jedan naziv oblasti:SIFN  NAZIVO • Postoji minimalan skup pravila za izvođenje novih zavisnosti iz početnih: • Konačni skup zavisnosti koji se može izvesti iz polaznih (kompletnost) • Ne može se izvesti ni jedna zavisnost koja ne proizilazi iz polaznih (pouzdanost) Predavanja

  35. Armstrongovapravila • 1. ReflektivnostYX R XYSvaki podskup atributa šeme relacije jednoznačno određujesvaki svoj sastavni deo • Posebni slučajevi: • za Y=X sledi X X, svaki podskup atributa jednoznačno određuje sam sebe • za Y=0 sledi X , svaki podskup atributa jednoznačno određuje prazan skup Predavanja

  36. Armstrongovapravila • 2. Armstrongovo pravilo: UvećanjeXY  ZW  XW YZ • Kod ovog pravila postoje tri specijalna slučaja • za Z= sledi XW Y • za Z=W sledi XW YW • za Z=W=X sledi X YX • 3. Armstrongovo pravilo: TranzitivnostiXY  Y  Z  X Z Predavanja

  37. Dodatnapravila • 4. pravilo: UnijaXY  X  Z  X YZ • 5. pravilo: DekompozicijaXY  ZY  X Z • 6. pravilo: PseudotranzijentnostXY  WY  Z  XW Z Predavanja

  38. Sadržaj: • Šeme relacija loše strukture • Loše i dobre dekompozicije • Funkcijske zavisnosti • Dekompozicija skupa funkcijskih zavisnosti • Normalne forme • Postupci normalizacije Predavanja

  39. Dekompozicija funkcijskih zavisnosti • Dekompozicija je dobra ako su posle nje sačuvani atributi i podaci • Pitanje: Ako je na polaznoj šemi relacije R važio neki skup funkcijskih zavisnosti F, kakve zavisnosti postoje posle dekompozicije • Funkcijske zavisnosti u RBP – ograničenja između nekih svojstava u sistemu koga ta RBP predstavlja. • Ograničenja uvek moraju biti ispoštovana prilikom ažuriranja Predavanja

  40. Dekompozicija funkcijskih zavisnosti • Ako važi XY, onda svakoj vrednosti X (ma koliko puta) mora da odgovara jedno Y • Moguća su dva slučaja: • X i Y se nalaze unutar iste šeme relacije • X i Y su u različitim š.r., ali se pojavljuju u jednoj relaciji nakon izvršenja upita Predavanja

  41. Dekompozicija funkcijskih zavisnosti • Primer 1: X i Y su u istoj šemi relacije • Pored ostalog važi: SIFO NAZIVO naslov (SIFN NAZIV SIFO NAZIVO) RBP0 Relacione baze podataka BP Baze podataka RK00 Računarske komunikacije RM Računarske mreže PP00 PASCAL programiranje PJProgramski jezici PJC0 Programski jezik C PJProgramski jezici Predavanja

  42. Dekompozicija funkcijskih zavisnosti • Pri unosu n-torki znamo za pravilo: • Ne sme se ponoviti vrednost primarnog ključa SIFN • Ne sme se uneti NULL vrednost • Kada se unosi n-torka i za SIFO unese ‘PJ’, samo prvi put se može uneti proizvoljno NAZIVO • Već u drugoj n-torci, unos ne može biti slobodan, jer bi se u suprotnom pokvarila zavisnost SIFO NAZIVO Predavanja

  43. Primer 2: (razdvojenost X i Y) • Neka je kod unosa zadnje n-torke u naslov1 greškom uneseno “Baze podataka” umesto “Programski jezici” naslov1 (SIFN NAZIVN NAZIVO) RBP0 Relacione baze podataka Baze podataka RK00 Računarske komunikacije Računarske mreže PP00 PASCAL programiranje Programski jezici PJC0 Programski jezik C Programski jezici naslov2 (SIFN SIFO) RBP0 BP RK00 RM PP00 PJ PJC0 PJ Baze podataka Predavanja

  44. Dekompozicija funkcijskih zavisnosti • Ako postavimo upit koji daje šifre i nazive oblasti dobili bi:SELECT n2.sifo, n1.nazivo FROM naslov1 n1, naslov2 n2 WHERE n1.sifn=n2.sifn; • Rezultat: BP Baze podataka RM Računarske mreže PJ Programski jezici PJ Baze podataka • Dobio bi se rezultat koji je u suprotnosti za zavisnošću SIFO NAZIVO Predavanja

  45. Dekompozicija funkcijskih zavisnosti • Dobar sistem za upravljanje RBP mora da spreči prethodna narušavanja • Zbog toga se, prilikom kreiranja BP, zadaju i dodatna ograničenja zasnovana na funkcijskim zavisnostima • Šematski prikaz prethodne dekompozicije (SIFN je kandidat ključ u bar jednoj relaciji): Predavanja

  46. sifn nazivn,sifo,nazivo naslov(sifn,nazivn,sifo,nazivo) sifo nazivo naslov1(sifn,nazivn,nazivo) sifn nazivn,nazivo sifn sifo naslov2(sifn, sifo) Dekompozicija funkcijskih zavisnosti • Šematski prikaz prethodne dekompozicije (SIFN je kandidat ključ u bar jednoj relaciji): • U ovom primeru nije primenjiva zavisnost SIFONAZIVOni na jednu od nastalih relacija – LOŠA DEKOMPOZICIJA Predavanja

  47. sifn nazivn,sifo,nazivo naslov(sifn,nazivn,sifo,nazivo) sifo nazivo naslov1(sifn,nazivn,sifo) sifn nazivn,sifo naslov2(sifo,nazivo) sifo nazivo Dekompozicija funkcijskih zavisnosti • Bolja dekompozicija • Ne dovodi do gubitka skupa zavisnosti: Predavanja

  48. Dekompozicija funkcijskih zavisnosti • Očuvanje funkcijskih zavisnosti pri dekompoziciji: • Ako se iz funkcijskih zavisnosti novonastalih relacija mogu izvesti prethodne zavisnosti Predavanja

  49. Sadržaj: • Šeme relacija loše strukture • Loše i dobre dekompozicije • Funkcijske zavisnosti • Dekompozicija skupa funkcijskih zavisnosti • Normalne forme • Postupci normalizacije Predavanja

  50. Normalne forme i normalizacija • Normalizacija - pogodna dekompozicija šeme relacije u cilju otklanjanja anomalija ažuriranja • Uzroci anomalija su prisustvo neželjenih funkcijskih zavisnosti • Normalna forma – određeni kriterijumi valjanosti neke šeme relacije • U nastavku se navode neki specijalni slučajevi funkcijskih zavisnosti Predavanja

More Related