Ensisijainen avain vs ulkomainen avain: Mikä on ero?

Sisällysluettelo:

Anonim

Ennen kuin opit eron ensisijaisen avaimen ja vieraan avaimen välillä, opitaan:

Mitä avaimet ovat?

Avaimet ovat attribuutti, joka auttaa sinua tunnistamaan rivi (kaksinkertainen) suhteessa (taulukossa). Niiden avulla voit löytää kahden taulukon välisen suhteen. Avaimet auttavat tunnistamaan taulukon rivin yksilöllisesti yhdistämällä yksi tai useampi taulukon sarake. Tietokanta-avaimesta on apua myös yksilöllisen tietueen tai rivin löytämisessä taulukosta.

Mikä on tietokantasuhde?

Tietokantayhteys on yhdistykset yhden tai useamman taulukon välillä, jotka luodaan liittymislausekkeiden avulla. Sitä käytetään tietojen tehokkaaseen hakemiseen tietokannasta. Suhteita on pääasiassa kolmen tyyppisiä: 1) yksi yhteen, 2) yksi moniin, 3) monia moniin.

Mikä on ensisijainen avain?

Ensisijainen avainrajoitus on sarake tai sarakeryhmä, joka yksilöi yksilöllisesti jokaisen rivin relaatiotietokannan hallintajärjestelmän taulukossa. Se ei voi olla kaksoiskappale, eli saman arvon ei pitäisi näkyä taulukossa useammin kuin kerran.

Taulukossa voi olla useampi kuin yksi ensisijainen avain. Ensisijainen avain voidaan määrittää sarake- tai taulukon tasolla. Jos luot yhdistetyn ensisijaisen avaimen, se tulisi määritellä taulukon tasolla.

Mikä on Foreign Key?

Vieras avain on sarake, joka luo suhteen kahden taulukon välille. Ulkomaisen avaimen tarkoituksena on ylläpitää tietojen eheyttä ja sallia navigointi entiteetin kahden eri esiintymän välillä. Se toimii ristiviitteenä kahden taulukon välillä, koska se viittaa toisen taulukon ensisijaiseen avaimeen. Kaikkia tietokannan suhteita tulisi tukea ulkomaisella avaimella.

AVAINEROT:

  • Ensisijaisen avaimen rajoitus on sarake, joka yksilöi yksilöllisesti relaatiotietokannan hallintajärjestelmän taulukon kaikki rivit, kun taas vieras avain on sarake, joka luo yhteyden kahden taulukon välille.
  • Ensisijainen avain ei koskaan hyväksy nolla-arvoja, kun taas vieras avain voi hyväksyä useita nolla-arvoja.
  • Taulukossa voi olla vain yksi ensisijainen avain, kun taas taulukossa voi olla useita ulkomaisia ​​avaimia.
  • Ensisijaisen avaimen arvoa ei voida poistaa ylätaulukosta, kun taas vieraan avaimen arvon arvoa voidaan poistaa alitaulukosta.
  • Kahdella rivillä ei voi olla yhtäläisiä arvoja ensisijaiselle avaimelle, toisaalta vieras avain voi sisältää kaksoisarvoja.
  • Arvojen lisäämiseen taulukon sarakkeeseen ei ole rajoituksia, kun lisäät mitään arvoa vieraan avaimen taulukkoon. Varmista, että arvo on läsnä ensisijaisen avaimen sarakkeessa.

Miksi käyttää ensisijaista avainta?

Tässä ovat ensisijaisen avaimen käytön haitat / edut:

  • Ensisijaisen avaimen päätavoitteena on tunnistaa kaikki tietokantataulukon tietueet.
  • Voit käyttää ensisijaista avainta, kun et salli jonkun syöttää nolla-arvoja.
  • Jos poistat tai päivität tietueita, määrittämäsi toimenpide suoritetaan tietojen eheyden varmistamiseksi.
  • Suorita rajoitustoiminto hylätäksesi vanhemman taulukon poisto- tai päivitystoiminnon.
  • Tiedot on järjestetty ryhmiteltyyn hakemistoon aina, kun fyysisesti järjestät DBMS-taulukon.

Miksi käyttää ulkomaista avainta?

Tässä ovat tärkeät syyt ulkomaisen avaimen käyttöön:

  • Ulkomaiset avaimet auttavat sinua siirtämään entiteettejä päätaulukon pääavaimen avulla.
  • Vieraan avaimen avulla voit linkittää kaksi tai useampia taulukoita yhteen.
  • Se tekee tietokannastasi yhdenmukaiset.
  • Ulkomaista avainta voidaan käyttää vastaamaan saraketta tai sarakkeiden yhdistelmää päätaulukon pääavaimeen.
  • SQL-ulkomaisen avaimen rajoitusta käytetään varmistamaan, että data-vanhemman viitteellinen eheys vastaa alatason arvoja.

Esimerkki ensisijaisesta avaimesta

Syntaksi:

Alla on ensisijaisen avaimen syntaksit:

CREATE TABLE (Column1 datatype,Column2 datatype, PRIMARY KEY (Column-Name).);

Tässä,

  • Taulukon_nimi on luotavan taulukon nimi.
  • Column_Name on sen sarakkeen nimi, jolla on ensisijainen avain.

Esimerkki:

StudID Rulla nro Etunimi Sukunimi Sähköposti
1 11 Tom Hinta Tämä sähköpostiosoite on suojattu spamboteilta. Tarvitset JavaScriptin käyttääksesi sitä.
2 12 Nick Wright Tämä sähköpostiosoite on suojattu spamboteilta. Tarvitset JavaScriptin käyttääksesi sitä.
3 13 Dana Natan Tämä sähköpostiosoite on suojattu spamboteilta. Tarvitset JavaScriptin käyttääksesi sitä.

Yllä olevassa esimerkissä olemme luoneet opiskelijataulukon, jossa on sarakkeita kuten StudID, Rullanumero, Etunimi, Sukunimi ja Sähköposti. StudID valitaan ensisijaiseksi avaimeksi, koska se voi yksilöidä taulukon muut rivit.

Esimerkki ulkomaisesta avaimesta

Syntaksi:

Alla on ulkomaisen avaimen syntaksi:

CREATE TABLE 
(column1 datatype,column2 datatype,constraint (name of constraint)FOREIGN KEY [column1, column2… ]REFERENCES [primary key table name] (List of primary key table column)… );

Tässä,

  • Parametri Taulukon nimi osoittaa luodun taulukon nimen.
  • Parametrit sarake1, sarake2 ... kuvaa sarakkeet, jotka on lisättävä taulukkoon.
  • Rajoitus tarkoittaa luomasi rajoitteen nimeä.
  • Viitteet osoittavat taulukon, jossa on ensisijainen avain.

Esimerkki:

DeptCode Osaston nimi
001 Tiede
002 Englanti
005 Tietokone
Opettajan tunnus Fname Lname
B002 David Warner
B017 Sara Joseph
B009 Mike Brunton

Yllä olevassa esimerkissä meillä on kaksi taulukkoa, opettaja ja osasto koulussa. Ei kuitenkaan ole mitään keinoa nähdä, mikä haku toimii missä osastossa.

Lisäämällä tässä taulukossa Deptcodessa oleva vieras avain Opettajan nimeen voimme luoda yhteyden kahden taulukon välille.

Opettajan tunnus DeptCode Fname Lname
B002 002 David Warner
B017 002 Sara Joseph
B009 001 Mike Brunton

Tämä käsite tunnetaan myös nimellä Referential Integrity.

Ero ensisijaisen avaimen ja ulkomaisen avaimen välillä

Tässä on tärkeä ero ensisijaisen avaimen ja ulkomaisen avaimen välillä:

Pääavain Ulkomainen avain
Ensisijainen avainrajoitus on sarake tai sarakeryhmä, joka yksilöi yksilöllisesti jokaisen rivin relaatiotietokannan hallintajärjestelmän taulukossa. Vieras avain on sarake, joka luo suhteen kahden taulukon välille.
Sen avulla voit yksilöidä tietueen taulukossa. Se on taulukon kenttä, joka on toisen taulukon ensisijainen avain.
Ensisijainen avain ei koskaan hyväksy nolla-arvoja. Vieras avain voi hyväksyä useita nolla-arvoja.
Ensisijainen avain on klusteroitu hakemisto, ja DBMS-taulukon tiedot on järjestetty fyysisesti klusteroidun indeksin järjestyksessä. Vieras avain ei voi luoda automaattisesti hakemistoa, klusteroitua tai ryhmittymättömää.
Sinulla voi olla yksi ensisijainen avain taulukossa. Taulukossa voi olla useita ulkomaisia ​​avaimia.
Ensisijaisen avaimen arvoa ei voida poistaa päätaulukosta. Vieraan avaimen arvon arvo voidaan poistaa alatasosta.
Voit määrittää ensisijaisen avaimen implisiittisesti väliaikaisissa taulukoissa. Et voi määrittää vieraita avaimia paikallisissa tai globaaleissa väliaikaisissa taulukoissa.
Ensisijainen avain on klusteroitu hakemisto. Oletuksena se ei ole klusteroitu hakemisto.
Kahdella rivillä ei voi olla yhtäläisiä arvoja ensisijaiselle avaimelle. Vieras avain voi sisältää päällekkäisiä arvoja.
Arvojen lisäämiseen taulukon sarakkeeseen ei ole rajoituksia. Kun lisäät mitään arvoa vieraan avaimen taulukkoon, varmista, että arvo on ensisijaisen avaimen sarakkeessa.