KLUCZE
Klucz kandydujący w relacji R jest podzbiorem K zbioru
atrybutów relacji R, mających własności:
o Jednoznaczności – żadne dwie krotki R nie mają tej samej wartości dla K
o Nieredukowalności – żaden właściwy podzbiór K nie ma własności jednoznaczności
Cechy kluczy kandydujących:
o W jednej relacji może wystąpić kilka różnych kluczy kandydujących
o Klucz kandydujący zawierający więcej niż jeden atrybut nazywa się kluczem złożonym, zaś klucz kandydujący zawierający dokładnie jeden atrybut – kluczem prostym
o Klucze kandydujące nie zawierają żadnych atrybutów, które są zbędne do jednoznacznej identyfikacji
o Klucze kandydujące zapewniają podstawowy mechanizm adresowania na poziomie krotek w systemie relacyjnym.
Klucz główny (primary key) – wybrany klucz kandydujący
Klucze alternatywne (alternate keys) – pozostałe klucze
kandydujące
Klucze obce (foreign keys) - klucz obcy relacji pochodnej R2
jest to podzbiór FK, zbioru atrybutów R2 takich, że:
o Istnieje relacja podstawowa R1 (relacje R1 i R2 niekoniecznie są różne) z kluczem kandydującym CK oraz
W każdej chwili każda wartość FK w aktualnej wartości relacji
R2 jest taka sama, jak wartość CK w pewnej krotce aktualnej wartości R1
Cechy kluczy obcych:
o Każda wartość danego klucza obcego musi pojawić się jako wartość odpowiedniego klucza kandydującego. Klucz kandydujący, odpowiadający danemu kluczowi obcemu może zawierać wartość, która nie występuje aktualnie jako wartość klucza obcego
o Klucz obcy jest złożony – składa się z więcej niż jednego atrybutu – tylko i tylko wtedy, gdy klucz kandydujący, któremu on odpowiada jest złożony
o Klucz obcy jest prosty wtedy i tylko wtedy, gdy odpowiadający mu klucz kandydujący jest prosty
o Każdy składowy atrybut danego klucza obcego musi być zdefiniowany na tej samej dziedzinie, co odpowiadający mu składnik właściwego klucza kandydującego
Integralność referencyjna – w bazie danych nie mogą występować
żadne niedopasowane wartości kluczy obcych
Reguły kluczy obcych:
Usuwanie:
RESTRICTED – usuwanie jest ograniczone do przypadków, gdy nie
ma krotek powiązanych
CASCADE – usuwane są również krotki powiązane
Aktualizacja:
RESTRICTED – aktualizacja jest ograniczana do przypadków, gdy
nie ma krotek powiązanych
CASCADE – aktualizacja jest propagowana na krotki powiązane
NULL (brak informacji)
Usuwanie:
NULLIFIES – klucz obcy zostaje ustawiony na null i potem krotka
powiązana jest usuwana
Aktualizacja:
NULLIFIES – klucz obcy zostaje ustawiony na null i potem krotka
powiązana jest aktualizowana
powrót