BAZY DANYCH I SYSTEMY BAZ DANYCH
INF w ujęciu C. Date’a powinna spełniać następujące kryteria:
• Rozpatrywane z góry na dół wiersze tabeli nie muszą być ustawione w określonym porządku (kolejność wierszy jest dowolna).
• Kolejność kolumn jest dowolna (nie są one ustawione w jakimkolwiek porządku od lewej do prawej).
• Wiersze tabeli nie mogą się powtarzać.
• Każdy wiersz i każda kolumna na swoim przecięciu zawierają dokładnie jedną wartość z zakresu swojej dziedziny i nic ponadto.
• Wszystkie kolumny są symetryczne i równomierne (tzn. że w obrębie wierszy nie ma dodatkowych ukrytych składników, takich jak mniejsze kolumny, podkolumny czy dodatkowe identyfikatory wierszy, kolumn, obiektów, czasu).
Naruszenie któregokolwiek z tych warunków powoduje, że tabela nie jest relacją (w matematycznym ujęciu), a zatem nie spełnia założeń INF.
Uwaga!
Powtórzenia mogą wystąpić w kolumnach, które nie należą do klucza, jednak każda krotka (wiersz) musi być unikatowa.
Pierwsza postać normalna nakłada na tabele bazy danych najważniejszy wymóg: tabela musi być relacją. Podstawową właściwością INF jest elementarność (atomowość), inaczej oznacza to niepodzielność kolumn.
Tabela o nieatomowych wartościach kolumn może mieć następującą postać:
Tabela 9.9. Tabela o nieatomowych wartościach
Klient |
Zamówienie |
Zakupiony towar |
Jan |
1 |
Bluza, pasek, spodnie |
Wojciech |
2 |
Skarpetki, buty, koszula |
Grzegorz |
3 |
Rękawice, spodnie |
Łatwo spostrzec, że tabela ta w kolumnie Zakupiony towar ma nieatomowe wartości, zatem nie jest tabelą w INF. Naszym zadaniem będzie takie przekształcenie tabeli 9.9, by spełniała założenia relacji oraz pierwszej postaci normalnej. Istotnym warunkiem, jaki należy spełnić, jest również wymóg, iż na drodze przekształceń nie możemy utracić ani jednej z informacji przechowywanych przez tabele. W wyniku przekształcenia tworzymy tabelę, która w kolumnie Zakupiony towar ma niepodzielne (atomowe) wartości.
Poniższa tabela posiada kolumny o atomowych wartościach i jest zgodna z wymogami relacji, więc jest zgodna z INF.
Tabela 9.10. Tabela zgodna z INF
Klient |
Zamówienie |
Zakupiony towar |
Jan |
1 |
Bluza |
Jan |
1 |
Pasek |
Jan |
1 |
Spodnie |
Wojciech |
2 |
Skarpetki |