Rozdíl mezi primárním klíčem a cizím klíčem

Klíčové rozdíly mezi primárním a cizím klíčem

  • Omezení primárního klíče je sloupec, který jednoznačně identifikuje každý řádek v tabulce systému správy relačních databází, zatímco cizí klíč je sloupec, který vytváří vztah mezi dvěma tabulkami.
  • Primární klíč nikdy nepřijímá hodnoty null, zatímco cizí klíč může přijímat více hodnot null.
  • V tabulce můžete mít pouze jeden primární klíč, zatímco v tabulce můžete mít více cizích klíčů.
  • Hodnotu primárního klíče nelze odebrat z nadřazené tabulky, zatímco hodnotu cizího klíče lze odebrat z podřízené tabulky.
  • Žádné dva řádky nemohou mít stejné hodnoty pro primární klíč; na druhou stranu cizí klíč může obsahovat duplicitní hodnoty.
  • Neexistuje žádné omezení pro vkládání hodnot do sloupce tabulky při vkládání jakékoli hodnoty do tabulky cizích klíčů; ujistěte se, že hodnota je přítomna ve sloupci primárního klíče.
Rozdíl mezi primárním klíčem a cizím klíčem
Rozdíl mezi primárním klíčem a cizím klíčem

Zde jsem rozebral rozdíl mezi primárním a cizím klíčem a komplexně zhodnotím jejich klady a zápory.

Co je primární klíč?

Omezení primárního klíče je sloupec nebo skupina sloupců, které jednoznačně identifikují každý řádek v tabulce systému správy relačních databází. Nemůže to být duplikát, což znamená, že stejná hodnota by se v tabulce neměla objevit více než jednou.

Tabulka nemůže mít více než jeden primární klíč. The primární klíč lze definovat na úrovni sloupce nebo tabulky. Pokud vytvoříte složený primární klíč, měl by být definován na úrovni tabulky.

Příklad primárního klíče

Syntaxe:

Níže je uvedena syntaxe primárního klíče:

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

Zde,

  • Table_Name je název tabulky, kterou musíte vytvořit.
  • Column_Name je název sloupce s primárním klíčem.

Příklad:

StudID Role č Jméno Příjmení Email
1 11 Tomáš Cena abc@gmail.com
2 12 Nick Wright xyz@gmail.com
3 13 dana Natan mno@yahoo.com

Ve výše uvedeném příkladu jsme vytvořili tabulku studentů se sloupci jako StudID, Roll No., First Name, Last Name a Email. StudID je vybrán jako primární klíč, protože dokáže jednoznačně identifikovat další řádky v tabulce.

Proč používat primární klíč?

Během let, kdy se zabývám databázovými systémy, jsem při používání primárního klíče zaznamenal tyto nevýhody a výhody:

  • Hlavním cílem primárního klíče je identifikovat každý jednotlivý záznam v databázové tabulce.
  • Primární klíč můžete použít, když někomu nedovolíte zadávat hodnoty null.
  • Pokud odstraníte nebo aktualizujete záznamy, provede se vámi zadaná akce k zajištění integrity dat.
  • Provedením operace omezení odmítnete operaci odstranění nebo aktualizace nadřazené tabulky.
  • Data jsou organizována v posloupnosti seskupených indexů, kdykoli fyzicky uspořádáte tabulku DBMS.

Co je cizí klíč?

Cizí klíč je sloupec, který vytváří vztah mezi dvěma tabulkami. Účelem cizího klíče je zachovat integritu dat a umožnit navigaci mezi dvěma různými instancemi entity. Funguje jako křížový odkaz mezi dvěma tabulkami, protože odkazuje na primární klíč jiné tabulky. Každý vztah v databázi by měl být podporován cizím klíčem.

Příklad cizího klíče

Syntaxe:

Níže je uvedena syntaxe cizího klíče:

CREATE TABLE <Table Name>( 
column1    datatype,
column2    datatype,  
constraint (name of constraint) 
FOREIGN KEY [column1, column2...] 
REFERENCES [primary key table name] (List of primary key table column) ...);

Zde,

  • Parametr Název tabulky udává název tabulky, kterou se chystáte vytvořit.
  • Parametry column1, column2… zobrazují sloupce, které je třeba přidat do tabulky.
  • Vazba označuje název vazby, kterou vytváříte.
  • Odkazy označují tabulku s primárním klíčem.

Příklad:

DeptCode DeptName
001 Věda
002 angličtina
005 Počítač
ID učitele Fname Ljméno
B002 David Warner
B017 Sara Joseph
B009 mikrofon Bruntone

Ve výše uvedeném příkladu máme dvě tabulky: učitele a oddělení ve škole. Neexistuje však způsob, jak zjistit, které vyhledávání v kterém oddělení funguje.

V této tabulce můžeme přidáním cizího klíče v Deptcode ke jménu učitele vytvořit vztah mezi dvěma tabulkami.

ID učitele DeptCode Fname Ljméno
B002 002 David Warner
B017 002 Sara Joseph
B009 001 mikrofon Bruntone

Tento koncept je také známý jako referenční integrita.

Proč používat cizí klíč?

Z toho, co jsem viděl, jsou zde důležité důvody pro implementaci cizích klíčů:

  • Cizí klíče vám pomohou migrovat entity pomocí primárního klíče z nadřazené tabulky.
  • A cizí klíč umožňuje propojit dvě nebo více tabulek dohromady.
  • Díky tomu jsou data v databázi konzistentní.
  • Cizí klíč lze použít ke spárování sloupce nebo kombinace sloupců s primárním klíčem v nadřazené tabulce.
  • Omezení cizího klíče SQL se používá k zajištění toho, aby referenční integrita nadřazených dat odpovídala hodnotám v podřízené tabulce.

Rozdíl mezi primárním a cizím klíčem

Dovolte mi podělit se o důležitý rozdíl mezi primárním klíčem a cizím klíčem, jak jsem osobně zažil:

Primární klíč vs cizí klíč
Primární klíč vs cizí klíč
Srovnávací základ Primární klíč Cizí klíč
Definice Omezení primárního klíče je sloupec nebo skupina sloupců, které jednoznačně identifikují každý řádek v tabulce systém pro správu relačních databází. Cizí klíč je sloupec, který vytváří vztah mezi dvěma tabulkami.
Basic Pomůže vám jednoznačně identifikovat záznam v tabulce. Je to pole v tabulce, které je primárním klíčem jiné tabulky.
NULL Primární klíč nikdy nepřijímá hodnoty null. Cizí klíč může přijímat více hodnot null.
Indexování Primárním klíčem je seskupený index a data v tabulce DBMS jsou fyzicky organizována v posloupnosti seskupeného indexu. Cizí klíč nemůže automaticky vytvořit index, klastrovaný nebo neklastrovaný.
Počítat V tabulce můžete mít jeden primární klíč. V tabulce můžete mít více cizích klíčů.
vymazání Hodnotu primárního klíče nelze z nadřazené tabulky odebrat. Hodnotu cizího klíče lze z podřízené tabulky odebrat.
Dočasný stůl Primární klíč můžete definovat implicitně v dočasných tabulkách. Nemůžete definovat cizí klíče v místních nebo globálních dočasných tabulkách.
Vztah Primární klíč je seskupený index. Ve výchozím nastavení se nejedná o seskupený index.
Zdvojení Žádné dva řádky nemohou mít stejné hodnoty pro primární klíč. Cizí klíč může obsahovat duplicitní hodnoty.
Vložení Vkládání hodnot do sloupce tabulky není nijak omezeno. Při vkládání jakékoli hodnoty do tabulky cizích klíčů se ujistěte, že je tato hodnota přítomna ve sloupci primárního klíče.

Jak si vybrat mezi primárním klíčem a cizím klíčem

Z toho, co jsme viděli, primární klíče jednoznačně identifikují položky tabulky a cizí klíče propojují tyto položky napříč tabulkami, což je důležité pro zachování integrity dat a usnadnění efektivního získávání dat.