Klucz podstawowy kontra klucz unikalny
Kolumna lub zestaw kolumn, których można użyć do identyfikacji lub uzyskania dostępu do wiersza lub zestawu wierszy w bazie danych, nazywa się kluczem. Unikalny klucz to klucz, który może jednoznacznie zidentyfikować wiersz w tabeli w kontekście relacyjnych baz danych. Unikalny klucz składa się z pojedynczej kolumny lub zestawu kolumn. Klucz podstawowy to także kombinacja kolumn w tabeli, które jednoznacznie identyfikują wiersz. Uważany jest jednak za szczególny przypadek wyjątkowego klucza.
Co to jest unikalny klucz?
Jak wspomniano wcześniej, unikalny klucz to pojedyncza kolumna lub zestaw kolumn, które mogą jednoznacznie identyfikować wiersz w tabeli. Tak więc unikalny klucz jest tak ograniczony, że żadne dwie jego wartości nie są równe. Jedną ważną właściwością jest to, że unikalne klucze nie wymuszają ograniczenia NOT NULL. Ponieważ NULL reprezentuje brak wartości, jeśli dwa wiersze mają NULL w kolumnie, nie oznacza to, że wartości są równe. Kolumna zdefiniowana jako unikalny klucz dopuszcza tylko jedną wartość NULL w tej kolumnie. Następnie można go użyć do jednoznacznej identyfikacji tego konkretnego wiersza. Na przykład w tabeli zawierającej informacje o uczniu identyfikator ucznia można zdefiniować jako unikalny klucz. Ponieważ żaden z dwóch studentów nie może mieć tego samego dokumentu tożsamości, jednoznacznie identyfikuje jednego ucznia. Tak więc kolumna z identyfikatorem studenta spełnia wszystkie właściwości unikalnego klucza. W zależności od projektu bazy danych tabela może mieć więcej niż jeden unikalny klucz.
Co to jest klucz podstawowy?
Klucz podstawowy to także kolumna lub kombinacja kolumn, która jednoznacznie definiuje wiersz w tabeli relacyjnej bazy danych. Tabela może mieć maksymalnie jeden klucz podstawowy. Klucz podstawowy wymusza niejawne ograniczenie NOT NULL. Tak więc kolumna zdefiniowana jako klucz podstawowy nie może zawierać wartości NULL. Klucz podstawowy może być normalnym atrybutem w tabeli, który gwarantuje unikalność, takim jak numer ubezpieczenia społecznego, lub może być unikalną wartością generowaną przez system zarządzania bazą danych, taki jak globalnie unikalny identyfikator (GUID) w Microsoft SQL Server. Klucze podstawowe są definiowane przez ograniczenie KLUCZ PODSTAWOWY w ANSI SQL Standard. Klucz podstawowy można również zdefiniować podczas tworzenia tabeli. SQL pozwala na utworzenie klucza podstawowego z jednej lub więcej kolumn, a każda kolumna zawarta w kluczu podstawowym jest domyślnie zdefiniowana jako NIE NULL. Ale niektóre systemy zarządzania bazami danych wymagają jawnego, aby kolumny klucza podstawowego NIE były NULL.
Różnica między kluczem podstawowym a kluczem unikatowym
Mimo że zarówno klucz podstawowy, jak i klucz unikalny są jedną lub więcej kolumnami, które mogą jednoznacznie identyfikować wiersz w tabeli, istnieją pewne ważne różnice. Co najważniejsze, tabela może mieć tylko jeden klucz podstawowy, podczas gdy może mieć więcej niż jeden unikalny klucz. Klucz podstawowy można uznać za specjalny przypadek klucza unikalnego. Inną różnicą jest to, że klucze podstawowe mają niejawne ograniczenie NOT NULL, podczas gdy klucz unikalny nie ma tego ograniczenia. Dlatego unikatowe kolumny kluczy mogą zawierać wartości NULL lub nie, ale kolumny kluczy podstawowych nie mogą zawierać wartości NULL.