logo

Klucz obcy w systemie DBMS

Klucz obcy różni się od superklucza, klucza kandydującego lub klucza podstawowego, ponieważ klucz obcy to ten, który służy do łączenia ze sobą dwóch tabel lub tworzenia połączeń między nimi.

W tej sekcji omówimy klucz obcy, jego użycie i przyjrzymy się kilku przykładom, które pomogą nam zrozumieć działanie i użycie klucza obcego. Zobaczymy także jego praktyczną realizację na bazie danych, czyli utworzenie i usunięcie klucza obcego na tabeli.

Co to jest klucz obcy

Klucz obcy to taki, który służy do łączenia dwóch tabel za pomocą klucza podstawowego. Oznacza to, że kolumny jednej tabeli wskazują na atrybut klucza podstawowego drugiej tabeli. Oznacza to ponadto, że jeśli jakikolwiek atrybut zostanie ustawiony jako klucz podstawowy, będzie działał w innej tabeli jako atrybut klucza obcego. Należy jednak wiedzieć, że klucz obcy nie ma nic wspólnego z kluczem podstawowym.

Użycie klucza obcego

Użycie klucza obcego polega po prostu na połączeniu atrybutów dwóch tabel za pomocą atrybutu klucza podstawowego. Dlatego służy do tworzenia i utrzymywania relacji między dwiema relacjami.

Przykład klucza obcego

Omówmy przykład, aby zrozumieć działanie klucza obcego.

supw

Rozważ dwie tabele Student I Dział posiadające odpowiednie atrybuty, jak pokazano w poniższej strukturze tabeli:

Klucz obcy w systemie DBMS
Klucz obcy w systemie DBMS

Jak widać, w tabelach jeden atrybut jest powszechny, tzn Stud_Id , ale ma różne kluczowe ograniczenia dla obu tabel. W tabeli Student pole Stud_Id to a główny klucz ponieważ jednoznacznie identyfikuje wszystkie pozostałe pola tabeli Student. Z drugiej strony Stud_Id to a klucz obcy atrybut tabeli Department, ponieważ działa on jako atrybut klucza podstawowego dla tabeli Student. Oznacza to, że tabela Student i Department są ze sobą powiązane za pomocą atrybutu Stud_Id.

konwersja liczby całkowitej na ciąg

Na poniższym rysunku można zobaczyć następującą strukturę relacji pomiędzy dwiema tabelami.

Klucz obcy w systemie DBMS

Uwaga: Integralność referencyjna w systemie DBMS jest rozwijana na podstawie koncepcji klucza obcego. Oczywiste jest, że klucz podstawowy jest samodzielnie istniejącym kluczem, a klucz obcy zawsze odnosi się do klucza podstawowego w jakiejś innej tabeli, w której tabela zawierająca klucz podstawowy jest nazywana tabelą odniesienia lub tabelą nadrzędną dla innej tabeli, która ma klucz obcy.

Tworzenie ograniczenia klucza obcego

Na UTWÓRZ TABELĘ

Poniżej znajduje się składnia, dzięki której nauczymy się tworzenia klucza obcego w tabeli:

 CREATE TABLE Department ( Dept_name varchar (120) NOT NULL, Stud_Id int, FOREIGN KEY (Stud_Id) REFERENCES Student (Stud_Id) ); 

W ten sposób możemy ustawić klucz obcy dla tabeli w bazie danych MYSQL.

W przypadku tworzenia klucza obcego dla tabeli na serwerze SQL lub Oracle zadziała poniższa składnia:

plik json
 CREATE TABLE Department ( Dept_name varchar (120) NOT NULL, Stud_Id int FOREIGN KEY REFERENCES Student (Stud_Id) ); 

Na ALTER TABLE

Poniżej znajduje się składnia tworzenia ograniczenia klucza obcego w ALTER TABLE:

 ALTER TABLE Department ADD FOREIGN KEY (Stud_Id) REFERENCES Student (Stud_Id); 

Upuszczenie klucza obcego

Aby usunąć klucz obcy, można zastosować opisaną poniżej składnię:

 ALTER TABLE Department DROP FOREIGN KEY FK_StudentDepartment; 

W ten sposób możemy upuścić klucz obcy za pomocą ALTER TABLE w bazie danych MYSQL.

Wskaż do zapamiętania

Po upuszczeniu klucza obcego należy zadbać o integralność tabel połączonych kluczem obcym. Jeśli dokonasz zmian w jednej tabeli i naruszysz integralność obu tabel, może wyświetlić się błąd wynikający z nieprawidłowego połączenia między obiema tabelami.

Działania referencyjne

Istnieją pewne działania powiązane z działaniami podejmowanymi przez posiadacza tabeli klucza obcego:

1) Kaskada

Kiedy usuwamy wiersze w tabeli nadrzędnej (tj. tej, w której znajduje się klucz podstawowy), te same kolumny w drugiej tabeli (tj. tej, w której znajduje się klucz obcy) również zostaną usunięte. Zatem działanie to nosi nazwę Kaskada .

2) Ustaw NULL

Takie działanie referencyjne utrzymuje integralność referencyjną obu tabel. Kiedy manipulujemy/usuwamy wiersz odniesienia w tabeli nadrzędnej/w tabeli odniesienia, w tabeli podrzędnej (tabela posiadająca klucz obcy), wartość takiego wiersza odniesienia jest ustawiana na NULL. Taka wykonywana akcja referencyjna jest znana jako Ustaw NULL .

oni są piosenkarzami

3) Ustaw DOMYŚLNE

Taka akcja ma miejsce w przypadku aktualizacji wartości w odwoływanym wierszu tabeli nadrzędnej lub usunięciu wiersza, a wartości w tabeli podrzędnej zostają ustawione na domyślne wartości kolumny.

wywołaj funkcję JavaScript z HTML

4) Ogranicz

Jest to ograniczenie ograniczające, w przypadku którego nie można zmodyfikować ani usunąć wartości wiersza, do którego następuje odwołanie w tabeli nadrzędnej, chyba że nie jest ona odwoływana przez klucz obcy w tabeli podrzędnej. Jest to zatem normalne działanie referencyjne klucza obcego.

5) Brak działania

Jest to również ograniczenie klucza obcego, ale jest implementowane dopiero po próbie modyfikacji lub usunięcia wiersza tabeli nadrzędnej, do którego się odwołuje.

6) Wyzwalacze

Wszystkie te i inne akcje referencyjne są zasadniczo implementowane jako wyzwalacze, w przypadku których działania klucza obcego są bardzo podobne lub prawie podobne do wyzwalaczy zdefiniowanych przez użytkownika. Jednak w niektórych przypadkach uporządkowane akcje referencyjne są zastępowane przez odpowiadające im wyzwalacze zdefiniowane przez użytkownika, aby zapewnić prawidłowe wykonanie wyzwalacza.