Dana je relacija R(S) z množico atributov S in funkcijskimi odvisnostmi oblike X→A, kjer je X⊆S in A∈S.
Lastnosti funkcijskih odvisnosti:
Ključi:
Normalne oblike:
3NF: za vsako funkcijsko odvisnost X→A velja
A∈X∨X vsebuje ključ∨A je del ključa.BCNF: za vsako funkcijsko odvisnost X→A velja
A∈X∨X vsebuje ključ.Dana je relacija R(ABCDE) s funkcijskimi odvisnostmi A→B, BC→E in DE→A. Najdi vse ključe za R. Ali je R v 3NF/BCNF?
Izpeljane funkcijske odvisnosti:
A→BBC→EDE→AAC→BAC→CAC→EBCD→DACD→BACD→EBCD→ABCD→ECDE→ACDE→BKljuči: ACD, BCD, CDE
fun. odv. | 3NF | BCNF |
---|---|---|
A→B | ja | ne |
BC→E | ja | ne |
DE→A | ja | ne |
R je v 3NF, ni v BCNF.
Primer podatkov:
A | B | C | D | E |
---|---|---|---|---|
1 | a | x | Q | Z’ |
1 | a | y | R | W |
2 | a | x | S | Z’ |
2 | a | z | S | Z |
Anomalija spreminjanja: če popravimo Z v Z’ v stolpcu E prve vrstice, moramo to ponoviti še v tretji vrstici.
V SQL lahko za to poskrbimo z določilom ON UPDATE CASCADE
pri določitvi tujih ključev.
Imejmo sledeče atribute z ER diagrama letališčne baze:
oznaka | opis |
---|---|
D | datum kontrole |
E | EMŠO tehnika |
I | ime testa |
K | kapaciteta letala |
M | model letala |
O | dosežena ocena pri kontroli |
P | plača tehnika |
R | reg. št. letala |
S | oznaka specializacije |
T | test |
Določi funkcijske odvisnosti med zgornjimi atributi, če lahko test na nekem letalu izvaja samo tisti tehnik, ki je specialist za model letala.
Pretvori shemo v 3NF. Ali se sklada s shemo, dobljeno iz ER diagrama?
Ključi: DERT, DRST
Dane so sledeče podrelacije relacije R(ABCDEFGHI) skupaj s funkcijskimi odvisnostmi.
Za vsak primer ugotovi, ali je podrelacija v BCNF, in če ni, jo pretvori v BCNF.
Ključ: ACE
Ključ: AB
3., 4., 5. so v BCNF.
Dana je relacija R(ABCD) in sledeče množice funkcijskih odvisnosti.
Za vsako ugotovi, v kateri normalni obliki je R, in jo pretvori v BCNF.
Ključ: B; ni v 3NF
Ključ: BD; ni v 3NF
Ključa: ABC, BCD; je v 3NF, ni v BCNF
Ključ: A, ni v 3NF
Ključi: AB, AD, BC, CD; je v 3NF, ni v BCNF