Co to jest klucz obcy?
Bazy danych składają się z tabel, w których przechowywane są dane lub informacje. Klucz obce jest mechanizmem w relacyjnej bazie danych, która pozwala na powiązanie tych tabel lub tabele na relacje ze sobą. Istnieją unikalne cechy, które musi mieć klucz obcy. Musi to być kolumna lub grupa kolumn w tabeli, której wartości ustalają związek z wartościami w innej tabeli w tej samej bazie danych.
Klucz obce gwarantuje, że wiersze w jednej tabeli odpowiadają rzędom w innej tabeli, ustanawiając w ten sposób relacje w całej bazie danych lub odniesienia. Tabela zawierająca klucz obce to „dziecko”, a druga tabela to „rodzic”. Możliwe jest, że wartość klucza obcego jest zerowa lub pusta, a faktycznie odniesienie do tego lub odnosi się do tego, co jest kluczowym kluczem tabeli, w której znajduje się. Jest to znane jako samoreferencje.
Trzeba dobrze zrozumieć, czym jest klucz podstawowy, zanim spróbujesz w pełni zrozumieć koncepcję zagranicznych kluczy. Na przykład, jeśli w bazie danych znajdują się dwa tabele, przechowujące informacje o opublikowanych książkach dla strony internetowej, która sprzedaje książki, jedna tabela może być tabelą wydawców, a druga tabela 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 z nazwami wydawcy. Minimum trzy kolumny składałyby się na tabelę książek, posiadając klucz podstawowy lub unikalny identyfikator dla każdej książki, tytuły książek i kolumnę, za pośrednictwem której związek zostałby ustanowiony w tabeli wydawców. Ta kolumna byłaby kluczem obcego.
Kluczem podstawowym dla tabeli wydawców może być coś takiego jak „pub_id” z wartościami: P01, P02, P03 itp. Związek zostałby ustalony z tabelą książek, jeśli zawierał kolumnę pub_id z tymi samymi wartościami. To byłby obcy klucz, który WOULD odnosi tę tabelę dziecka z powrotem do swojego rodzica - tabeli wydawców.
Klucz obcy może jednak mieć inną nazwę kolumny niż klucz nadrzędny, do którego się odwołuje. Możliwe zrozumienie działań kluczowych i obcych kluczy jest niezbędne w utrzymaniu integralności referencyjnej. Bardzo duże bazy danych, które składają się z wielu tabel lub obejmujące tabelę połączenia, przedstawia więcej niż jeden rodzaj relacji, który może komplikować zadanie pracy z klawiszami obcych.