Skip to main content

Klucze podstawowe i zagraniczne bazy danych

Tworzenie listy i import odbiorców we Freshmailu (Czerwiec 2026)

Tworzenie listy i import odbiorców we Freshmailu (Czerwiec 2026)
Anonim

Jak być może już wiesz, bazy danych używają tabel do porządkowania informacji. (Jeśli nie znasz podstawowych pojęć dotyczących baz danych, przeczytaj artykuł Co to jest baza danych?) Każda tabela składa się z wielu wierszy, z których każdy odpowiada jednemu rekordowi bazy danych. W jaki sposób bazy danych przechowują wszystkie te rekordy? To za sprawą kluczy.

Klucze podstawowe

Pierwszym kluczem, który omówimy, jest klucz podstawowy. Każda tabela bazy danych powinna mieć jedną lub więcej kolumn oznaczonych jako klucz podstawowy. Wartość tego klucza powinna być unikalna dla każdego rekordu w bazie danych.

Załóżmy na przykład, że mamy tabelę Pracownicy, która zawiera informacje o personelu dla każdego pracownika w naszej firmie. Musimy wybrać odpowiedni klucz podstawowy, który jednoznacznie identyfikuje każdego pracownika. Pierwszą myślą może być użycie nazwiska pracownika. Nie zadziałałoby to zbyt dobrze, ponieważ można sobie wyobrazić zatrudnienie dwóch pracowników o tym samym imieniu. Lepszym wyborem może być użycie unikatowego numeru identyfikacyjnego pracownika przypisanego każdemu pracownikowi, który jest zatrudniony. Niektóre organizacje wybierają w tym celu numery ubezpieczenia społecznego (lub podobne identyfikatory rządowe), ponieważ każdy z nich ma już taki numer i gwarantuje, że jest unikatowy. Wykorzystanie w tym celu numerów ubezpieczenia społecznego jest jednak wysoce kontrowersyjne ze względu na obawy związane z prywatnością. (Jeśli pracujesz dla organizacji rządowej, korzystanie z numeru ubezpieczenia społecznego może być nawet niezgodne z prawem w ramach Ustawy o ochronie prywatności z 1974 roku.) Z tego powodu większość organizacji zmieniła na stosowanie unikalnych identyfikatorów (ID pracownika, ID studenta itp. .), które nie podzielają tych obaw dotyczących prywatności.

Gdy zdecydujesz się na klucz podstawowy i skonfigurujesz bazę danych, system zarządzania bazami danych wymusi wyjątkowość klucza. Jeśli spróbujesz wstawić rekord do tabeli za pomocą klucza podstawowego, który duplikuje istniejący rekord, wstawianie zakończy się niepowodzeniem.

Większość baz danych może również generować własne klucze podstawowe. Na przykład program Microsoft Access może być skonfigurowany do używania typu danych AutoNumber, aby przypisać unikalny identyfikator do każdego rekordu w tabeli. Chociaż jest to skuteczne, jest to zła praktyka projektowa, ponieważ pozostawia bezsensowną wartość w każdym rekordzie w tabeli. Dlaczego nie wykorzystać tego miejsca do przechowywania czegoś użytecznego?

Klucz obcy

Innym typem jest klucz obcy, który służy do tworzenia relacji między tabelami. W większości struktur baz danych istnieją naturalne zależności między tabelami. Wracając do bazy danych naszych pracowników, wyobraźmy sobie, że chcemy dodać do bazy danych tabelę zawierającą informacje o departamencie. Ta nowa tabela może nazywać się Departamentami i zawierałaby dużą ilość informacji o departamencie jako całości. Chcielibyśmy również zamieścić informacje o pracownikach w dziale, ale zbędne byłoby posiadanie tych samych informacji w dwóch tabelach (Pracownicy i departamenty). Zamiast tego możemy stworzyć relację między dwiema tabelami.

Załóżmy, że tabela Departamenty używa kolumny Nazwa działu jako klucz podstawowy. Aby utworzyć relację między dwiema tabelami, dodajemy nową kolumnę do tabeli Pracownicy o nazwie Dział. Następnie wpisujemy nazwę działu, do którego należy każdy pracownik. Informujemy również system zarządzania bazami danych, że kolumna Dział w tabeli Pracownicy jest kluczem obcym, który odwołuje się do tabeli Departamentów. Baza danych wymusi więzy integralności, zapewniając, że wszystkie wartości w kolumnie Departamenty w tabeli Pracownicy mają odpowiednie wpisy w tabeli Departamenty.

Zauważ, że nie ma ograniczenia unikalności dla klucza obcego. Możemy (i najprawdopodobniej) mieć więcej niż jednego pracownika, który należy do jednego działu. Podobnie, nie ma wymogu, aby pozycja w tabeli Departamentów zawierała odpowiedni wpis w tabeli Pracownicy. Możliwe, że mamy dział bez pracowników.

Aby uzyskać więcej informacji na ten temat, przeczytaj artykuł Tworzenie kluczy obcych.