Si
puedo elegir entre tantas claves, ¿con cuál me quedo? Tendremos
que elegir entre las claves "candidatas"
la
que mejor se adapte a mis necesidades. ¿Y cuáles son éstas? Las
claves candidatas
serán aquel conjunto de atributos que identifiquen de manera única
cada tupla (fila) de la relación (tabla). Es decir, las columnas
cuyos valores no se repiten en ninguna otra fila de la tabla. Por
tanto, cada tabla debe tener al
menos una clave candidata
aunque puede haber más de una.
Siguiendo
con nuestro ejemplo, podríamos considerar los atributos Login
o E_mail
como claves candidatas, ya que sabemos que el Login
debe ser único para cada usuario, a E_mail
le sucede lo mismo. Pero también cabe la posibilidad de tomar:
Nombre, Apellidos y F_nacimiento, las tres juntas como clave
candidata.
Las
claves candidatas pueden estar formadas por más de un atributo,
siempre y cuando éstos identifiquen de forma única a la fila.
Cuando una clave candidata está formada por más de un atributo, se
dice que es una clave
compuesta.
Una
clave candidata
debe cumplir los siguientes requisitos:
- Unicidad:
no puede haber dos tuplas (filas) con los mismos valores para esos
atributos.
- Irreducibilidad:
si se elimina alguno de los atributos deja de ser única.
Si
elegimos como clave candidata Nombre,
Apellidos y F_nacimiento,
cumple con la unicidad puesto que es muy difícil encontrarnos con
dos personas que tengan el mismo nombre, apellidos y fecha de
nacimiento iguales. Es irreducible puesto que sería posible
encontrar dos personas con el mismo nombre y apellidos o con el mismo
nombre y fecha de nacimiento, por lo que son necesarios los tres
atributos (campos) para formar la clave.
Para
identificar las claves candidatas de una relación no nos fijaremos
en un momento concreto en el que vemos una base de datos. Puede
ocurrir que en ese momento no haya duplicados para un atributo o
conjunto de atributos, pero esto no garantiza que se puedan producir.
El único modo de identificar las claves candidatas es conociendo el
significado real de los atributos (campos), ya que así podremos
saber si es posible que aparezcan duplicados. Es posible desechar
claves como candidatas fijándonos en los posibles valores que
podemos llegar a tener. Por ejemplo, podríamos pensar que Nombre y
Apellidos podrían ser una clave candidata, pero ya sabemos que cabe
la posibilidad de que dos personas puedan tener el mismo Nombre y
Apellidos, así que lo descartamos.
Hasta
ahora, seguimos teniendo varias claves con la que identificamos de
modo único nuestra relación. De ahí el nombre de candidatas. Hemos
de quedarnos con una.
La
clave
primaria de
un relación es aquella clave candidata que se escoge para
identificar sus tuplas de modo único. Ya que una relación no tiene
tuplas duplicadas, siempre hay una clave candidata y, por lo tanto,
la relación siempre tiene clave primaria. En el peor caso, la clave
primaria estará formada por todos los atributos de la relación,
pero normalmente habrá un pequeño subconjunto de los atributos que
haga esta función. En otros casos, podemos crear un campo único que
identifique las tuplas, por ejemplo un código de usuario, que
podrían estar constituidos por valores autonuméricos.
Las
claves candidatas que no son escogidas como clave primaria
son denominadas claves
alternativas.
Si
en nuestra tabla Usuarios escogemos Login
como clave primaria, el E_mail
o {Nombre, Apellidos, F_Nacimiento} serán nuestras claves
alternativas.