logo

Typy klíčů v relačním modelu (kandidát, super, primární, náhradní a cizí)

Klíče jsou jedním ze základních požadavků modelu relační databáze. Je široce používán k jedinečné identifikaci n-tic (řádků) v tabulce. Klíče také používáme k nastavování vztahů mezi různými sloupci a tabulkami relační databáze.

Různé typy databázových klíčů

  • Klíč kandidáta
  • Primární klíč
  • Super klíč
  • Alternativní klíč
  • Cizí klíč
  • Složený klíč

Klíč kandidáta

Minimální sada atributů, které mohou jednoznačně identifikovat n-tici, se nazývá kandidátský klíč. Například STUD_NO ve vztahu STUDENT.



  • Je to minimální super klíč.
  • Jedná se o super klíč bez opakovaných dat, který se nazývá kandidátský klíč.
  • Minimální sada atributů, které mohou jednoznačně identifikovat záznam.
  • Musí obsahovat jedinečné hodnoty.
  • Může obsahovat hodnoty NULL.
  • Každá tabulka musí mít alespoň jeden kandidátský klíč.
  • Tabulka může mít více kandidátních klíčů, ale pouze jeden primární klíč.
  • Hodnota kandidátského klíče je jedinečná a pro n-tici může být nulová.
  • Ve vztahu může být více než jeden kandidátský klíč.

Příklad:

graf alokace zdrojů
 STUD_NO is the candidate key for relation STUDENT.>

Stůl STUDENT

STUD_NO SNAP ADRESA TELEFON
1 Shyam Dillí 123456789
2 Rakesh Kalkata 223365796
3 Suraj Dillí 175468965
  • Kandidátský klíč může být jednoduchý (má pouze jeden atribut) nebo také složený.

Příklad:



 {STUD_NO, COURSE_NO} is a composite   candidate key for relation STUDENT_COURSE.>

Stůl STUDENT_COURSE

STUD_NO TEACHER_NO COURSE_NO
1 001 C001
2 056 C005

Poznámka: v SQL Server jedinečné omezení, které má sloupec s možnou hodnotou Null, umožňuje hodnota ' nula ‘ v tom sloupci pouze jednou . To je důvod, proč je zde atribut STUD_PHONE kandidátem, ale nemůže být hodnotou „null“ v atributu primárního klíče.

Primární klíč

Může existovat více než jeden kandidátský klíč, z nichž jeden může být vybrán jako primární klíč. Například STUD_NO, stejně jako STUD_PHONE, jsou kandidátními klíči pro vztah STUDENT, ale STUD_NO lze vybrat jako primární klíč (pouze jeden z mnoha kandidátských klíčů).



  • Je to jedinečný klíč.
  • Může identifikovat pouze jednu n-tici (záznam) najednou.
  • Nemá žádné duplicitní hodnoty, má jedinečné hodnoty.
  • Nemůže být NULL.
  • Primární klíče nemusí být nutně jeden sloupec; více než jeden sloupec může být také primárním klíčem tabulky.

Příklad:

gimp nahradit barvu
STUDENT table ->Student(STUD_NO, SNAME, ADDRESS, PHONE) , STUD_NO je primární klíč>>> 

Stůl STUDENT

STUD_NO SNAP ADRESA TELEFON
1 Shyam Dillí 123456789
2 Rakesh Kalkata 223365796
3 Suraj Dillí 175468965

Super klíč

Sada atributů, které mohou jednoznačně identifikovat n-tici, se nazývá Super klíč. Například STUD_NO, (STUD_NO, STUD_NAME) atd. Super klíč je skupina jednoho nebo více klíčů, které identifikují řádky v tabulce. Podporuje hodnoty NULL.

  • Přidáním nula nebo více atributů do kandidátského klíče se vygeneruje super klíč.
  • Kandidátský klíč je super klíč, ale naopak to neplatí.
  • Hodnoty superklíče mohou mít také hodnotu NULL.

Příklad:

Vztah mezi primárním klíčem, kandidátským klíčem a superklíčem

Alternativní klíč

Kandidátský klíč jiný než primární klíč se nazývá an alternativní klíč .

  • Všechny klíče, které nejsou primárními klíči, se nazývají alternativní klíče.
  • Je to sekundární klíč.
  • Obsahuje dvě nebo více polí k identifikaci dvou nebo více záznamů.
  • Tyto hodnoty se opakují.
  • Např.: JMÉNO a ADRESA jsou Alternativní klíče

Příklad:

Consider the table shown above. STUD_NO, as well as PHONE both,  are candidate keys for relation STUDENT but  PHONE will be an alternate key  (only one out of many candidate keys).>
Primární klíč, kandidátský klíč a alternativní klíč

Primární klíč, kandidátský klíč a alternativní klíč

Cizí klíč

Pokud atribut může nabývat pouze hodnot, které jsou přítomny jako hodnoty nějakého jiného atributu, bude to a cizí klíč k atributu, na který odkazuje. Vztah, na který se odkazuje, se nazývá odkazovaný vztah a odpovídající atribut se nazývá odkazovaný atribut. Odkazovaný atribut odkazovaného vztahu by měl být jeho primárním klíčem.

  • Je to klíč, který funguje jako primární klíč v jedné tabulce a chová se jako
    sekundární klíč v jiné tabulce.
  • Kombinuje dva nebo více vztahů (tabulek) najednou.
  • Fungují jako křížový odkaz mezi tabulkami.
  • Například DNO je primární klíč v tabulce DEPT a neklíč v EMP

Příklad:

 Refer Table STUDENT shown above.  STUD_NO in STUDENT_COURSE is a   foreign key to STUD_NO in STUDENT relation.>

Stůl STUDENT_COURSE

vyčistit mezipaměť npm
STUD_NO TEACHER_NO COURSE_NO
1 005 C001
2 056 C005

Možná stojí za zmínku, že na rozdíl od primárního klíče jakéhokoli daného vztahu může být cizí klíč NULL a může obsahovat duplicitní n-tice, tj. nemusí dodržovat omezení jedinečnosti. Například STUD_NO ve vztahu STUDENT_COURSE není jedinečné. Bylo to opakováno pro první a třetí n-tice. Avšak STUD_NO ve vztahu STUDENT je primární klíč a musí být vždy jedinečný a nemůže být nulový.

Vztah mezi primárním klíčem a cizím klíčem

Vztah mezi primárním klíčem a cizím klíčem

Složený klíč

Někdy tabulka nemusí mít jediný sloupec/atribut, který jednoznačně identifikuje všechny záznamy tabulky. K jednoznačné identifikaci řádků tabulky lze použít kombinaci dvou nebo více sloupců/atributů. Stále může ve vzácných případech poskytnout duplicitní hodnoty. Potřebujeme tedy najít optimální sadu atributů, která dokáže jednoznačně identifikovat řádky v tabulce.

  • Funguje jako primární klíč, pokud v tabulce není žádný primární klíč
  • Dva nebo více atributů se používá společně k vytvoření a kompozitní klíč .
  • Různé kombinace atributů mohou poskytovat různou přesnost, pokud jde o jednoznačnou identifikaci řádků.

Příklad:

FULLNAME + DOB can be combined  together to access the details of a student.>
Různé typy klíčů

Různé typy klíčů

1 z 1000,00

Závěr

Závěrem lze říci, že relační model využívá řadu klíčů: kandidátské klíče umožňují odlišnou identifikaci, primární klíč slouží jako zvolený identifikátor, alternativní klíče nabízejí další možnosti a cizí klíče vytvářejí životně důležité vazby, které zaručují integritu dat mezi tabulkami. Vytvoření silných a efektivních relačních databází vyžaduje promyšlenou aplikaci těchto klíčů.

Časté dotazy o typech klíčů v relačním modelu

Otázka 1: Proč jsou klíče nutné pro DBMS?

Odpovědět:

Klíče jsou jedním z důležitých aspektů DBMS. Klíče nám pomáhají jednoznačně najít n-tice (řádky) v tabulce. Používá se také při vytváření různých vztahů mezi sloupci nebo tabulkami databáze.

Q.2: Co je to jedinečný klíč?

Odpovědět:

Jedinečné klíče jsou klíče, které jednoznačně definují záznam v tabulce. Liší se od primárních klíčů, protože jedinečný klíč může obsahovat jednu hodnotu NULL, ale primární klíč neobsahuje žádné hodnoty NULL.

Q.3: Co je to umělý klíč?

Odpovědět:

Umělé klíče jsou klíče, které se používají, když žádné atributy neobsahují všechny vlastnosti primárního klíče nebo pokud je primární klíč velmi velký a složitý.