Erinevus esmase võtme ja võõrvõtme vahel

Peamised erinevused esmase võtme ja võõrvõtme vahel

  • Primaarvõtme piirang on veerg, mis identifitseerib unikaalselt relatsioonilise andmebaasi haldussüsteemi tabeli iga rea, samas kui võõrvõti on veerg, mis loob seose kahe tabeli vahel.
  • Primaarvõti ei aktsepteeri kunagi nullväärtusi, samas kui võõrvõti võib aktsepteerida mitut nullväärtust.
  • Tabelis võib olla ainult üks primaarvõti, samas kui tabelis võib olla mitu võõrvõtit.
  • Primaarvõtme väärtust ei saa ülemtabelist eemaldada, samas kui võõrvõtme väärtust saab eemaldada alamtabelist.
  • Kahel real ei saa olla primaarvõtme jaoks identseid väärtusi; teisest küljest võib võõrvõti sisaldada dubleerivaid väärtusi.
  • Väärtuste sisestamine tabeli veergu ei ole piiratud, kui sisestate mis tahes väärtuse võõrvõtme tabelisse; veenduge, et väärtus oleks olemas primaarvõtme veerus.
Erinevus esmase võtme ja võõrvõtme vahel
Erinevus esmase võtme ja võõrvõtme vahel

Siin olen analüüsinud primaarvõtme ja välisvõtme erinevust ning hindan põhjalikult nende plusse ja miinuseid.

Mis on esmane võti?

Primaarvõtme piirang on veerg või veergude rühm, mis tuvastab unikaalselt relatsioonilise andmebaasi haldussüsteemi tabeli iga rea. See ei saa olla duplikaat, mis tähendab, et sama väärtus ei tohiks tabelis esineda rohkem kui üks kord.

Tabelis ei saa olla rohkem kui üks primaarvõti. The esmane võti saab määratleda veeru või tabeli tasemel. Kui loote liitprimaarvõtme, tuleks see määratleda tabeli tasemel.

Primaarvõtme näide

süntaksit:

Allpool on esmase võtme süntaks:

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

Siin

  • Tabeli_nimi on tabeli nimi, mille peate looma.
  • Veeru_nimi on primaarvõtmega veeru nimi.

Näide:

StudID Rull nr Eesnimi Perekonnanimi E-POST
1 11 Tom Price abc@gmail.com
2 12 Nick Wright xyz@gmail.com
3 13 Dana Natan mno@yahoo.com

Ülaltoodud näites oleme loonud õpilaste tabeli veergudega nagu StudID, Roll No., Eesnimi, Perekonnanimi ja E-post. StudID valitakse esmaseks võtmeks, kuna see suudab unikaalselt identifitseerida teisi tabeli ridu.

Miks kasutada primaarvõtit?

Andmebaasisüsteemide haldamise aastate jooksul olen märkinud primaarvõtme kasutamisel järgmisi miinuseid ja eeliseid:

  • Primaarvõtme peamine eesmärk on tuvastada andmebaasi tabelis iga kirje.
  • Kui te ei luba kellelgi nullväärtusi sisestada, saate kasutada primaarvõtit.
  • Kui kustutate või värskendate kirjeid, tehakse andmete terviklikkuse tagamiseks teie määratud toiming.
  • Ülemtabeli kustutamise või värskendamise toimingu tagasilükkamiseks tehke piiramistoiming.
  • Andmed korraldatakse rühmitatud indeksite jadana alati, kui korraldate DBMS-i tabeli füüsiliselt.

Mis on võõrvõti?

Võõrvõti on veerg, mis loob seose kahe tabeli vahel. Võõrvõtme eesmärk on säilitada andmete terviklikkus ja võimaldada olemi kahe erineva eksemplari vahel navigeerimist. See toimib ristviitena kahe tabeli vahel, kuna see viitab teise tabeli primaarvõtmele. Iga seost andmebaasis peaks toetama võõrvõti.

Võõrvõtme näide

süntaksit:

Allpool on võõrvõtme süntaks:

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) ...);

Siin

  • Parameeter Tabeli nimi näitab loodava tabeli nime.
  • Parameetrid veerg1, veerg2… kujutavad veerge, mis tuleb tabelisse lisada.
  • Piirang tähistab loodava piirangu nime.
  • Viited tähistavad primaarvõtmega tabelit.

Näide:

OsakondCode Osakonnanimi
001 teadus
002 Inglise
005 arvuti
Õpetaja ID Fnimi Lnimi
B002 David Warner
B017 Sara Joseph
B009 Mike Brunton

Ülaltoodud näites on meil kaks tabelit: õpetaja ja osakond koolis. Samas ei saa kuidagi näha, milline otsing millises osakonnas töötab.

Selles tabelis, lisades õpetaja nimele Deptcode'i võõrvõtme, saame luua seose kahe tabeli vahel.

Õpetaja ID OsakondCode Fnimi Lnimi
B002 002 David Warner
B017 002 Sara Joseph
B009 001 Mike Brunton

Seda mõistet tuntakse ka kui referentsiaalset terviklikkust.

Miks kasutada võõrvõtit?

Selle põhjal, mida olen näinud, on siin peamised põhjused võõrvõtmete rakendamiseks:

  • Võõrvõtmed aitavad teil ülemtabelist primaarvõtit kasutades olemeid üle viia.
  • A võõras võti võimaldab ühendada kaks või enam tabelit.
  • See muudab teie andmebaasi andmed järjepidevaks.
  • Võõrvõtit saab kasutada veeru või veergude kombinatsiooni sobitamiseks põhitabeli primaarvõtmega.
  • SQL-i välisvõtme piirangut kasutatakse tagamaks, et andmete vanema viiteterviklikkus vastab alamtabelis olevatele väärtustele.

Erinevus esmase võtme ja võõrvõtme vahel

Lubage mul jagada olulist erinevust primaarvõtme ja võõrvõtme vahel, nagu olen isiklikult kogenud:

Esmane võti vs võõrvõti
Esmane võti vs võõrvõti
Võrdluse alus Esmane võti võõrvõti
Määratlus Primaarvõtme piirang on veerg või veergude rühm, mis identifitseerib üheselt iga rea ​​tabelis relatsioonilise andmebaasi haldussüsteem. Võõrvõti on veerg, mis loob seose kahe tabeli vahel.
Põhi- See aitab teil kirjet tabelis unikaalselt tuvastada. See on väli tabelis, mis on teise tabeli primaarvõti.
NULL Esmane võti ei aktsepteeri kunagi nullväärtusi. Võõrvõti võib aktsepteerida mitut nullväärtust.
Indekseerimine Primaarvõti on rühmitatud register ja DBMS-i tabelis olevad andmed on füüsiliselt korraldatud rühmitatud indeksi järjestuses. Võõrvõti ei saa automaatselt luua indeksit, ei rühmitatud ega rühmitamata.
Loendama Tabelis võib olla üks esmane võti. Tabelis võib olla mitu võõrvõtit.
Kustutamine Primaarvõtme väärtust ei saa ülemtabelist eemaldada. Välisvõtme väärtuse saab alamtabelist eemaldada.
Ajutine laud Primaarvõtme saate kaudselt määratleda ajutistes tabelites. Kohalikes või globaalsetes ajutistes tabelites ei saa võõrvõtmeid määratleda.
Suhe Esmane võti on rühmitatud indeks. Vaikimisi ei ole see rühmitatud indeks.
Kopeerimine Primaarvõtme jaoks ei saa kahel real olla identseid väärtusi. Võõrvõti võib sisaldada dubleerivaid väärtusi.
sisestamine Väärtuste sisestamisel tabeli veergu pole piiranguid. Väärtuse sisestamisel võõrvõtme tabelisse veenduge, et väärtus oleks olemas primaarvõtme veerus.

Kuidas valida esmase ja võõrvõtme vahel

Selle põhjal, mida oleme näinud, tuvastavad primaarvõtmed unikaalselt tabelikirjed ja võõrvõtmed seovad need kirjed tabelite vahel, mis on nii andmete terviklikkuse säilitamiseks kui ka tõhusa andmeotsingu hõlbustamiseks üliolulised.

Võta see postitus kokku järgmiselt: