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

Autor: Laura McKinney
Datum Vytvoření: 1 Duben 2021
Datum Aktualizace: 1 Smět 2024
Anonim
Rozdíl mezi primárním klíčem a cizím klíčem v DBMS - Technologie
Rozdíl mezi primárním klíčem a cizím klíčem v DBMS - Technologie

Obsah


Klíče jsou klíčovou součástí DBMS, kterou používají k identifikaci a navázání vztahu mezi tabulkami ve schématu. Nyní budeme diskutovat o dvou velmi důležitých klíčech DBMS, tj. Primárním klíči a cizím klíči, a také budeme diskutovat o rozdílu mezi primárním klíčem a cizím klíčem. Na cestě vám řeknu, že základní rozdíl mezi primárním a cizím klíčem, který je primárním klíčem, je jedním z vybraných kandidátních klíčů od návrháře databáze, zatímco cizí klíč je klíč, který odkazuje na primární klíč jiného vztahu.

Existuje mnoho dalších rozdílů mezi těmito dvěma, pojďme identifikovat tyto rozdíly pomocí srovnávací tabulky níže.

  1. Srovnávací tabulka
  2. Definice
  3. Klíčové rozdíly
  4. Závěr

Srovnávací tabulka

Základ pro srovnáníPrimární klíčCizí klíč
ZákladníPrimární klíč je vybraný kandidátský klíč, který jednoznačně definuje n-tici ve vztahu.Cizí klíč v tabulce označuje primární klíč jiné tabulky.
NULAHodnota primárního klíče nesmí být nikdy NULL.Cizí klíč přijímá NULL hodnotu.
DuplikátŽádné dvě n-tice ve vztahu nenesou duplicitní hodnoty pro atribut primárního klíče.Tuples mohou nést duplicitní hodnotu pro atribut cizího klíče.
RozsahMůže existovat pouze jeden primární klíč vztahu.Ve vztahu může být více cizích klíčů.
Dočasná tabulkaOmezení primárního klíče lze definovat v dočasných tabulkách.Omezení cizího klíče nelze v dočasných tabulkách definovat.
Skupinový indexVe výchozím nastavení je primární klíč seskupen do indexovaných skupin.Cizí klíč není seskupen automaticky; musí být provedeno ručně.
VloženíMůžeme vložit hodnotu do atributu primárního klíče, i když odkazující cizí klíč nemá tuto hodnotu ve svém sloupci.Nemůžeme vložit hodnotu do cizího klíče, pokud tato hodnota není ve sloupci odkazovaného primárního klíče.
VypuštěníPřed odstraněním hodnoty primárního klíče se ujistěte, že tato hodnota stále není ve sloupci referenčního cizího klíče v tabulce odkazů.Hodnotu ze sloupce cizího klíče můžete odstranit bez obtěžování, zda je tato hodnota přítomna ve sloupci referenčního primárního klíče odkazované relace.


Definice primárního klíče

Primární klíč jedinečně definuje n-tice ve vztahu. Může to být jeden atribut ve vztahu nebo to může být sada atributů ve vztahu. Hodnota atributu primárního klíče by měla nikdy nebo jen zřídka. Protože se jedná o příkazce, znamená to identifikovat jakýkoli záznam v databázi. Změna jakékoli hodnoty atributů primárního klíče by způsobila zmatek.

Návrhář databáze vybere jeden z klíče kandidáta jako primární klíč, s přihlédnutím k některým bodům. První úvaha je hodnota atributu primárního klíče, který nemůže nikdy obsahovat NULA hodnota. Protože pokud hodnota atributu primárního klíče obsahuje NULL, znamená to, že tento záznam v tabulce nelze identifikovat. Porušuje také omezení integrity entity. Druhou úvahou je, žádné dvě n-tice v tabulce mohou obsahovat stejný hodnota pro atribut primárního klíče, protože by to narušilo jedinečnost mezi n-ticemi.


Může být pouze jeden primární klíč pro všechny vztah. Primární klíč je ve výchozím nastavení cluster-indexed, což znamená, že všechny n-tice v tabulce jsou seřazeny podle hodnot atributů primárních klíčů. Omezení primárního klíče lze definovat na a dočasná tabulka. Zprostředkovatelské tabulky vytvořené během provádění dotazu se nazývají dočasné tabulky.

Zatímco mazání n-tice z relace, je třeba dbát na to, aby hodnota primárního klíče odstraněné n-tice stále nebyla ve sloupci cizího klíče referenčního vztahu. Vzhledem k tomu, že vložení nemá na primární klíč žádná omezení.

Primární klíč tabulky, pokud je použit v jiné tabulce, stává se pro tuto tabulku cizím klíčem. Omezení cizího klíče jsou popsána níže.

Definice cizího klíče

Když vztah R1, mezi jeho atributy, má hlavní klíč jiného vztahu R2, pak se tento atribut nazývá Cizí klíč pro vztah R1. Vztah R1 obsahuje cizí klíč referenční vztah protože odkazuje na primární klíč vztahu R2 a vztahu R2 je nazýván referenční vztah.
Na rozdíl od primárního klíče může cizí klíč přijmout NULA hodnoty, protože nemá za úkol identifikovat záznam zřetelně ve vztahu, protože k tomu máme primární klíč. Stejně tak přijímá cizí klíč duplicitní hodnoty.

Vztah může mít násobek cizí klíče, protože může mít různé atributy, které jsou primárními klíči v různých vztazích. Omezení cizího klíče může ne být definován na internetu dočasné tabulky, ani cizí klíč je cluster-indexed atribut.

Zatímco vkládání hodnotu do sloupce cizího klíče referenčního vztahu, ujistěte se, že hodnota vložení musí být přítomna ve sloupci primárního klíče referenčního vztahu. Vzhledem k tomu, že není žádné omezení, zatímco mazání hodnota ze sloupce cizího klíče.

  1. Primární je sada atributů / kandidátský klíč, který zřetelně identifikuje záznam ve vztahu. Cizí klíč v tabulce se však týká primárního klíče jiné tabulky.
  2. Žádné atributy primárního klíče nemohou obsahovat hodnoty NULL, zatímco atribut cizího klíče může akceptovat hodnotu NULL.
  3. Primární klíč by měl mít jedinečné hodnoty atributů, zatímco cizí klíč může mít duplicitní hodnoty atributů.
  4. Ve vztahu může být více cizích klíčů, ale vztah má pouze jeden primární klíč.
  5. Omezení primárního klíče lze použít na dočasné tabulky. Omezení cizího klíče však nelze použít na dočasné tabulky.
  6. Primární klíč je ve výchozím nastavení seskupený indexovaný, zatímco cizí klíč není automaticky indexován seskupený, ale lze jej provést ručně.
  7. Při vkládání hodnoty do sloupce cizího klíče se ujistěte, že hodnota atributu vkládání je přítomna ve sloupci odkazovaného primárního klíče. Neexistuje však žádné omezení pro vkládání do sloupce primárního klíče.
  8. Při mazání hodnoty ze sloupce primárního klíče se ujistěte, že hodnota odstraněného atributu není přítomna ve sloupci odkazujícího cizího klíče. Odstranění hodnoty ze sloupce cizího klíče však není nijak omezeno.

Závěr:

Primární i cizí klíč jsou pro schéma nezbytné. Primární klíč definuje každou n-tici ve vztahu jedinečně, zatímco cizí klíč se používá k vytvoření spojení mezi dvěma vztahy.