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 -
- WebLogic vs WebSphere
- ROLAP vs MOLAP vs HOLAP
- GoCD vs Jenkins
- Dluh vs financování vlastního kapitálu