logo

Strani ključ u DBMS-u

Strani ključ razlikuje se od super ključa, ključa kandidata ili primarnog ključa jer je strani ključ onaj koji se koristi za povezivanje dviju tablica zajedno ili stvaranje povezanosti između njih.

Ovdje, u ovom odjeljku, raspravljat ćemo o stranom ključu, njegovoj upotrebi i pogledati neke primjere koji će nam pomoći da razumijemo rad i upotrebu stranog ključa. Također ćemo vidjeti njegovu praktičnu implementaciju na bazi podataka, odnosno kreiranje i brisanje stranog ključa na tablici.

Što je strani ključ

Strani ključ je onaj koji se koristi za povezivanje dvije tablice putem primarnog ključa. To znači da stupci jedne tablice pokazuju na atribut primarnog ključa druge tablice. To nadalje znači da će, ako je bilo koji atribut postavljen kao atribut primarnog ključa, raditi u drugoj tablici kao atribut stranog ključa. Ali treba znati da strani ključ nema nikakve veze s primarnim ključem.

Korištenje stranog ključa

Upotreba stranog ključa je jednostavno povezivanje atributa dviju tablica zajedno uz pomoć atributa primarnog ključa. Dakle, koristi se za stvaranje i održavanje odnosa između dva odnosa.

Primjer stranog ključa

Razmotrimo primjer kako bismo razumjeli rad stranog ključa.

b plus drvo

Razmotrite dvije tablice Student i Odjel imaju svoje odgovarajuće atribute kao što je prikazano u strukturi tablice u nastavku:

slice java array
Strani ključ u DBMS-u
Strani ključ u DBMS-u

U tablicama je jedan atribut, vidite, čest, tj Stud_Id , ali ima različita ključna ograničenja za obje tablice. U tablici Student, polje Stud_Id je a Osnovni ključ jer jedinstveno identificira sva ostala polja tablice Student. S druge strane, Stud_Id je a strani kljuc atribut za tablicu Odjel jer djeluje kao atribut primarnog ključa za tablicu Student. To znači da su i tablica Student i Department povezane jedna s drugom zbog atributa Stud_Id.

Na donjoj slici možete vidjeti sljedeću strukturu odnosa između dvije tablice.

Strani ključ u DBMS-u

Napomena: Referentni integritet u DBMS-u razvijen je iz koncepta stranog ključa. Jasno je da je primarni ključ jedini postojeći ključ, a strani ključ uvijek referenca na primarni ključ u nekoj drugoj tablici, u kojoj je tablica koja sadrži primarni ključ poznata kao referentna tablica ili nadređena tablica za drugu tablicu koja ima strani ključ.

Stvaranje ograničenja stranog ključa

Na CREATE TABLE

Ispod je sintaksa koja će nas potaknuti da naučimo stvaranje stranog ključa u tablici:

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

Dakle, na ovaj način možemo postaviti strani ključ za tablicu u MYSQL bazi podataka.

U slučaju stvaranja stranog ključa za tablicu u SQL ili Oracle poslužitelju, sljedeća sintaksa će funkcionirati:

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

Na ALTER TABLE

Slijedi sintaksa za stvaranje ograničenja stranog ključa na ALTER TABLE:

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

Ispuštanje stranog ključa

Za brisanje stranog ključa postoji dolje opisana sintaksa koja se može koristiti:

 ALTER TABLE Department DROP FOREIGN KEY FK_StudentDepartment; 

Dakle, na ovaj način možemo ispustiti strani ključ koristeći ALTER TABLE u MYSQL bazi podataka.

Točka za pamćenje

Kada ispuštate strani ključ, potrebno je voditi računa o integritetu tablica koje su povezane preko stranog ključa. U slučaju da napravite promjene u jednoj tablici i narušite cjelovitost obje tablice, može prikazati određene pogreške zbog nepravilne povezanosti između dvije tablice.

arp - naredba

Referentne radnje

Postoje neke radnje koje su povezane s radnjama koje je poduzeo držač tablice stranog ključa:

1) Kaskada

snijeg protiv leda

Kada izbrišemo retke u nadređenoj tablici (tj. onoj koja sadrži primarni ključ), isti stupci u drugoj tablici (tj. onoj koja drži strani ključ) također se brišu. Dakle, akcija je poznata kao Kaskada .

2) Postavite NULL

Takvo referentno djelovanje održava referentni integritet obje tablice. Kada manipuliramo/brišemo referencirani redak u nadređenoj/referenciranoj tablici, u podređenoj tablici (tablica koja ima strani ključ), vrijednost takvog referenciranog retka postavlja se na NULL. Takva referentna radnja koja se izvodi poznata je kao Postavite NULL .

3) Postavite ZADANO

sve velika slova prečac excel

Takva se radnja odvija kada se vrijednosti u referenciranom retku nadređene tablice ažuriraju ili kada se red izbriše, a vrijednosti u podređenoj tablici postavljene su na zadane vrijednosti stupca.

4) Ograničiti

To je ograničenje ograničenja gdje se vrijednost referenciranog retka u nadređenoj tablici ne može modificirati ili izbrisati osim ako nije upućena stranim ključem u podređenoj tablici. Dakle, to je normalna referentna radnja stranog ključa.

5) Nema akcije

To je također ograničenje stranog ključa, ali se implementira samo nakon pokušaja izmjene ili brisanja retka nadređene tablice.

6) Okidači

Sve ove i druge referentne akcije u osnovi su implementirane kao okidači gdje su radnje stranog ključa vrlo slične ili gotovo slične korisnički definiranim okidačima. Međutim, u nekim slučajevima, uređene referentne radnje zamjenjuju se njihovim ekvivalentnim korisnički definiranim okidačima kako bi se osiguralo ispravno izvršavanje okidača.