jesteś w >> podstawy >>klucze
Klucze
Ogólnie
- Klucz jest podstawowym zbiorem identyfikującym
- Taki zbiór atrybutów relacji, których kombinacje wartości jednoznacznie identyfikują ka?dą krotke tej relacji a ?aden podzbiór tego zbioru nie posiada tej w3asności
- W kluczu nie mo?e zawieraa sie wartośa Null
- S3u?y do identyfikowania i/lub sortowania danych
Klucz kandydujący ( candidate key )
W relacji mo?e znajdowaa sie wiele atrybutów, które mogą bya unikalne i w ten sposób mogą jednoznacznie identyfikowaa ka?dą krotke. Spośród kluczy kandydujących wybiera sie klucz podstawowy, a pozosta3e klucze nazywa sie kluczami alternatwnymi ( alternate key ).Klucz alternatywny ( alternate key, secondary key )
Jest to ka?dy klucz, który nie zosta3 wybrany jako klucz podstawowy.Klucz unikalny ( unique key )
Jest to wartośa, która w obrebie jednej tabeli jest niepowtarzalna, tak wiec nie mogą pojawia sie dwa wiersze o tej samej wartości unikalnej. Takim kluczem mo?e bya np. PESEL lub nr ISBN dla ksią?ki.Dla kolumny mo?na wymusia to, by by3a ona unikalna poprzez ustalenie indeksu unikalnego UNIQUE.
Klucz podstawowy, klucz g3ówny ( primary key )
Jest to klucz wybrany spośród kluczy kandydujących i s3u?y do jednoznacznej identyfikacji ka?dego wiersza w tabeli. Nie mo?e zawieraa wartości NULL. Takim kluczem mo?e bya np. nr albumu studenta lub nr PESEL. Istnieje tak?e mo?liwośa utworzenia sztucznego klucza, który bedzie nadawany automatycznie poprzez system bazy danych.Klucz obcy ( foreign key )
Ten typ klucza wykorzystywany jest do tworzenia relacji pomiedzy parą tabel. Wartośa klucza obcego w jednej tabeli ( tabeli zale?nej ) musi korespondowaa do wartości klucza podstawowego lub kandydującego w drugiej tabeli ( tabeli nadrzednej ). Klucz obcy wymusza wiezi integralności. Przy ustalaniu zale?ności pomiedzy tabelami mo?na ustalia jakie dzia3ania bedą podejmowane w przypadku aktualizacji lub usuwaniu rekordu z tabeli nadrzednej:- CASCADE
- ON UPDATE CASCADE - zmiana klucza w tabeli nadrzednej powoduje zmiane klucza obcego w tabeli zale?nej
- ON DELETE CASCADE - usuniecie rekordu z tabeli nadrzednej powoduje usuniecie korespondujacego rekordu z tabeli zale?nej
- RESTRICT
- ON UPDATE RESTRICT - nie mo?e zostaa przeprowadzona ?adna aktualizacja w rekordzie tabeli nadrzednej, jeśli istnieje powiązany rekord w tabeli zale?nej
- ON DELETE RESTRICT - nie mo?na usunąa rekordu z tabeli nadrzednej jeśli istnieje powiązany rekord w tabeli zale?nej
- SET NULL
- ON UPDATE SET NULL - w przypadku zmiany klucza podstawowego w tabeli nadrzednej wstaw wartośa NULL dla klucza obcego w tabeli zale?nej
- ON DELETE SET NULL - w przypadku usuniecia rekordu w tabeli nadrzednej wstaw wartośa NULL dla klucza obcego w tabeli zale?nej
- SET DEFAULT
- ON UPDATE SET DEFAULT - w przypadku zmiany klucza podstawowego w tabeli nadrzednej ustal wartośa domyślną ( DEFAULT ) dla klucza obcego
- ON DELETE SET DEFAULT - w przypadku usuniecia rekordu w tabeli nadrzednej ustal wartośa domyślną ( DEFAULT ) dla klucza obcego
- ON UPDATE NO ACTION - w przypadku zmiany klucza podstawowego w tabeli nadrzednej nie zmieniaj wartości dla klucza obcego