Klucz podstawowy a klucz obcy: jaka jest różnica?

Spisie treści:

Anonim

Zanim poznasz różnicę między kluczem podstawowym a obcym, nauczmy się:

Co to są klucze?

Klucze to atrybut, który pomaga zidentyfikować wiersz (krotkę) w relacji (tabeli). Pozwalają znaleźć relację między dwiema tabelami. Klucze pomagają jednoznacznie zidentyfikować wiersz w tabeli za pomocą kombinacji jednej lub więcej kolumn w tej tabeli. Klucz bazy danych jest również pomocny przy znajdowaniu unikatowego rekordu lub wiersza w tabeli.

Co to jest relacja z bazą danych?

Relacja bazy danych to powiązania między jedną lub wieloma tabelami utworzonymi za pomocą instrukcji łączenia. Służy do wydajnego pobierania danych z bazy danych. Istnieją przede wszystkim trzy typy relacji: 1) jeden do jednego, 2) jeden do wielu, 3) wiele do wielu.

Co to jest klucz podstawowy?

Ograniczenie klucza podstawowego to kolumna lub grupa kolumn, która w unikalny sposób identyfikuje każdy wiersz w tabeli systemu zarządzania relacyjnymi bazami danych. Nie może być duplikatem, co oznacza, że ​​ta sama wartość nie powinna pojawiać się w tabeli więcej niż raz.

Tabela może mieć więcej niż jeden klucz podstawowy. 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.

Co to jest klucz obcy?

Klucz obcy to kolumna, która tworzy relację między dwiema tabelami. Celem klucza obcego jest zachowanie integralności danych i umożliwienie nawigacji między dwoma różnymi wystąpieniami jednostki. Działa jako odsyłacz między dwiema tabelami, ponieważ odwołuje się do klucza podstawowego innej tabeli. Każda relacja w bazie danych powinna być obsługiwana przez klucz obcy.

KLUCZOWE RÓŻNICE:

  • Ograniczenie klucza podstawowego to kolumna, która w unikalny sposób identyfikuje każdy wiersz w tabeli systemu zarządzania relacyjną bazą danych, podczas gdy 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.
  • Możesz mieć tylko jeden klucz podstawowy w tabeli, podczas gdy możesz mieć wiele kluczy obcych w tabeli.
  • Wartości klucza podstawowego nie można usunąć z tabeli nadrzędnej, natomiast wartość klucza obcego można usunąć z tabeli podrzędnej.
  • Żadne dwa wiersze nie mogą mieć identycznych wartości dla klucza podstawowego, z drugiej strony klucz obcy może zawierać zduplikowane wartości.
  • Nie ma ograniczeń we wstawianiu wartości do kolumny tabeli podczas wstawiania wartości do tabeli kluczy obcych, upewnij się, że wartość znajduje się w kolumnie klucza podstawowego.

Dlaczego warto używać klucza podstawowego?

Oto wady / 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 zezwalasz komuś na wprowadzanie wartości null.
  • Jeśli usuniesz lub zaktualizujesz rekordy, określone działanie zostanie podjęte w celu zapewnienia integralności danych.
  • Wykonaj operację ograniczania, aby odrzucić operację usuwania lub aktualizacji dla tabeli nadrzędnej.
  • Dane są uporządkowane w sekwencji indeksów klastrowych za każdym razem, gdy fizycznie organizujesz tabelę DBMS.

Dlaczego warto używać klucza obcego?

Oto ważne powody używania klucza obcego:

  • Klucze obce ułatwiają migrację jednostek przy użyciu klucza podstawowego z tabeli nadrzędnej.
  • Klucz obcy umożliwia połączenie ze sobą dwóch lub więcej tabel.
  • Zapewnia spójność danych w bazie danych.
  • Klucz obcy może służyć do dopasowania kolumny lub kombinacji kolumn z kluczem podstawowym w tabeli nadrzędnej.
  • Ograniczenie klucza obcego SQL jest używane, aby upewnić się, że referencyjna integralność rodzica danych jest zgodna z wartościami w tabeli podrzędnej.

Przykład klucza podstawowego

Składnia:

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

CREATE TABLE (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:

StudID Roll No Imię Nazwisko E-mail
1 11 Tomek Cena £ Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie obsługi JavaScript.
2 12 Nacięcie Wright Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie obsługi JavaScript.
3 13 Dana Natan Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie obsługi JavaScript.

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

Przykład klucza obcego

Składnia:

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

CREATE TABLE 
(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.
  • Wiązanie oznacza nazwę tworzonego wiązania.
  • Odnośniki wskazują tabelę z kluczem podstawowym.

Przykład:

DeptCode DeptName
001 Nauka
002 język angielski
005 Komputer
ID nauczyciela Fname Lname
B002 David Warner
B017 Sara Józefa
B009 Mikrofon Brunton

W powyższym przykładzie mamy dwie tabele, nauczyciela i oddział w szkole. Nie ma jednak możliwości sprawdzenia, które wyszukiwanie działa w którym dziale.

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

ID nauczyciela DeptCode Fname Lname
B002 002 David Warner
B017 002 Sara Józefa
B009 001 Mikrofon Brunton

Ta koncepcja jest również znana jako integralność referencyjna.

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

Oto ważna różnica między kluczem podstawowym a kluczem obcym:

Klucz podstawowy Klucz obcy
Ograniczenie klucza podstawowego to kolumna lub grupa kolumn, która w unikalny sposób identyfikuje każdy wiersz w tabeli systemu zarządzania relacyjnymi bazami danych. Klucz obcy to kolumna, która tworzy relację między dwiema tabelami.
Pomaga jednoznacznie zidentyfikować rekord w tabeli. Jest to pole w tabeli, które jest kluczem podstawowym innej tabeli.
Klucz podstawowy nigdy nie akceptuje wartości null. Klucz obcy może akceptować wiele wartości null.
Klucz podstawowy jest indeksem klastrowym, a dane w tabeli DBMS są fizycznie uporządkowane w kolejności indeksu klastrowego. Klucz obcy nie może automatycznie utworzyć indeksu, klastrowego ani nieklastrowego.
Możesz mieć pojedynczy klucz podstawowy w tabeli. W tabeli możesz mieć wiele kluczy obcych.
Wartości klucza podstawowego nie można usunąć z tabeli nadrzędnej. Wartość klucza obcego można usunąć z tabeli podrzędnej.
Klucz podstawowy można zdefiniować niejawnie w tabelach tymczasowych. Nie można definiować kluczy obcych w lokalnych lub globalnych tabelach tymczasowych.
Klucz podstawowy to indeks klastrowy. Domyślnie nie jest to indeks klastrowy.
Żadne dwa wiersze nie mogą mieć identycznych wartości dla klucza podstawowego. Klucz obcy może zawierać zduplikowane wartości.
Nie ma ograniczeń we wstawianiu wartości do kolumny tabeli. Wstawiając dowolną wartość do tabeli kluczy obcych, upewnij się, że znajduje się ona w kolumnie klucza podstawowego.