Vierasavain eroaa superavain-, ehdokas- tai ensisijaisesta avaimesta, koska vierasavain on se, jota käytetään kahden taulukon yhdistämiseen tai yhteyden luomiseen näiden kahden välille.
Tässä, tässä osiossa, keskustelemme viiteavaimesta, sen käytöstä ja katsomme esimerkkejä, jotka auttavat meitä ymmärtämään vieraan avaimen toimintaa ja käyttöä. Näemme myös sen käytännön toteutuksen tietokannassa, eli vierasavaimen luomisen ja poistamisen taulukossa.
Mikä on vieras avain
Vieras avain on avain, jota käytetään linkittämään kaksi taulukkoa toisiinsa ensisijaisen avaimen kautta. Se tarkoittaa, että yhden taulukon sarakkeet osoittavat toisen taulukon primaariavaimen määritteeseen. Se tarkoittaa lisäksi, että jos jokin attribuutti on asetettu ensisijaiseksi avaimeksi, se toimii toisessa taulukossa vieraan avaimen attribuuttina. Mutta pitäisi tietää, että vieraalla avaimella ei ole mitään tekemistä ensisijaisen avaimen kanssa.
Vieraan avaimen käyttö
Vierasavaimen käyttö on yksinkertaisesti kahden taulukon attribuuttien linkittämistä toisiinsa ensisijaisen avaimen attribuutin avulla. Siten sitä käytetään luomaan ja ylläpitämään suhdetta kahden suhteen välillä.
Esimerkki vieraasta avaimesta
Keskustellaan esimerkistä ymmärtääksemme vieraan avaimen toiminnan.
mikä on rom
Harkitse kahta taulukkoa Opiskelija ja osasto joilla on vastaavat attribuutit alla olevan taulukkorakenteen mukaisesti:
binääripuu inorder traversal
Taulukoissa yksi attribuutti, jonka näet, on yleinen, toisin sanoen Stud_Id , mutta sillä on erilaiset avainrajoitukset molemmille taulukoille. Opiskelijataulukossa Stud_Id-kenttä on a pääavain koska se tunnistaa yksilöllisesti kaikki muut opiskelijataulukon kentät. Toisaalta Stud_Id on a vieras avain Osastotaulukon attribuutti, koska se toimii opiskelijataulukon ensisijaisena avaimen attribuuttina. Se tarkoittaa, että sekä opiskelija- että osastotaulukko on linkitetty toisiinsa Stud_Id-attribuutin vuoksi.
Alla olevassa kuvassa voit tarkastella kahden taulukon välisen suhteen seuraavaa rakennetta.
Huomautus: DBMS:n viite-eheys on kehitetty viiteavaimen käsitteestä. On selvää, että ensisijainen avain on yksinomaan olemassa oleva avain ja vierasavain viittaa aina ensisijaiseen avaimeen jossain muussa taulukossa, jossa ensisijaisen avaimen sisältävää taulukkoa kutsutaan referoiduksi taulukoksi tai päätaulukoksi toiselle taulukolle, hänellä on vieras avain.
Vieraan avaimen rajoitteen luominen
Kohdassa CREATE TABLE
Alla on syntaksi, joka saa meidät oppimaan vierasavaimen luomisen taulukossa:
CREATE TABLE Department ( Dept_name varchar (120) NOT NULL, Stud_Id int, FOREIGN KEY (Stud_Id) REFERENCES Student (Stud_Id) );
Joten tällä tavalla voimme asettaa vierasavaimen MYSQL-tietokannan taulukolle.
Jos luot vierasavaimen taulukolle SQL- tai Oracle-palvelimessa, seuraava syntaksi toimii:
CREATE TABLE Department ( Dept_name varchar (120) NOT NULL, Stud_Id int FOREIGN KEY REFERENCES Student (Stud_Id) );
ALTER TABLEssa
Seuraava on syntaksi ALTER TABLE -taulukon vierasavainrajoitteen luomiseksi:
ALTER TABLE Department ADD FOREIGN KEY (Stud_Id) REFERENCES Student (Stud_Id);
Vieras-avaimen pudottaminen
Vieraan avaimen poistamiseen voidaan käyttää alla kuvattua syntaksia:
ALTER TABLE Department DROP FOREIGN KEY FK_StudentDepartment;
Joten tällä tavalla voimme pudottaa vieraan avaimen käyttämällä ALTER TABLE -taulukkoa MYSQL-tietokannassa.
Muistettava kohta
Kun pudotat vierasavaimen, on huolehdittava vieraalla avaimella yhdistettyjen taulukoiden eheydestä. Jos teet muutoksia yhteen taulukkoon ja häiritsee molempien taulukoiden eheyttä, se voi näyttää tiettyjä virheitä kahden taulukon välisen virheellisen yhteyden vuoksi.
int merkkijonoon javassa
Viittaustoimet
Jotkut toiminnot liittyvät vieraan avaimen taulukon haltijan tekemiin toimiin:
1) Kaskadi
katkaisutyökalu ubuntussa
Kun poistamme rivejä emotaulukosta (eli sen, jolla on ensisijainen avain), samat sarakkeet toisessa taulukossa (eli siinä, jossa on vierasavain) myös poistetaan. Näin ollen toiminta tunnetaan nimellä ryöpytä .
2) Aseta NULL
Tällainen viittaustoiminto säilyttää molempien taulukoiden viittauksen eheyden. Kun käsittelemme/poistamme viitattua riviä ylätason/viitatun taulukon alitaulukossa (taulukko, jossa on vierasavain), tällaisen viittausrivin arvoksi asetetaan NULL. Tällainen suoritettu referenssitoiminto tunnetaan nimellä Aseta NULL .
3) Aseta OLETUS
kuinka lukea csv-tiedosto javassa
Tällainen toiminta tapahtuu, kun päätaulukon viittausrivin arvot päivitetään tai rivi poistetaan, alitaulukon arvot asetetaan sarakkeen oletusarvoihin.
4) Rajoita
Se on rajoitus, jossa emotaulukon viittausrivin arvoa ei voida muuttaa tai poistaa, ellei siihen viitata alitaulukon vierasavaimella. Siten se on normaali vieraan avaimen viitetoiminto.
5) Ei toimenpiteitä
Se on myös vierasavaimen rajoitus, mutta se otetaan käyttöön vasta sen jälkeen, kun emotaulukon viitoitettua riviä on yritetty muokata tai poistaa.
6) Liipaisimet
Kaikki nämä ja muut viittaustoiminnot toteutetaan periaatteessa triggereinä, joissa vieraan avaimen toiminnot ovat paljon samankaltaisia tai melkein samanlaisia kuin käyttäjän määrittämät liipaisimet. Joissakin tapauksissa tilatut viittaustoiminnot kuitenkin korvataan vastaavilla käyttäjän määrittämillä triggereillä, jotta varmistetaan liipaisujen asianmukainen suorittaminen.