Primárny kľúč vs Zahraničný kľúč: Aký je rozdiel?

Obsah:

Anonim

Skôr ako spoznáme rozdiel medzi primárnym a cudzím kľúčom, poďme sa naučiť:

Čo sú to kľúče?

Kľúče sú atribút, ktorý vám pomôže identifikovať riadok (n-ticu) vo vzťahu (tabuľka). Umožňujú vám nájsť vzťah medzi dvoma tabuľkami. Klávesy vám pomôžu jednoznačne identifikovať riadok v tabuľke kombináciou jedného alebo viacerých stĺpcov v tejto tabuľke. Kľúč databázy je tiež užitočný na vyhľadanie jedinečného záznamu alebo riadku z tabuľky.

Čo je to databázový vzťah?

Vzťah k databáze sú asociácie medzi jednou alebo viacerými tabuľkami, ktoré sa vytvárajú pomocou príkazov join. Slúži na efektívne načítanie údajov z databázy. Existujú predovšetkým tri typy vzťahov 1) Jeden-na-jeden, 2) Jeden-na-veľa, 3) Mnoho-na-veľa.

Čo je primárny kľúč?

Obmedzením primárneho kľúča je stĺpec alebo skupina stĺpcov, ktoré jedinečne identifikujú každý riadok v tabuľke systému správy relačných databáz. Nemôže ísť o duplikát, čo znamená, že rovnaká hodnota by sa v tabuľke nemala objaviť viac ako raz.

Tabuľka môže mať viac ako jeden primárny kľúč. Primárny kľúč je možné definovať na úrovni stĺpca alebo tabuľky. Ak vytvoríte zložený primárny kľúč, mal by sa definovať na úrovni tabuľky.

Čo je cudzí kľúč?

Cudzí kľúč je stĺpec, ktorý vytvára vzťah medzi dvoma tabuľkami. Účelom cudzieho kľúča je zachovať integritu údajov a umožniť navigáciu medzi dvoma rôznymi inštanciami entity. Funguje ako krížový odkaz medzi dvoma tabuľkami, pretože odkazuje na primárny kľúč inej tabuľky. Každý vzťah v databáze by mal byť podporený cudzím kľúčom.

KĽÚČOVÉ ROZDIELY:

  • Obmedzením primárneho kľúča je stĺpec, ktorý jedinečne identifikuje každý riadok v tabuľke systému správy relačných databáz, zatiaľ čo cudzí kľúč je stĺpec, ktorý vytvára vzťah medzi dvoma tabuľkami.
  • Primárny kľúč nikdy neprijíma nulové hodnoty, zatiaľ čo cudzí kľúč môže akceptovať viac nulových hodnôt.
  • V tabuľke môžete mať iba jeden primárny kľúč, zatiaľ čo v tabuľke môžete mať viac cudzích kľúčov.
  • Hodnotu primárneho kľúča nemožno odstrániť z nadradenej tabuľky, zatiaľ čo hodnotu hodnoty cudzieho kľúča je možné odstrániť z podradenej tabuľky.
  • Žiadne dva riadky nemôžu mať rovnaké hodnoty pre primárny kľúč, na druhej strane cudzí kľúč môže obsahovať duplicitné hodnoty.
  • Vkladanie hodnôt do stĺpca tabuľky pri vkladaní akejkoľvek hodnoty do tabuľky cudzích kľúčov nemá nijaké obmedzenie, uistite sa, že je hodnota prítomná v stĺpci primárneho kľúča.

Prečo používať primárny kľúč?

Tu sú výhody / výhody použitia primárneho kľúča:

  • Hlavným cieľom primárneho kľúča je identifikácia každého záznamu v databázovej tabuľke.
  • Primárny kľúč môžete použiť, keď niekomu nedovolíte zadávať nulové hodnoty.
  • Ak odstránite alebo aktualizujete záznamy, vykoná sa vami zadaná akcia na zaistenie integrity údajov.
  • Vykonajte operáciu obmedzenia a odmietnite operáciu odstránenia alebo aktualizácie nadradenej tabuľky.
  • Údaje sú usporiadané v poradí zoskupeného indexu, kedykoľvek fyzicky usporiadate tabuľku DBMS.

Prečo používať cudzí kľúč?

Tu sú dôležité dôvody použitia cudzieho kľúča:

  • Cudzie kľúče vám pomôžu migrovať entity pomocou primárneho kľúča z nadradenej tabuľky.
  • Cudzí kľúč umožňuje prepojiť dve alebo viac tabuliek dohromady.
  • Vďaka tomu budú vaše databázové údaje konzistentné.
  • Cudzí kľúč je možné použiť na priradenie stĺpca alebo kombinácie stĺpcov k primárnemu kľúču v nadradenej tabuľke.
  • Obmedzenie cudzím kľúčom SQL sa používa na zabezpečenie referenčnej integrity rodiča údajov, aby sa zhodovali s hodnotami v podradenej tabuľke.

Príklad primárneho kľúča

Syntax:

Nižšie je uvedená syntax primárneho kľúča:

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

Tu,

  • Table_Name je názov tabuľky, ktorú musíte vytvoriť.
  • Column_Name je názov stĺpca s primárnym kľúčom.

Príklad:

StudID Roll č Krstné meno Priezvisko Email
1 11 Tom cena Táto e-mailová adresa je chránená pred spamovacími robotmi. Ak ju chcete vidieť, musíte mať povolený JavaScript.
2 12 Nick Wright Táto e-mailová adresa je chránená pred spamovacími robotmi. Ak ju chcete vidieť, musíte mať povolený JavaScript.
3 13 Dana Natan Táto e-mailová adresa je chránená pred spamovacími robotmi. Ak ju chcete vidieť, musíte mať povolený JavaScript.

Vo vyššie uvedenom príklade sme vytvorili tabuľku študentov so stĺpcami ako StudID, Číslo role, Meno, Priezvisko a E-mail. StudID je vybraný ako primárny kľúč, pretože dokáže jedinečne identifikovať ďalšie riadky v tabuľke.

Príklad cudzieho kľúča

Syntax:

Nižšie je uvedená syntax cudzieho kľúča:

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

Tu,

  • Parameter Názov tabuľky označuje názov tabuľky, ktorú sa chystáte vytvoriť.
  • Parametre stĺpec1, stĺpec2 ... zobrazujú stĺpce, ktoré je potrebné pridať do tabuľky.
  • Obmedzenie označuje názov obmedzenia, ktoré vytvárate.
  • Odkazy označujú tabuľku s primárnym kľúčom.

Príklad:

DeptCode DeptName
001 Veda
002 Angličtina
005 Počítač
ID učiteľa Meno Meno
B002 Dávid Warner
B017 Sara Jozefa
B009 Mike Brunton

Vo vyššie uvedenom príklade máme dva stoly, učiteľ a katedra v škole. Neexistuje však žiadny spôsob, ako zistiť, ktoré vyhľadávanie v danom oddelení funguje.

V tejto tabuľke, pridaním cudzieho kľúča v Deptcode k menu Učiteľ, môžeme vytvoriť vzťah medzi týmito dvoma tabuľkami.

ID učiteľa DeptCode Meno Meno
B002 002 Dávid Warner
B017 002 Sara Jozefa
B009 001 Mike Brunton

Tento koncept je tiež známy ako Referenčná integrita.

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

Tu je dôležitý rozdiel medzi primárnym a cudzím kľúčom:

Primárny kľúč Cudzí kľúč
Obmedzením primárneho kľúča je stĺpec alebo skupina stĺpcov, ktoré jedinečne identifikujú každý riadok v tabuľke systému správy relačných databáz. Cudzí kľúč je stĺpec, ktorý vytvára vzťah medzi dvoma tabuľkami.
Pomôže vám to jednoznačne identifikovať záznam v tabuľke. Je to pole v tabuľke, ktoré je primárnym kľúčom inej tabuľky.
Primárny kľúč nikdy neprijíma nulové hodnoty. Cudzí kľúč môže akceptovať viac nulových hodnôt.
Primárnym kľúčom je zoskupený index a údaje v tabuľke DBMS sú fyzicky usporiadané v poradí zoskupeného indexu. Cudzí kľúč nemôže automaticky vytvoriť index, klastrovaný alebo klastrovaný.
Jeden hlavný kľúč môžete mať v tabuľke. V tabuľke môžete mať viac cudzích kľúčov.
Hodnotu primárneho kľúča nemožno odstrániť z nadradenej tabuľky. Hodnotu hodnoty cudzieho kľúča je možné z podradenej tabuľky odstrániť.
Primárny kľúč môžete definovať implicitne v dočasných tabuľkách. Cudzie kľúče nemôžete definovať v lokálnych alebo globálnych dočasných tabuľkách.
Primárny kľúč je zoskupený index. Predvolene nejde o klastrovaný index.
Žiadne dva riadky nemôžu mať rovnaké hodnoty pre primárny kľúč. Cudzí kľúč môže obsahovať duplicitné hodnoty.
Vkladanie hodnôt do stĺpca tabuľky nie je nijako obmedzené. Pri vkladaní ľubovoľnej hodnoty do tabuľky cudzích kľúčov sa uistite, či je hodnota prítomná v stĺpci primárneho kľúča.