jesteś w >> normalizacja >>postać normalna Boyce-Codda
postać normalna Boyce-Codda
Jest to postać uzupełniająca III PN. Relacja jest w postaci B-C jeśli:
- dla każdej nietrywialnej zależności między podzbiorami relacji zbiór będący
wyznacznikiem jest zbiorem identyfikującym tej relacji
- każdy atrybut jest funkcjonalnie zależny jedynie od klucza głównego, nie mogą więc istnieć
jakiekolwiek zależności przechodnie
Przykład
Każdy student może wybrać kilka przedmiotów, a wykładowca może prowadzić tylko
jeden przedmiot.
student | przedmiot | wykładowca |
Zając | matematyka | Różański |
Zima | matematyka | Graczyk |
Jakubczak | matematyka | Graczyk |
Zima | fizyka | Kolasa |
Jańska | fizyka | Bednarz |
Zygmunt | fizyka | Bednarz |
tabela `Przedmioty` przed normalizacją
Jako klucz główny może istnieć pole student + przedmiot, taki klucz jednoznacznie
identyfikuje nazwisko prowadzącego. Drugim kandydatem na klucz podstawowy może być
para student + wykładowca. Przy tej drugiej opcji nie spełniona jest III postać normalna,
ponieważ klucz student + wykładowca nie determinują nazwy przedmiotu, a nazwa przedmiotu
zależy tylko i wyłącznie od nazwiska wykładowcy. Z tego powodu jako kandydata na klucz główny
powinno się wziąć pod uwagę pola student + przedmiot
Pojawia się tutaj problem. Załóżmy, że chcemy przydzielić nazwiska prowadzących
do odpowiednich przedmiotów przed rozpoczęciem zapisów studentów na konkretny przedmiot.
Nie możemy tego zrobić, ponieważ nazwisko studenta jest częścią klucza głównego i z tego powodu,
przy wstawianiu nowego wiersza tabeli trzeba wstawić nazwisko studenta.
Również może zaistnieć anomalia w przypadku, gdy wystąpi potrzeba
zmiany nazwiska prowadzącego przedmiot.
Wtedy będzie trzeba wstawić nowe nazwisko do wielu wierszy jednocześnie.
Aby zaradzić tym problemom należy sprowadzić tabelę do postaci
Boyce-Codda. W tym celu zostaną utworzone 3 tabele :
student | przedmiot |
Zając | matematyka |
Zima | matematyka |
Jakubczak | matematyka |
Zima | fizyka |
Jańska | fizyka |
Zygmunt | fizyka |
tabela z wybranymi przez studentów przedmiotami
student | wykładowca |
Zając | Różański |
Zima | Graczyk |
Jakubczak | Graczyk |
Zima | Kolasa |
Jańska | Bednarz |
Zygmunt | Bednarz |
tabela ze studentami i ich wykładowcami
przedmiot | wykładowca |
matematyka | Różański |
matematyka | Graczyk |
fizyka | Kolasa |
fizyka | Bednarz |
tabela z nazwiskami wykładowców i z nazwami wykładanych przedmiotów
[ wróć na górę strony ]