Základný rozdiel medzi primárnym a jedinečným kľúčom je, že primárny kľúč neprijíma hodnoty NULL, zatiaľ čo hodnoty NULL sú povolené v rámci jedinečných kľúčových obmedzení.
Porovnávacia tabuľka
Základ pre porovnanie | Primárny kľúč | Unikátny kľúč |
---|---|---|
základné | Používa sa ako jedinečný identifikátor pre každý riadok v tabuľke. | Jedinečne určuje aj riadok, ktorý nie je definovaný ako primárny kľúč. |
NULL prijatie hodnoty | Primárny kľúč neprijíma hodnoty NULL. | Jedinečný bude akceptovať hodnotu NULL. |
Počet kľúčov, ktoré je možné definovať v tabuľke | Len jeden primárny kľúč | Viac než jeden |
index | Vytvára index zoskupený | Vytvára index bez klastrov |
Definícia primárneho kľúča
Stĺpec môže byť nazývaný ako primárny kľúč v jeho tabuľke, ak jednoznačne identifikuje každú n-tiku (riadok) v tejto tabuľke. Zabezpečuje obmedzenia integrity na stôl. V tabuľke je povolený iba jeden primárny kľúč. Primárny kľúč neprijíma duplicitné hodnoty a hodnoty NULL. Primárny kľúč sa vyberá opatrne, kde zmeny môžu nastať zriedka, čo znamená, že primárny kľúč v tabuľke sa veľmi zriedka mení.
Poďme pochopiť pojem primárneho kľúča pomocou tabuľky. Tu vytvárame tabuľku s názvom Tabuľka študentov, ktorá má atribúty, ako sú číslo_počítača, názov, dávka, telefónny_číslo, občiansky_identifikátor.
Primárny kľúč môže byť odkazovaný na cudzí kľúč. Vytvára jedinečný index v klastri v tabuľke. V zoskupenom indexe sú riadky údajov zoradené a uložené v tabuľke alebo zobrazeniach na základe ich kľúčových hodnôt. V tabuľke môže existovať iba jeden index v klastri, dôvodom je, že riadky údajov v tabuľke je možné zoradiť iba v jednom poradí.
Definícia jedinečného kľúča
Podobne ako pri primárnom kľúči, jedinečné kľúčové obmedzenia tiež identifikujú individuálnu n-ticu jednoznačne vo vzťahu. Existujú však určité rozdiely medzi nimi. Tabuľka môže mať viac ako jeden jedinečný kľúč. Jedinečné obmedzenia kľúčov môžu prijať iba jednu hodnotu NULL pre stĺpec.
Pochopme to s podobným príkladom, kde sme mali tabuľku študentov s atribútmi Roll_number, Name, Batch, Phone_number a Citizen_ID. Atribút číslovania role je priradený primárnemu kľúču.
Jedinečné obmedzenia sa odvoláva aj na cudzí kľúč. Môže sa použiť, keď niekto chce uplatniť obmedzenia na stĺpec a skupinu stĺpcov, ktoré nie sú primárnym kľúčom. Na rozdiel od primárneho kľúča generuje index bez klastrov . Indexy bez zoskupení majú odlišnú štruktúru od riadkov údajov. Každá položka kľúč-hodnota v ňom ukazuje na riadok údajov, ktorý obsahuje kľúčovú hodnotu, preto používa ukazovatele.
Kľúčové rozdiely medzi primárnym kľúčom a jedinečným kľúčom
- Ak je atribút deklarovaný ako primárny kľúč, neprijíma hodnoty NULL. Na druhej strane, ak atribút deklarovaný ako jedinečný, môže prijať jednu hodnotu NULL.
- Tabuľka môže mať iba primárny kľúč, zatiaľ čo na tabuľke môže byť viac jedinečných obmedzení.
- Klastrovaný index automaticky vytvorený pri definovaní primárneho kľúča. Na rozdiel od toho jedinečný kľúč generuje index bez klastrov.
záver
Primárny kľúč a jedinečný kľúč slúžia na účel jedinečného identifikátora pre riadky tabuľky s jedinečnými hodnotami v stĺpci alebo skupine stĺpcov. Tieto kľúčové obmedzenia sú výrazne diferencované, kde každá tabuľka môže mať maximálne jeden primárny kľúč, zatiaľ čo tabuľka môže mať viac jedinečných kľúčov, ktoré nie sú primárne.