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

V systému správy relačních databází (RDBMS) jsou data uložena v tabulkách. Protože se v tabulkách ukládá velké množství dat, vždy existuje možnost, že data mohou být neorganizovaná nebo obsahovat duplikáty. Také, když potřebujeme načíst data podle našeho požadavku z těchto obrovských dat, úkol se stává obtížným. Koncept Key se v RDBMS používá k identifikaci záznamů v tabulce z tisíců řádků dat. Použití klíče také pomáhá při navazování vztahů mezi tabulkami, takže data lze odkazovat z různých tabulek. Klíč v systému správy relačních databází tak udržuje integritu na úrovni tabulky i referenční integritu. V tomto článku podrobně prozkoumáme rozdíl mezi primárním klíčem a cizím klíčem.

Primární klíč v tabulce jednoznačně identifikuje záznamy a cizí klíč odkazuje na primární klíč jiné tabulky. Vezměme si příklad dvou tabulek: Zaměstnanecké a mzdové tabulky, abychom porozuměli konceptům primárního a cizího klíče. Pokud má tabulka Zaměstnanec primární klíč jako Employee_ID, pak musí být v tabulce platů uveden sloupec Employee_ID, protože musí existovat vztah mezi těmito dvěma tabulkami tím, že v tabulce platů bude mít cizí klíč, který může odkazovat na primární klíč tabulka zaměstnanců.

Srovnání hlava-hlava mezi primárním klíčem a cizím klíčem (infografika)

Níže je uvedeno šest největších rozdílů mezi primárním klíčem a cizím klíčem:

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

Pojďme diskutovat o některých hlavních klíčových rozdílech mezi primárním klíčem a cizím klíčem:

  • Primární klíč jednoznačně identifikuje záznamy v tabulce, zatímco cizí klíč se používá k propojení tabulek, tj. Odkazuje na primární klíč jiné tabulky.
  • Sloupec Primární klíč v tabulce nemůže mít hodnoty Null a měl by mít vždy jedinečné hodnoty. Cizí klíč v tabulce však může obsahovat hodnoty Null a také mohou mít duplicitní hodnoty.
  • Tabulka může obsahovat pouze jeden primární klíč, zatímco pro tabulku může existovat více než jeden cizí klíč.
  • Index se pro primární klíč vytvoří automaticky, zatímco u cizího klíče se indexy nevytvoří automaticky.
  • Je snadné odstranit omezení cizího klíče, i když se týká primárního klíče. Odstranění omezení primárního klíče však může vytvořit záznamy s podřízenými záznamy, které nemají nadřazený záznam.

Srovnávací tabulka primárního klíče s cizím klíčem

Níže uvedená tabulka shrnuje srovnání mezi primárním klíčem a cizím klíčem:

Primární klíčCizí klíč
Primární klíč tabulky v RDBMS může být jeden sloupec nebo může obsahovat více než jeden sloupec, který se používá k jedinečné identifikaci každého řádku v tabulce. V případě, že primární klíč sestává z více než jednoho sloupce, použijí se údaje z každého sloupce k rozhodování o jedinečnosti řádku. Tabulka v RDMBS může mít pouze jeden primární klíč.Cizí klíč může být jeden sloupec nebo se může skládat z více než jednoho sloupce v tabulce, který se používá k odkazu na primární klíč jiné tabulky. Cizí klíč lze použít k propojení tabulek v RDBMS. Na rozdíl od atributu Primární klíč může tabulka v RDBMS mít více než jeden cizí klíč.
Existuje několik podmínek, které by měly být splněny, aby byl sloupec primárním klíčem v tabulce. Jednou z podmínek je, že primární klíč by měl obsahovat jedinečnou hodnotu pro každý záznam. Proto v tabulce RDBMS nelze povolit duplicitní hodnoty pro dva řádky pro atribut Primární klíč.Na rozdíl od primárního klíče tabulky v RDBMS může cizí klíč obsahovat duplicitní hodnoty. To umožňuje mít duplicitní hodnoty pro řádky tabulky pro atribut cizího klíče.
Další podmínkou sloupce splňujícího primární klíč je to, že by nemělo obsahovat hodnoty Null.Cizí klíč tabulky v RDBMS však může obsahovat hodnoty Null.
Při definování tabulky je určen primární klíč a je nutné definovat primární klíč.Na rozdíl od primárního klíče neexistuje žádná konkrétní definice tabulky pro označení klíče jako cizího klíče.
Není možné odstranit omezení primárního klíče z nadřazené tabulky s odkazem na cizí klíč podřízené tabulky. Před odstraněním nadřazené tabulky je tedy třeba nejprve odstranit podřízenou tabulku.Pokud však potřebujeme odstranit omezení cizího klíče v tabulce, může být odstraněno z podřízené tabulky, i když se týká primárního klíče nadřazené tabulky.

Primární klíč je automaticky indexován, tj. Primární klíč je uložen v indexu pro tabulku a tento index pomáhá při správě požadavku jedinečnosti, a proto jsou hodnoty cizího klíče snadno odkazovány na odpovídající hodnoty primárního klíče.V případě cizího klíče se indexy nevytvářejí automaticky a obvykle je definuje správce databáze.

Závěr

Primární a cizí klíče nejen implementují různé typy integrity, ale také vytvářejí vztahy mezi tabulkami. Primární a cizí klíče také zajišťují, že sloupce vytvořené pro vztah musí obsahovat odpovídající hodnoty a jedinečné záznamy jsou udržovány v tabulce. Systém správy relačních databází funguje efektivně kvůli přítomnosti primárního a cizího klíče.

Omezení primárního klíče pomáhá při automatickém použití integrity dat, protože brání vložení nebo aktualizaci duplicitní řady dat. Použitím omezení klíčů také zabraňuje vymazání řádku z tabulky primárních klíčů z nadřazené tabulky, takže nejsou vytvořeny žádné takové podřízené záznamy, pro které neexistuje žádný nadřazený záznam. Také když je řádek odkazující na primární klíč odstraněn nebo aktualizován v nadřazené tabulce, udržuje referenční integritu cizí klíč. Klíče mají zásadní roli při navazování spojení mezi databázovými tabulkami a také v rámci tabulky.

Doporučené články

Toto je průvodce primárním klíčem vs. cizím klíčem. Zde diskutujeme rozdíly mezi primárními klíči a cizími klíči s infografikou a srovnávací tabulkou. Další informace naleznete také v dalších navrhovaných článcích -

  1. WebLogic vs WebSphere
  2. ROLAP vs MOLAP vs HOLAP
  3. GoCD vs Jenkins
  4. Dluh vs financování vlastního kapitálu

Kategorie: