176 3. RELACYJNY MODEL DANYCH
2. Schemat zawierający wszystkie atrybuty relacji film poza trzema, które występują po prawej stronic zależności. Usuwamy więc: długość, typFilmu oraz nazwaStudia i pozostaje schemat:
{tytuł, rok, nazwiskoGwiazdy)
Zauważmy, że są to schematy relacji Filml i Film2 z przykładu 3.32. Już wiemy, że są one w postaci BCNF.
□
PRZYKŁAD 3.37
Rozważmy teraz ponownie relację StudioFilmowe, która została wprowadzona w przykładzie 3.30. Przechowuje się w niej dane o filmach, studiach oraz adresach studiów. Schemat i niektóre typowe krotki tej relacji przedstawiono na rys. 3.34.
tytuł |
rok |
długość |
typFilmu |
nazwaStudia |
adresStudia |
Gwiezdne Wojny |
1977 |
124 |
kolor |
Fox |
Hollywood |
Potężne Kaczory |
1991 |
104 |
kolor |
Disney |
Buena Vista |
Świat Wayne'a |
1992 |
95 |
kolor |
Paramount |
Hollywood |
Rodzina Adamsów RYSUNEK 3.34 |
1991 |
102 |
kolor |
Paramount |
Hollywood |
Relacja St ud i o Filmowe
Zauważmy, że w relacji studio Filmowe występuje redundancja. Do naszych przykładowych danych dołączyliśmy drugi film, wyprodukowany w studio Paramount, więc adres tego studia występuje już dwukrotnie. Jednakże wynika to z innych przyczyn niż w przykładzie 3.36. Tam bowiem źródło redundancji tkwiło w tym, źe związek wielo wartościowy (gwiazdy danego filmu) był przechowywany razem z innymi danymi filmu. Tutaj natomiast wszystkie właściwości są jcdnowartościowe: atrybut długość filmu, związek między filmem i studiem należyDo oraz atrybut studia o nazwie adresStudia.
W tym przypadku problem redundancji wynika z „zależności przechodniej”. Jak już wspomnieliśmy w przykładzie 3.30, w relacji sturiioFilinowe występują dwie zależności:
tytuł rok —► nazwaStudia nazwaStudia —*• adresStudia
3.7, PROJEKTOWANIE RELACYJNYCH SCHEMATÓW BAZ. UANTi.n ...
Po zastosowaniu reguły przechodniości u/.yskujemy nową zależność
tytuł rok —> adresStudia
A zatem atrybuty tytuł i rok (klucz filmu) wyznaczają funkcyjnie adres lego studia, które wyprodukowało film. Ponieważ istnieje jeszcze inna oczywista zależność:
tytuł rok -* długość typFilmu
więc stad wynika, że {tytuł, rok} stanowi klucz relacji StudioFilraowe, a nawet jedyny klucz tej relacji.
Z kolei zależność
nazwaStudia —► adresStudia
którą zastosowaliśmy w regule przechodniości nic jest zależnością trywialną, ale jej lew a strona nie jest nadkluczem. Ta obserwacja prowadzi do wniosku, że relacja StudioFilmowe nie spełnia warunku BCNF. Możemy to naprawić, stosując regułę dekompozycji z uwzględnieniem powyższej zależności. Atrybuty z zależności wchodzą do pierwszego schematu, powstałego w wyniku dekompozycji:
{nazwaStudia, adresStudia}
Do drugiego schematu będą należeć wszystkie atrybuty' relacji StudioFilmowe, poza atrybutem adresStudia, ponieważ występuje on po prawej stronie zależności, z której korzysta się w dekompozycji. A więc drugi schemat przedstawia się następująco:
{tytuł, rok, długość, typFilmu, nazwaStudia}
W wyniku rzutowania danych z rys. 3.34 na tc schematy otrzymujemy dwie relacje: StudioFilmowel oraz StudioFiłmoweŻ, które zostały przedstawione na rys. 3.35 oraz 3.36. Każda z nich jest w' postaci BCNF. Jedynym kluczem w relacji StudioFilmowel jest zbiór {tytuł, rok}, a w relacji StudioFilmoweŻ zbiór {nazwaStudia}. Dla obu relacji istnieją nietry-wialne zależności, które z lewej strony nie zawierają tych kluczy.
tytuł |
rok |
długość |
typFilmu |
nazwaStudia |
Gwiezdne Wojny |
1977 |
124 |
kolor |
Fo>: |
Potężne Kaczory |
1991 |
104 |
kolor |
Disney |
Świat Wayne'a |
1992 |
95 |
kolor |
Paramount |
Rodzina Adamsów |
1991 |
102 |
kol or |
Paramount |
RYSUNEK 3.35 Relacja StuuioFi lmowel