Erinevus primaarvõtme ja võõrvõtme vahel DBMS-is

Autor: Laura McKinney
Loomise Kuupäev: 1 Aprill 2021
Värskenduse Kuupäev: 12 Mai 2024
Anonim
Erinevus primaarvõtme ja võõrvõtme vahel DBMS-is - Tehnoloogia
Erinevus primaarvõtme ja võõrvõtme vahel DBMS-is - Tehnoloogia

Sisu


Klahvid on DBMS-i oluline osa, mida kasutatakse skeemi tabelite vahelise seose tuvastamiseks ja loomiseks. Täna räägime DBMS-i kahest väga olulisest võtmest, st primaarvõtmest ja võõrvõtmest, ning arutame ka erinevust primaarvõtme ja võõrvõtme vahel. Teel lubage mul öelda, et peamine erinevus esmase ja võõrvõtme vahel, mis on primaarvõti, on üks andmebaasi kujundaja valitud kandidaatvõtmetest, samas kui võõras võti on võti, mis viitab mõne muu seose primaarvõtmele.

Nende kahe vahel on ka palju muid erinevusi, tuvastagem need erinevused allpool toodud võrdlustabelite abil.

  1. Võrdlusdiagramm
  2. Definitsioon
  3. Peamised erinevused
  4. Järeldus

Võrdlusdiagramm

Võrdluse alusEsmane võtiVõõrvõti
PõhilinePeamine võti on valitud kandidaatvõtmeks, mis määratleb suhte kordumatult.Võõra võti tabelis viitab muu tabeli primaarvõtmele.
NULLEsmane võtme väärtus ei saa kunagi olla NULL.Võõras võti aktsepteerib väärtust NULL.
DuplikaatÜkski kaks suhtekorda ei kanna primaarvõtme atribuudi dubleerivaid väärtusi.Tuplid võivad kanda võõra võtme atribuudi väärtuse duplikaate.
VahemikSuhtel võib olla ainult üks esmane võti.Suhtes võib olla mitu võõrast võtit.
Ajutine tabelEsmase võtme piirangu saab määratleda ajutistes tabelites.Võõrvõtme piirangut ei saa ajutistes tabelites määratleda.
Rühmitatud indeksVaikimisi indekseeritakse primaarvõti.Võõrvõti ei grupeerita automaatselt; seda tuleb teha käsitsi.
SisestamineSaame lisada väärtuse primaarvõtme atribuuti, isegi kui viitava võti võtme veerus seda väärtust pole.Me ei saa võõrvõtmele väärtust lisada, kui seda väärtust ei ole viidatud primaarvõtme veerus.
KustutamineEnne primaarvõtme väärtuse kustutamist veenduge, et seda väärtust ei oleks viitetabeli veerus viitava võti veerus endiselt olemas.Võite väärtuse võõra võtme veerust kustutada, ilma et peaksite vaeva nägema, olenemata sellest, kas see väärtus on viidatud primaarse võtme veerus viidatud suhtega.


Primaarvõtme määratlus

Esmane võti ainulaadselt määratleb suhted tüübid. See võib olla üks atribuut suhetes või see võib olla suhte atribuutide komplekt. Primaarvõtme atribuudi väärtus peaks kunagi ega harva muutunud. Kuna see on peamine, tähendab andmebaasis mis tahes kirje tuvastamist. Primaarvõtme mis tahes atribuudi väärtuse muutmine tekitaks segadust.

Andmebaasi kujundaja valib ühe järgmistest kandidaatide võtmed kui peamist võtit, võttes mõne punktiga arvesse. Esimene kaalutlus on esmase võtme atribuudi väärtus, mida väärtus ei saa kunagi sisaldada NULL väärtus. Kuna kui esmase võtme atribuudi väärtus sisaldab NULL-i, tähendab see, et me ei saa seda kirjet tabelis tuvastada. See rikub ka üksuse terviklikkuse piirangut. Teine kaalutlus on: pole kahte nippi tabelis võib sisaldada sama primaarvõtme atribuudi väärtus, kuna see rikuks tüüpide ainulaadsust.


Seal saab ainult olla üks primaarvõti iga suhe. Peamine võti on vaikimisi klastri indekseeritud, mis tähendab, et kõik tabeli tüübid on sorteeritud primaarvõtmete atribuutide väärtuste põhjal. Primaarvõtme piirangu saab määratleda a-ga ajutine laud. Vahetäitmise käigus loodud vahetabeleid nimetatakse ajutisteks tabeliteks.

Kuigi kustutamine suhtest tuleneva tüübi järgi, tuleb hoolitseda selle eest, et kustutatud tüübi primaarvõtme väärtus ei oleks ikka veel viite suhte võõra võtme veerus. Arvestades, et: sisestus ei oma primaarvõtme suhtes mingeid piiranguid.

Tabeli esmane võti, kui seda kasutatakse mõnes teises tabelis, saab sellest selle tabeli võõrvõti. Allpool käsitletakse välismaiste põhipiiranguid.

Võõrvõti määratlus

Kui suhe R1oma atribuutide hulgas on a esmane võti muude suhetega R2, siis nimetatakse seda atribuuti Võõras võti suhte jaoks R1. Suhe R1 mis sisaldab võõrvõti, nimetatakse viitamise suhe kuna see viitab suhte R2 ja suhte esmasele võtmele R2 kutsutakse viidatud suhe.
Erinevalt primaarvõtmest võib võõras võti nõustuda NULL väärtuste tõttu, kuna selle ülesandeks pole kirjet suhtest selgelt eristada, kuna meil on selleks esmane võti. Samamoodi aktsepteerib ka võõrvõti väärtuste duplikaadid.

Suhtel võib olla mitu võõrad võtmed, kuna sellel võivad olla erinevad atribuudid, mis on esmased võtmed erinevates suhetes. Võõraste võtmepiirang võib mitte tuleb määratleda ajutised lauad, ega võõras võti on a klastri indekseeritud atribuut.

Kuigi sisestamine väärtuse viitamise suhte võõra võtme veergu, veenduge, et sisestatav väärtus peaks olema viidatud seose primaarvõtme veerus. Arvestades, et samas pole mingit piirangut kustutamine väärtus võõra võtme veerust.

  1. Primaarne on atribuutide / kandidaatvõtme komplekt, mis identifitseerib selgelt suhte suhte. Kuid võõras võti tabelis viitab mõne teise tabeli primaarvõtmele.
  2. Ükski primaarvõtme atribuut ei tohi sisaldada NULL-i väärtusi, samas kui võõra võtme atribuut võib aktsepteerida NULL-i väärtust.
  3. Primaarvõtmel peaksid olema kordumatud atribuudi väärtused, samas kui võõral võtmel võivad olla dubleerivad atribuudi väärtused.
  4. Suhtes võib olla mitu võõrvõti, kuid seosel on ainult üks primaarvõti.
  5. Esmase võtme piirangut saab ajutistele tabelitele rakendada. Ajutistesse tabelitesse ei saa siiski rakendada võõra võtme piirangut.
  6. Esmane võti on vaikimisi rühmitatud indekseerimise teel, samas kui võõrvõti ei klastrita automaatselt, kuid seda saab teha käsitsi.
  7. Väärtuse sisestamisel võõra võtme veergu veenduge, et atribuudi sisestamise väärtus oleks viidatud primaarvõtme veerus. Primaarvõtme veergu sisestamisel pole aga mingeid piiranguid.
  8. Väärtuse kustutamisel primaarvõtme veerust veenduge, et kustutatud atribuudi väärtust ei oleks viite võõra võtme veerus. Väärtuse kustutamisel võõra võtme veerust pole aga mingeid piiranguid.

Järeldus:

Nii primaar- kui ka võõrvõti on skeemi jaoks hädavajalikud. Primaarvõti määratleb suhted iga tüübi kordumatult, võõrvõti kasutatakse aga kahe seose loomiseks.