Cada registro debe tener una clave primaria de forma obligatoria para cumplir con el modelo relacional. Y ya se ha visto que una clave primaria puede estar compuesta por uno o varios atributos, dependiendo de las necesidades de identificación que se tengan.
Una clave primaria es un valor único que no se repite y que identifica a un registro en particular. Cada atributo o conjunto de atributos que pueda servir como identificador único para los registros se llama clave candidata. Para que una clave candidata pueda ser utilizada como clave primaria se deben cumplir las siguientes condiciones:
Debe identificar de forma única al registro. No debe ser posible que haya otro registro con el mismo valor.
Ejemplos de clave primaria:
- El DNI de una persona.
- Asignar un ID auto numérico correlativo a cada registro.
- El e-mail de un usuario registrado.
- Código de barras de un producto.
No se admiten valores nulos en ninguno de los atributos que la componen.
Una vez conocidas las restricciones, pueden identificarse entre los siguientes tipos de claves:
Superclave: un conjunto de atributos que identifica únicamente a una entidad. Si se añaden más atributos a esta superclave, esta seguirá siendo una superclave. Ejemplo: utilizar nombre, apellido1, apellido2 y fecha_nacimiento como clave primaria. Si se añade sexo a la clave, esta sigue siendo una superclave.
Se dice conjunto de atributos pero puede ser solamente un atributo. Por ejemplo, pueden tenerse DNI, nombre, apellidos y utilizar DNI únicamente como clave primaria.
Clave candidata: se parte de una superclave y se van eliminando atributos hasta que quede una clave con el menor número de atributos posibles y siga identificando únicamente al registro.
Vea las siguientes claves posibles:
(Nombre, Apellido1, Apellido2, Fecha_nacimiento, Sexo, Ciudad).
(Nombre, Apellido1, Apellido2, Fecha_nacimiento, Sexo).
(Nombre, Apellido1, Apellido2, Fecha_nacimiento). Esta sería la clave candidata, puesto que identifica de forma única a la entidad y tiene el menor número de campos posibles.
Clave primaria: es la clave candidata elegida por el analista informático para ser utilizada de entre la lista de claves candidatas. Normalmente, se elegirá tratando de escoger la que menos campos contenga, su tipo de dato sea más fácil de manejar por el Sistema Gestor de Bases de Datos o sea más fácil de usar por la aplicación que implemente la base de datos. Siguiendo el ejemplo anterior, puede encontrarse con las claves candidatas de (DNI) y de (Nombre, Apellido1, Apellido2, Fecha_nacimiento). El analista elegiría típicamente el DNI, puesto que contiene menos campos y es más simple, pero tiene libertad de usar cualquiera de las dos, puesto que ambas son válidas.
Atributo único: es un valor que no puede repetirse en un atributo de una entidad. Típicamente puede ser considerada como clave candidata a menos que admita valores nulos. Por ejemplo, puede tener una tabla de usuarios en la que se guarde el ID de perfil de Facebook y tenga que ser único, pero que no sea obligatorio que todos los usuarios lo hayan rellenado con un valor.
En la práctica lo más cómodo en la mayoría de los casos es añadir un campo id autoincrementado como Primary Key de la tabla.
