Co to jest klucz obcy?
Bazy danych składają się z tabel, w których przechowywane są dane lub informacje. Klucz obcy jest mechanizmem w relacyjnej bazie danych, który umożliwia powiązanie tych tabel lub powiązanie między tabelami. Klucz obcy musi posiadać unikalne cechy. Musi to być kolumna lub grupa kolumn w tabeli, której wartości ustanawiają związek z wartościami w innej tabeli w tej samej bazie danych.
Klucz obcy gwarantuje, że wiersze w jednej tabeli odpowiadają wierszom w innej tabeli, ustanawiając w ten sposób relacje lub odniesienia w całej bazie danych. Tabela zawierająca klucz obcy to „dziecko”, a druga tabela to „rodzic”. Możliwe jest, że wartość klucza obcego jest pusta lub pusta, i może ona faktycznie odnosić się do tak zwanego klucza podstawowego tabeli, w której się znajduje. Jest to nazywane samodzielnym odwoływaniem się.
Zanim zaczniesz w pełni rozumieć pojęcie kryjące się za kluczami obcymi, musisz dobrze zrozumieć, czym jest klucz podstawowy. Na przykład, jeśli w bazie danych znajdują się dwie tabele przechowujące informacje o opublikowanych książkach dla witryny internetowej sprzedającej książki, jedna tabela może być tabelą wydawców, a drugą tabelą książek. Tabela wydawców może składać się z dwóch kolumn, klucza podstawowego, który jest zawsze unikalny dla każdego rekordu, i kolumny nazwy wydawcy. Tabela książek zawiera co najmniej trzy kolumny, zawierające klucz główny lub unikalny identyfikator każdej książki, tytuły książek i kolumnę, za pomocą której można ustanowić relację z tabelą wydawców. Ta kolumna byłaby kluczem obcym.
Podstawowym kluczem dla tabeli wydawców może być coś w rodzaju „pub_id” z wartościami: P01, P02, P03, itp. Z tabelą książek można by nawiązać relację, gdyby zawierała kolumnę pub_id o takich samych wartościach. Byłby to klucz obcy, który odnosiłby tę tabelę podrzędną z powrotem do jej elementu nadrzędnego - tabeli wydawcy.
Klucz obcy może jednak mieć inną nazwę kolumny niż klucz nadrzędny, do którego się odwołuje. Dobre zrozumienie działania klucza podstawowego i obcego jest niezbędne do zachowania integralności referencyjnej. Bardzo duże bazy danych złożone z wielu tabel lub zawierające tabelę połączeń zawierają więcej niż jeden typ relacji, co może skomplikować zadanie pracy z kluczami obcymi.