BAZY DANYCH I SYSTEMY BAZ DANYCH
Tabela 9.14 narusza 3 NF, ponieważ zawartość czwartej kolumny Numer tel. do gabinetu zależy od kolumny Gabinet, która nie należy do klucza głównego. Zmiana numeru telefonu dla gabinetu stomatologicznego w czwartym rekordzie nie pociągnie za sobą automatycznej zmiany numeru telefonu w pierwszej krotce dla tego samego gabinetu. Tabelę tę można znormalizować, dzieląc ją na dwie mniejsze tabele. Jedna tabela zawierać będzie ID lekarza i nazwisko lekarza, druga tabela - gabinety oraz przypisane do nich numery telefoniczne.
Tabela 9.15. Lista lekarzy (3)
ID lekarza |
Nazwisko |
— ID gabinetu |
i |
Lubicz |
i |
2 |
Nowak |
2 |
3 |
Burski |
3 |
4 |
Kowalska |
1 |
Tabela 9.16. Lista gabinetów
ID gabinetu |
Gabinet |
Numer tel. do gabinetu |
1 |
Stomatologiczny |
555 44 58 36 |
2 __________ _________ |
Ortopedyczny ................ |
254 52 85 63 |
3 |
Kardiologiczny |
152 57 2612 |
Doprowadzenie tabel do 3NF uzyskujemy zwykle za pomocą tworzenia tabel słownikowych oraz tabel łącznikowych (tabele łącznikowe używane są przy budowaniu relacji typu wiele do wielu).
Wnioski:
• Normalizacja polega na przeprowadzeniu tabel przez kolejne postacie normalne.
• Znormalizowana baza danych jest bardziej elastyczna pod kątem zapytań.
• Proces rozkładu bazy danych do trzeciej postaci normalnej nazywamy procesem rozkładu naturalnego wykonywanego za pomocą relacyjnej operacji rzutu.
Postać normalna Boyce'a-Codda (BCNF) nazywana jest również postacią normalną 3.5 ze względu na to, że umieszczamy ją pomiędzy trzecią i czwartą postacią normalną. Tabela (relacja) jest w postaci normalnej BCNF, gdy:
a) spełnia warunki INF,
b) dla każdej nietrywialnej zależności A-*Bw relacji (R) atrybut A jest nadkluczem.
Po przeanalizowaniu tej definicji można postawić pytanie, w jaki sposób postać BCNF różni się od 3NF.
Postać BCNF jest bardziej restrykcyjna, co można zaobserwować, umieszczając obie definicje w tabeli: