Obstaja nekaj razlik med primarnim in kandidatnim ključem, o katerih bom razpravljal s pomočjo spodnjega primerjalnega grafikona.
Primerjalna tabela
Podlaga za primerjavo | Primarni ključ | Ključ kandidata |
---|---|---|
Osnovno | V vsakem razmerju je lahko samo en primarni ključ. | V razmerju je lahko več kot en kandidat. |
NIČ | Noben atribut primarnega ključa ne sme vsebovati vrednosti NULL. | Atribut ključa kandidata ima lahko vrednost NULL. |
Določite | Neobvezno je določiti primarni ključ za katero koli razmerje. | Ne more biti razmerja brez podanega ključa kandidata. |
Funkcija | Primarni ključ opisuje najpomembnejši atribut odnosa. | Ključi kandidatov predstavljajo kandidate, ki se lahko kvalificirajo za primarni ključ. |
Versa | Primarni ključ je kandidatni ključ. | Vendar ni nujno, da je lahko vsak ključ kandidat primarni ključ. |
Opredelitev primarnega ključa
Primarni ključ je atribut ali niz atributov, ki bodo enolično identificirali vsako zaporedje v relaciji. Za vsako razmerje je lahko samo en primarni ključ. Treba je paziti, da primarni ključ nikoli ne vsebuje vrednosti NULL in mora imeti edinstveno vrednost za vsako zaporedje v relaciji. Vrednosti atributov / -ov primarnega ključa morajo biti statične, tj. Vrednost atributa se nikoli ali redko spreminja.
Eden od ključev kandidatov postane usposobljen, da postane primarni ključ. Pravila, ki jih mora imeti kandidatni ključ, da postane primarna, so, da vrednost ključa nikoli ne sme biti NULL in mora biti edinstvena za vse tuple.
Če razmerje vsebuje atribut, ki je primarni ključ nekega drugega razmerja, se ta atribut imenuje tuji ključ .
Priporočamo, da ugotovite primarni ključ relacije, preden uvedete druge atribute relacije, saj primarni ključ enolično identificira vsako zaporedje. Bolje je izbrati en atribut ali majhno število atributov kot primarni ključ, kar olajša upravljanje odnosov.
Zdaj pa si oglejmo primer primarnega ključa.
Študent {ID, ime_primera, ime_poslednje, starost, naslov}
Tukaj bomo najprej ugotovili kandidatne ključe. Ugotovil sem dve kandidatni ključi {ID} in {First_name, Last_name}, saj bosta edinstveno identificirali vsakega študenta v razmerju študentov. Zdaj bom tukaj izbral ID kot svoj primarni ključ, ker se včasih lahko zgodi, da imata dva učenca enako ime in priimek, tako da bo študent zlahka izsledil njegovo osebno izkaznico .
Opredelitev ključa kandidata
Kandidatni ključ je atribut ali niz atributov, ki enolično definirajo tuple v relaciji. V relaciji obstaja več kot en kandidat. Ti ključi kandidatov so kandidati, ki lahko postanejo primarni ključ.
Čeprav se vsak kandidat kvalificira, da postane primarni ključ, se lahko kot primarni ključ izbere samo eden. Pravila, ki jih potrebuje ključ kandidata, da postanejo primarni ključ, so vrednost atributa ključa, ki nikoli ne more biti NULL v nobeni domeni ključa, mora biti edinstvena in statična .
Če so vsi ključi kandidati upravičeni do primarnega ključa, potem se mora izkušeni DBA odločiti, da bo ugotovil primarni ključ. Nikoli ne more biti razmerja brez ključa kandidata.
Naj razumemo kandidatni ključ z zgledom. Če dodamo še nekaj atributov v odnos študentov, sem razpravljal zgoraj.
Študent {ID, ime_primera, ime_poslednje, starost, naslov, DOB, ime_oddelka}
Tu lahko najdem dva kandidatna ključa, ki sta {ID}, {First_name, Last_name, DOB} . Torej lahko razumete, da so kandidatni ključi tisti, ki enolično identificira tuple v relaciji.
Ključne razlike med primarnim in kandidatnim ključem
- Osnovna točka, ki razlikuje primarni ključ od ključa kandidata, je, da lahko obstaja le en primarni za katero koli razmerje v shemi. Vendar pa lahko za posamezno razmerje obstaja več tipk kandidatov.
- Atribut pod primarnim ključem ne more nikoli vsebovati vrednosti NULL, ker je glavna funkcija primarnega ključa, da enolično identificira zapis v odnosu. Tudi primarni ključ se lahko uporabi kot tuji ključ v drugem razmerju in zato ne sme biti NULL, tako da lahko referenčna relacija najde zapise v referenčnem razmerju. Kandidatni ključ je lahko NULL, razen če omejitev atributa ni podana ničelna vrednost.
- Neobvezno je določiti primarni ključ, vendar ne more biti razmerja brez kandidatnih ključev.
- Primarni ključ opisuje edinstven in najpomembnejši atribut relacije, medtem ko kandidatne ključi zagotavljajo kandidate, med katerimi je lahko izbran kot primarni ključ.
- Vsak primarni ključ je kandidatni ključ, vendar obratno ni res.
Sklep:
To je neobvezno za relacijo, ki določa primarni ključ. Po drugi strani, če razglašate relacijo, morajo biti kandidatni ključi prisotni v tem razmerju, da lahko konstruirate dobro razmerje.