PODSTAWY BAZ DANYCH
37
PRZYKŁAD 9.3
Prześledźmy tę teorię, posługując się przykładem:
Nr lekarza A |
Nazwisko B ■ |
Telefon_prywatny C |
1 |
| Nowak |
123-321-123 |
2 |
i Kowalski |
345-543-345 |
3 |
; Wasilewski |
567-765-567 |
4 |
i Nowak |
234-567-909 |
A-----------► C
Rys. 9.3. Pośrednia zależność funkcyjna
B jest funkcyjnie zależne od A (kierunek zależności wyznacza to, że dla dwóch takich samych nazwisk numery będą różne (1 - Nowak, 4 - Nowak), wobec tego atrybut B jest wyznaczany przez atrybut A. Drugi związek występuje pomiędzy lekarzem a jego numerem telefonu (lekarz może zawsze zmienić numer, zatem numer zależy od lekarza). Jak ilustruje powyższa zmienna relacyjna, atrybut C pośrednio zależy od A. Oprócz zależności przechodniej (transitive dependency) możemy wyróżnić jeszcze zależność wielowartościową__
Umiejętność wyznaczania zależności wielowartościowej istotna będzie zwłaszcza podczas procesu normalizacji (w formach wyższych od BCNF), o której informacje zawarto w dalszej części podręcznika. Istotne jest, aby czytelnik zapoznał się z nią przed lekturą rozdziałów o normalizacji.
Zależności wielowartościowe powstają często przy doprowadzaniu nieznormalizowa-nej tabeli do pierwszej postaci normalnej. Aby tabela znajdowała się w pierwszej postaci normalnej, nie może na przecięciu się wiersza i kolumny zawierać wartości złożonych (nie może wystąpić kilka elementów zbioru). Oznacza to, że tworząc tabelę, np. dyżurnych, nie możemy umieścić kilku różnych osób w jednej kolumnie.
Tabela 9.5. Lista dyżurnych
Dni
DyżumLM
Dyżurne_K
Poniedziałek |
Kazimierz, Roman, Zbigniew |
Zofia, Maria, Bożena |
Środa |
Leszek, Marian, Krzysztof |
Monika, Aniela, Dobrusia |
Piątek |
Donald, Grzegorz, Jerzy |
Iwona, Jolanta, Klaudia |