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

V systéme správy relačných databáz (RDBMS) sa údaje ukladajú do tabuliek. Pretože sa obrovské množstvo údajov ukladá do tabuliek, vždy existuje možnosť, že údaje sa môžu neorganizovať alebo obsahovať duplikáty. Aj keď potrebujeme načítať údaje podľa našich požiadaviek z týchto obrovských údajov, úloha sa stáva ťažkou. Koncept Key sa v RDBMS používa na identifikáciu záznamov v tabuľke z tisícov riadkov údajov. Použitie kľúča tiež pomáha pri vytváraní vzťahu medzi tabuľkami, aby bolo možné údaje odkázať z rôznych tabuliek. Kľúč v systéme správy relačných databáz teda zachováva integritu na úrovni tabuľky, ako aj referenčnú integritu. V tomto článku podrobne preskúmame rozdiel medzi primárnym kľúčom a cudzím kľúčom.

Primárny kľúč v tabuľke jednoznačne identifikuje záznamy a cudzí kľúč sa odkazuje na primárny kľúč inej tabuľky. Vezmime príklad dvoch tabuliek: Zamestnanecké a mzdové tabuľky, aby sme pochopili koncepcie primárneho a cudzieho kľúča. Ak má zamestnanecká tabuľka primárny kľúč ako Employee_ID, potom musí byť v tabuľke platov uvedený stĺpec Employee_ID, pretože medzi tabuľkami musí byť vzťah medzi cudzími kľúčmi, ktoré majú v tabuľke platov cudzí kľúč, ktorý môže odkazovať na primárny kľúč tabuľka zamestnancov.

Porovnanie medzi jednotlivými kľúčmi medzi primárnym kľúčom a cudzím kľúčom (infografika)

Nižšie je uvedených šesť najlepších rozdielov medzi primárnym kľúčom a cudzím kľúčom:

Kľúčové rozdiely medzi primárnym kľúčom a cudzím kľúčom

Poďme diskutovať o niektorých hlavných kľúčových rozdieloch medzi primárnym kľúčom a cudzím kľúčom:

  • Primárny kľúč jednoznačne identifikuje záznamy v tabuľke, zatiaľ čo cudzí kľúč sa používa na prepojenie tabuliek, tj odkazuje na primárny kľúč inej tabuľky.
  • Stĺpec Primárny kľúč v tabuľke nemôže mať hodnoty Null a mal by mať vždy jedinečné hodnoty. Cudzí kľúč v tabuľke však môže obsahovať hodnoty Null a môžu mať aj duplicitné hodnoty.
  • Tabuľka môže obsahovať iba jeden primárny kľúč, zatiaľ čo tabuľka môže obsahovať viac ako jeden cudzí kľúč.
  • Index sa vytvorí pre primárny kľúč automaticky, zatiaľ čo pre cudzí kľúč sa indexy nevytvárajú automaticky.
  • Obmedzenie cudzieho kľúča je ľahké odstrániť, aj keď sa týka primárneho kľúča. Odstránenie obmedzenia primárneho kľúča však môže vytvoriť záznamy s podradenými záznamami, ktoré nemajú rodičovský záznam.

Porovnávacia tabuľka primárneho kľúča s cudzím kľúčom

V nasledujúcej tabuľke sú zhrnuté porovnania medzi primárnym kľúčom a cudzím kľúčom:

Primárny kľúčCudzí kľúč
Primárny kľúč tabuľky v RDBMS môže byť jeden stĺpec alebo môže obsahovať viac ako jeden stĺpec, ktorý sa používa na jedinečnú identifikáciu každého riadku v tabuľke. V prípade, že primárny kľúč pozostáva z viac ako jedného stĺpca, údaje z každého stĺpca sa použijú na rozhodnutie o jedinečnosti riadku. Tabuľka v RDMBS môže mať iba jeden primárny kľúč.Cudzí kľúč môže byť jeden stĺpec alebo môže pozostávať z viac ako jedného stĺpca v tabuľke, ktorý sa používa na označenie primárneho kľúča inej tabuľky. Cudzí kľúč možno použiť na prepojenie tabuliek v RDBMS. Na rozdiel od atribútu primárneho kľúča môže tabuľka v RDBMS obsahovať viac ako jeden cudzí kľúč.
Existuje len málo podmienok, ktoré by mali byť splnené, aby bol stĺpec primárnym kľúčom v tabuľke. Jednou z podmienok je, že primárny kľúč by mal obsahovať jedinečnú hodnotu pre každý záznam. Preto v tabuľke v RDBMS nemožno povoliť duplicitné hodnoty pre dva riadky pre atribút Primárny kľúč.Na rozdiel od primárneho kľúča tabuľky v RDBMS môže cudzí kľúč obsahovať duplicitné hodnoty. To umožňuje mať duplicitné hodnoty pre riadky tabuľky pre atribút cudzieho kľúča.
Druhou podmienkou stĺpca, ktorý spĺňa požiadavky ako primárny kľúč, je to, že by nemal obsahovať nulové hodnoty.Cudzí kľúč tabuľky v RDBMS však môže obsahovať hodnoty Null.
Primárny kľúč je určený pri definovaní tabuľky a je povinný definovať primárny kľúč.Na rozdiel od primárneho kľúča neexistuje špecifická definícia tabuľky na označenie kľúča za cudzí kľúč.
Nie je možné odstrániť obmedzenie primárneho kľúča z nadradenej tabuľky s odkazom na cudzí kľúč podradenej tabuľky. Pred odstránením rodičovskej tabuľky je preto potrebné najprv odstrániť podradenú tabuľku.Ak však potrebujeme odstrániť obmedzenie cudzieho kľúča v tabuľke, možno ho z podradenej tabuľky odstrániť, aj keď sa týka primárneho kľúča nadradenej tabuľky.

Primárny kľúč sa automaticky indexuje, tj primárny kľúč sa uloží do indexu pre tabuľku a tento index pomáha pri spravovaní požiadavky jedinečnosti, a preto sa hodnoty cudzieho kľúča dajú ľahko priradiť zodpovedajúcim hodnotám primárneho kľúča.V prípade cudzieho kľúča sa indexy nevytvárajú automaticky a spravidla ich definuje správca databázy.

záver

Primárne a cudzie kľúče implementujú nielen rôzne typy integrity, ale tiež vytvárajú vzťahy medzi tabuľkami. Primárne a cudzie kľúče tiež zaisťujú, že stĺpce vytvorené pre vzťah musia obsahovať zodpovedajúce hodnoty a jedinečné tabuľky sa udržiavajú v tabuľke. Systém správy relačných databáz funguje efektívne z dôvodu prítomnosti primárneho a cudzieho kľúča.

Obmedzenie primárneho kľúča pomáha pri automatickom uplatňovaní integrity údajov, pretože bráni vloženiu alebo aktualizácii duplicitného radu údajov. Použitím obmedzení kľúčov tiež zabraňuje vymazaniu riadku z tabuľky primárneho kľúča z nadradenej tabuľky, takže sa nevytvárajú žiadne také podradené záznamy, pre ktoré neexistuje žiadny nadradený záznam. Tiež, keď je riadok odkazujúci na primárny kľúč vymazaný alebo aktualizovaný v nadradenej tabuľke, referenčná integrita je udržiavaná cudzím kľúčom. Kľúče majú kľúčovú úlohu pri vytváraní prepojení medzi databázovými tabuľkami a tiež v rámci tabuľky.

Odporúčané články

Toto je sprievodca primárnym kľúčom verzus cudzím kľúčom. Tu diskutujeme rozdiely medzi primárnymi kľúčmi a cudzími kľúčmi s informačnými a porovnávacími tabuľkami. Viac informácií nájdete aj v ďalších navrhovaných článkoch -

  1. WebLogic verzus WebSphere
  2. ROLAP verzus MOLAP verzus HOLAP
  3. GoCD vs Jenkins
  4. Financovanie dlhu verzus kapitál

Kategórie: