Rodzaje kluczy

Rodzaje kluczy

Zdarza się, że baza danych nie przechowuje pojedynczej tabeli, lecz wiele tabel, pomiędzy którymi występują powiązania. Aby pomiędzy tabelami można było tworzyć związki, powinny one mieć przynajmniej jeden atrybut (kolumnę), który musi spełniać dwa podstawowe warunki. Musi być unikatowy (oznacza to, że jeo wartości nie mogą się powtarzać). Drugim warunkiem jest jego atomowość (musi być minimalny, tzn. powinien zawierać elementarne, niepodzielne wartości). Możemy rozróżnić następujące rodzaje kluczy:

  • klucz prosty – to taki, który jest jednoelementowy (składa się z jednej kolumny),
  • klucz złożony – to taki, który jest kilkuelementowy (składa się z więcej niż jednej kolumny).

Kluczem może być zatem jedna lub kilka kolumn, które wspólnie będą w stanie jednoznacznie zidentyfikować pozostałe dane w tabeli (relacji). Kolumny, które należą do kluczy (używa się ich do jednoznacznej identyfikacji wierszy w tabeli), nazywamy atrybutami podstawowymi. Kolumny nie należące do kluczy (zawierają dane, które w określonej relacji są przedmiotem opisu) nazywamy atrybutami opisowymi.

Do łączenia dwóch tabel (np. A i B) za pomocą związków używa się klucza. Klucz pochodzący z obcej tabeli B (w której jest on kluczem głównym), używany do łączenia tej tabeli z tabelą A, będzie dla tabeli A kluczem obcym.

Superklucz (superkey) –  to kolumna lub zestaw kolumn jednoznacznie identyfikujących każda krotkę tabeli. Super klucz może zawierać kolumny, które samodzielnie mogą nie identyfikować każdej z krotek. Unikatowa identyfikacja każdej z krotek może odbywać się jedynie przez zestaw np. dwóch lub trzech atrybutów. Przedmiotem zainteresowań projektantów baz danych jest taki superklucz, który zawiera minimalny zestaw atrybutów unikatowo identyfikujących krotkę.

Klucz kandydujący (nadklucz, klucz potencjalny) o super klucz zawierający minimalną liczbę kolumn unikatowo identyfikujących krotki relacji. W praktyce to kolumna lub kolumny, których użycie w charakterze klucza głównego jest rozważane przez projektanta baz danych. To właśnie twórca bazy danych decyduje, której kolumnie (kolumnom) nada funkcję klucza głównego.

Klucz główny (primary key) to klucz, który został wybrany, aby unikatowo identyfikować krotki tabeli. Klucz główny jest podyktowany wyborem projektanta bazy danych.

Przykład

Rozważmy przykładową sytuację, w której projektujemy relację zawierającą np., spis lokatorów nieruchomości . Poniżej przedstawiono wycinek takiej tabeli.

Id Imię Nazwisko PESEL

1

Maiej Nowak

74092932157

2

Józef Kowalski

65112164813

Ponieważ mogą występować osoby o tym samym imieniu i nazwisku, wybór atrybutów Imię lub Nazwisko jako klucza głównego mógłby powodować błędy w wypadku wystąpienia dwóch osób o tych samych imionach i nazwiskach. Ponieważ każdy człowiek ma niepowtarzalny unikatowy numer PESEL, atrybut PESEL spełnia wymagania kolumny jednoznacznie identyfikującej każdą krotkę. Projektant baz danych jako klucza głównego wybrał atrybut Id . Przykład ten pozwala zrozumieć różnicę pomiędzy kluczem głównym a kluczem kandydującym. W tym przypadku kluczami kandydującymi mogą być Id lub PESEL. Ponieważ projektant, definiując tabelę, mianował Id kluczem głównym atrybut PESEL pozostał kluczem kandydującym.

Klucz obcy – kolumna lub zestaw kolumn w jednej tabeli, która pasuje do klucza kandydującego drugiej lub tej samej tabeli. Klucze obce wyznaczane są zwykle podczas tworzenia związków pomiędzy tabelami. Dowolne dane w kolumnie (kolumnach)  klucza głównego tabeli A muszą mieć swoje odpowiedniki w odpowiadającej kolumnie (kolumnach) tabeli B (zgodność danych kolumn w dwóch tabelach). Zjawisko posiadania odpowiedników klucza głównego w obrębie różnych tabel nazywamy  integracją referencyjną. Klucz obcy definiowany jest również jako kombinacja jednego lub kilku atrybutów (pełniących funkcję klucza głównego) wykorzystywanych do tworzenia związków pomiędzy tabelami lub w obrębie jednej tabeli.

Oprócz wymienionych powyżej definicji, istnieją również takie pojęcia jak:

  • klucz prosty – klucz zawiera tylko jeden atrybut,
  • klucz złożony – składa się z więcej niż jednego atrybutu,
  • klucz potencjalny inaczej klucz kandydujący  (candidate key).

Sprawdź swoją wiedzę.

  1. Co to jest encja?
  2. Wyjaśnij termin atrybuty encji.
  3. Wyjaśnij na przykładzie co to jest krotka.
  4. Jakie cechy powinien posiadać klucz główny?
  5. Jaka jest różnica między kluczem głównym a kluczem kandydującym?
  6. Co to jest klucz obcy?