148 3 RELACYJNY MOOPl. DANYCH
to taki zbiór zależności skrótowo przedstawiamy jako:
A\A2... A„ —► B]B2... Bm
Na rysunku 3.26 schematycznie przedstawiono zależność funkcyjną w relacji R oraz jej znaczenie dla dwóch krotek tej relacji: t oraz u.
są być także
zgodne tu zgodne tu
RYSUNEK 3.26
Wynik zależności funkcyjnej dwóch krotek
tytuł |
rok |
długość |
typFilmu |
nazwaStudia |
nazwisko- Gwiozdy |
Gwiezdne Woj ny |
1977 |
124 |
kolor |
Fox |
Carrie Fishor |
Gwiezdne Wojny |
1977 |
124 |
kolor |
Fox |
Mark Hamill |
Gwiezdne Wojny |
1977 |
124 |
kolor |
fc'ox |
Harrisor. Ford |
Por.ężne Kaczory |
1993 |
104 |
kolor |
Disney |
Emilio Estevez |
Świat Wayne'a |
1992 |
95 |
kolor |
Paramount |
Dana Carvey |
Świat Wayne'a RYSUNEK 3.27 Relacja Fi Irr. PR/.YKł.AD 3.20 |
1992 |
95 |
kolor |
Paramount |
Mikę Meyers |
Rozważmy relację Film z rys. 3.13. której instancję prezentujemy na rys. 3.27. W relacji Film w łatwy sposób można wyodrębnić kilka zależności funkcyjnych. Na przykład mogą to być następujące trzy zależności:
tytuł rok —*■ długość tytuł rok —typFilrnu tytuł rok —> nazwaStudia
Ponieważ te wszystkie trz>' zależności mają te same atrybuty po lewej stronie, zatem możemy je skrótowo zapisać w następujący sposób:
tytuł rok —* długość typFilrnu nazwaStudia
Powyższy zbiór zależności funkcyjnych można odczytać w nieformalny sposób następująco: jeśli dwie krotki mają takie same wartości składowej tytuł, a także takie same wartości składowej rok, to te dwie krotki muszą mieć również takie same wartości składowej długość, takie same wartości składowej typFilrnu oraz takie same wartości składowej nazwaStudia. Takie stwierdzenie nabiera sensu, gdy przypomnimy sobie projekt początkowy, z którego utworzyliśmy schemat relacji Film. Atrybuty tytuł i rok tworzą klucz relacji. Dlatego też można się spodziewać, że przy konkretnym tytule i roku musi istnieć jedna określona długość filmu, jeden typ filmu oraz. jedyne studio, które ten film wyprodukowało.
Wnioski na temat schematu na podstawie zależności funkcyjnych
Nie zapominajmy o tym, że zależności funkcyjne, tak jak każde inne więzy, dotyczą schematu bazy, a nic określonej instancji. Patrząc na jakąś instancję, nigdy nie możemy twierdzić, że na pewno istnieją jakieś zależności funkcyjne, albo żc ich nie ma. Patrząc na przykład na rys. 3.27, moglibyśmy wysnuć wniosek, że występuje z ileżność tytuł —> typFi lmu, ponieważ w każdej krotce akurat tej instancji relacji Film zachodzi to, żc jeśli dwie krotki mają ten sam tytuł, to zgadza się również typ Fi lmu.
Nie możemy jednak stwierdzać na tej podstawie, żc jest to zależność funkcyjna w relacji Film. Gdyby na przykład jakaś instancja zawierała krotki opisujące obie wersje King Konga, z których jedna jest czarno-biała, a druga kolorowa, to nasze wcześniejsze stwierdzenie zostałoby obalone.
Jednakże przy bliższej obserwacji widać, żc zdanie
tytuł rok —* nazwiskoGwiazdy
jest fałszywe, nie określa ono bowiem zależności funkcyjnej. Mogliśmy oczekiwać, że ponieważ atrybuty tytuł i rok są kluczem dla filmów, to taka zależność musi być prawdziwa. Jednak film nie ma jednoznacznie określonego zbioru gwiazd, zc względu na sposób w jaki była zdefiniowana klasa Film. Przy przekształcaniu opisu w języku ODL do postaci modelu relacyjnego trzeba było dla każdego filmu utworzyć szereg krotek, po jednej dla