BAZY DANYCH I SYSTEMY BAZ DANYCH
ID_Zespołu (klucz podstawowy) |
Nazwa zespołu |
ID_ Artysty (klucz podstawowy) |
Artyści |
3 |
T. LOVE |
13 |
Jan Pęczak |
3 |
T. LOVE |
14 |
Paweł Nazimek |
t .......3......... |
T. LOVE |
15 |
Sidney Polak |
L_ 3 |
T. LOVE |
16 |
Michał Marecki |
Aby zrozumieć założenia drugiej postaci normalnej, należy zapoznać się z pojęciami: klucz główny, klucz obcy, klucz podstawowy, klucz kandydujący.
Tabela, która znajduje się w drugiej postaci normalnej, musi najpierw spełniać wszystkie wymogi INF.
Każda z kolumn tabeli w drugiej postaci normalnej jest w pełni zależna od klucza głównego i każdego atrybutu (kolumny) klucza głównego - jeśli klucz składa się z więcej niż jednej kolumny.
Wszystkie kolumny zawierające elementy nienależące do klucza głównego muszą od niego zależeć i być przez niego jednoznacznie identyfikowane.
Do drugiej postaci normalnej można doprowadzić tabelę, która znajduje się już w pierwszej postaci normalnej. Aby to zrobić, należy usunąć kolumny zawierające atrybuty, które są innych typów niż typ wskazywany przez klucz podstawowy. Oznacza to, że j wartości niekluczowych kolumn muszą zależeć od klucza podstawowego. Kolumny, które nie zależą od klucza podstawowego, najłatwiej rozpoznać po tym, że zawierają powtarzające się wartości.
W tabeli w drugiej postaci normalnej wartości każdej z kolumn nienależących do klucza głównego muszą od niego zależeć. Jeśli klucz główny składa się z kilku kolumn, to wartości kolumn, które do niego nie należą, zależeć będą od każdej kolumny wchodzącej w jego skład. Takie założenie redukuje duplikujące się dane w kolumnach (redundancje).
PRZYKŁAD 9.6
Rozważmy poniższą tabelę:
Tabela 9.13. Lista lekarzy
ID_Lekarza (klucz_podstawowy) |
ID_Specjalizacji (klucz_podstawowy) |
Nazwa_specjalizacji |
Nazwiskojekarza |
1 |
1 |
Internista |
: Nowak |
2 |
1 |
Internista |
•................~......~ '................... ..........~~ —.....—i Lubicz |
3 |
2 |
Kardiolog |
Burski |
......... 4 . |
3 |
Neurolog |
Kowalska |
Przyjmijmy, że w naszej tabeli klucz podstawowy będzie składał się wspólnie z ko- I lumn: ID_Lekarza i ID_Specjalizacji.
Ponieważ wartości atrybutu Nazwa_specjalizacji zależą tylko od kolumny ID_specjalizacji (jednej z kolumn klucza głównego), powyższa tabela