Rozdiel medzi primárnym a cudzím kľúčom v DBMS

Autor: Laura McKinney
Dátum Stvorenia: 1 Apríl 2021
Dátum Aktualizácie: 12 Smieť 2024
Anonim
Rozdiel medzi primárnym a cudzím kľúčom v DBMS - Technológie
Rozdiel medzi primárnym a cudzím kľúčom v DBMS - Technológie

Obsah


Kľúče sú kľúčovou súčasťou systému DBMS, ktorý sa používa na identifikáciu a vytvorenie vzťahu medzi tabuľkami v schéme. Dnes budeme diskutovať o dvoch veľmi dôležitých kľúčoch DBMS, t. J. Primárnom kľúči a cudzom kľúči, a tiež budeme diskutovať o rozdieloch medzi primárnym kľúčom a cudzím kľúčom. Na ceste vám poviem, že základný rozdiel medzi primárnym a cudzím kľúčom, ktorý je primárnym kľúčom, je jedným z vybraných kandidátskych kľúčov od dizajnéra databázy, zatiaľ čo cudzí kľúč je kľúč, ktorý odkazuje na primárny kľúč iného vzťahu.

Medzi týmito dvoma rozdielmi je veľa ďalších rozdielov. Tieto rozdiely identifikujme pomocou nižšie uvedenej porovnávacej tabuľky.

  1. Porovnávacia tabuľka
  2. definícia
  3. Kľúčové rozdiely
  4. záver

Porovnávacia tabuľka

Základ pre porovnaniePrimárny kľúčCudzí kľúč
základnéPrimárny kľúč je vybraný kandidátsky kľúč, ktorý jednoznačne definuje n-ticu vo vzťahu.Cudzí kľúč v tabuľke označuje primárny kľúč inej tabuľky.
NULOVÝHodnota primárneho kľúča nemôže byť nikdy NULL.Cudzí kľúč akceptuje NULL hodnotu.
duplikátŽiadne dve n-tice vo vzťahu nenesú duplicitné hodnoty pre atribút primárneho kľúča.Zvyšky môžu niesť duplicitné hodnoty pre atribút cudzieho kľúča.
rozsahMôže existovať iba jeden primárny kľúč vzťahu.Vo vzťahu môže byť viac cudzích kľúčov.
Dočasná tabuľkaObmedzenie primárneho kľúča možno definovať v dočasných tabuľkách.Obmedzenie cudzieho kľúča nie je možné definovať v dočasných tabuľkách.
Klastrovaný indexPrimárny kľúč je v predvolenom nastavení zoskupený do indexov.Cudzí kľúč nie je automaticky zoskupený do indexov; musí sa to urobiť ručne.
vloženieDo atribútu primárneho kľúča môžeme vložiť hodnotu, aj keď referenčný cudzí kľúč nemá túto hodnotu vo svojom stĺpci.Nemôžeme vložiť hodnotu do cudzieho kľúča, ak táto hodnota nie je v stĺpci s referenčným primárnym kľúčom.
vymazaniePred odstránením hodnoty primárneho kľúča sa uistite, že táto hodnota ešte nie je v stĺpci referenčného cudzieho kľúča v referenčnej tabuľke.Hodnotu zo stĺpca cudzieho kľúča môžete odstrániť bez obťažovania, či je táto hodnota prítomná v stĺpci referenčného primárneho kľúča referenčnej relácie.


Definícia primárneho kľúča

Primárny kľúč jedinečne definuje n-tice vo vzťahu. Môže to byť jeden atribút vo vzťahu alebo to môže byť množina atribútov vo vzťahu. Hodnota atribútu primárneho kľúča by mala nikdy alebo len zriedka, Pretože ide o príkazcu, znamená to identifikovať akýkoľvek záznam v databáze. Zmena hodnoty atribútov primárneho kľúča by spôsobila zmätok.

Návrhár databázy vyberie jeden z kľúče kandidáta ako primárny kľúč, berúc do úvahy niektoré body. Prvým faktorom je hodnota atribútu primárneho kľúča, ktorú nikdy nemôže obsahovať NULOVÝ hodnota. Pretože, ak hodnota atribútu primárneho kľúča obsahuje NULL, znamená to, že tento záznam v tabuľke nemôžeme identifikovať. Porušuje tiež obmedzenie integrity entity. Druhou úvahou je, žiadne dve n-tice v tabuľke môže obsahovať rovnaký hodnota atribútu primárneho kľúča, pretože by to porušilo jedinečnosť medzi n-ticami.


Môže byť iba jeden primárny kľúč pre všetkých vzťah, Primárny kľúč je predvolene nastavený klastra indexovaných, čo znamená, že všetky n-tice v tabuľke sú zoradené na základe hodnôt atribútov primárnych kľúčov. Obmedzenie primárneho kľúča môže byť definované na a dočasná tabuľka, Sprostredkovateľské tabuľky vytvorené počas vykonávania dotazu sa nazývajú dočasné tabuľky.

zatiaľ čo mazanie n-tica zo vzťahu, je potrebné sa uistiť, že hodnota primárneho kľúča odstráneného tupla nie je stále prítomná v stĺpci cudzieho kľúča referenčného vzťahu. Keďže vloženie nemá žiadne obmedzenia pre primárny kľúč.

Primárny kľúč tabuľky, keď sa použije v inej tabuľke, potom sa pre túto tabuľku stane cudzím kľúčom. Obmedzenia cudzích kľúčov sú uvedené nižšie.

Definícia cudzieho kľúča

Keď vzťah R1, medzi svoje atribúty, má primárny kľúč iného vzťahu R2, potom sa tento atribút nazýva Cudzí kľúč pre vzťah R1, Vzťah R1 obsahuje cudzí kľúč referenčný vzťah pretože sa týka primárneho kľúča vzťahu R2 a vzťahu R2 sa volá referenčný vzťah.
Na rozdiel od primárneho kľúča môže cudzí kľúč akceptovať NULOVÝ hodnoty, pretože nemá za úlohu identifikovať záznam zreteľne vo vzťahu, pretože na to máme primárny kľúč. Rovnako akceptuje aj cudzí kľúč duplicitné hodnoty.

Vzťah môže mať násobok cudzie kľúče, pretože môžu mať rôzne atribúty, ktoré sú primárnymi kľúčmi v rôznych vzťahoch. Obmedzenie cudzieho kľúča môže nie byť definované na internete dočasné tabuľky, ani cudzí kľúč je a klastra indexovaných atribút.

zatiaľ čo vkladanie hodnotu do stĺpca cudzieho kľúča referenčného vzťahu, uistite sa, že vkladacia hodnota musí byť prítomná v stĺpci primárneho kľúča referenčného vzťahu. Zatiaľ čo nie sú žiadne obmedzenia mazanie hodnota zo stĺpca cudzieho kľúča.

  1. Primárna je skupina atribútov / kandidátsky kľúč, ktorý zreteľne identifikuje záznam vo vzťahu. Cudzí kľúč v tabuľke sa však týka primárneho kľúča inej tabuľky.
  2. Žiadne atribúty primárneho kľúča nemôžu obsahovať hodnoty NULL, zatiaľ čo atribút cudzieho kľúča môže akceptovať hodnotu NULL.
  3. Primárny kľúč by mal mať jedinečné hodnoty atribútov, zatiaľ čo cudzí kľúč môže mať duplicitné hodnoty atribútov.
  4. Vo vzťahu môže byť viac cudzích kľúčov, ale vzťah má iba jeden primárny kľúč.
  5. Obmedzenie primárneho kľúča sa môže použiť na dočasné tabuľky. Obmedzenie cudzieho kľúča sa však nemôže uplatniť na dočasné tabuľky.
  6. Primárny kľúč je štandardne indexovaný do klastrov, zatiaľ čo cudzí kľúč nie je indexovaný do klastrov automaticky, ale dá sa vykonať ručne.
  7. Pri vkladaní hodnoty do stĺpca cudzieho kľúča sa uistite, že hodnota atribútu vkladania je prítomná v stĺpci referenčného primárneho kľúča. Avšak v stĺpci primárneho kľúča nie sú žiadne obmedzenia.
  8. Pri odstraňovaní hodnoty zo stĺpca primárneho kľúča sa uistite, že hodnota odstráneného atribútu nie je v referenčnom stĺpci cudzieho kľúča. Odstránenie hodnoty zo stĺpca cudzieho kľúča však neexistuje.

záver:

Primárny aj cudzí kľúč sú pre schému nevyhnutné. Primárny kľúč definuje každý zväzok vo vzťahu jedinečne, zatiaľ čo cudzí kľúč sa používa na vytvorenie spojenia medzi dvoma vzťahmi.