164 3. RELACYJNY MODEL DANYCH
Zależność funkcyjna A\A2... A„ —> B\B2... Bm świadczy o tym, że wszystkie atrybuty Bi, B2, ..., Bm należą do zbioru {A\, A2, ..., A,,}'. Stosując zależność B,B2... Bm —> C\C2... mamy więc prawo dołączyć również atrybuty Ci, C2,..., Ck do zbioru {A], A2, ...fA„y. Ponieważ wszystkie elementy C1C2... Ca znalazły się w ten sposób w zbiorze {A\, A2,..., An}~. więc możemy wysnuć wniosek, że zależność
A\A2... A„ —*■ C\C2... Ck
jest spełniona we wszystkich relacjach, które spełniają jednocześnie zależności A]A2... A„ —* B\B2... Bm oraz B\B2... Bm —> C\C2... C*.
Domknięcia i klucze
Zauważmy, że zbiór {Ah A2, ...,A„}*zawiera wszystkie atrybuty relacji R wtedy i tylko wtedy, gdy elementy A,, A2,..., Ar. są nadkluczem w R. Bo-wiem tylko wtedy wszystkie atrybuty są zależne funkcyjnie od zbioru A\, A2,..., A„. A zatem stwierdzenie, czy atrybuty A\, A2,..., A„ stanowią klucz relacji, może polegać na sprawdzeniu po pierwsze, czy wszystkie atrybuty R należą do zbioru {A 1, A2,..., A,.}\ a potem czy S* otrzymane z dowolnego S, który tworzy'my przez usunięcie choćby jednego elementu spośród AhA2,..., An, nie zawiera wszystkich atrybutów' R.
PRZYKŁAD 3.30
Rozważmy relację Film z rys. 3.12, która powstała w p. 3.2.4 z czterech atrybutów klasy oraz związku należyDo z klasą studio. Poniżej przedstawiamy relację i przykład danych:
tytuł |
rok |
długość |
typFilmu |
nazwaSludia |
Gwiezdne wojny |
1977 |
124 |
kolor |
Fox |
Potężne Kaczory |
1991 |
104 |
kolor |
Disney |
Świat Wayne'a |
1992 |
95 |
kolor |
Paramount |
Przypuśćmy, że pewne dane o studiu producenta filmu chcemy przechowywać w tej samej relacji. Dla uproszczenia dołączymy tylko nazwę miasta, która będzie reprezentować adres studia. Wówczas relacja może wyglądać następująco:
tytuł |
rok |
długość |
typFilmu |
nazwaSludia |
adresStudia |
Gwiezdne wojny |
1977 |
124 |
kol or |
Fo x |
Hollywood |
Porężne Kaczory |
1991 |
104 |
kolor |
Disney |
Buena Vista |
Świat Wayne'a |
1992 |
95 |
kolor |
Paramount |
Hollywood |
Z tych danych w łatwy sposób wynikają dwie zależności:
tytuł rok —* nazwaSludia nazwaStudia —*■ adresStudia
Pierwsza z nich jest uzasadniona, ponieważ związek należyDo z klasy Pi lm jest jednowartościowy, dany film należy bowiem tylko do jednego studia. Drugą zależność uzasadnia fakt, że atrybut adres w klasie Studio jest jednowartościowy, jest on typu string (porównaj rys. 2.6).
Zastosowanie reguły przechodniości pozwala utworzyć nową zależność:
tytuł rok —» adresStudia
Z tej zależności wynika, że adres zależy funkcyjnie od tytułu i roku (filmu) bowiem jest to adres studia produkującego film.
C
Z powyższych rozważań wynika, że zbiór zależności można rozszerzy< o nowe zależności zarówno trywialne, jak i nietrywialne. W następnych roz działach chcemy rozróżniać zależności dane, które wynikają bezpośredni* z definicji relacji, od zależności wyprowadzonych z tego oryginalnego zbioru przez zastosowanie jednej z opisanych powyżej reguł lub przez przetworzeni algorytmu domknięcia zbioru atrybutów.
Czasami może się zdarzyć, że istnieje wybór zależności, których używ się do reprezentowania pełnego zbioru zależności relacji. Każdy zbiór zaleś ności relacji, z którego można wyprowadzić wszystkie inne zależności U relacji, nazywa się bazą tej relacji. Jeśli składa się tak, żc żaden z podzbioró' bazy nie umożliwia wyprowadzenia wszystkich zależności, to taka baza ni żywa się minimalną.
PRZYKŁAD 3.31
Rozważmy relację R(A, B, C), w której każdy atrybut zależy funkcyjnie c pozostałych dwóch atrybutów. Pełny zbiór zależności zawiera zatem sze: zależności z jednym atrybutem po lewej stronie i jednym po prawej: A —> j A -+ C\ £ —> A, B —> C, C A, C —► B. W tym zbiorze znajdują się tak: trzy zależności nietrywialne: AB —> C, AC —► B oraz BC —* A. Skróty p zależności takie jak A —► BC oraz tryw ialne zależności postaci A —► A oraz n całkiem trywialne AB —* BC można także dołączyć do tego zbioru (mimo nasza ścisła definicja zależności funkcyjnych nie wymaga dołączania zależn ści trywialnych, częściowo trywialnych ani takich z kilkoma atrybutami ) prawej stronie).