Chei



N-tuplele unei relaţii trebuie sa fie unice, ceea ce înseamna ca fiecare n-tupla poate fi identificată în mod unic prin valorile atributelor sale. Pentru identificarea unică a unei n-tuple nu sunt necesare valorile tuturor componentelor sale, ci sunt suficiente doar valorile unui subset al atributelor relaţiei corespunzătoare.
Se numeşte cheie a unei relaţii R un subset K al atributelor relaţiei R care satisface proprietăţile:
1) Identificare unică- fiecare tuplă a relaţiei R este identificată în mod unic de valorile atributelor care compun cheia K.
2) Neredondanta - subsetul K este minimal în sensul că eliminarea oricărui atribut din K duce la pierderea proprietăţii 1).
In orice relaţie există în mod sigur o cheie şi în cel mai defavorabil caz aceasta este intreagă tuplă. Problema principală în găsirea unei chei se referă la determinarea setului minimal care satisface prima proprietate.

Orice atribut al unei relaţii R care face parte din cel puţin o cheie se numeşte atribut prim. Toate celelalte atribute ale relaţiei R sunt neprime. Într-o relaţie pot exista mai multe chei, dar se desemnează o cheie privilegiată numită cheie primară. Celelalte chei se numesc chei candidate. Cheia primară are rol important în implementarea strategiilor de căutare şi regăsire a datelor. Cheia primară este aceea din cheile unei relaţii care este folosită de SGBD în identificarea unică a tuplelor.


Asupra cheii primare sunt impuse o serie de restricţii de către SGBD:
- nu sunt admise valori nedefinite pentru atributele unei chei primare;
- nici o valoare a unui atribut dintr-o cheie primară nu poate fi modificată în cadrul operaţiilor de actualizare.
Va fi desemnată drept cheie primară cheia candidată care are definite toate valorile atributelor sale şi care are cel mai mic număr de atribute.