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