Ero ensisijaisen avaimen ja vieraan avaimen välillä
Tärkeimmät erot ensisijaisen avaimen ja vieraan avaimen välillä
- Ensisijainen avaimen rajoitus on sarake, joka yksilöi relaatiotietokannan hallintajärjestelmän taulukon jokaisen rivin, kun taas vierasavain on sarake, joka luo suhteen kahden taulukon välille.
- Ensisijainen avain ei koskaan hyväksy nolla-arvoja, kun taas vierasavain voi hyväksyä useita nolla-arvoja.
- Taulukossa voi olla vain yksi ensisijainen avain, kun taas taulukossa voi olla useita vieraita avaimia.
- Ensisijaisen avaimen arvoa ei voi poistaa päätaulukosta, kun taas vierasavaimen arvo voidaan poistaa alitaulukosta.
- Kahdella rivillä ei voi olla identtisiä arvoja ensisijaiselle avaimelle; toisaalta vierasavain voi sisältää päällekkäisiä arvoja.
- Ei ole rajoituksia arvojen lisäämiselle taulukon sarakkeeseen, kun lisättäessä mitä tahansa arvoa vierasavaintaulukkoon; varmista, että arvo on perusavaimen sarakkeessa.
Tässä olen analysoinut eroa ensisijaisen avaimen ja vierasavaimen välillä ja arvioin kattavasti niiden edut ja haitat.
Mikä on ensisijainen avain?
Ensisijainen avaimen rajoitus on sarake tai sarakkeiden ryhmä, joka tunnistaa yksilöllisesti jokaisen relaatiotietokannan hallintajärjestelmän taulukon rivin. Se ei voi olla kaksoiskappale, mikä tarkoittaa, että sama arvo ei saa esiintyä taulukossa useammin kuin kerran.
Taulukossa voi olla vain yksi ensisijainen avain. The ensisijainen avain voidaan määrittää sarake- tai taulukkotasolla. Jos luot yhdistetyn ensisijaisen avaimen, se tulee määrittää taulukkotasolla.
Esimerkki ensisijaisesta avaimesta
Syntaksi:
Alla on ensisijaisen avaimen syntaksi:
CREATE TABLE <Table-Name> ( Column1 datatype, Column2 datatype, PRIMARY KEY (Column-Name) . );
Täällä
- Taulukon_nimi on luotavan taulukon nimi.
- Sarakkeen_nimi on sen sarakkeen nimi, jolla on ensisijainen avain.
Esimerkiksi:
StudID | Rulla nro | Etunimi | Sukunimi | Sähköposti |
---|---|---|---|---|
1 | 11 | Tomi | Hinta | abc@gmail.com |
2 | 12 | Nick | Wright | xyz@gmail.com |
3 | 13 | Dana | Natan | mno@yahoo.com |
Yllä olevassa esimerkissä olemme luoneet opiskelijataulukon, jossa on sarakkeita, kuten StudID, Roll No., Etunimi, Sukunimi ja Sähköposti. StudID on valittu ensisijaiseksi avaimeksi, koska se voi yksilöidä muut taulukon rivit.
Miksi käyttää ensisijaista avainta?
Olen vuosien ajan tietokantajärjestelmiä käsitellyt havainnut seuraavat haitat ja edut ensisijaisen avaimen käytössä:
- Ensisijaisen avaimen päätavoite on tunnistaa jokainen tietokantataulukon tietue.
- Voit käyttää ensisijaista avainta, kun et anna kenenkään syöttää nolla-arvoja.
- Jos poistat tai päivität tietueita, määrittämäsi toimenpiteet suoritetaan tietojen eheyden varmistamiseksi.
- Suorita rajoitustoiminto hylätäksesi päätaulukon poisto- tai päivitystoiminnon.
- Tiedot järjestetään klusteroitujen indeksien sekvenssiin aina, kun järjestät fyysisesti DBMS-taulukon.
Mikä on vieras avain?
Vieras avain on sarake, joka luo suhteen kahden taulukon välille. Vieraan avaimen tarkoitus on säilyttää tietojen eheys ja mahdollistaa navigointi entiteetin kahden eri esiintymän välillä. Se toimii ristiviittauksena kahden taulukon välillä, koska se viittaa toisen taulukon ensisijaiseen avaimeen. Jokaista tietokannan suhdetta tulee tukea vieraalla avaimella.
Esimerkki vieraasta avaimesta
Syntaksi:
Alla on vierasavaimen syntaksi:
CREATE TABLE <Table Name>( column1 datatype, column2 datatype, constraint (name of constraint) FOREIGN KEY [column1, column2...] REFERENCES [primary key table name] (List of primary key table column) ...);
Täällä
- Parametri Taulukon nimi ilmaisee luotavan taulukon nimen.
- Parametrit sarake1, sarake2… kuvaavat sarakkeita, jotka on lisättävä taulukkoon.
- Rajoitus tarkoittaa luomasi rajoitteen nimeä.
- Viittaukset osoittavat taulukon, jossa on ensisijainen avain.
Esimerkiksi:
DeptCode | Osaston nimi |
---|---|
001 | tiede |
002 | Englanti |
005 | tietokonetta |
Opettajan tunnus | Fname | Lnimi |
---|---|---|
B002 | David | Warner |
B017 | Sara | Joseph |
B009 | mikrofoni | brunton |
Yllä olevassa esimerkissä meillä on kaksi taulukkoa: opettaja ja osasto koulussa. Ei kuitenkaan ole mahdollista nähdä, mikä haku toimii millä osastolla.
Tässä taulukossa lisäämällä vieraavain Deptcodessa opettajan nimeen, voimme luoda suhteen kahden taulukon välille.
Opettajan tunnus | DeptCode | Fname | Lnimi |
---|---|---|---|
B002 | 002 | David | Warner |
B017 | 002 | Sara | Joseph |
B009 | 001 | mikrofoni | brunton |
Tämä käsite tunnetaan myös referenssieheydenä.
Miksi käyttää ulkoista avainta?
Mitä olen nähnyt, tässä on tärkeitä syitä ottaa käyttöön vieraita avaimia:
- Vieraat avaimet auttavat sinua siirtämään entiteettejä käyttämällä ensisijaista avainta ylätason taulukosta.
- A vieraan avaimen mahdollistaa kahden tai useamman taulukon yhdistämisen.
- Se tekee tietokannan tiedoista johdonmukaisia.
- Vierasavainta voidaan käyttää yhdistämään sarake tai sarakkeiden yhdistelmä päätaulukon ensisijaiseen avaimeen.
- SQL-vieraan avaimen rajoitusta käytetään varmistamaan, että datan ylätason viiteeheys vastaa alitaulukon arvoja.
Ero ensisijaisen avaimen ja vieraan avaimen välillä
Haluan kertoa tärkeän eron ensisijaisen avaimen ja vierasavaimen välillä, kuten olen henkilökohtaisesti kokenut:
Vertailuperuste | Pääavain | viiteavain |
---|---|---|
Määritelmä | Ensisijainen avaimen rajoitus on sarake tai sarakkeiden ryhmä, joka tunnistaa yksilöllisesti jokaisen rivin taulukossa relaatiotietokannan hallintajärjestelmä. | Vieras avain on sarake, joka luo suhteen kahden taulukon välille. |
Perus | Se auttaa sinua yksilöimään tietueen taulukossa. | Se on taulukon kenttä, joka on toisen taulukon ensisijainen avain. |
NULL | Ensisijainen avain ei koskaan hyväksy nolla-arvoja. | Vieras avain voi hyväksyä useita nolla-arvoja. |
Indeksointi | Ensisijainen avain on klusteroitu indeksi, ja DBMS-taulukon tiedot on järjestetty fyysisesti klusteroidun indeksin järjestykseen. | Vieras avain ei voi luoda automaattisesti indeksiä, klusteroitua tai ei-klusteroitua. |
Laskea | Taulukossa voi olla yksi ensisijainen avain. | Taulukossa voi olla useita vieraita avaimia. |
poisto | Ensisijaisen avaimen arvoa ei voi poistaa päätaulukosta. | Vierasavaimen arvo voidaan poistaa lapsitaulukosta. |
Väliaikainen pöytä | Voit määrittää ensisijaisen avaimen implisiittisesti väliaikaisissa taulukoissa. | Et voi määrittää vieraita avaimia paikallisiin tai globaaleihin väliaikaisiin taulukoihin. |
Yhteys | Ensisijainen avain on klusteroitu indeksi. | Oletuksena se ei ole klusteroitu indeksi. |
jäljentäminen | Kahdella rivillä ei voi olla identtisiä arvoja ensisijaiselle avaimelle. | Vierasavain voi sisältää päällekkäisiä arvoja. |
lisäys | Arvojen lisäämistä taulukon sarakkeeseen ei ole rajoitettu. | Kun lisäät mitä tahansa arvoa vierasavaintaulukkoon, varmista, että arvo on ensisijaisen avaimen sarakkeessa. |
Kuinka valita ensisijaisen ja vieraan avaimen välillä
Olemme nähneet, että ensisijaiset avaimet tunnistavat yksilöllisesti taulukkomerkinnät, ja vieraat avaimet linkittävät nämä merkinnät taulukoiden välillä, mikä on kriittistä tiedon eheyden ylläpitämisen ja tehokkaan tiedonhaun kannalta.