Cuando se modela una tabla en una base de datos es importante asegurarse que todos sus registros cumplan con la propiedad de unicidad, ya que es signo de calidad de la tabla y de que cumple con ciertas reglas del buen diseño de bases de datos.
Para poder determinar la unicidad de registros es necesario detectar las llaves candidatas o claves candidatas, que no son más que campos -solos- o combinaciones de campo que pueden darle unicidad a los registros.
Las claves candidatas son ese atributo o atributos que podrían servir como llaves primarias. Una llave candidata debe cumplir dos condiciones primordialmente:
- Unicidad: no pueden existir dos registros con el mismo valor en los atributos que forman la llave candidata.
- Irreductibilidad o Minimalidad: no existe ningún otro subconjunto de la llave que cumpla la regla de unicidad. En el caso de una llave candidata a la cual todavía se le puedan quitar campos y siga dándole unicidad al registro se deberá de hacer; es decir, si existe un conjunto de 4 campos que le dan unicidad al registro pero que se se le quita uno de esos campos (quedando en 3) aún sigue proporcionando la unicidad, entonces se debe optar por la llave de 3, y no la de 4 campos.
Vemos algunos ejemplos de determinación de llaves candidatas en una tabla.
Ejemplo de alumno en Control o gestión escolar de un colegio de nivel básico
Pensemos en una tabla que contendrá los datos generales de todos los alumnos inscritos en una escuela de nivel básico. Si bien no es el mejor diseño, pongamos los siguientes campos en nuestro ejemplo:
- Nombre
- Primer apellido
- Segundo apellido
- Domicilio completo (desde ciudad hasta casa)
- Fecha de nacimiento
- Nivel que cursa actualmente
- Número de boleta
- Sexo
- Nombre completo del padre o tutor
- Tipo de sangre
- Nombre completo del profesor titular
En este caso, y siguiendo las reglas que se vieron cuando se revisó el tema de la unicidad de registros podemos encontrar varias llaves candidatas:
- Número de boleta
- Nombre + Primer apellido + Segundo apellido
No existe otro campo o combinación de campos que le den unicidad al registro y que además sean irreductibles. Ambas son llaves candidatas y ambas deberán ser consideradas al hacer el análisis de las formas normales. La tabla de alumnos tiene, por lo tanto, 2 llaves candidatas.
Ejemplo de empleado en una base de datos de Personal.
Suponiendo que la tabla de empleados contenga los campos
- RFC
- CURP
- Nombre
- Apellido paterno
- Apellido materno
- Fecha de ingreso
- Fecha de nacimiento
- Puesto ocupado
- Sueldo mensual
- Área de adscripción
- Número de empleado
Las llaves candidatas serían
- RFC
- CURP
- Nombre + Apellido paterno + Apellido materno
- Número de empleado
Ninguna otra combinación da unicidad y es irreductible (se podría considerar cualquier clave candidata que contenga CURP más otros campos, pero siempre se puede reducir a CURP unicamente, por ejemplo). Por tanto esta tabla tiene 4 llaves candidatas.
¿Qué hacer una vez detectadas las llaves candidatas?
Una vez que se han detectadas las claves candidatas es necesario implementar o configurar la tabla en la base de datos para que sea útil lo encontrado. Esto se verá cuando se revisen los comandos DDL para creación y mantenimiento de tablas.
Nota: Es importante comentar que los modelos de las tablas hasta ahora ocupados tienen fallas en su diseño, que serán afinados cuando se revisen las formas normales, pero han sido ocupados de esa manera para fines didácticos del tema de llaves o claves candidatas.