146 3. RELACYJNY MODEL DANYCH
146 3. RELACYJNY MODEL DANYCH
relationship Wydział WydziałCzego irwerse Wydział:: WykładyCzego;
} /*
interface ZajęciaLab: Wykład { attribute int kor.putery;
interface Wydział!
unique attribute string nazwa; attribute string katedra; relationship Set<Wykład> WykładyCzego inverse Wykład::WydziałCzego;
RYSUNEK 3.24
Opis w języku ODL wykładów oraz zajęć laboratoryjnych
RYSUNEK 3.25
Diagram E /R do ćwiczenia 3.4.5
Ćwiczenie 3.4.3. Należy utworzyć relacyjne schematy bazy danych na podstawie opisów w języku ODI., które powstały w następujących ćwiczeniach:
*a) ćwiczenie 2.4.1, b) ćwiczenie 2.4.4.
Ćwiczenie 3.4.4. Należy utworzyć relacyjne schematy bazy danych na podstawie diagramów związków encji, które powstały w następujących ćwiczeniach:
*a) ćwiczenie 2.4.3, b) ćwiczenie 2.4.4.
'.Ćwiczenie 3.4.5. Należy przekształcić diagram związków encji z rys. 3.25 do postaci relacyjnego schematu bazy' danych.
!Ćwiczenie 3.4.6. Jak zmieniłby się relacyjny schemat bazy danych z ćwiczenia 3.4.5, gdybyśmy go utworzyli na podstawie definicji w języku ODL.
Najważniejszy rodzaj więzów, z jakim mamy do czynienia w modelu relacyjnym. dotyczy więzów jednoznaczności, które nazywa się również „zależnością funkcyjną”. Wiedza dotycząca tych więzów jest nieodzowna w przypadku powtórnego definiowania schematu relacyjnego w celu wyeliminowania z niego redundancji. Te procedury opisujemy dokładnie w podrozdziale 3.7. Poza tymi istnieją jeszcze inne więzy, które wspomagają opracowanie dobrego schematu bazy danych: np. zależności wielowartościowe, o których jest mowa w podrozdziale 3.8. oraz zależności istnienia i niezależności, które będą omówione w podrozdziale 4.5.
Zależnością funkcyjną w relacji R będziemy nazywać zdanie następującej postaci: „Jeśli dwie krotki relacji R są zgodne dla atrybutów A\, A2,... An (tzn. obie krotki maja takie same wartości składowych dla wymienionych atrybutów), to muszą być również zgodne w pewnym innym atrybucie B'\ Taki rodzaj zależności zapisujemy formalnie w postaci A\ A2... A,. —* B. a odczytujemy ten zapis jako: ,Ji, A2,..., An określają funkcyjnie B'\
Jeśli zbiór atrybutów Au A2, ...yA„ określa funkcyjnie więcej niż jeden atrybut, tzn. na przykład
A) Ai... A„ —*■ B\
A\A2... A„ —* Bi
A] Ai... A,. —> Bm