126 3 RELACYJNY MODEL DANYCH
szczególnych wartości. I tak jak w przypadku atrybutów o ty pie zbioru. przy tej technice zagadnienie redundancji pozostaje otwarte, ponieważ wartości innych atrybutów relacji muszą się powtarzać dla każdego elementu ze zbioru. Ten problem zostanie rozwiązany w podrozdziale 3.7, więc na razie pogodzimy się z takim stanem rzeczy.
PRZYKŁAD 3.7
Załóżmy, że nazwisko jest kluczem w klasie Gwiazda. Wówczas relację, zaprojektowaną dla klasy Film, możemy rozszerzyć, dołączając do niej atrybut o przykładowej nazwie nazwiskoGwiazdy, którego wartości będą odpowiadać nazwiskom poszczególnych gwiazd. Wówczas jeden film będzie Opisany przez tyle krotek, ile gwiazd występujących w danym filmie umieszczono w bazie danych. Pewne przykłady danych zamieszczono na rys. 3.13. Wyraźnie widać już redundancję, wszystkie pozostałe dane o filmie są powtarzane dla każdej gwiazdy występującej w tym filmie.
tytuł |
rok |
długość |
lypFilmu |
nazwaStudia |
nazwisko- Gwiazdy |
Gwiezdne Wojny |
1977 |
124 |
kolor |
~o X |
Carie Fischer |
Gwi ezdne Woj ny |
1977 |
124 |
kolor |
FOX |
Mark Hamill |
Gwiezdne Wojny |
1977 |
124 |
kolor |
Fox |
Harrisor. Ford |
Potężne Kaczory |
1991 |
104 |
kolor |
Di sncv |
Fmiiio Estevez |
Świat Wayne'a |
1992 |
95 |
kolor |
Paraffiount |
Dana C« rvey |
Świat Wayne'a |
1992 |
95 |
kolor |
Paramount |
Mikę Meyers |
RYSUNEK 3.13
Relacja Fi m z danymi gwiazd
□
Może się również zdarzyć, że w klasie wystąpi w ięcej niż jeden zw iązek wielowartościowy. Wówczas liczba powstałych krotek w relacji gwałtownie się zwiększa. Załóżmy, źc w klasie C określono związki wielowartościowe R\, R2,Rk. Wówczas relacja zaprojektowana dla klasy C ma atrybuty odpowiadające wszystkim atrybutom C oraz atrybuty odpowiadające atrybutom klucza wszystkich związków jedno wartościowych / C. Poza tym muszą wystąpić atrybuty reprezentujące klucze klas powiązanych związkami R\,
Załóżmy, że pewien obiekt o z klasy C jest powiązany poprzez zw iązek R! z //, obiektami, poprzez związek AS z obiektami i tak dalej. Wówczas dla
wszystkich możliwych kombinacji tych obiektów tworzymy po jednej krotce, która odpowiada obiektowi o. A zatem, w wyniku otrzymamy n\ x n2 x ... x nk krotek, które tr/eba umieścić w relacji, jeśli chcemy reprezentować obiekt o w tym modelu.
PRZYKŁAD 3.8
Załóżmy, że w klasie C zdefiniowano zbiór jednowartościowych atrybutów A' oraz dwa wielo wartościowe związki R i R2. "Niechaj te związki łączą klasę C z. klasami, których kluczowe atrybuty tworzą odpowiednio zbiory Y i Z. A teraz rozważmy obiekt c klasy C, który poprzez związek R\ jest powiązany z obiektami o kluczach y\ i y2, a poprzez związek R2 z obiektami o kluczach Z\9 ~2 oraz r3. Niech x reprezentuje wartości obiektu c w zbiorze atrybutów X.
Wówczas obiekt c w relacji utworzonej do reprezentowania klasy C sam jest reprezentowany przez sześć krotek. Możemy je oznaczyć symbolicznie w następujący sposób:
(x>y\>z\) (xtyi,z2) {x, yx,z2)
(Y, y2, Z]) (x, >'2, z2) (x, >’2, z3)
Klucze z Y zostały tu połączone w pary z. kluczami z Z na wszystkie możliwe sposoby.
□
W modelu obiektowym, takim jak ODL. dopuszcza się występowanie dwóch obiektów tej samej klasy z identycznymi wartościami wszystkich właściwości. Musimy zatem przygotować się do rozwiązania problemów takich, jak na przykład istnienie dwóch gwiazd o dokładnie takich samych nazwiskach. Jeśli tak się zdarzy, to oznacza, że sam atrybut nazwisko nie wystarcza jako klucz klasy gwiazda, zatem nic możemy go w tym charakterze stosować w krotkach relacji Film. Przypuszczalnie, aby otrzymać klucz, moglibyśmy dołączyć inne atrybuty gwiazd, ale nigdy nie będziemy mieć gwarancji, że dwie różne gwiazdy filmowe nic mają takich samych nazwisk i imion, takich samych adresów, nie są urodzone tego samego dnia i lak dalej, bez względu na rodzaj właściwości gwiazdy, dołączonych do bazy danych.
Jedyne gwarantowane rozwiązanie polega na utworzeniu nowego atrybutu, który reprezentowałby „identyfikator obiektu” klasy odpowiadające relacji. Na przykład, jeśli nie bylibyśmy pewni, żc atrybut nazwisko moż* być kluczem gw iazd, to możemy utworzyć dla każdej gwiazdy jej „nurac certyfikatu”, który może stanow ić numer członkowski w Związku Aktorów Numery certyfikatów są jednoznaczne, ponieważ istnieje centrala, która je$ odpow iedzialna za ich obsługę oraz kontroluje, które numery są w użyciu.