normalne forme zasnovane na funkcionalnoj...
TRANSCRIPT
-
NORMALNE FORMEZASNOVANE NAFUNKCIONALNOJZAVISNOSTI
Gordana Pavlović-Lažetić
Matematički fakultet, Beograd
šk. 2018/19.
-
Druga normalna forma – 2NF
IZDAVAC, IZDANJA – ne pokazuju anomalijeIZDAVAC * IZDANJA = R
• Definicija. Za funkcionalnu zavisnost X → Y kaže se da je potpuna ako ni za jedan pravi podskup X’ od X, Y ne zavisifunkcionalno od X’. Ako za neki podskup X’ od X važi X’ → Y, funkcionalna zavisnost X → Y zove se parcijalna.
• Definicija. Atribut A relacije R je sporedan u toj relaciji ako ne učestvuje ni u jednom ključu te relacije; u suprotnom je atribut A ključni atribut. Neka je X skup svih sporednih atributa relacije R. Relacija R je u drugoj normalnoj formi, u oznaci 2NF, ako svakiatribut iz X potpuno funkcionalno zavisi od svakog ključa relacijeR.
2/31
-
Anomalije unošenja, brisanja, ažuriranja
R
Jedina FZ: I_SIF -> NAZIV
Jedini (primarni) ključ: {I_SIF, K_SIF}
Anomalija unošenja: ne može da se unese novi izdavač (i2, Addison Wesley) bez izdate knjige
Anomalija brisanja: brisanjem izdanja knjige k4 briše se i izdavač i4Anomalija ažuriranja: promena naziva izdavača kod svih njegovih izdanja
I_SIF K_SIF NAZIV
i1 k1 Prosveta.
i3 k2 Decje novine
i3 k3 Decje novine
i4 k4 Matica srpska
i5 k1 Prosveta
i5 k2 Prosveta
3/31
-
Anomalije unošenja, brisanja, ažuriranja
Uzrok anomalija u R:
semantički: entitet IZDAVAČ i odnos IZDAVAČ-KNJIGA „sintaksni“: I_SIF -> NAZIV, I_SIF pravi podskup ključa
- parcijalna zavisnost sporednog atributa od ključaRešenje:
semantičko: razdvojiti entitet IZDAVAČ i odnos IZDAVAČ-KNJIGA u dve relacije
„sintaksno“: projektovanje po FZ I_SIF -> NAZIV
R[I_SIF, NAZIV] = IZDAVAC R[I_SIF,K_SIF] =IZDANJA
I_SIF NAZIV
i1 Prosveta
i3 Decje novine
I4 Matica srpska
i5 Prosveta
I_SIF K_SIF
i1 k1
i3 k2
i3 k3
i4 k4
i5 k1
i5 k2
4/31
-
Druga normalna forma – 2NF
• Teorema. (2NF normalizacija) Ako relacija R(A1, ...,An) nije u 2NF, onda postoji dekompozicija relacije R u skup njenih projekcija koje su u 2NF, a iz kojih se operacijom prirodnog spajanja može ponovo dobiti relacija R.
• Algoritam 2NF normalizacije
• Ulaz: relacija R sa atributima A1,...,An i skupom FZ F;
• Izlaz: skup R1,...,Ri (i ≥ 1) projekcija relacije R, koje su sve u 2NF i za koje važi: ako je i = 1, onda je R1≡R; ako je i > 1, onda je
• R = R1*R2*...* Ri;
5/31
-
Druga normalna forma – 2NF
BEGIN
i := 1;
WHILE relacija R nije u 2NF DO
BEGIN
uočiti parcijalnu FZ X → A, (A- atribut, X-podskup od Atr(R)) sporednog atributa A od ključa X;neka je X = X’X’’, gde je X’ →A potpuna FZ;neka je Z skup atributa relacije R bez X i A;
zameniti relaciju R njenim projekcijama R[XZ];R[X’A];
Ri := R[X’A];
i := i + 1;
R := R[XZ]
END;
Ri := R
END.
6/31
-
Druga normalna forma – 2NF
• Relacija R[X’A] je u 2NF
• R[XZ] je u 2NF ili ulazi u algoritam 2NF normalizacije
• Postupak je korektan (R[X’A]*R[XZ]=R)
• Postupak je konačan• Efikasnost: R[X’Y] umesto R[X’A] za sve sporedne atribute (Y)
koji su parcijalno zavisni od X a potpuno od X’
7/31
-
Treća normalna forma – 3NF
I relacija u 2NF može da pokazuje anomalijePosledica druge vrste nepoželjnih odnosa među atributima- tranzitivne zavisnosti sporednih atributa od ključa Primer: S(P_SIF, I_SIF, DRZAVA)
• predstavljen tip entiteta IZDAVAČ (atributi I_SIF i DRZAVA) i odnos tog tipa entiteta sa tipom entiteta PISAC (predstavljen atributom P_SIF)
• Neka je PK u relaciji S atribut P_SIF,
• Neka važe FZ P_SIF → I_SIF i I_SIF → DRZAVA• Neka NE VAŽE FZ I_SIF → P_SIF ni DRZAVA → I_SIF• (interpretacija)
• Anomalija unošenja
• Anomalija brisanja
• Anomalija ažuriranja
8/31
-
Treća normalna forma – 3NF
• Relacija S je u 2NF
• Anomalije su posledica tzv. tranzitivne zavisnosti sporednog atributa DRZAVA od ključa P_SIF
• Otklanjaju se zamenom relacije S projekcijama
• S[I_SIF,DZAVA]
• S[P_SIF,I_SIF]
• U 3NF
• Bez gubitka informacije
9
-
Treća normalna forma – 3NF
• Definicija. Neka su X,Y,Z skupovi atributa relacije R(A1,…, An). Kaže se da skup atributa Z tranzitivno zavisi od X ako važi
X → Y, Y → Z, i ne važi Y →X . • Definicija. Relacija R je u trećoj normalnoj formi (u oznaci 3NF)
ako je u 1NF i nijedan njen sporedni atribut ne zavisi tranzitivno niod jednog njenog ključa.
• Ako je relacija R u 3NF, onda je relacija R u 2NF
• Teorema (3NF normalizacija). Ako relacija R(A1,…,An) nije u 3NF, onda postoji dekompozicija relacije R u skup njenih projekcija koje jesu u 3NF, koje čuvaju sve polazne FZ relacije R, a iz kojih se operacijom prirodnog spajanja može ponovo dobitirelacija R.
10/31
-
Treća normalna forma – 3NF
• Algoritam 3NF normalizacije
• Ulaz: relacija R sa atributima A1, ..., An i skupom FZ F;
• Izlaz: skup R1,...,Rm (m ≥ 1) projekcija relacije R, koje su sve u 3NF i za koje važi: ako je m = 1, onda je R1 ≡ R; ako je m > 1, onda je R = R1*R2*...* Rm;
11/31
-
Treća normalna forma – 3NF
BEGINi := 1;WHILE relacija R nije u 3NF, DOBEGIN
uočiti tranzitivnu zavisnost X → Y, Y → A, NIJE Y → X , sporednog atributa A od ključa X, za koju je Y → A potpuna
funkcionalna zavisnost;neka je Z skup atributa relacije R bez X i A;zameniti relaciju R projekcijama R[YA]; R[XZ];Ri := R[YA];i := i + 1;R := R[XZ]
END;Ri := R
END.
12/31
-
Treća normalna forma – 3NF
• Algoritam 3NF normalizacije je korektan
• Algoritam 3NF normalizacije je konačan
• Algoritam 3NF normalizacije može da popravi efikasnost: R[YW] umesto R[YA] za sve sporedne atribute (W) koji su tranzitivno zavisni od ključa i netranzitivno zavisni od Y
13/31
-
Algoritam sinteze 3NF relacija
• Algoritmi dekompozicije (analize): univerzalna relacija
• Usitnjene relacije, veliki broj
• Algoritam sinteze minimalnog broja relacija u 3NF
• Polazi od skupa funkcionalnih zavisnosti nad skupom atributa
• Ne uključuje koncept univerzalne relacije niti ključa
• Algoritam se zasniva na
• algebri funkcionalnih zavisnosti,
• Armstrongovim aksiomama,
• pojmu zatvorenja i pokrivanja skupa funkcionalnih zavisnosti
• i pretpostavci o jedinstvenosti funkcionalne zavisnosti
14/31
-
Algoritam sinteze 3NF relacija
• Algoritam sinteze 3NF relacija iz zadatog skupa funkcionalnih zavisnosti
• Ulaz: skup F funkcionalnih zavisnosti;
• Izlaz: minimalni skup relacija R1,...,Rm koje su u 3NF i kojezadovoljavaju sve funkcionalne zavisnosti iz F;
• koraci:
1.Eliminacija nebitnih atributa: eliminisati nebitne atribute iz levih strana FZiz F; neka je G tako dobijeni skup FZ.
2.Nalaženje pokrivanja: naći neredundantno pokrivanje H skupa G.
3.Particionisanje: particionisati skup H u particije H1,...,Hk tako da svefunkcionalne zavisnosti u jednoj particiji imaju identične leve strane.
15/31
-
Algoritam sinteze 3NF relacija
4.Spajanje ekvivalentnih ključeva: za svaki par particija Hi;Hj sa levimstranama X,Y, redom, takvim da postoje obe FZ X → Y; Y → X u H+,spojiti particije Hi i Hj i dodati FZ X → Y, Y → X skupu “dvostranih” FZ J. Iz H izbrisati svaku FZ oblika X → A za A iz Y, i svaku FZ oblika Y → B za B iz X.
5.Eliminacija tranzitivnih zavisnosti: naći podskup H’ skupa FZ H takav da je (H’ J)+ = (H J)+, i da nijedan pravi podskup od H’ nema to svojstvo. Dodati svaku FZ iz J odgovarajućoj particiji iz H’.
6.Konstruisanje relacija: za svaku particiju FZ iz H’ konstruisati relaciju kojasadrži sve atribute te particije. Leva strana svake funkcionalne zavisnostije jedan ključ relacije, a svaki takav ključ zove se sintetizovani ključ.
16/31
-
Algoritam sinteze 3NF relacija
Neredundantno pokrivanje (korak 2.) može da se odredi algoritmom NEREDUND
Tranzitivne zavisnosti (korak 5.) mogu da se eliminišu algoritmom ČLAN
Složenost algoritma je kvadratna u odnosu na dužinu niske kojom se zadaju funkcionalne zavisnosti polaznog skupa F
17/31
-
Algoritam sinteze 3NF relacija
• Primer: Neka je dat skup FZ
F = {A → B; A → C; B → C; B → D; D → B; ABE → F}.
Primena algoritma sinteze 3NF relacija odvija se u sledećim koracima:
1.(eliminacija nebitnih atributa):
G = {A → B; A → C; B → C; B → D; D → B; AE → F}
2.(nalaženje pokrivanja): H = {A → B; B → C; B → D; D → B; AE → F};
3.(particionisanje):
H1 = {A → B}
H2 = {B → C; B → D}
H3 = {D → B}
H4 = {AE → F};
18
-
Algoritam sinteze 3NF relacija
4.(spajanje ekvivalentnih ključeva):H1 = {A → B}H2 = {B → C}H3 = {AE → F}J = {B → D; D → B}
5.(eliminacija tranzitivnih zavisnosti): H’ = H
H’1 = {A → B}H’2 = {B → C; B → D; D → B}H’3 = {AE → F}
6.(konstruisanje relacija):
R1(A;B) (ključ A),R2(B;C;D) (ključ B; ključ D),R3(A;E; F) (ključ {A;E})
19/31
-
Boyce-Codd normalna forma - BCNF
I relacija u 3NF može da pokazuje anomalijePosledica tranzitivne zavisnosti ključnog atributa od ključa• Primer: R(I_SIF, NAZIV, K_SIF, TIRAZ)
• Važe funkcionalne zavisnosti:
• {I_SIF, K_SIF} → TIRAZ;• I_SIF → NAZIV; NAZIV → I_SIF; • {NAZIV, K_SIF} → TIRAZ. • Jedan ključ relacije R je par atributa (I_SIF, K_SIF), • Drugi ključ (kandidat za ključ) je par atributa (NAZIV, K_SIF).• R u 3NF
• Anomalije, npr. promena naziva izdavača uz svaku izdatu knjigu• Uzrok: tranzitivna zavisnost ključnog atributa NAZIV od ključa: • {I_SIF,K_SIF} →I_SIF, I_SIF →NAZIV, NE VAŽI I_SIF →{I_SIF,K_SIF}
20/31
-
Boyce-Codd normalna forma - BCNF
Zamenom relacije R projekcijama
R[I_SIF, NAZIV], R[I_SIF, K_SIF, TIRAZ]
• Uklanjaju se anomalije
• Dekompozicija korektna
• Projekcije su u tzv. BCNF
• Definicija. Relacija R(A1,…,An) je u Boyce-Codd-ovoj normalnoj formi (uoznaci BCNF) ako egzistencija FZ X → Y , gde je X,Y ⊆ {A1,…,An} i X∩Y =Ø, povlači egzistenciju FZ X → Ai, za svako i = 1,2,…,n.
• Sve FZ su posledica ključa
21
-
Boyce-Codd normalna forma - BCNF
• Teorema (BCNF normalizacija). Ako relacija R(A1,...,An) nije u BCNF, onda postoji dekompozicija relacije R u skup njenih projekcija koje su u BCNF, a iz kojih se operacijom prirodnog spajanja može ponovo dobitirelacija R.
• Algoritam BCNF normalizacije
• Ulaz: relacija R sa atributima {A1,...,An} i skupom FZ F;
• Izlaz: skup R1,…,Rm (m ≥ 1) projekcija relacije R, koje su sve u BCNF i za koje važi: ako je m = 1, onda je R1 ≡ R; ako je m > 1, onda je R = R1*R2*...*Rm;
22/31
-
Boyce-Codd normalna forma - BCNF
BEGIN
IF relacija R nije u BCNF, THEN
BEGIN
uočiti funkcionalnu zavisnost X → Y u kojoj leva stranaX nije ključ relacije R i X∩Y =Ø ;
neka je Z = Atr(R) \ XY ;
zameniti relaciju R njenim projekcijama R[XY ],R[XZ];
ponoviti rekurzivno algoritam za relaciju R[XY ];
ponoviti rekurzivno algoritam za relaciju R[XZ]
END
ELSE
izdati relaciju R na izlazu
END.
23/31
-
Boyce-Codd normalna forma - primer
• Relacija SPN( STUDENT, PREDMET, NASTAVNIK)
• važe FZ:
• {STUDENT,PREDMET} → NASTAVNIK,• NASTAVNIK → PREDMET, ali• NE VAŽI PREDMET → NASTAVNIK• Interpretacija
• PK: (STUDENT, PREDMET)
• SPN u 3NF, nije u BCNF
• SPN[STUDENT,NASTAVNIK], SPN[NASTAVNIK,PREDMET] u BCNF
• Jedina netrivijalna FZ je NASTAVNIK → PREDMET• Iz nje se ne izvodi FZ {STUDENT,PREDMET} → NASTAVNIK • Projekcije se ne mogu nazavisno ažurirati
• Dekompozicija nije poželjna
24/31
-
Odnos normalnih formi
• Teorema: Neka je 2NFRel oznaka za skup relacija koje su u 2NF, slično 3NFRel, BCNFRel. Tada važe inkluzije
• BCNFRel 3 3NFRel 2NFRel. Ove inkluzije su stroge (kaošto pokazuju uvodni primeri za definicije 3NF i BCNF).
25/31
-
Dobre i loše dekompozicije
• Dobre, korektne ali nekorisne, nekorektne
• Na primer, u relaciji
• IZDAVAC(I_SIF,STATUS, DRZAVA)
važe FZ I_SIF → DRZAVA, DRZAVA → STATUS, a prema tranzitivnosti i FZ I_SIF → STATUS
• Nije u 3NF
26/31
-
Dobre i loše dekompozicije
• Dekompozicija na 3 načina:
• A:
I1(I_SIF, DRZAVA) = IZDAVAC[I_SIF, DRZAVA]
I2(DRZAVA, STATUS) = IZDAVAC[DRZAVA, STATUS]
• B:
I1( I_SIF, DRZAVA) = IZDAVAC[I_SIF, DRZAVA]
I3(I_SIF, STATUS) = IZDAVAC[I_SIF, STATUS]
• C:
I2(DRZAVA, STATUS) = IZDAVAC[DRZAVA, STATUS]
I3(I_SIF, STATUS) = IZDAVAC[I_SIF, STATUS]
27/31
-
Dobre i loše dekompozicije
• A: korektna i korisna (dobra)
• B: korektna i nekorisna (FZ DRZAVA → STATUS se ne može izvesti u projekcijama I1, I3)
• C: nije korektna jer nije izvedena po FZ
• Pravila dekompozicije:1. zajednički atributi projekcija moraju biti ključ u bar jednoj od projekcija (da bi
se informacija sačuvala);2. potrebno je da se sve FZ polazne relacije mogu izvesti iz FZ u projekcijama
dobijenim dekompozicijom;
• kada su zadovoljena oba pravila, dobijene projekcije su nezavisne u smisluda se mogu nezavisno ažurirati; u slučaju da se drugo pravilo ne može primeniti (kao u nekim slučajevima BCNF dekompozicije), dekompozicija je nekorisna.
28
-
Normalizacija- primer• Baza podataka sadrži podatke o predavanjima, sa informacijama o predavaču
(lični broj, ime, zvanje, naučni stepen), predmetu (šifri predmeta, nazivu, smeru, godini predavanja, fondu časova), vremenu i mestu održavanja. Logičkoprojektovanje relacione baze metodom normalnih formi polazi od univerzalne relacije koja sadrži sve navedene informacije kao svoje atribute i koja je u 1NF (atributi primarnog ključa su podvučeni):
• predavanje( predavač#, ime, zvanje, stepen, šifra_predmeta, naziv,šifra_smera, naziv smera, godina, fond_časova, vreme, br.sale, sprat)
• Funkcionalne zavisnosti u ovoj relaciji su:
• 1. predavač# → ime, zvanje, stepen• 2. šifra_predmeta → naziv• 3. šifra_predmeta, šifra_smera → godina, fond_časova• 4. šifra_predmeta, šifra_smera, predavač#, vreme → br_sale, sprat• 5. šifra smera → naziv_smera• 6. br.sale → sprat
29/31
-
Normalizacija- primer• Iz funkcionalnih zavisnost 1, 2, 3 i 5, sledi parcijalna zavisnost sporednih
atributa ime, zvanje, stepen, naziv, godina, fond_časova i naziv_smera, od primarnog ključa
• 2NF normalizacija proizvodi 2NF relacije:
• 1. predavač (predavač#, ime, zvanje, stepen )
• 2. predmet (šifra_predmeta, naziv)
• 3. predmet-smer (šifra_predmeta, šifra_smera, godina, fond_časova )
(ova se relacija može nazvati i “nastavni plan”)
• 4. smer (šifra_smera, naziv_smera )
• 5. predavanje2 (predavač#, šifra_predmeta, šifra_smera, vreme, br.sale, sprat)
30/31
-
Normalizacija- primer• Relacije 1-4 su i u 3NF
• Relacija predavanje2 ima tranzitivnu zavisnost sporednog atributa sprat od kluča {predavač#, šifra_predmeta, šifra_smera, vreme}, pa se zamenjuje 3NF projekcijama
• sala ( br.sale, sprat)
• predavanje3 ( predavač#, šifra_predmeta, šifra_smera, vreme, br.sale)
• Rezultat logičkog projektovanja je skup relacija
{predavač, predmet, predmet-smer, smer, sala, predavanje3}
31/31