Primārā atslēga vs ārējā atslēga: kāda ir atšķirība?

Satura rādītājs:

Anonim

Pirms uzzināt atšķirību starp primāro atslēgu un svešo atslēgu, mācīsimies:

Kas ir atslēgas?

Atslēgas ir atribūts, kas palīdz noteikt relāciju (tabulu) rindā (tabulā). Tie ļauj jums atrast attiecības starp divām tabulām. Taustiņi palīdz unikāli identificēt tabulas rindu, kombinējot vienu vai vairākas šīs tabulas kolonnas. Datu bāzes atslēga ir noderīga arī, lai tabulā atrastu unikālu ierakstu vai rindu.

Kas ir datu bāzes attiecības?

Datu bāzes attiecības ir asociācijas starp vienu vai vairākām tabulām, kas izveidotas, izmantojot pievienošanās paziņojumus. To izmanto, lai efektīvi izgūtu datus no datu bāzes. Galvenokārt ir trīs veidu attiecības: 1) viens pret vienu, 2) viens pret daudziem, 3) daudz pret daudziem.

Kas ir primārā atslēga?

Galvenais atslēgas ierobežojums ir kolonna vai kolonnu grupa, kas unikāli identificē katru relāciju datu bāzes pārvaldības sistēmas tabulas rindu. Tas nevar būt dublikāts, kas nozīmē, ka tā pati vērtība tabulā nedrīkst būt redzama vairāk kā vienu reizi.

Tabulā var būt vairākas primārās atslēgas. Primāro atslēgu var definēt kolonnas vai tabulas līmenī. Ja izveidojat saliktu primāro atslēgu, tā jādefinē tabulas līmenī.

Kas ir Foreign Key?

Ārējā atslēga ir kolonna, kas izveido attiecības starp divām tabulām. Ārējās atslēgas mērķis ir saglabāt datu integritāti un ļautu pārvietoties starp diviem dažādiem entītijas gadījumiem. Tas darbojas kā savstarpēja atsauce starp divām tabulām, jo ​​tā atsaucas uz citas tabulas primāro atslēgu. Katra datu bāzes attiecība ir jāatbalsta ar svešu atslēgu.

GALVENĀS ATŠĶIRĪBAS:

  • Primārā atslēgas ierobežojums ir kolonna, kas unikāli identificē katru relāciju datu bāzes pārvaldības sistēmas tabulas rindu, savukārt ārējā atslēga ir kolonna, kas izveido attiecības starp divām tabulām.
  • Primārā atslēga nekad nepieņem nulles vērtības, savukārt ārējā atslēga var pieņemt vairākas nulles vērtības.
  • Tabulā var būt tikai viena primārā atslēga, savukārt tabulā var būt vairākas svešas atslēgas.
  • Primārās atslēgas vērtību nevar noņemt no vecāku tabulas, savukārt ārējās atslēgas vērtību - no pakārtotās tabulas.
  • Divās rindās nevar būt vienādas primārās atslēgas vērtības, no otras puses, svešā atslēgā var būt dublētas vērtības.
  • Vērtību ievietošanai tabulas kolonnā nav ierobežojumu, vienlaikus ievietojot jebkuru vērtību svešās atslēgas tabulā, pārliecinieties, ka vērtība ir primārās atslēgas kolonnā.

Kāpēc izmantot primāro atslēgu?

Šeit ir primārās atslēgas izmantošanas mīnusi / priekšrocības:

  • Primārās atslēgas galvenais mērķis ir identificēt katru ierakstu datu bāzes tabulā.
  • Primāro atslēgu varat izmantot, ja neļaujat kādam ievadīt nulles vērtības.
  • Dzēšot vai atjauninot ierakstus, tiks veikta jūsu norādītā darbība, lai pārliecinātos par datu integritāti.
  • Veiciet ierobežošanas darbību, lai noraidītu vecāku tabulas dzēšanas vai atjaunināšanas darbību.
  • Dati tiek sakārtoti grupētu indeksu secībā ikreiz, kad fiziski organizējat DBVS tabulu.

Kāpēc izmantot Foreign Key?

Šeit ir svarīgi ārzemju atslēgas izmantošanas iemesli:

  • Ārzemju atslēgas palīdz migrēt entītijas, izmantojot primāro atslēgu no vecāku tabulas.
  • Ārzemju atslēga ļauj sasaistīt divas vai vairākas tabulas kopā.
  • Tas padara jūsu datu bāzes datus konsekventus.
  • Ārvalstu atslēgu var izmantot, lai kolonnu vai kolonnu kombināciju saskaņotu ar primāro atslēgu vecāku tabulā.
  • SQL svešās atslēgas ierobežojums tiek izmantots, lai pārliecinātos, vai datu vecāku atsauces integritāte sakrīt ar pakārtotās tabulas vērtībām.

Primārās atslēgas piemērs

Sintakse:

Zemāk ir primārās atslēgas sintakse:

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

Šeit,

  • Table_Name ir izveidojamās tabulas nosaukums.
  • Column_Name ir tās kolonnas nosaukums, kurai ir galvenā atslēga.

Piemērs:

StudID Rullis Nr Vārds Uzvārds E-pasts
1 11 Toms Cena Šī e-pasta adrese ir aizsargāta no mēstuļu robotiem. Lai to apskatītu, jums jābūt aktivizētam Javascript.
2 12 Niks Raits Šī e-pasta adrese ir aizsargāta no mēstuļu robotiem. Lai to apskatītu, jums jābūt aktivizētam Javascript.
3 13 Dana Natans Šī e-pasta adrese ir aizsargāta no mēstuļu robotiem. Lai to apskatītu, jums jābūt aktivizētam Javascript.

Iepriekš minētajā piemērā mēs esam izveidojuši studentu tabulu ar kolonnām, piemēram, StudID, Roll No, First Name, Last Name un Email. StudID tiek izvēlēts kā galvenā atslēga, jo tā var unikāli identificēt citas tabulas rindas.

Ārējās atslēgas piemērs

Sintakse:

Zemāk ir ārējās atslēgas sintakse:

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

Šeit,

  • Parametrs Table Name norāda izveidojamās tabulas nosaukumu.
  • Parametru kolonna1, kolonna2 ... attēlo kolonnas, kas jāpievieno tabulai.
  • Ierobežojums apzīmē jūsu izveidotā ierobežojuma nosaukumu.
  • Atsauces norāda tabulu ar primāro atslēgu.

Piemērs:

DeptCode DeptName
001 Zinātne
002 Angļu
005 Dators
Skolotāja ID Fname Vārds
B002 Deivids Warner
B017 Sara Jāzeps
B009 Maiks Bruntons

Iepriekš minētajā piemērā mums ir divas tabulas, skolotājs un nodaļa skolā. Tomēr nav iespējas redzēt, kura meklēšana kurā nodaļā darbojas.

Šajā tabulā, pievienojot ārzemju atslēgu Deptcode skolotāja vārdam, mēs varam izveidot attiecības starp abām tabulām.

Skolotāja ID DeptCode Fname Vārds
B002 002 Deivids Warner
B017 002 Sara Jāzeps
B009 001 Maiks Bruntons

Šo jēdzienu sauc arī par atsauces integritāti.

Atšķirība starp primāro atslēgu un ārējo atslēgu

Šeit ir svarīga atšķirība starp primāro atslēgu un ārzemju atslēgu:

Primārā atslēga Sveša atslēga
Galvenais atslēgas ierobežojums ir kolonna vai kolonnu grupa, kas unikāli identificē katru relāciju datu bāzes pārvaldības sistēmas tabulas rindu. Ārējā atslēga ir kolonna, kas izveido attiecības starp divām tabulām.
Tas palīdz jums unikāli identificēt ierakstu tabulā. Tas ir tabulas lauks, kas ir citas tabulas galvenā atslēga.
Primārā atslēga nekad nepieņem nulles vērtības. Ārzemju atslēga var pieņemt vairākas nulles vērtības.
Primārā atslēga ir sakopots indekss, un dati DBVS tabulā ir fiziski sakārtoti grupētā indeksa secībā. Ārzemju atslēga nevar automātiski izveidot indeksu, kopu vai bez kopām.
Tabulā var būt viena galvenā atslēga. Tabulā var būt vairākas ārzemju atslēgas.
Primārās atslēgas vērtību nevar noņemt no vecāku tabulas. Ārzemju atslēgas vērtības vērtību var noņemt no pakārtotās tabulas.
Pagaidu tabulās var netieši definēt primāro atslēgu. Vietējās vai globālās pagaidu tabulās nevar definēt ārzemju atslēgas.
Primārā atslēga ir grupēts indekss. Pēc noklusējuma tas nav klasteru indekss.
Divās rindās primārajai atslēgai nevar būt vienādas vērtības. Ārzemju atslēga var saturēt vērtību dublikātus.
Vērtību ievietošanai tabulas kolonnā nav ierobežojumu. Ievietojot svešās atslēgas tabulā jebkuru vērtību, pārliecinieties, ka vērtība ir primārās atslēgas kolonnā.