78204 ullman075 (2)

78204 ullman075 (2)



156 .v rhlaCYJNY moim: i. danych

wystarczający dla relacji odpowiadającej tej klasie. Sposób postępowania w takich przypadkach zostanie przedstawiony w podrozdziale 3.7. Okaże się wówczas, że związek typu wiele do wiele można rozłożyć między klasy, które w nim uczestniczą. Wynikowy zbiór schematów relacji jest bardzo podobny do schematów, które uzyskujemy bezpośrednio z przekształceń diagramów związków encji*.

3.5.6. Ćwiczenia do podrozdziału 3.5

Ćwiczenie 3.5.1. Rozważmy relację populacji w Polsce, która zawiera: nazwisko, PESEL, adres, miasto, województwo, kod pocztowy, NIP oraz numer telefonu (7 cyfr). Jakie zależności funkcyjne mogłyby tu zachodzić? Co jest kluczem takiej relacji? Aby odpowiedzieć na te pytania, należy coś wiedzieć o wymienionych numerach. Czy na przykład NIP i PESEL są powiązane ze sobą? Czy kod pocztowy jest związany z. NIPem? Czy dwie osoby mogą mieć taki sam PESEL? Czy mogą mieć taki sam adres i numer telefonu?

^Ćwiczenie 3.5.2. Rozważmy relację, w której zawiera się opis bieżącego stanu cząsteczek w zamkniętym pojemniku. Atrybuty tej relacji obejmują: identyfikator cząsteczki, współrzędne x, y, z położenia cząsteczki oraz. jej prędkość w układzie x. y, z. Jakich zależności funkcyjnych można by tu oczekiwać? Jakie są klucze?

IĆwiczenic 3.5.3. W ćwiczeniu 2.3.2 ustaliliśmy cztery założenia na temat związku Urodzenia. Należy określić klucze relacji odpowiadających poszczególnym przypadkom.

HĆwiezenie 3.5.4. Załóżmy, że w relacji R występują atrybuty: A,, A2. ...,An. Określić liczbę nadkluczy R w funkcji n, jeśli:

*a) Jedynym kluczem może by6A\.

b)    Kluczem może być tylko A, lub A2.

c)    Kluczem może być albo {Au A2}, albo {A2, At}.

d)    Kluczem może być albo {.4,, .42}> albo {Ah /!?}.

3.6. Reguły dotyczące zależności funkcyjnych

W bieżącym podrozdziale nauczy-my się, w jaki sposób prowadzić wnioskowanie na temat zależności funkcyjnych. Załóżmy, że uzyskaliśmy informacje na temat zależności spełnianych przez relację. Często, nawet bez oglą-

’ Dlatego moglibyśmy projekt w języku ODL przekształcić do postaci związków encji, a dopiero potem tworzyć schemat relacyjny. Mimo że można by w ten sposób rozw iązać część problemów', które są charakterystyczne dla podejścia opisanego w podrozdziale 3.2, jednak nie jest to jedyna droga. Techniki projektowania relacyjnego opisane w podrozdziale 3.7, których i tak trzeba się nauczyć, są co najmniej tak samo efektywne.

dania przykładów krotek, można określić pewne warunki, które musza być spełnione w relacji. Możliwość określenia takich warunków jest niezbędna przy projektowaniu dobrego schematu dla relacji, co zamierzamy omówić w podrozdziale 3.7.

PRZYKŁAD 3.26

Jeśli wiadomo, że w relacji R z atrybutami A, B i C zachodzą związki funkcyjne A —► B i B —* C, to łatwo jest wyprowadzić wniosek, że zachodzi również zależność funkcyjna A —> C. W jaki sposób uzasadnić taki wniosek? Żeby udowodnić, że zachodzi zależność A —* C musimy zanalizować dwie krotki z R, które są zgodne dla A, i uzasadnić, żc muszą być wówczas zgodne dla C.

Załóżmy, żc nasze dwie krotki zgodne dla A mają postać (o, b\, ci) oraz (a, bi, c2)- Przyjęliśmy, że porządek atrybutów w R określono jako A. B, C. Ponieważ spełniona jest zależność A -* B, a nasze krotki są zgodne dla Awięc muszą być również zgodne dla B. Oznacza to, że b\ = b2, a więc postać naszych krotek w rzeczywistości jest następująca: (a, b, Cj) i («, b, c2), gdzie jest równe £1 i b2. Z kolei ponieważ R spełnia także zależność B —> C\ więc jeśli krotki są zgodne dla B, to są również zgodne dla C. A zatem C\ = c2, czyli nasze krotki są zgodne dla C. W ten sposób wykazaliśmy, żc każde dwie krotki relacji R, które są zgodne dla A. są również zgodne dla C, a zatem zachodzi zależność funkcyjna A —* C.

Jeśli zależności funkcyjne można określić na różne sposoby i nic ma to wpływu na instancje relacji, to takie zależności nazywamy równoważnymi. Jeszcze ogólniejsza właściwość polega na tym, żc zbiór zależności funkcyjnych S wynika ze zbioru zależności funkcyjnych. To oznacza, że jeśli z faktu, iż dowolna instancja relacji R spełnia wszystkie zależności w T, wynika, że spełnia także wszystkie zależności w S. Zauważmy, żc zbiory zależności funkcyjnych .S i '/' są równoważne wtedy i tylko wtedy, kiedy z S wynika i jednocześnie z T wynika S.

Poznamy teraz kilka użytecznych zasad dotyczących zależności funkcyjnych. Zasady te, mówiąc najogólniej, pozwalają na zastępowanie zbioru zależności funkcyjnych zbiorami równoważnymi lub na dołączanie do zbioru tych zależności, które wynikają ze zbioru początkowego. Widzieliśmy już przykład 3.26 z regułą przechodniości (fransitwe ride), która umożliwia przejście przez łańcuch zależności. Poznamy także algorytm, który' umożliwia udzielenie odpowiedzi na pytanie oto. czy jakaś zależność funkcyjna wynika z jednej lub więcej zależności.

3.6.1. Zasady podziału i łączenia

W punkcie 3.5.1 określiliśmy zależność funkcyjną: A1, A->,..., A„ —* B\B2... Bm


Wyszukiwarka

Podobne podstrony:
66852 ullman041 (2) 88 2. MODELOWANIE BAZ DANYCH gramowaniu konwencjonalnym swój odpowiednik w posta
ullman082 (2) 170 3. RELACYJNY MODI-L DANYCH P3.7.2. Dekompozycja relacji Właściwym sposobem el
83132 ullman082 (2) 170 3. RELACYJNY MODI-L DANYCH P3.7.2. Dekompozycja relacji Właściwym sposo
33758 ullman093 (2) 192 3 RELACYJNY MODEL DANYCH Oznacza lo, że dla każdej gwiazdy zbiór adresów mus
ullman012 (2) o I DZIEDZINA SYSTEMÓW RAZ DANYCH urządzania zapytaniami musi określić dla tego zapyta
ullman029 (2) 64 2 M(IDfclLOWANIH BAZ DANYCH RYSUNEK 2.8 Diagram związków encji dla bazy danych film
ullman094 (2) 194 3. RELACYJNY MODEL DANYCH atrybutów typu B. A oczywiście krotka u jest zgodna sama
ullman099 (2) 3 RELACYJNY MODEL DANYCH utworzeniu dla każdej podklasy osobnej relacji z właściwymi d

więcej podobnych podstron