- Klíče hrají v relační databázi důležitou roli.
- Slouží k jednoznačné identifikaci jakéhokoli záznamu nebo řádku dat z tabulky. Používá se také k vytvoření a identifikaci vztahů mezi tabulkami.
Například, ID se používá jako klíč v tabulce Student, protože je jedinečné pro každého studenta. V tabulce PERSON jsou klíče passport_number, license_number, SSN, protože jsou jedinečné pro každou osobu.
Typy klíčů:
1. Primární klíč
- Je to první klíč používaný k jedinečné identifikaci jedné a pouze jedné instance entity. Entita může obsahovat více klíčů, jak jsme viděli v tabulce PERSON. Klíč, který je z těchto seznamů nejvhodnější, se stává primárním klíčem.
- V tabulce EMPLOYEE může být ID primárním klíčem, protože je jedinečné pro každého zaměstnance. V tabulce ZAMĚSTNANCI můžeme dokonce vybrat License_Number a Passport_Number jako primární klíče, protože jsou také jedinečné.
- Pro každou entitu je výběr primárního klíče založen na požadavcích a vývojářích.
2. Klíč kandidáta
- Kandidátský klíč je atribut nebo sada atributů, které mohou jednoznačně identifikovat n-tici.
- Kromě primárního klíče jsou zbývající atributy považovány za kandidátský klíč. Kandidátské klíče jsou stejně silné jako primární klíč.
Například: V tabulce EMPLOYEE se id nejlépe hodí pro primární klíč. Zbývající atributy, jako SSN, Passport_Number, License_Number atd., jsou považovány za kandidátský klíč.
3. Super klíč
Super klíč je sada atributů, která dokáže jednoznačně identifikovat n-tici. Super klíč je nadmnožinou kandidátního klíče.
Například: Ve výše uvedené tabulce EMPLOYEE pro (EMPLOEE_ID, EMPLOYEE_NAME) mohou být jména dvou zaměstnanců stejná, ale jejich EMPLYEE_ID nesmí být stejné. Proto může být tato kombinace také klíčová.
Super klíč by byl EMPLOYEE-ID (EMPLOYEE_ID, EMPLOYEE-NAME) atd.
4. Cizí klíč
- Cizí klíče jsou sloupce tabulky, které slouží k odkazování na primární klíč jiné tabulky.
- Každý zaměstnanec pracuje v určitém oddělení ve společnosti a zaměstnanec a oddělení jsou dvě různé entity. Nemůžeme tedy uložit informace o oddělení do tabulky zaměstnanců. Proto tyto dvě tabulky propojujeme prostřednictvím primárního klíče jedné tabulky.
- Přidáme primární klíč tabulky ODDĚLENÍ, ID_oddělení, jako nový atribut do tabulky ZAMĚSTNANEC.
- V tabulce EMPLOYEE je Department_Id cizí klíč a obě tabulky spolu souvisí.
5. Alternativní klíč
Může existovat jeden nebo více atributů nebo kombinace atributů, které jednoznačně identifikují každou n-tici ve vztahu. Tyto atributy nebo kombinace atributů se nazývají kandidátské klíče. Jeden klíč je vybrán jako primární klíč z těchto kandidátských klíčů a zbývající kandidátský klíč, pokud existuje, se nazývá alternativní klíč. Jinými slovy, celkový počet alternativních klíčů je celkový počet kandidátských klíčů mínus primární klíč. Alternativní klíč může nebo nemusí existovat. Pokud je ve vztahu pouze jeden kandidátský klíč, nemá alternativní klíč.
Například, zaměstnanecký vztah má dva atributy, Employee_Id a PAN_No, které fungují jako kandidátní klíče. V tomto vztahu je Employee_Id vybráno jako primární klíč, takže druhý kandidátský klíč, PAN_No, funguje jako Alternativní klíč.
příklady binárních stromů
6. Složený klíč
Kdykoli se primární klíč skládá z více než jednoho atributu, nazývá se složený klíč. Tento klíč je také známý jako Concatenated Key.
Například, v zaměstnaneckých vztazích předpokládáme, že zaměstnanci může být přiděleno více rolí a zaměstnanec může pracovat na více projektech současně. Primární klíč se tedy bude skládat ze všech tří atributů, jmenovitě Emp_ID, Emp_role a Proj_ID v kombinaci. Tyto atributy tedy fungují jako složený klíč, protože primární klíč obsahuje více než jeden atribut.
7. Umělý klíč
Klíč vytvořený pomocí libovolně přiřazených dat se nazývá umělé klíče. Tyto klíče se vytvářejí, když je primární klíč velký a složitý a nemá žádný vztah s mnoha dalšími vztahy. Datové hodnoty umělých klíčů jsou obvykle číslovány v sériovém pořadí.
Například, primární klíč, který se skládá z Emp_ID, Emp_role a Proj_ID, je v zaměstnaneckých vztazích velký. Bylo by tedy lepší přidat nový virtuální atribut, který by jednoznačně identifikoval každou n-tici ve vztahu.