Klíče DBMS: Kandidátské, primární, super a cizí typy

⚡ Chytré shrnutí

Klíče v DBMS jsou atributy, které jednoznačně identifikují řádek v tabulce a vytvářejí vztahy mezi tabulkami. Osm typů klíčů, od nadřazených a primárních až po cizí a náhradní, vynucuje identitu a integritu v celé relační databázi.

  • 🗝️ Hlavní účel: Klíč identifikuje jedinečný řádek a propojuje související tabulky, aby data zůstala konzistentní.
  • 🔝 Super klíč: Libovolná sada atributů, která identifikuje řádky, případně s dalšími atributy nad rámec minima.
  • Primární klíč: Zvolený kandidátský klíč, nikdy nenull a nikdy neduplikovaný, jeden na tabulku.
  • 🎯 Klíč kandidáta: Minimální superklíč bez redundantního atributu; primární klíč se vybírá z nich.
  • 🔁 Alternativní klíč: Jakýkoli kandidátský klíč, který není vybrán jako primární klíč.
  • 🔗 Cizí klíč: Sloupec odkazující na primární klíč jiné tabulky pro vynucení referenční integrity.
  • 🧩 Složené a náhradní: Složené klíče kombinují sloupce pro jedinečnost; náhradní klíč je vygenerovaná náhrada.

Kandidát na klíče DBMS Super primární

Co jsou klíče v DBMS?

Klíče v DBMS jsou atribut nebo sada atributů, které vám pomohou identifikovat řádek (n-tici) v relaci (tabulce). Umožňují najít vztah mezi dvěma tabulkami. Klíče vám pomohou jednoznačně identifikovat řádek v tabulce kombinací jednoho nebo více sloupců a jsou také užitečné pro nalezení jedinečného záznamu v tabulce.

Příklad:

ID zaměstnance Jméno Příjmení
11 Andrew Johnson
22 Tomáš dřevo
33 Alex Zdravý

Ve výše uvedeném příkladu je ID zaměstnance primárním klíčem, protože jednoznačně identifikuje záznam zaměstnance. V této tabulce nemůže mít žádný jiný zaměstnanec stejné ID zaměstnance.

Proč potřebujeme klíč?

Zde je několik důvodů pro použití klíče v DBMS:

  • Klíče vám pomáhají identifikovat libovolný řádek dat v tabulce. V reálné aplikaci může tabulka obsahovat tisíce záznamů a tyto záznamy mohou být duplicitní. Klíče zajišťují, že i přes tyto problémy můžete jednoznačně identifikovat záznam v tabulce.
  • Umožňují vám navázat a identifikovat vztahy mezi tabulkami.
  • Pomáhají vám prosazovat identitu a integritu ve vztahu.

Typy klíčů v DBMS

V DBMS existuje osm různých typů klíčů a každý klíč má svou vlastní funkci:

  1. Super klíč
  2. Primární klíč
  3. Klíč kandidáta
  4. Alternativní klíč
  5. Cizí klíč
  6. Složený klíč
  7. Složený klíč
  8. Náhradní klíč

Níže uvedená tabulka shrnuje všech osm na první pohled, než je každý z nich podrobněji vysvětlen.

Klíč V jednom řádku Unikátní?
Super klíč Libovolná sada atributů, která identifikuje řádek, povoleny jsou i doplňky. Ano
Klíč kandidáta Minimální superklíč, žádný redundantní atribut Ano
Primární klíč Zvolený kandidátský klíč, nikoli null Ano
Alternativní klíč Kandidátský klíč nebyl vybrán jako primární Ano
Cizí klíč Odkazuje na primární klíč v jiné tabulce Ne
Složený klíč Dva nebo více atributů, každý z nich může být nejedinečný Kombinovaný
Složený klíč Dva nebo více sloupců kombinovaných pro jedinečnost Kombinovaný
Náhradní klíč Vygenerovaný umělý identifikátor Ano

Co je to super klíč?

Superklíč je skupina jednoho nebo více klíčů, která identifikuje řádky v tabulce. Superklíč může mít další atributy, které nejsou potřeba pro jedinečnou identifikaci.

Příklad:

EmpSSN EmpNum Empname
9812345098 AB05 Zobrazeno
9876512345 AB06 Roslyne
199937890 AB07 James

Ve výše uvedeném příkladu jsou EmpSSN a EmpNum superklíče.

Co je primární klíč?

ZÁKLADNÍ KLÍČ in DBMS je sloupec nebo skupina sloupců v tabulce, která jednoznačně identifikuje každý řádek v dané tabulce. Primární klíč nemůže být duplikát, což znamená, že stejná hodnota se v tabulce nemůže objevit více než jednou. Tabulka nemůže mít více než jeden primární klíč.

Pravidla pro definování primárního klíče

  • Dva řádky nemohou mít stejnou hodnotu primárního klíče.
  • Každý řádek musí mít hodnotu primárního klíče.
  • Pole primárního klíče nemůže mít hodnotu null.
  • Hodnotu ve sloupci primárního klíče nelze nikdy upravit ani aktualizovat, pokud na tento primární klíč odkazuje jakýkoli cizí klíč.

Příklad: V následujícím příkladu StudID je primární klíč.

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

Co je to alternativní klíč?

ALTERNATIVNÍ KLÍČ je sloupec nebo skupina sloupců v tabulce, která jednoznačně identifikuje každý řádek. Tabulka může mít více možností pro primární klíč, ale jako primární klíč lze nastavit pouze jednu. Všechny klíče, které nejsou primárním klíčem, se nazývají alternativní klíče.

Příklad: V této tabulce jsou StudID, Roll No a Email kvalifikované jako primární klíč. Ale protože StudID je primárním klíčem, Roll No a Email se stávají alternativními klíči.

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

Co je klíč kandidáta?

KLÍČ KANDIDÁTU je sada atributů, které jednoznačně identifikují n-tice v tabulce. Kandidátský klíč je superklíč bez opakujících se atributů. Primární klíč by měl být vybrán z kandidátských klíčů. Každá tabulka musí mít alespoň jeden kandidátský klíč a tabulka může mít více kandidátských klíčů, ale pouze jeden primární klíč.

Vlastnosti kandidátského klíče:

  • Musí obsahovat jedinečné hodnoty.
  • Kandidátský klíč může mít více atributů.
  • Nesmí obsahovat hodnoty null.
  • Mělo by obsahovat minimální množství polí potřebných k zajištění jedinečnosti.
  • Jednoznačně identifikuje každý záznam v tabulce.

Příklad: V tabulce níže jsou ID studia, číslo studijního záznamu a e-mail kandidáty na klíče, které nám pomáhají jednoznačně identifikovat záznam studenta. Jejich vztah k super klíčům a primárním klíčům je běžným způsobem pochopení. funkční závislost.

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
Kandidátský klíč v DBMS
Kandidátský klíč v DBMS

Co je to cizí klíč?

ZAHRANIČNÍ 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.

Příklad:

odděleníCode 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

V tomto příkladu máme ve škole dvě tabulky, Učitel a Oddělení. V jejich současné podobě není možné zjistit, který učitel pracuje ve kterém oddělení.

Přidáním cizího klíče DeptCode k tabulce Učitel můžeme vytvořit relaci mezi těmito dvěma tabulkami.

ID učitele odděleníCode 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.

Co je to složený klíč?

SLOŽENÝ KLÍČ má dva nebo více atributů, které umožňují jedinečně rozpoznat konkrétní záznam. Je možné, že každý sloupec nemusí být v databázi sám o sobě jedinečný. Po zkombinování se však sloupce stanou jedinečnými. Účelem složeného klíče je jedinečně identifikovat každý záznam v tabulce.

Příklad:

Objednávka číslo ID produktu jméno výrobku Množství
B005 JAP102459 Mouse 5
B005 DKT321573 USB 10
B005 OMG446789 LCD monitor 20
B004 DKT321573 USB 15
B002 OMG446789 Laserová tiskárna 3

V tomto příkladu nemohou být položky OrderNo a ProductID primárním klíčem, protože ani jeden z nich jednoznačně neidentifikuje záznam. Složený klíč s údaji OrderNo a ProductID však jednoznačně identifikuje každý záznam.

Co je to kompozitní klíč?

KOMPOZITNÍ KLÍČ je kombinace dvou nebo více sloupců, které jednoznačně identifikují řádky v tabulce. Kombinace sloupců zaručuje jedinečnost, ačkoli jedinečnost jednotlivých sloupců zaručena není. Proto se kombinují, aby jednoznačně identifikovaly záznamy v tabulce.

Rozdíl mezi složeným a kompozitním klíčem spočívá v tom, že jakákoli část složeného klíče může být cizím klíčem, ale složený klíč může, ale nemusí být součástí cizího klíče.

Co je to náhradní klíč?

NÁHRADNÍ KLÍČ je umělý klíč, jehož cílem je jednoznačně identifikovat každý záznam. Tento typ klíče je jedinečný, protože se vytváří, když nemáte žádný přirozený primární klíč. Náhradní klíče nepropůjčují datům v tabulce žádný význam a obvykle se jedná o celé číslo vygenerované těsně před vložením záznamu.

Fname Příjmení Doba spuštění Čas ukončení
Anne kovář 09:00 18:00
zvedák Francis 08:00 17:00
Anna McLean 11:00 20:00
Zobrazeno Willam 14:00 23:00

Výše uvedený příklad ukazuje časy směn různých zaměstnanců. Zde je potřeba zástupný klíč k jednoznačné identifikaci každého zaměstnance. Zástupné klíče v SQL se používají, když:

  • Žádná vlastnost nemá parametr primárního klíče.
  • Primární klíč je příliš velký nebo složitý.

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

Následuje hlavní rozdíl mezi primárním klíčem a cizím klíčem:

Primární klíč Cizí klíč
Pomáhá vám jednoznačně identifikovat záznam v tabulce. Je to pole v tabulce, které je primárním klíčem jiné tabulky.
Primární klíč nikdy nepřijímá hodnoty null. Cizí klíč může přijímat více hodnot null.
Primární klíč je klastrovaný index a data v tabulce jsou fyzicky uspořádána v pořadí klastrovaného indexu. Cizí klíč nemůže automaticky vytvořit index, klastrovaný ani neklastrovaný. Můžete ho vytvořit ručně.
V tabulce můžete mít jeden primární klíč. V tabulce můžete mít více cizích klíčů.

Nejčastější dotazy

Každý kandidátský klíč může jednoznačně identifikovat řádek. Primární klíč je jeden kandidátský klíč, kterého návrhář vybere; zbývající kandidátské klíče se stanou alternativními klíči.

Oba kombinují sloupce pro jedinečnost. Ve složeném klíči je každý sloupec sám o sobě cizím klíčem, zatímco složený klíč jednoduše spojuje dva nebo více atributů, které nemusí být cizími klíči.

Použijte náhradní klíč, pokud žádný přirozený atribut není spolehlivě jedinečný, nebo pokud je přirozený klíč velký nebo se může měnit. Vygenerované celé číslo zůstává stabilní a udržuje spojení jednoduché.

Ano. Profilováním sloupců z hlediska jedinečnosti, míry nulových hodnot a stability může umělá inteligence vybrat kandidátské klíče a navrhnout primární klíč nebo náhradní klíč, přičemž konečnou volbu ponechává na návrháři.

Ano. Na rozdíl od primárního klíče může cizí klíč obsahovat hodnotu null, což představuje řádek, který ještě nesouvisí s žádným nadřazeným záznamem. Nenulový cizí klíč se musí shodovat s existujícím primárním klíčem.

Shrňte tento příspěvek takto: