logo

Tuji ključ v DBMS

Tuji ključ se razlikuje od superključa, kandidatnega ključa ali primarnega ključa, ker je tuji ključ tisti, ki se uporablja za povezavo dveh tabel ali ustvarjanje povezljivosti med njima.

Tukaj, v tem razdelku, bomo razpravljali o tujem ključu, njegovi uporabi in si ogledali nekaj primerov, ki nam bodo pomagali razumeti delovanje in uporabo tujega ključa. Ogledali si bomo tudi njegovo praktično implementacijo na bazi podatkov, to je ustvarjanje in brisanje tujega ključa na tabeli.

Kaj je tuji ključ

Tuji ključ je tisti, ki se uporablja za povezavo dveh tabel skupaj prek primarnega ključa. To pomeni, da stolpci ene tabele kažejo na atribut primarnega ključa druge tabele. To nadalje pomeni, da če je kateri koli atribut nastavljen kot atribut primarnega ključa, bo v drugi tabeli deloval kot atribut tujega ključa. Vendar je treba vedeti, da tuji ključ nima nobene zveze s primarnim ključem.

Uporaba tujega ključa

Uporaba tujega ključa je preprosto povezovanje atributov dveh tabel skupaj s pomočjo atributa primarnega ključa. Tako se uporablja za ustvarjanje in vzdrževanje razmerja med obema odnosoma.

Primer tujega ključa

Oglejmo si primer za razumevanje delovanja tujega ključa.

opozorilno polje javascript

Razmislite o dveh tabelah študent in Oddelek imajo svoje ustrezne atribute, kot je prikazano v spodnji strukturi tabele:

pretvarjanje niza v celo število
Tuji ključ v DBMS
Tuji ključ v DBMS

V tabelah je en atribut, kot vidite, pogost, tj Stud_Id , vendar ima različne ključne omejitve za obe tabeli. V tabeli Študent je polje Stud_Id a primarni ključ ker enolično identificira vsa druga polja tabele študentov. Po drugi strani je Stud_Id a tuji ključ za tabelo Oddelek, ker deluje kot atribut primarnega ključa za tabelo Študent. To pomeni, da sta tako tabela študentov kot tabela oddelka povezani med seboj zaradi atributa Stud_Id.

Na spodnji sliki si lahko ogledate naslednjo strukturo razmerja med obema tabelama.

Tuji ključ v DBMS

Opomba: Referenčna integriteta v DBMS je razvita iz koncepta tujega ključa. Jasno je, da je primarni ključ edini obstoječi ključ, tuji ključ pa se vedno sklicuje na primarni ključ v neki drugi tabeli, v kateri je tabela, ki vsebuje primarni ključ, znana kot referenčna tabela ali nadrejena tabela za drugo tabelo, ki ima tuji ključ.

Ustvarjanje omejitve tujega ključa

Na CREATE TABLE

Spodaj je sintaksa, s katero se bomo naučili ustvariti tuji ključ v tabeli:

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

Tako lahko na ta način nastavimo tuji ključ za tabelo v bazi podatkov MYSQL.

V primeru ustvarjanja tujega ključa za tabelo v strežniku SQL ali Oracle bo delovala naslednja sintaksa:

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

Na ALTER TABLE

Sledi sintaksa za ustvarjanje omejitve tujega ključa za ALTER TABLE:

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

Spuščanje tujega ključa

Če želite izbrisati tuji ključ, lahko uporabite spodaj opisano sintakso:

 ALTER TABLE Department DROP FOREIGN KEY FK_StudentDepartment; 

Tako lahko na ta način spustimo tuji ključ z uporabo ALTER TABLE v bazi podatkov MYSQL.

Točka za zapomniti

Ko spustite tuji ključ, je treba poskrbeti za celovitost tabel, ki so povezane preko tujega ključa. V primeru, da naredite spremembe v eni tabeli in porušite celovitost obeh tabel, lahko prikaže določene napake zaradi nepravilne povezave med obema tabelama.

sosednji koti

Referenčna dejanja

Obstaja nekaj dejanj, ki so povezana z dejanji, ki jih izvede nosilec tabele tujega ključa:

1) Kaskada

niz nizov c

Ko izbrišemo vrstice v nadrejeni tabeli (tj. tisti, ki ima primarni ključ), se izbrišejo tudi isti stolpci v drugi tabeli (tj. tisti, ki ima tuji ključ). Tako je dejanje znano kot Kaskada .

2) Nastavite NULL

Tako referenčno dejanje ohranja referenčno celovitost obeh tabel. Ko manipuliramo/izbrišemo referenčno vrstico v nadrejeni/referenčni tabeli, je v podrejeni tabeli (tabela s tujim ključem) vrednost take referenčne vrstice nastavljena na NULL. Tako izvedeno referenčno dejanje je znano kot Nastavite NULL .

3) Nastavite PRIVZETO

kako preveriti velikost zaslona monitorja

Takšno dejanje se izvede, ko so vrednosti v navedeni vrstici nadrejene tabele posodobljene ali ko je vrstica izbrisana, so vrednosti v podrejeni tabeli nastavljene na privzete vrednosti stolpca.

4) Omejite

To je omejitvena omejitev, pri kateri vrednosti sklicevane vrstice v nadrejeni tabeli ni mogoče spremeniti ali izbrisati, razen če se nanjo ne sklicuje tuji ključ v podrejeni tabeli. Gre torej za običajno referenčno dejanje tujega ključa.

5) Brez ukrepanja

Je tudi omejitvena omejitev tujega ključa, vendar se izvaja šele po poskusu spreminjanja ali brisanja navedene vrstice nadrejene tabele.

6) Sprožilci

Vsa ta in druga referenčna dejanja so v osnovi implementirana kot sprožilci, kjer so dejanja tujega ključa zelo podobna ali skoraj podobna uporabniško definiranim sprožilcem. Vendar se v nekaterih primerih urejena referenčna dejanja nadomestijo z enakovrednimi uporabniško določenimi sprožilci za zagotovitev pravilnega izvajanja sprožilcev.