Skirtumas tarp pagrindinio ir užsienio raktų DBVS

Autorius: Laura McKinney
Kūrybos Data: 1 Balandis 2021
Atnaujinimo Data: 7 Gegužė 2024
Anonim
Primary key and Foreign Key in DBMS
Video.: Primary key and Foreign Key in DBMS

Turinys


Raktai yra esminė DBVS dalis, jie naudojami identifikuojant ir nustatant ryšį tarp lentelių schemose. Šiandien šiandien aptarsime du labai svarbius DBVS raktus, ty pirminį raktą ir užsienio raktą, taip pat aptarsime skirtumą tarp pirminio rakto ir svetimo rakto. Pakeliui leiskite jums pasakyti pagrindinį skirtumą tarp pirminio ir užsienio rakto, kuris yra pagrindinis raktas, kurį pasirinko duomenų bazės dizaineris, tuo tarpu svetimas raktas yra raktas, kuris nurodo pirminį kito santykio raktą.

Yra daugybė kitų skirtumų tarp šių dviejų, leiskite mums juos identifikuoti palyginimo lentelės, pateiktos žemiau, pagalba.

  1. Palyginimo diagrama
  2. Apibrėžimas
  3. Pagrindiniai skirtumai
  4. Išvada

Palyginimo diagrama

Palyginimo pagrindasPirminis raktasSvetimas raktas
PagrindinisPagrindinis raktas yra pasirinktas raktas kandidatas, kuris unikaliai nusako santykio esmę.Užsienio raktas lentelėje nurodo pirminį kitos lentelės raktą.
NULLPirminė rakto vertė niekada negali būti NULL.Užsienio raktas priima NULL reikšmę.
DublikatasJokie du ryšių elementai nedubliuoja pirminio rakto atributo verčių.„Tuples“ gali turėti svetimo rakto atributo dublikatų vertes.
diapazonasGali būti tik vienas pirminis santykio raktas.Ryšyje gali būti keli svetimi raktai.
Laikina lentelėPirminį rakto apribojimą galima apibrėžti laikinosiose lentelėse.Laikinosiose lentelėse negalima apibrėžti „Foreign Key“ apribojimo.
Grupinis indeksasPagal numatytuosius nustatymus pagrindinis raktas yra sugrupuotas.Užsienio raktas nėra klasifikuojamas automatiškai; tai turi būti padaryta rankiniu būdu.
ĮterpimasMes galime įterpti reikšmę į pagrindinio rakto atributą, net jei nuorodantis užsienio raktas neturi šios vertės savo stulpelyje.Negalime įterpti reikšmės į svetimą raktą, jei šios vertės nėra nurodyto pirminio rakto stulpelyje.
IštrynimasPrieš ištrindami pirminės rakto vertę, įsitikinkite, kad jos vis dar nėra nuorodų lentelės stulpelyje, kuriame nurodomas pašalinis raktas.Galite ištrinti vertę iš svetimo rakto stulpelio, nesijaudindami, ar ta reikšmė yra nurodyto pirminio rakto stulpelyje, kuriame nurodytas santykis.


Pirminio rakto apibrėžimas

Pagrindinis raktas vienareikšmiškai nusako ryšius. Tai gali būti vienas santykio atributas arba tai gali būti atributų rinkinys santykyje. Pagrindinio rakto atributo reikšmė turėtų būti niekada arba retai keičiasi. Kadangi tai yra pagrindinis principas, reiškia bet kokio duomenų įrašo identifikavimą duomenų bazėje. Bet kokio pirminio rakto atributo vertės pasikeitimas sukeltų painiavą.

Duomenų bazės kūrėjas pasirenka vieną iš kandidato raktai kaip pagrindinis raktas, atsižvelgiant į kai kuriuos dalykus. Pirmiausia atsižvelgiama į tai, kad pagrindinio rakto atributo vertės niekada negali būti NULL vertės. Nes jei pagrindinio rakto atributo reikšmėje yra NULL, tai reiškia, kad mes negalime identifikuoti to įrašo lentelėje. Tai taip pat pažeidžia subjekto vientisumo apribojimą. Antras svarstymas yra nėra dviejų stumbrų lentelėje gali būti tas pats pirminio rakto atributo reikšmė, nes tai pažeistų unikalumą tarp žinučių.


Gali būti tik tiek vienas pagrindinis raktas bet kuriam santykis. Pagrindinis raktas yra numatytasis klasterizuota, o tai reiškia, kad visi lentelės elementai yra rūšiuojami pagal pirminių raktų atributų reikšmes. Pirminį rakto apribojimą galima apibrėžti a laikinas stalas. Tarpinės lentelės, sukurtos vykdant užklausą, vadinamos laikinosiomis lentelėmis.

Nors ištrynimas susiejimas iš santykio, reikia pasirūpinti, kad ištrinto paketo pirminio rakto reikšmė vis dar nerodytų pašalinio rakto stulpelio, kuriame nurodomas santykis. Kadangi intarpas neturi jokių apribojimų dėl pagrindinio rakto.

Pagrindinis lentelės raktas, kai jis naudojamas kitoje lentelėje, tada tampa užsienio lentelės raktu. Pagrindiniai užsienio apribojimai aptariami toliau.

Užsienio rakto apibrėžimas

Kai santykis R1, tarp savo požymių, turi pirminis Raktas kitų santykių R2, tada tas atributas vadinamas Svetimas raktas santykiams R1. Santykis R1 turintis svetimą raktą, yra vadinamas nuorodų santykis nes tai nurodo pirminį santykio R2 ir santykio raktą R2 vadinamas nurodytas santykis.
Skirtingai nuo pirminio rakto, užsienio raktas gali priimti NULL vertybes, nes jos užduotis nėra aiškiai atpažinti įrašą santykiuose, nes mes turime tam pagrindinį raktą. Lygiai taip pat priima ir užsienio raktą pasikartojančios vertės.

Ryšys gali turėti daugkartinis užsienio raktai, nes jis gali turėti skirtingus atributus, kurie yra pagrindiniai raktai skirtinguose santykiuose. Užsienio raktų apribojimas gali ne būti apibrėžta laikinos lentelės, nei svetimas raktas yra a klasterizuota atributas.

Nors įterpimas vertę į pašalinio rakto stulpelį, kuriame nurodoma nuoroda, įsitikinkite, kad įterpimo vertė turi būti nurodytos nuorodos pirminio rakto stulpelyje. Kadangi kol kas nėra jokių suvaržymų ištrynimas vertė iš užsienio rakto stulpelio.

  1. Pirminis yra atributų rinkinys / raktas kandidatas, kuris aiškiai atpažįsta įrašą santykyje. Tačiau svetimas raktas lentelėje nurodo pirminį kitos lentelės raktą.
  2. Jokiuose pirminio rakto atributuose negali būti NULL reikšmių, tuo tarpu svetimo rakto atributas gali priimti NULL reikšmes.
  3. Pirminis raktas turėtų turėti unikalias atributo reikšmes, tuo tarpu svetimas raktas gali turėti atributo reikšmių kopijas.
  4. Santykyje gali būti keli svetimi raktai, tačiau santykis turi tik vieną pirminį raktą.
  5. Pirminį rakto apribojimą galima pritaikyti laikinosiose lentelėse. Tačiau laikinosioms lentelėms negali būti taikomas užsienio rakto suvaržymas.
  6. Pirminis raktas pagal numatytuosius nustatymus yra klasifikuojamas grupuojant indeksus, tuo tarpu svetimas raktas nėra klasifikuojamas automatiškai, tačiau tai galima padaryti rankiniu būdu.
  7. Įterpdami vertę į svetimo rakto stulpelį, įsitikinkite, kad įvedančio atributo reikšmė yra nurodyto pirminio rakto stulpelyje. Tačiau įterpimo į pagrindinio rakto stulpelį apribojimų nėra.
  8. Ištrindami reikšmę iš pagrindinio rakto stulpelio, įsitikinkite, kad išbraukto atributo vertės nėra nuorodoje esančio svetimo rakto stulpelyje. Tačiau išbraukti vertę iš svetimo rakto stulpelio nėra jokių apribojimų.

Išvada:

Tiek pagrindinis, tiek užsienio raktas yra būtini schemai. Pagrindinis raktas apibūdina kiekvieną ryšį vienareikšmiškai, tuo tarpu svetimas raktas yra naudojamas ryšiui tarp dviejų ryšių sukurti.