bp 05_zavisnost i normalne forme

52
Baze podataka Zavisnost i normalne forme 1

Upload: ivan-skurdija

Post on 27-Dec-2015

23 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: BP 05_Zavisnost i Normalne Forme

Baze podataka

Zavisnost i normalne forme

1

Page 2: BP 05_Zavisnost i Normalne Forme

Za šeme relacija sa “lošim strukturama” iz prakse se zna◦ Nepogodnosti u radu sa relacijama (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”

2

Dobre i loše šeme

Page 3: BP 05_Zavisnost i Normalne Forme

3

Clan (SifC,Ime)

Knjiga(SifK,SifN)

Naslov(SifN,Naziv,SifO)

Oblast(SifO,Naziv)

Autor(SifA,Ime)

Pozajmica(SifP, SifC,Dana)

Rezervacija(SifN, SifC,Datum)

Drzi(SifK, SifC,Datum)

Je_autor(SifA,SifN, Izdanje)

Jedna šema relacije može da sadrži više stranih ključeva Strani ključ može biti u sastavu primarnog ključa Strani ključ može istovremeno biti i primarni ključ u

celini

Primera RBP Biblioteka

Page 4: BP 05_Zavisnost i Normalne Forme

Primer 1

Nova š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, IZDANJE)

SIFA, SIFN čine primarni ključ◦ Određeni autor je samo jednom autor određenog

naslova

4

Šema loše strukture

Page 5: BP 05_Zavisnost i Normalne Forme

5

Identifikacioni integritet proizilazi iz osobina unikatnosti n-torki u relaciji i svodi se na formulaciju odgovarajućeg uslova

Uslov identifikacionog integriteta: Ni jedan atribut šeme relacije R koji je u sastavu primarnog ključa nikada ne sme imati NULL vrednost u relaciji r.

Ukoliko ovo ne bi bilo ispunjeno, može nastupiti situacija da dve ili više n-torki u relaciji postanu identične

Identifikacioni integritet

Page 6: BP 05_Zavisnost i Normalne Forme

6

Je_autor (SifA SifN Izdanje) .................................... AP0 RBP0 1 AP0 PI00 1

Ako bi se dozvolilo da npr. SifN uzme vrednost NULLJe_autor (SifA SifN Izdanje) .................................... AP0 NULL 1 AP0 NULL 1

Dobile bi se dve identične n-torke što je nedozvoljeno u relacionom modelu.

Primer:

Page 7: BP 05_Zavisnost i Normalne Forme

7

Suština referencijalnog integriteta je u ograničavanju vrednosti stranog ključa.

Uslov referencijalnog integriteta: Svaki podskup atributa šeme relacije R koji predstavlja strani ključ može u relaciji R imati:◦ ili vrednost primarnog ključa u ciljnoj

relaciji ◦ ili vrednost NULL.

Referencijalni integritet

Page 8: BP 05_Zavisnost i Normalne Forme

8

Sa stanovišta izmena (ažuriranja) u relaciji koja sadrži strani ključ to podrazumeva da važe sledeća ograničenja:◦ Ne može se uneti n-torka sa vrednošću stranog

ključa koja nije jednaka nekoj vrednosti primarnog ključa u ciljnoj relaciji ili NULL vrednosti

◦ Ne može se izmeniti n-torka tako da vrednost stranog ključa ne bude jednaka nekoj vrednosti primarnog ključa u ciljnoj relaciji ili NULL vrednosti

Sa stanovišta izmena (ažuriranja) u ciljnoj relaciji:◦ Dodavanje nove n-torke (u ciljnoj relaciji) ne

narušava ref. int. - nastaje samo nova vrednost primarnog ključa

◦ Uklanjanjem n-torke (a izmena ponekad) dovodi do nestanka jedne vrednosti primarnog ključa. Ako bi se ta operacija izvršavala bezuslovno to bi narušilo referencijalni integritet

Referencijalni integritet

Page 9: BP 05_Zavisnost i Normalne Forme

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ć

9

Š.R. loše strukture

autor(SIFA IME SIFN IZDANJE)JN0 J.Nikolić RBP0 2ZP0 Z.Petrović PP00 1AP1 A.Petrović PJC0 1ZP0 Z.Petrović PJC0 2

Page 10: BP 05_Zavisnost i Normalne Forme

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

10

Š.R. loše strukture

Page 11: BP 05_Zavisnost i Normalne Forme

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

11

Š.R. loše strukture

Page 12: BP 05_Zavisnost i Normalne Forme

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

12

Š.R. loše strukture

Page 13: BP 05_Zavisnost i Normalne Forme

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

13

Š.R. loše strukture

AUTOR(SIFA, IME, SIFN, IZDANJE)

Page 14: BP 05_Zavisnost i Normalne Forme

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:

14

Š.R. loše strukture

naslov (SIFN NAZIVN SIFO NAZIVO)RBP0 Relacione baze podataka BP Baze podatakaRK00 Računarske komunikacije RM Računarske mrežePP00 PASCAL programiranje PJ Programski jeziciPJC0 Programski jezik C PJ Programski jezici

Page 15: BP 05_Zavisnost i Normalne Forme

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

15

Š.R. loše strukture

NASLOV( SIFN, NAZIVN, SIFO, NAZIVO)

Page 16: BP 05_Zavisnost i Normalne Forme

Primer 3Posmatra se šema relacije koja evidentira podatke o pozajmicama dopunjene sa šiframa naslova:POZAJMICA(SIFN, SIFC, DATUM, DANA, SIFK)

16

Š.R. loše strukture

Pozajmica ( SIFN SIFC DATUM DANASIFK)PJC0 JJ0 01.09.05. 5 004 *PP00 PP0 02.09.05. 2 007PJC0 JJ1 03.09.05. 6 005PP00 JJ0 04.09.05. 7 008RBP0 PP0 05.09.05. 4 002PP00 JJ1 06.09.05. 3 009PJC0 JJ1 07.09.05. 2 004 *

Page 17: BP 05_Zavisnost i Normalne Forme

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

17

Š.R. loše strukture

POZAJMICA(SIFN, SIFC, DATUM, DANA, SIFK)

Page 18: BP 05_Zavisnost i Normalne Forme

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

18

Š.R. loše strukture

Page 19: BP 05_Zavisnost i Normalne Forme

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 njen sadržaj treba preneti u novonastale relacije

19

Loše i dobre dekompozicije

Page 20: BP 05_Zavisnost i Normalne Forme

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

20

Loše i dobre dekompozicije

Page 21: BP 05_Zavisnost i Normalne Forme

Sadržaj dobijenih relacija je sledeći:

21

Loše i dobre dekompozicije

Poz1 ( SIFC DATUM DANASIFK)JJ0 01.09.05. 5 004PP0 02.09.05. 2 007JJ1 03.09.05. 6 005JJ0 04.09.05. 7 008PP0 05.09.05. 4 002JJ1 06.09.05. 3 009JJ1 07.09.05. 2 004

Poz2 ( SIFN )PJC0PP00RBP0

Page 22: BP 05_Zavisnost i Normalne Forme

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

22

Loše i dobre dekompozicije

Page 23: BP 05_Zavisnost i Normalne Forme

23

Pozajmica ( SIFN SIFC DATUM DANA SIFK)PJC0 JJ0 01.09.05. 5 004PJC0 PP0 02.09.05. 2 007 ?PJC0 JJ1 03.09.05. 6 005PJC0 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 004PP00 JJ0 01.09.05. 5 004 ?PP00 PP0 02.09.05. 2 007PP00 JJ1 03.09.05. 6 005 ?PP00 JJ0 04.09.05. 7 008PP00 PP0 05.09.05. 4 002 ?PP00 JJ1 06.09.05. 3 009PP00 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 002RBP0 JJ1 06.09.05. 3 009 ?RBP0 JJ1 07.09.05. 2 004 ?

Page 24: BP 05_Zavisnost i Normalne Forme

Primer 2: (Loša dekompozicija)POZAJMICA (SIFN, SIFC, DATUM, DANA, SIFK)

POZ1 (SIFC, DATUM, DANA, SIFK)POZ2 (SIFC,SIFN)

Projekcijama se dobija:

24

Loše i dobre dekompozicije

Poz1 ( SIFC DATUM DANASIFK)JJ0 01.09.05. 5 004PP0 02.09.05. 2 007JJ1 03.09.05. 6 005JJ0 04.09.05. 7 008PP0 05.09.05. 4 002JJ1 06.09.05. 3 009JJ1 07.09.05. 2 004

Poz2 ( SIFC SIFN )JJ0 PJC0PP0 PP00JJ1 PJC0JJ0 PP00PP0 RBP0JJ1 PP00

Page 25: BP 05_Zavisnost i Normalne Forme

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

25

Loše i dobre dekompozicije

Page 26: BP 05_Zavisnost i Normalne Forme

26

Pozajmica ( SIFN SIFC DATUM DANA SIFK)PJC0 JJ0 01.09.05. 5 004PJC0 JJ0 04.09.05. 7 008 ?

PP00 PP0 02.09.05. 2 007PP00 PP0 05.09.05. 4 002 ?

PJC0 JJ1 03.09.05. 6 005PJC0 JJ1 06.09.05. 3 009 ?PJC0 JJ1 07.09.05. 2 004

PP00 JJ0 01.09.05. 5 004 ?PP00 JJ0 04.09.05. 7 008

RBP0 PP0 02.09.05. 2 007 ?RBP0 PP0 05.09.05. 4 002

PP00 JJ1 03.09.05. 6 005 ?PP00 JJ1 06.09.05. 3 009PP00 JJ1 07.09.05. 2 004 ?

Page 27: BP 05_Zavisnost i Normalne Forme

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

27

Loše i dobre dekompozicije

Page 28: BP 05_Zavisnost i Normalne Forme

Primer 3: (Dobra dekompozicija) POZAJMICA (SIFN, SIFC, DATUM, DANA, SIFK)

POZ1 (SIFC, DATUM, DANA, SIFK)POZ2 (SIFK,SIFN)

Projekcijama se dobija:

28

Loše i dobre dekompozicije

Poz1 ( SIFC DATUM DANASIFK)JJ0 01.09.05. 5 004PP0 02.09.05. 2 007JJ1 03.09.05. 6 005JJ0 04.09.05. 7 008PP0 05.09.05. 4 002JJ1 06.09.05. 3 009JJ1 07.09.05. 2 004

Poz2 ( SIFK SIFN )004 PJC0007 PP00005 PJC0008 PP00002 RBP0009 PP00

Page 29: BP 05_Zavisnost i Normalne Forme

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

29

Loše i dobre dekompozicije

Pozajmica ( SIFN SIFC DATUM DANASIFK)PJC0 JJ0 01.09.05. 5 004PP00 PP0 02.09.05. 2 007PJC0 JJ1 03.09.05. 6 005PP00 JJ0 04.09.05. 7 008RBP0 PP0 05.09.05. 4 002PP00 JJ1 06.09.05. 3 009PJC0 JJ1 07.09.05. 2 004

Page 30: BP 05_Zavisnost i Normalne Forme

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 dekompoziciji

R1 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”)

30

Loše i dobre dekompozicije

Page 31: BP 05_Zavisnost i Normalne Forme

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 XY ako u relaciji r važi da se svako r[X] preslikava na samo jedan element skupa r[Y]

31

Funkcijske zavisnosti

Page 32: BP 05_Zavisnost i Normalne Forme

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

32

Funkcijske zavisnosti

Page 33: BP 05_Zavisnost i Normalne Forme

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)

33

Funkcijske zavisnosti

Page 34: BP 05_Zavisnost i Normalne Forme

1. ReflektivnostYX R XYSvaki podskup atributa šeme relacije jednoznačno određuje svaki 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

34

Armstrongovapravila

Page 35: BP 05_Zavisnost i Normalne Forme

2. Armstrongovo pravilo: UvećanjeXY ZW 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: TranzitivnostiXY Y Z X Z

35

Armstrongovapravila

Page 36: BP 05_Zavisnost i Normalne Forme

4. pravilo: Unija XY X Z X YZ

5. pravilo: Dekompozicija XY ZY X Z

6. pravilo: Pseudotranzitivnost XY WY Z XW Z

36

Dodatnapravila

Page 37: BP 05_Zavisnost i Normalne Forme

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

37

Dekompozicija funkcijskih zavisnosti

Page 38: BP 05_Zavisnost i Normalne Forme

Ako važi XY, 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

38

Dekompozicija funkcijskih zavisnosti

Page 39: BP 05_Zavisnost i Normalne Forme

Primer 1: X i Y su u istoj šemi relacije

Pored ostalog važi: SIFO NAZIVO

39

Dekompozicija funkcijskih zavisnosti

naslov (SIFN NAZIV SIFO NAZIVO)RBP0 Relacione baze podataka BP Baze podatakaRK00 Računarske komunikacije RM Računarske mrežePP00 PASCAL programiranje PJ Programski jeziciPJC0 Programski jezik C PJ Programski jezici

Page 40: BP 05_Zavisnost i Normalne Forme

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

40

Dekompozicija funkcijskih zavisnosti

Page 41: BP 05_Zavisnost i Normalne Forme

Primer 2: (razdvojenost X i Y)

Neka je kod unosa zadnje n-torke u naslov1 greškom uneseno “Baze podataka” umesto “Programski jezici”

41

naslov2 (SIFN SIFO)RBP0 BPRK00 RMPP00 PJPJC0 PJ

naslov1 (SIFN NAZIVN NAZIVO)RBP0 Relacione baze podataka Baze podatakaRK00 Računarske komunikacije Računarske mrežePP00 PASCAL programiranje Programski jeziciPJC0 Programski jezik C Programski jezici

Baze podataka

Page 42: BP 05_Zavisnost i Normalne Forme

Ako postavimo upit koji daje šifre i nazive oblasti dobili bi:SELECT n2.sifo, n1.nazivo

FROM naslov1 n1, naslov2 n2WHERE n1.sifn=n2.sifn;

Rezultat:BP Baze podatakaRM Računarske mrežePJ Programski jeziciPJ Baze podataka

Dobio bi se rezultat koji je u suprotnosti za zavisnošću SIFO NAZIVO

42

Dekompozicija funkcijskih zavisnosti

Page 43: BP 05_Zavisnost i Normalne Forme

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):

43

Dekompozicija funkcijskih zavisnosti

Page 44: BP 05_Zavisnost i Normalne Forme

44

Dekompozicija funkcijskih zavisnosti

naslov(sifn,nazivn,sifo,nazivo)

naslov1(sifn,nazivn,nazivo)

naslov2(sifn, sifo)

sifn nazivn,sifo,nazivo

sifo nazivo

sifn nazivn,nazivo

sifn sifo

• Šematski prikaz prethodne dekompozicije (SIFN je kandidat ključ u bar jednoj relaciji):

• U ovom primeru nije primenjiva zavisnost SIFONAZIVO ni na jednu od nastalih relacija – LOŠA DEKOMPOZICIJA

Page 45: BP 05_Zavisnost i Normalne Forme

Bolja dekompozicija◦ Ne dovodi do gubitka skupa zavisnosti:

45

Dekompozicija funkcijskih zavisnosti

naslov(sifn,nazivn,sifo,nazivo)

naslov1(sifn,nazivn,sifo)

naslov2(sifo,nazivo)

sifn nazivn,sifo,nazivo

sifo nazivo

sifn nazivn,sifo

sifo nazivo

Očuvanje funkcijskih zavisnosti pri dekompoziciji: Ako se iz funkcijskih zavisnosti novonastalih relacija mogu izvesti prethodne zavisnosti

Page 46: BP 05_Zavisnost i Normalne Forme

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

46

Normalne forme i normalizacija

Page 47: BP 05_Zavisnost i Normalne Forme

Prednosti normalizacije:◦ Smanjenje fizičkog prostora za smeštanje podataka◦ Bolja organizacija podataka◦ Promene podataka se rade na nivou samo jednog rekorda

Mane normalizacije◦ Fizički prostor diska je danas jeftin – malo bitan (izuzev kod

velikih baza tipa Data warehouses- (DW je baza koja se koristi za izveštaje. Podaci se učitavaju iz operativnog sistema za analizu izveštaja. Primenjuje se za data mining, online analytical processing, market research i decision support)

◦ Minimizacija dovodi do visoke granularnosti. SQL JOIN QUERY se sporo izvršavaju

◦ Nastaju šeme relacija koje karakteriše visoka kompleksnost sa stanovišta dizajnera i programera

47

Normalne forme i normalizacija

Page 48: BP 05_Zavisnost i Normalne Forme

Neka je R šema relacije, a X,Y i Z su podskupovi od R◦ Definicija 1

Funkcijska zavisnost XY je superključna ako važi XR

◦ Definicija 2Funkcijska zavisnost XY je trivijalna ako važi YX

◦ Definicija 3Funkcijska zavisnost je totalna ako ne postoji ni jedan pravi podskup Z od X za koji važi ZY odnosno: XY Z (ZX ZY)

48

Normalne formei normalizacija

Page 49: BP 05_Zavisnost i Normalne Forme

Definicija 4Funkcijska zavisnost je parcijalna ako postoji neki pravi podskup Z od X za koji važi ZY odnosno: XY Z (ZX ZY)

Definicija 5Funkcijska zavisnost XY je tranzitivna ako postoji neko Z, različito od X i Y za koje važi:XZ i ZY

49

Normalne formei normalizacija

Page 50: BP 05_Zavisnost i Normalne Forme

Primer:Posmatra se gruba (nezgrapna) šema relacije o pozajmicama:

pozajmica (SIFN,SIFC,DATUM,DANA,SIFK,NAZIVN,SIFO,NAZIVO)

kao i skup funkcijskih zavisnosti:

F={ SIFN,SIFC,DATUMDANA SIFN,SIFC,DATUM SIFKSIFN,SIFC,DATUMNAZIVN SIFN,SIFC,DATUMSIFOSIFN,SIFC,DATUMNAZIVO SIFKSIFNSIFN SIFO SIFN,SIFC SIFN SIFO NAZIVO}

50

Normalne formei normalizacija

Page 51: BP 05_Zavisnost i Normalne Forme

Postoje sledeći slučajevi specijalnih funkcijskih zavisnosti:◦ superključne

SIFN,SIFC,DATUMDANA SIFN,SIFC,DATUM SIFKSIFN,SIFC,DATUMNAZIVN SIFN,SIFC,DATUMSIFOSIFN,SIFC,DATUMNAZIVO

◦ trivijalnaSIFN,SIFC SIFN

◦ totalneSIFN,SIFC,DATUMDANA SIFN,SIFC,DATUM SIFKSIFKSIFN SIFN SIFO SIFO NAZIVO

◦ parcijalneSIFN,SIFC,DATUMNAZIVNSIFN,SIFC,DATUMSIFO

◦ tranzitivneSIFN,SIFC,DATUMNAZIVO

51

Normalne formenormalizacije

Page 52: BP 05_Zavisnost i Normalne Forme

Postupak normalizacije◦ Neka polazna š.r. nije u određenoj normalnoj formi,

ako u skupu funkcijskih zavisnosti F postoji bar jedna koja narušava definiciju normalne forme

U svakom koraku normalizacije:◦ uočava se jedna takva zavisnost (X Y)◦ vrši se dekompozicija u cilju uklanjanja takve

zavisnosti◦ Ako je u polaznoj važilo X Y, dekompozicijom

nastaju dve relacije, u prvoj se gube atributi Y, a druga nastaje nad atributima X i Y

◦ Ne dozvoljava se gubitak podataka

52

Normalne formenormalizacije