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
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.
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.