logo

Ārējā atslēga DBVS

Ārējā atslēga atšķiras no superatslēgas, kandidātatslēgas vai primārās atslēgas, jo ārējā atslēga ir tā, ko izmanto, lai savienotu divas tabulas vai izveidotu savienojumu starp abām.

Šeit, šajā sadaļā, mēs apspriedīsim ārējo atslēgu, tās izmantošanu un apskatīsim dažus piemērus, kas mums palīdzēs izprast ārējās atslēgas darbību un lietošanu. Mēs redzēsim arī tās praktisko ieviešanu datu bāzē, t.i., ārējās atslēgas izveidošanu un dzēšanu tabulā.

Kas ir svešā atslēga

Ārējā atslēga ir tā, ko izmanto, lai savienotu divas tabulas, izmantojot primāro atslēgu. Tas nozīmē, ka vienas tabulas kolonnas norāda uz otras tabulas primārās atslēgas atribūtu. Turklāt tas nozīmē, ka, ja kāds atribūts ir iestatīts kā primārās atslēgas atribūts, tas darbosies citā tabulā kā ārējās atslēgas atribūts. Bet jāzina, ka svešajai atslēgai nav nekāda sakara ar primāro atslēgu.

Ārējās atslēgas izmantošana

Ārējās atslēgas izmantošana ir vienkārši divu tabulu atribūtu sasaiste ar primārās atslēgas atribūta palīdzību. Tādējādi to izmanto attiecību veidošanai un uzturēšanai starp abām attiecībām.

Ārējās atslēgas piemērs

Apspriedīsim piemēru, lai izprastu ārējās atslēgas darbību.

js daudzrindu virkne

Apsveriet divas tabulas Students un nodaļa kam ir attiecīgie atribūti, kā parādīts tālāk esošajā tabulas struktūrā:

virknes pārveidošana par json objektu
Ārējā atslēga DBVS
Ārējā atslēga DBVS

Tabulās viens atribūts, kā jūs varat redzēt, ir kopīgs, tas ir Stud_ID , taču tai ir atšķirīgi galvenie ierobežojumi abām tabulām. Studentu tabulā lauks Stud_Id ir a primārā atslēga jo tas unikāli identificē visus pārējos Studentu tabulas laukus. No otras puses, Stud_Id ir a sveša atslēga atribūts nodaļas tabulai, jo tas darbojas kā primārās atslēgas atribūts Studentu tabulai. Tas nozīmē, ka atribūta Stud_Id dēļ studentu un nodaļas tabula ir savstarpēji saistītas.

Zemāk redzamajā attēlā varat skatīt šādu abu tabulu attiecību struktūru.

Ārējā atslēga DBVS

Piezīme. Atsauces integritāte DBVS ir izstrādāta no ārējās atslēgas jēdziena. Ir skaidrs, ka primārā atslēga ir atsevišķa esoša atslēga, un ārējā atslēga vienmēr ir atsauce uz primāro atslēgu kādā citā tabulā, kurā tabula, kurā ir primārā atslēga, ir zināma kā atsauces tabula vai vecāktabula otrai tabulai. kam ir ārējā atslēga.

Ārējās atslēgas ierobežojuma izveide

Sadaļā CREATE TABLE

Tālāk ir norādīta sintakse, kas liks mums iemācīties ārējās atslēgas izveidi tabulā:

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

Tādējādi mēs varam iestatīt ārējo atslēgu tabulai MYSQL datubāzē.

Ja tiek izveidota ārējā atslēga tabulai SQL vai Oracle serverī, darbosies šāda sintakse:

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

Uz ALTER TABLE

Tālāk ir norādīta sintakse ārējās atslēgas ierobežojuma izveidei ALTER TABLE:

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

Ārējās atslēgas nomešana

Lai dzēstu ārējo atslēgu, var izmantot tālāk aprakstīto sintakse:

 ALTER TABLE Department DROP FOREIGN KEY FK_StudentDepartment; 

Tātad šādā veidā mēs varam nomest ārējo atslēgu, izmantojot ALTER TABLE MYSQL datubāzē.

Punkts, kas jāatceras

Nometot ārējo atslēgu, ir jārūpējas par to tabulu integritāti, kuras ir savienotas, izmantojot ārējo atslēgu. Ja veicat izmaiņas vienā tabulā un tiek traucēta abu tabulu integritāte, tā var parādīt noteiktas kļūdas nepareizas savienojamības dēļ starp abām tabulām.

q3 mēneši

Atsauces darbības

Ir dažas darbības, kas ir saistītas ar ārējās atslēgas tabulas turētāja veiktajām darbībām:

1) Kaskāde

nfa uz dfa

Dzēšot rindas vecāktabulā (t.i., tajā, kurā ir primārā atslēga), tiek dzēstas arī tās pašas kolonnas otrā tabulā (t.i., tajā, kurā ir ārējā atslēga). Tādējādi darbība ir pazīstama kā Kaskāde .

2) Iestatiet NULL

Šāda atsauces darbība saglabā abu tabulu atsauces integritāti. Kad mēs manipulējam/dzēšam atsauces rindu vecāku/atsauces tabulā, pakārtotajā tabulā (tabulā ar ārējo atslēgu), šādas atsauces rindas vērtība tiek iestatīta kā NULL. Šāda veiktā atsauces darbība ir pazīstama kā Iestatiet NULL .

3) Iestatiet DEFAULT

virkne uz jsonobject

Šāda darbība notiek, kad tiek atjauninātas vērtības vecāktabulas atsauces rindā vai rinda tiek dzēsta, bērntabulas vērtībām ir iestatītas kolonnas noklusējuma vērtības.

4) Ierobežot

Tas ir ierobežojuma ierobežojums, kurā atsauces rindas vērtību vecāktabulā nevar mainīt vai dzēst, ja vien uz to nenorāda ārējā atslēga pakārtotajā tabulā. Tādējādi tā ir parasta ārējās atslēgas atsauces darbība.

5) Nekādu darbību

Tas ir arī ārējās atslēgas ierobežojums, taču tas tiek ieviests tikai pēc tam, kad mēģināts modificēt vai dzēst vecāktabulas atsauces rindu.

6) Trigeri

Visas šīs un citas atsauces darbības pamatā tiek īstenotas kā trigeri, kur ārējās atslēgas darbības ir daudz līdzīgas vai gandrīz līdzīgas lietotāja definētiem trigeriem. Tomēr dažos gadījumos pasūtītās atsauces darbības tiek aizstātas ar līdzvērtīgiem lietotāja definētiem aktivizētājiem, lai nodrošinātu pareizu trigeru izpildi.