klíčový rozdíl mezi cizím klíčem a primárním klíčem je to cizí klíč je sloupec nebo sada sloupců, které odkazují na primární klíč nebo klíč kandidáta jiné tabulky, zatímco primární klíč je sloupec nebo sada sloupců, které lze použít k jedinečné identifikaci řádku v tabulce.
Sloupec nebo sada sloupců, které lze použít k identifikaci nebo přístupu k řádku nebo sadě řádků v databázi, se nazývá klíč. Primární klíč v relační databázi je kombinace sloupců v tabulce, které jedinečně identifikují řádek tabulky. Cizí klíč v relační databázi je pole v tabulce, které odpovídá primárnímu klíči jiné tabulky. Cizí klíč se používá k křížení referenčních tabulek.
1. Přehled a klíčový rozdíl
2. Co je cizí klíč
3. Co je primární klíč
4. Srovnání vedle sebe - cizí klíč a primární klíč v tabulkové formě
5. Shrnutí
Cizí klíč je referenční omezení mezi dvěma tabulkami. Identifikuje sloupec nebo skupinu sloupců v jedné tabulce, nazývané referenční tabulka, která odkazuje na sadu sloupců v jiné tabulce, nazývanou odkazovaná tabulka. Cizí klíč nebo sloupce v referenční tabulce musí být primární klíč nebo klíč kandidáta (klíč, který lze použít jako primární klíč) v referenční tabulce. Cizí klíče navíc umožňují propojení dat mezi několika tabulkami. Cizí klíč proto nemůže obsahovat hodnoty, které se neobjeví v tabulce, na kterou odkazuje. Odkaz na cizí klíč pak pomůže propojit informace v několika tabulkách, což by se stalo nezbytným u normalizovaných databází. Více řádků v referenční tabulce může odkazovat na jeden řádek v odkazované tabulce.
Obrázek 01: Mapování cizího klíče
V standardu ANSI SQL definuje FOREIGN KEY omezení cizí klíče. Dále je možné při vytváření tabulky definovat cizí klíče. Tabulka může obsahovat více cizích klíčů a mohou odkazovat na různé tabulky.
Primární klíč je sloupec nebo kombinace sloupců, které jednoznačně definují řádek v tabulce relační databáze. Tabulka může mít nejvýše jeden primární klíč. Primární klíč vynucuje implicitní omezení NOT NULL. Sloupec s primárním klíčem proto nemůže obsahovat hodnoty NULL. Primární klíč může být normální atribut v tabulce, u kterého je zaručeno, že je jedinečný, například číslo sociálního zabezpečení, nebo by to mohla být jedinečná hodnota generovaná systémem správy databází, jako je například globálně jedinečný identifikátor (GUID) v Microsoft SQL Server.
Obrázek 02: Primární klíč
Kromě toho omezení PRIMARY KEY v ANSI SQL Standard definuje primární klíče. Při vytváření tabulky je také možné definovat primární klíč. Kromě toho SQL umožňuje, aby byl primární klíč tvořen jedním nebo více sloupci a každý sloupec, který je obsažen v primárním klíči, je implicitně definován jako NULL. Některé systémy správy databází však vyžadují, aby sloupce primárních klíčů nebyly explicitně NULL.
Cizí klíč vs Primární klíč | |
Cizí klíč je sloupec nebo skupina sloupců v relační databázové tabulce, která poskytuje asociaci mezi daty ve dvou tabulkách. | Primární klíč je speciální sloupec tabulky relačních databází nebo kombinace více sloupců, které umožňují jednoznačně identifikovat všechny záznamy tabulky. |
NULA | |
Cizí klíč přijímá NULL hodnotu. | Hodnota primárního klíče nemůže být NULL. |
Počet klíčů | |
Tabulka může obsahovat více cizích klíčů. | Tabulka může obsahovat pouze jeden primární klíč. |
Zdvojení | |
Tuples mohou mít duplicitní hodnotu pro atribut cizího klíče. | Dvě n-tice ve vztahu nemohou mít duplicitní hodnoty pro atribut primárního klíče. |
Rozdíl mezi cizím klíčem a primárním klíčem spočívá v tom, že cizí klíč je sloupec nebo sada sloupců, které odkazují na primární klíč nebo kandidátský klíč jiné tabulky, zatímco primární klíč je sloupec nebo sada sloupců, které lze použít k jedinečnému identifikovat řádek v tabulce.
1. „Cizí klíč“. Wikipedia, Wikimedia Foundation, 12. května 2018. K dispozici zde
2. „Primární klíč“. Wikipedia, Wikimedia Foundation, 3. dubna 2018. K dispozici zde
1.'Reign-Key-Mapping'By MovGP0 - vlastní práce, (CC BY-SA 3.0) přes Commons Wikimedia
2.'Erd-id-as-primární-klíč'By UniCollab - vlastní práce, (CC BY-SA 3.0) přes Commons Wikimedia