Preuzmite Baze podataka normalizacija i više Skripte u PDF od Baze podataka samo na Docsity!
Baze podataka
Normalizacija
Sadržaj
- Ključevi
- Funkcijska zavisnosti
- Prva normalna forma
- Druga normalna forma
- Treća normalna forma
- Bojs-Kodova normalna forma
Ključevi
Primer 1:
Klijent( JMBG, Ime, MobilniTel, FiksniTel)
- Super ključevi:
- JMBG
- MobilniTel
- JMBG, Ime
- JMBG, MobiniTel
- JMBG, FiksniTel
- MobilniTel, Ime
- MobilniTel, FiksniTel
- JMBG, Ime, MobiniTel
- JMBG, Ime, FiksniTel
- JMBG, MobiniTel , FiksniTel
- Ime, MobiniTel , FiksniTel
- JMBG, Ime , MobiniTel , FiksniTel
- Primarni ključ:
- JMBG - Alternativni ključ: - MobilniTel - Ključni atributi: - JMBG - MobilniTel - Neključni atributi: - Ime - FiksniTel
Ključevi
- IdA
- IdA, Boja
- IdA, RegGrad
- IdA, RegBroj
- IdA, IdM
- RegGrad, RegBroj
- RegGrad, RegBroj, IdA
- RegGrad, RegBroj, Boja
- ….
Primer 2:
Automobil( IdA, Boja, RegGrad, RegBroj, IdM)
- Super ključevi:
- Kandidat ključevi:
- Primarni ključ:
- Alternativni ključ:
- Ključni atributi:
- Neključni atributi:
Problemi redundanse (višestrukost)
- Primer 4: PREDAVAC( IdP, Ime, Prezime, SifraPredmeta )
- Problem je redundantnost podataka, koja izaziva:
- višestruko unošenje (za svaku šifru predmeta, unosili bi ponovo već postojeće ime i prezime predavača)
- višestruko menjanje (u slučaju menjanja imena ili prezimena, na više mesta se vršili promenu)
- višestruko uklanjanje (u slučaju brisanja predmeta, na više mesta bi uklanjali ime i prezime predavača)
- Neljkučni atribut zavisi samo od jednog ključnog atributa. IdP Ime Prezime SifraPredmeta 1 Stefan Tubić 13S112BP 1 Stefan Tubić 13E113BP 2 Filip Hadžić 13S112BP 2 Filip Hadžić 13E113BP 3 Tamara Šekularac 13E113BP
Problemi redundanse (anomalije)
- Primer 4: PREDAVAC( IdP, Ime, Prezime, SifraPredmeta )
- Problem je redundantnost podataka, koja izaziva:
- anomaliju unošenja (ne možemo da unesemo novog predavača ako nema predmet koji drži)
- Npr. ako imamo predavača Peru Perića koji ne predaje ništa, onda ne možemo da ga unesemo u bazu
- anomaliju uklanjanja (može se desiti da uklanjanjem jednog podatka, uklonimo i drugi nezavisan podatak)
- Npr. ako se ukine (obriše) predmet 13E113BP1, onda bi i Tamara Šekularac bila uklonjena iz baze IdP Ime Prezime SifraPredmeta 1 Stefan Tubić 13S112BP 1 Stefan Tubić 13E113BP 2 Filip Hadžić 13S112BP 2 Filip Hadžić 13E113BP 3 Tamara Šekularac 13E113BP
Primeri loše baze
POZAJMICA( IdN, IdC, Datum, Dana, IdK )
IdN – Identifikacija naslova knjige IdC – Identifikacija člana biblioteke Datum – Datum preuzimanja knjige Dana – Broj dana pozajmice knjige IdK – Identifikacija knjige “Ako znamo knjigu (IdK), onda znamo i koji je naslov knjige (IdN)” ili “IdN zavisi od IdK ( IdK → IdN )”
- Problem što ključni atributi zavise od neključnih atributa
Funkcijska zavisnost
- Šema relacije R je konačan skup atributa 𝐴𝑖 i konačan skup O ograničenja nad vrednostima tih atributa.
- Relacija r nad šemom relacije R je konačan skup torki vrednosti atributa.
- X, Y i Z su podskupovi atributa šeme relacije R.
- Nad šemom relacije R postoji funkcijska zavisnost X→Y ako u relaciji r nad tom šemom za bilo koje dve torke 𝑡 1 i 𝑡 2 za koje je 𝑡 1 𝑋 = 𝑡 2 𝑋 uvek važi da je i 𝑡 1 𝑌 = 𝑡 2 𝑌 , tj. : ∀𝑡 1 ∀𝑡 2 𝑡 1 ∈ 𝑟 ∧ 𝑡 2 ∈ 𝑟 ∧ 𝑡 1 𝑋 = 𝑡 2 𝑋 ⇒ 𝑡 1 𝑌 = 𝑡 2 𝑌
- Primer 5: IdA → IdM : DRZI( IdM, IdK, Datum, IdA) “Ako znamo automobil ( IdA ) onda znamo i njegov model ( IdM )” IdM, IdK → Datum, IdA : “Ako^ znamo^ model^ ( IdM ) i znamo^ klijenta ( IdK )^ onda znamo^ i datum od kada je iznajmljen – drži i automobile ( IdA ) ”
Funkcijska zavisnost
- Armstrongova pravila:
- Unija: 𝑋 → 𝑌 ∧ 𝑋 → 𝑍 ⟹ 𝑋 → 𝑌𝑍 IdA, IdK → Datum ∧ IdA, IdK → IdM ⟹ IdA, IdK → IdM, Datum
- Kompozicija: 𝑋 → 𝑌 ∧ 𝑍 → 𝑊 ⟹ 𝑋𝑍 → 𝑌𝑊 IdM, IdK → Datum ∧ IdA → IdM ⟹ IdM, IdK, IdA → Datum, IdM
- Dekompozicija: 𝑋 → 𝑌𝑍 ⟹ 𝑋 → 𝑌 ∧ 𝑋 → 𝑍 IdA, IdK → IdM, Datum ⟹ IdA, IdK → Datum ∧ IdA, IdK → IdM
- Pseudotranzitivnost: 𝑋 → 𝑌 ∧ 𝑊𝑌 → 𝑍 ⟹ 𝑋𝑊 → 𝑍 IdA → IdM ∧ IdM, IdK → Datum ⟹ IdA, IdK → Datum
Funkcijska zavisnost
- Funkcijska zavisnost je:
- Superključna akko za 𝑋 → 𝑌 važi da je 𝑋 → 𝑅 IdM, IdK → Datum IdM, IdK → IdM, IdK, Datum, IdA
- Trivijalna akko za 𝑋 → 𝑌 važi da je Y podskup od 𝑋 IdM, IdK → IdK
- Totalna akko za 𝑋 → 𝑌 ne postoji ni jedan pravi podskup 𝑍 od 𝑋, za koje važi Z → 𝑌 IdM, IdK → Datum ( IdM → Datum , IdK → Datum )
- Parcijalna akko za 𝑋 → 𝑌 postoji pravi podskup 𝑍 od 𝑋, za koje važi Z → 𝑌 IdA, IdM, IdK → Datum ( IdM, IdK → Datum )
- Tranzitivna akko za 𝑋 → 𝑌 postoji 𝑍 različito od 𝑋 i Y i važi 𝑋 → 𝑍 iZ → 𝑌 IdA, IdK → Datum ( IdA, IdK → IdM, IdK ∧ IdM, IdK → Datum )
Zatvarač skupa atributa
DRZI( IdM, IdK, Datum, IdA)
IdA → IdM; IdM, IdK → Datum, IdA
IdM+^ = IdM IdA+^ = IdA, IdM ( IdM, IdK )
= IdM, IdK, Datum, IdA ( IdA, IdK )+^ = IdM, IdK, Datum, IdA
- Primena:
- Izračunavanje zatvarača F +
- Nalaženje skupa atributa koji su kandidat ključevi
- Nalaženje skupa atributa koji su super ključevi Rezultat = X; While ( postoje promene u Rezultat ) { For Each (Y → Z in F) { If ( Y ⊆ Rezultat) Rezultat = Rezultat ∪ Z } }
Pronalaženje kandidat ključa
Data je relacija R i skup funkcijskih zavisnosti F. Potrebno je naći kandidat
ključeve (KK).
Opšti postupak:
I. Ukloniti trivijalne funkcijske zavisnosti iz F II. Analizirati svaki atribut iz R i rasporediti atribute u četiri grupe: i. Elementi koji se ne nalaze ni u jednoj funkcijskoj zavisnosti u F ii. Elementi koji se nalaze isključivo sa leve strane funkcijskih zavisnosti u F iii. Elementi koji se nalaze isključivo sa desne strane funkcijskih zavisnosti u F iv. Elementi koji se nalaze sa obe strane funkcijskih zavisnosti u F III. Izvršiti uniju grupa i i ii i odrediti zatvarač skupa atributa (grupa i i ii je sigurno deo KK) IV. A) Ako se u koraku III dobio KK to je jedini KK. B) Ako se u koraku III nije dobio KK, onda se kombinuje unija grupa i i ii sa atributima grupe iv. Kombinacije se vrše iterativno po broju atributa.
Pronalaženje kandidat ključa
III. Izvršiti uniju grupa i i ii i odrediti zatvarač skupa atributa ( F, D )+→ F, D Nismo dobili sve atribute iz R (FD nije KK) ( F, D, A )
→ F, D, A ( F, D, B )+→ F, D, B, A, E, C ( F, D, C )+→ F, D, C, B, A, E (nema svih atributa iz R ⟹ FDA nije KK) (svi atributi iz R ⟹ FDB je KK) (svi atributi iz R ⟹ FDC je KK) Nema potrebe da analiziramo kombinacije sa četiri (i više) atributa, jer bi ostale kombinacije formirale super ključ koji nije kandidat ključ. i. F ii. D iii. E iv. A, B,C F= {AB→C, C→B, CD→AD, BD→AE} IV. B) Kombinovanje unije grupa i i ii sa atributima grupe iv Analiziramo kombinacije sa tri atributa:
Dekompozicija
- Polazna relacija se dekomponuje (podeli) na više relacija.
Svi atributi iz početne relacije se moraju pojaviti i u novim relacijama,
dok se novi atributi ne uvode.
- Cilj je ukidanje viška podataka bez gubitaka informacija.
- Dekompozicija je dobra u slučaju da su očuvane sve funkcijske zavisnosti.
- Primer 4: PREDAVAC( IdP, Ime, Prezime, SifraPredmeta ) →
PREDAVAC( IdP, Ime, Prezime ), PREDAJE ( IdP, SifraPredmeta )
- Primer 5: DRZI( IdM, IdK, Datum, IdA) →
AUTOMOBIL ( IdA, IdM ), DRZI ( IdA, IdK, Datum )