logo

Užsienio raktas DBVS

Užsienio raktas skiriasi nuo super rakto, kandidato rakto ar pirminio rakto, nes išorinis raktas yra tas, kuris naudojamas susieti dvi lenteles arba sukurti jų ryšį.

Čia, šiame skyriuje, aptarsime užsienio raktą, jo naudojimą ir pažvelgsime į keletą pavyzdžių, kurie padės suprasti užsienio rakto veikimą ir naudojimą. Taip pat pamatysime praktinį jo įgyvendinimą duomenų bazėje, ty kaip sukurti ir ištrinti pašalinį raktą lentelėje.

Kas yra svetimas raktas

Išorinis raktas yra tas, kuris naudojamas susieti dvi lenteles per pirminį raktą. Tai reiškia, kad vienos lentelės stulpeliai nurodo kitos lentelės pirminio rakto atributą. Be to, tai reiškia, kad jei kuris nors atributas yra nustatytas kaip pirminio rakto atributas, jis veiks kitoje lentelėje kaip išorinio rakto atributas. Tačiau reikia žinoti, kad išorinis raktas neturi nieko bendra su pirminiu raktu.

Užsienio rakto naudojimas

Užsienio rakto naudojimas yra tiesiog susieti dviejų lentelių atributus, naudojant pirminio rakto atributą. Taigi jis naudojamas santykiams tarp dviejų santykių sukurti ir palaikyti.

Užsienio rakto pavyzdys

Aptarkime pavyzdį, kad suprastume, kaip veikia užsienio raktas.

latekso sąrašai

Apsvarstykite dvi lenteles Studentas ir skyrius turintys atitinkamus atributus, kaip parodyta toliau pateiktoje lentelės struktūroje:

Užsienio raktas DBVS
Užsienio raktas DBVS

Lentelėse vienas atributas, matote, yra bendras, tai yra Stud_ID , tačiau abiejose lentelėse taikomi skirtingi pagrindiniai apribojimai. Mokinio lentelėje laukas Stud_Id yra a pirminis raktas nes ji vienareikšmiškai identifikuoja visus kitus Studento lentelės laukus. Kita vertus, Stud_Id yra a svetimas raktas Skyriaus lentelės atributas, nes jis veikia kaip pagrindinis studento lentelės rakto atributas. Tai reiškia, kad ir studentų, ir katedros lentelės yra susietos viena su kita dėl atributo Stud_Id.

Toliau pateiktame paveikslėlyje galite peržiūrėti toliau pateiktą dviejų lentelių santykio struktūrą.

Užsienio raktas DBVS

Pastaba: Referencinis vientisumas DBVS yra sukurtas remiantis išorinio rakto koncepcija. Akivaizdu, kad pirminis raktas yra vienas egzistuojantis raktas, o išorinis raktas visada yra nuoroda į pirminį raktą kitoje lentelėje, kurioje lentelė, kurioje yra pirminis raktas, yra žinoma kaip kitos lentelės nuoroda arba pagrindinė lentelė. turi išorinį raktą.

Užsienio rakto apribojimo kūrimas

Ant KURTI LENTELĘ

Žemiau yra sintaksė, kuri leis mums išmokti sukurti išorinį raktą lentelėje:

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

Taigi tokiu būdu galime nustatyti MYSQL duomenų bazės lentelės išorinį raktą.

aes vs des

Jei SQL arba Oracle serveryje sukuriate lentelės pašalinį raktą, veiks ši sintaksė:

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

Ant ALTER TABLE

Toliau pateikiama sintaksė, skirta sukurti išorinio rakto apribojimą ALTER TABLE:

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

Užsienio rakto numetimas

Norint ištrinti pašalinį raktą, galima naudoti toliau aprašytą sintaksę:

 ALTER TABLE Department DROP FOREIGN KEY FK_StudentDepartment; 

Taigi tokiu būdu mes galime numesti išorinį raktą naudodami ALTER TABLE MYSQL duomenų bazėje.

java eilutės formatavimas

Taškas, kurį reikia prisiminti

Kai numetate išorinį raktą, reikia pasirūpinti lentelių, sujungtų per išorinį raktą, vientisumu. Jei atliksite pakeitimus vienoje lentelėje ir sutrikdysite abiejų lentelių vientisumą, joje gali būti rodomos tam tikros klaidos dėl netinkamo dviejų lentelių ryšio.

Referenciniai veiksmai

Yra keletas veiksmų, susijusių su išorinio rakto lentelės turėtojo atliktais veiksmais:

1) Kaskados

Kai ištriname eilutes pirminėje lentelėje (t. y. toje, kurioje yra pagrindinis raktas), ištrinami ir tie patys stulpeliai kitoje lentelėje (t. y. toje, kurioje yra išorinis raktas). Taigi veiksmas žinomas kaip Kaskados .

2) Nustatykite NULL

jie yra dainininkai

Toks nuorodos veiksmas išlaiko abiejų lentelių nuorodos vientisumą. Kai manipuliuojame / ištriname nurodytą eilutę pirminėje / nuorodoje lentelėje, antrinėje lentelėje (lentelė su išoriniu raktu), tokios nuorodos eilutės reikšmė nustatoma kaip NULL. Toks atliktas orientacinis veiksmas žinomas kaip Nustatyti NULL .

3) Nustatykite NUMATYTOJI

Toks veiksmas įvyksta, kai atnaujinamos pirminės lentelės nurodytos eilutės reikšmės arba eilutė ištrinama, antrinėje lentelėje reikšmės nustatomos į numatytąsias stulpelio reikšmes.

4) Apriboti

Tai yra apribojimas, kai pagrindinės lentelės nuorodos eilutės reikšmės negalima keisti arba ištrinti, nebent jos nenurodomas antrinėje lentelėje esantis išorinis raktas. Taigi, tai yra įprastas išorinio rakto nuorodas veiksmas.

5) Jokių veiksmų

java sąrašas tuščias

Tai taip pat yra išorinio rakto apribojimas, tačiau jis įgyvendinamas tik pabandžius modifikuoti arba ištrinti nurodytą pagrindinės lentelės eilutę.

6) Trigeriai

Visi šie ir kiti referenciniai veiksmai iš esmės yra įgyvendinami kaip trigeriai, kai išorinio rakto veiksmai yra labai panašūs arba beveik panašūs į vartotojo apibrėžtus trigerius. Tačiau kai kuriais atvejais užsakyti nuorodos veiksmai pakeičiami lygiaverčiais vartotojo nustatytais aktyvikliais, kad būtų užtikrintas tinkamas aktyviklio vykdymas.