198 3. RELACYJNY MODEL DANYCH
RYSUNEK 3.41
Z postaci 4NF wynika postać BCNF. a z BCNF wynika 3NF
zależnościami funkcyjnymi. Do wyeliminowania redundancji często wystarcza postać 3NF, ale istnieją takie przykłady, kiedy potrzeba innych postaci. Dekompozycję do postaci 3NF warto stosować zawsze wtedy, kiedy trzeba zachować zależności funkcyjne, nic traci się ich bowiem w procesie dekompozycji (nie omawialiśmy tego przypadku algorytmu w naszej książce). Dekompozycja do postaci BCNF nic gwarantuje zachowania zależności funkcyjnych, a żadna postać normalna nic gwarantuje zachowania zależności wielo-wartościowych, niemniej jednak w typowych przypadkach są one zachowane.
Właściwość |
3NF |
BCNF |
4NF |
Eliminowanie redundancji przez zależności funkcyjne |
Większość |
Tak |
Tak |
Eliminowanie redundancji przez zależności wielowartościowe |
Nie |
Nie |
Tak |
Zachowanie zależności funkcyjnych |
Tak |
Możliwe |
Możliwe |
Zachowanie zależności wielowar-tościowych RYSUNEK 3.42 |
Możliwe |
Możliwe |
Możliwe |
Właściwości postaci normalnych oraz ich dekompozycji
"Ćwiczenie 3.8.1. Niech dana będzie relacja R(A, B, Cj, w której zachodzi zależność wielowartościowa A —»-» B. Jeśli wiadomo, Ze do instancji R nalcża krotki (a, hu c\), (a, ł>2, c2) oraz (a, h2, c3); to jakie jeszcze inne krotki też na pewno nale2ądo R?
"Ćwiczenie 3.8.2. Chcemy określić relację, w której będzie się przechowywać nazwisko osoby, numer jej ubezpieczenia społecznego oraz datę urodzenia. A także nazwisko każdego dziecka tej osoby, numer ubezpieczenia społecznego tego dziecka, jego datę urodzenia oraz markę i numer seryjny samochodu, który' posiada dana osoba. Precyzyjniej zapiszemy to w ten sposób, że krotki tej relacji przyjmują postać następującą:
(n, s, b, cn, cst cb, as, am\
gdzie:
1. n oznacza nazwisko osoby o numerze ubezpieczenia społecznego .v.
2. b oznacza datę urodzenia osoby n.
3. cn oznacza nazwisko dziecka osoby n.
4. cs oznacza numer ubezpieczenia społecznego osoby cn.
5. cb jest datą urodzenia dziecka cn.
6. as oznacza numer seryjny jednego z samochodów osoby n.
7. ant oznacza markę samochodu as.
Dla tej relacji należy określić:
a) Spodziewane zależności funkcyjne i wielowartościowe.
b) Sposób dekompozycji do postaci 4NF.
Ćwiczenie 3.8.3. Dla każdego z poniższych schematów relacyjnych oraz zależności:
*a) R (A, B, C, D) oraz A -»» B i A —► C.
b) R (A, B, C, D) oraz A ->-* B i A —*~* CD.
c) R (A, B, C, D) oraz AB -+* C i zależność funkcyjna B—*D.
d) R (A, B, C, D, E) oraz A -*-* B i AB —*-*■ C, a także zależności funkcyjni
A —* D\ AB —*■ E.
należy:
i) Określić wszystkie naruszenia warunku 4NF.
ii) Przeprowadzić dekompozycję do zbiorów schematów spełniających warune 4NF.
JĆwiczenie 3.8.4. W ćwiczeniu 2.3.2 omówiliśmy cztery różne założenia dotycząc związku Urodzenia. Dla każdego przypadku z osobna należy wskazać zależność wielowartościowe (różne od funkcyjnych), które będą zachodzić w wynikowej rclacj
Ćwiczenie 3.8.5. W nieformalny sposób należy uzasadnić, dlaczego żaden z pięci atrybutów z przykładu 3.43 nie zależy funkcyjnie od czterech pozostały ch.
JĆwiczenie 3.8.6. Korzystając z. definicji zależności wiclowartościowej, należy w; kazać, żc zachodzi dla nich reguła dopełnienia.
JĆwiczenie 3.8.7. Należy wykazać, że dla zależności wielowartościowych zachód: następujące reguły: