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.

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:
- Super klíč
- Primární klíč
- Klíč kandidáta
- Alternativní klíč
- Cizí klíč
- Složený klíč
- Složený klíč
- 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í | |
|---|---|---|---|---|
| 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í | |
|---|---|---|---|---|
| 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í | |
|---|---|---|---|---|
| 1 | 11 | Tomáš | Cena | abc@gmail.com |
| 2 | 12 | Nick | Wright | xyz@gmail.com |
| 3 | 13 | dana | Natan | mno@yahoo.com |

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íčů. |
