196 3. RELACYJNYMODHL DANYCH
nic jest nadkluczem. la zależność wielowartościowa może być istotnie wie-lowartośeiowa albo może być wyprowadzona /. pewnej zależności funkcyjnej A\A2...A„ —*■ ... jako że każda zależność funkcyjna jest również
wielo wartość i owa. Wówczas schemat relacji R, który nie spełnia warunku 4NF, dzielimy na dwa schematy:
1. Pierwszy schemat zawiera wszystkie atrybuty typu A i typu B.
2. Drugi schemat zawiera wszystkie atrybuty typu A oraz te wszystkie z /?, które nie są ani typu A, ani typu B.
PRZYKŁAD 3.‘18
Rozważmy przykład 3.47. Wiemy już. że zależność nazwisko -*-> ulica miasto
powoduje naruszenie warunku 4NF. Zasada dekompozycji każe nam zastąpić pięcioatrybutowy schemat przez dwa schematy, jeden z nich ma trzy atrybuty, które występują w zależności wiclowartościowej, a drugi z nich składa się z atrybutów lewej strony zależności nazwisko oraz z pozostałych atrybutów nie występujących w zależności. Otrzymamy w ten sposób następujące schematy:
{nazwisko, ulica, miasto}
{nazwisko, tytuł, rok}
W żadnym z. tych schematów nie ma nietrywialnych zależności wielowarto-ściowych (ani funkcyjnych), a zatem spełniają one warunek 4NF. Zauważmy, żc w schemacie {na zwi s ko, ulica, raias to} zależność:
nazwisko—*-► ulica miasto
jest trywialna, ponieważ obejmuje wszystkie atrybuty relacji. Podobnie w schemacie {nazwisko, tytuł, rok} zależność wielowartościowa
nazwisko —»-+ tytuł, rok
jest trywialna. Gdyby jednak okazało się, żc któryś ze schematów lub oba nie spełniają warunku 4NF, to trzeba by zastosować ponownie algorytm dekompozycji.
□
Podobnie jak w przypadku dekompozycji BCNF i tutaj po każdym kroku schematy wynikowe mają mniej atrybutów niż schemat wejściowy. A zatem w końcu otrzymamy schematy, który ch już nie trzeba dekomponować, tzn. żc będą już. wszystkie w postaci 4NF. A ponadto i dla tego algorytmu można zastosować to samo rozumowanie z p. 3.7.6, które prowadziło do uwiarygodnienia dekompozycji w przypadku BCNF. Jeśli dckomponujemy relację ze względu na zależność wielowartościową
to możemy na podstawie otrzymanych schematów oraz tej zależności zrekonstruować schemat wejściowy.
Rzutowanie zależności wielowartościowych
Aby zastosować dekompozycję do czwartej postaci normalnej, należy najpierw określić zależności wielo wartościowe spełnione w relacjach wynikowych. Dobrze byłoby znaleźć te zależności. Niestety nie ma prostego testu, takiego jak domknięcie zbioru (p. 3.6.3) w przypadku zależności funkcyjnych. Z kolei kompletny zbiór reguł wnioskowania wspólny dla zależności funkcyjnych i wielowartościowych jest na tyle złożony, żc wykracza poza zakres naszego podręcznika. W dalszych rozdziałach jednak poświęcamy trochę miejsca temu tematowi.
Na szczęście często można otrzymać właściwą zależność dla jednego z wynikowych schematów dekompozycji przez zastosowanie reguły prze-chodniości, dopełnienia lub przecięcia [ćwiczenie 3.8.7 (b)]. Gorąco zatem polecamy wykonanie ćwiczeń.
Wspomnieliśmy już, że z postaci 4NF wynika postać BCNF, a z kole z BCNF wynika postać 3NF. Oznacza to, że zbiór instancji schematu relacyj nego spełniających poszczególne warunki postaci normalnych tworzy hierat chię. Przedstawiono ją na rys. 3.41. A zatem, jeśli zbiór krotek spełnia w aru nek 4NF, to z. pewnością spełnia dwa pozostałe warunki „normalności”, a jeś spełnia warunek BCNF. to spełnia również warunek 3NF. Ale zależnie o rodzaju zależności mogą wystąpić takie zbiory krotek, które spełniają wari nek 3NF, ale nie spełniają warunku BCNF. Analogicznie w przypadku okre słonych zbiorów zależności funkcyjnych lub wielowartościowych możn wyróżnić zbiory krotek, które są w postaci BCNF, ale nic w 4NF.
Postacie normalne można także porównywać ze względu na właściwość relacji, uzyskanych w wyniku dekompozycji. Takie porównanie zaprezenti wano na rys. 3.42. Otóż w BCNF ( a zatem i w 4NF) nie występuje redundar cja ani inne anomalie, które wynikają z. zależności funkcyjnych. Natomiai w postaci 4NF dodatkowo nie występuje redundancja spowodowana tyn nietrywialnymi zależnościami wielowartościowymi, które nic są jednocześni