Różnica między kluczem podstawowym a kluczem obcym

Kluczowe różnice między kluczem podstawowym a kluczem obcym

  • Ograniczenie klucza podstawowego to kolumna, która jednoznacznie identyfikuje każdy wiersz w tabeli systemu zarządzania relacyjną bazą danych, natomiast klucz obcy to kolumna, która tworzy relację między dwiema tabelami.
  • Klucz podstawowy nigdy nie akceptuje wartości null, podczas gdy klucz obcy może akceptować wiele wartości null.
  • W tabeli możesz mieć tylko jeden klucz podstawowy, a w tabeli możesz mieć wiele kluczy obcych.
  • Wartości klucza podstawowego nie można usunąć z tabeli nadrzędnej, natomiast wartości klucza obcego można usunąć z tabeli podrzędnej.
  • Żadne dwa wiersze nie mogą mieć identycznych wartości klucza podstawowego; z drugiej strony klucz obcy może zawierać zduplikowane wartości.
  • Nie ma ograniczeń co do wstawiania wartości do kolumny tabeli podczas wstawiania dowolnej wartości do tabeli klucza obcego; upewnij się, że wartość jest obecna w kolumnie klucza podstawowego.
Różnica między kluczem podstawowym a kluczem obcym
Różnica między kluczem podstawowym a kluczem obcym

Tutaj przeanalizowałem różnicę między kluczem podstawowym a kluczem obcym i kompleksowo ocenię ich zalety i wady.

Co to jest klucz podstawowy?

Ograniczenie klucza podstawowego to kolumna lub grupa kolumn, które jednoznacznie identyfikują każdy wiersz w tabeli systemu zarządzania relacyjną bazą danych. Nie może to być duplikat, co oznacza, że ​​ta sama wartość nie powinna pojawić się w tabeli więcej niż raz.

Tabela nie może mieć więcej niż jednego klucza podstawowego. The klucz podstawowy można zdefiniować na poziomie kolumny lub tabeli. Jeśli tworzysz złożony klucz podstawowy, należy go zdefiniować na poziomie tabeli.

Przykład klucza podstawowego

Składnia:

Poniżej znajduje się składnia klucza podstawowego:

CREATE TABLE <Table-Name>
(
Column1 datatype,
Column2 datatype,  PRIMARY KEY (Column-Name)
.
);    

Tutaj,

  • Nazwa_tabeli to nazwa tabeli, którą musisz utworzyć.
  • Nazwa_kolumny to nazwa kolumny zawierającej klucz podstawowy.

Przykład:

ID Studia Nr rolki Imię Nazwisko E-mail
1 11 Tomek Cena abc@gmail.com
2 12 Nick Wright xyz@gmail.com
3 13 Dana Natan mno@yahoo.com

W powyższym przykładzie utworzyliśmy tabelę studentów z kolumnami takimi jak StudID, Roll No., First Name, Last Name i Email. StudID jest wybrany jako klucz podstawowy, ponieważ może jednoznacznie identyfikować inne wiersze w tabeli.

Dlaczego warto używać klucza podstawowego?

Przez lata pracy z systemami baz danych zauważyłem następujące wady i zalety korzystania z klucza podstawowego:

  • Głównym celem klucza podstawowego jest identyfikacja każdego rekordu w tabeli bazy danych.
  • Możesz użyć klucza podstawowego, jeśli nie pozwalasz nikomu na wprowadzanie wartości null.
  • Jeśli usuniesz lub zaktualizujesz rekordy, określone przez Ciebie działanie zostanie podjęte w celu zapewnienia integralności danych.
  • Wykonaj operację ograniczenia, aby odrzucić operację usunięcia lub aktualizacji dla tabeli nadrzędnej.
  • Za każdym razem, gdy fizycznie organizujesz tabelę systemu DBMS, dane są organizowane w postaci sekwencji pogrupowanych indeksów.

Co to jest klucz obcy?

Klucz obcy to kolumna, która tworzy relację między dwiema tabelami. Celem klucza obcego jest utrzymanie integralności danych i umożliwienie nawigacji pomiędzy dwoma różnymi instancjami jednostki. Działa jako odniesienie między dwiema tabelami, ponieważ odwołuje się do klucza podstawowego innej tabeli. Każda relacja w bazie danych powinna być obsługiwana kluczem obcym.

Przykład klucza obcego

Składnia:

Poniżej znajduje się składnia klucza obcego:

CREATE TABLE <Table Name>( 
column1    datatype,
column2    datatype,  
constraint (name of constraint) 
FOREIGN KEY [column1, column2...] 
REFERENCES [primary key table name] (List of primary key table column) ...);

Tutaj,

  • Parametr Nazwa tabeli wskazuje nazwę tabeli, którą zamierzasz utworzyć.
  • Parametry kolumna1, kolumna2… przedstawiają kolumny, które należy dodać do tabeli.
  • Ograniczenie oznacza nazwę tworzonego ograniczenia.
  • Odniesienia wskazują tabelę z kluczem podstawowym.

Przykład:

Kod działu NazwaDepartamentu
001 nauka
002 Angielski
005 Komputer
Identyfikator nauczyciela Nazwa użytkownika Lnazwa
B002 David Warner
B017 Sara Joseph
B009 Mike Bruntona

W powyższym przykładzie mamy dwie tabele: nauczyciela i oddział w szkole. Nie ma jednak możliwości sprawdzenia, które wyszukiwanie sprawdza się w jakim dziale.

W tej tabeli, dodając klucz obcy w Deptcode do nazwiska nauczyciela, możemy utworzyć relację pomiędzy dwiema tabelami.

Identyfikator nauczyciela Kod działu Nazwa użytkownika Lnazwa
B002 002 David Warner
B017 002 Sara Joseph
B009 001 Mike Bruntona

Koncepcja ta jest również znana jako integralność referencyjna.

Dlaczego warto używać klucza obcego?

Z tego, co widziałem, oto ważne powody, dla których warto wdrożyć klucze obce:

  • Klucze obce ułatwiają migrację jednostek przy użyciu klucza podstawowego z tabeli nadrzędnej.
  • A klucz obcy umożliwia połączenie dwóch lub więcej tabel razem.
  • Zapewnia spójność danych w bazie danych.
  • Klucz obcy może służyć do dopasowania kolumny lub kombinacji kolumn do klucza podstawowego w tabeli nadrzędnej.
  • Ograniczenie klucza obcego SQL służy do zapewnienia, że ​​integralność referencyjna elementu nadrzędnego danych odpowiada wartościom w tabeli podrzędnej.

Różnica między kluczem podstawowym a kluczem obcym

Pozwólcie, że podzielę się ważną różnicą między kluczem podstawowym a kluczem obcym, czego osobiście doświadczyłem:

Klucz podstawowy a klucz obcy
Klucz podstawowy a klucz obcy
Podstawa porównania Główny klucz klucz obcy
Definicja Ograniczenie klucza podstawowego to kolumna lub grupa kolumn, które jednoznacznie identyfikują każdy wiersz w tabeli system zarządzania relacyjną bazą danych. Klucz obcy to kolumna tworząca relację między dwiema tabelami.
Basic Pomaga w jednoznacznej identyfikacji rekordu w tabeli. Jest to pole w tabeli będące kluczem podstawowym innej tabeli.
NULL Klucz podstawowy nigdy nie akceptuje wartości null. Klucz obcy może akceptować wiele wartości null.
Indeksowanie Kluczem podstawowym jest indeks klastrowany, a dane w tabeli DBMS są fizycznie zorganizowane w kolejności zgodnej z indeksem klastrowanym. Klucz obcy nie może automatycznie utworzyć indeksu klastrowanego lub nieklastrowanego.
Liczyć W tabeli może znajdować się jeden klucz podstawowy. W tabeli możesz mieć wiele kluczy obcych.
usunięcie Nie można usunąć wartości klucza podstawowego z tabeli nadrzędnej. Wartość klucza obcego można usunąć z tabeli podrzędnej.
Stół tymczasowy Klucz podstawowy można zdefiniować niejawnie w tabelach tymczasowych. Nie można definiować kluczy obcych w lokalnych lub globalnych tabelach tymczasowych.
Związek Klucz podstawowy jest indeksem klastrowym. Domyślnie nie jest to indeks klastrowany.
Powielanie Żadne dwa wiersze nie mogą mieć identycznych wartości klucza podstawowego. Klucz obcy może zawierać zduplikowane wartości.
Wprowadzenie Nie ma ograniczeń co do wstawiania wartości do kolumny tabeli. Wstawiając jakąkolwiek wartość do tabeli klucza obcego, należy upewnić się, że wartość ta występuje w kolumnie klucza podstawowego.

Jak wybrać między kluczem podstawowym a kluczem obcym

Z tego, co widzieliśmy, klucze podstawowe jednoznacznie identyfikują wpisy w tabeli, a klucze obce łączą te wpisy w tabelach, co jest istotne zarówno dla utrzymania integralności danych, jak i ułatwienia wydajnego wyszukiwania danych.