¿Qué significa clave candidata?
Una clave candidata es un tipo específico de campo en una base de datos relacional que puede identificar cada registro único independientemente de cualquier otro dato.
Los expertos describen una clave candidata por no tener «atributos redundantes» y ser una «representación mínima de una tupla» en una tabla de base de datos relacional.
Una de las preguntas más habituales en torno al uso de una clave candidata es cómo se relaciona la clave candidata con las superclaves y las claves primarias en el diseño de bases de datos.
Definición de clave candidata
Claves candidatas y claves primarias
La relación de la clave candidata y la clave primaria es más fácil de describir: básicamente, una base de datos relacional puede tener más de una clave candidata, pero sólo una de estas claves candidatas será la clave primaria que se utilizará principalmente para identificar cada registro de forma única.
La mejor forma de definir las claves candidatas es con un ejemplo: Se está diseñando la base de datos de un banco. Para definir de forma única la cuenta de cada cliente, se puede utilizar una combinación de la fecha de nacimiento del cliente y un número secuencial para cada una de sus cuentas.
Así, la cuenta corriente del Sr. Andrés Pérez puede numerarse 120344-1, y su cuenta de ahorro 120344-2. Se acaba de crear una clave candidata.
Esto puede plantear problemas.
¿Qué pasa si más de una persona con la misma fecha de nacimiento quiere abrir una cuenta en el banco?
Debido a estos posibles escollos, una opción muy utilizada es crear una clave candidata única. En este caso, la base de datos del banco puede emitir números de cuenta únicos que garantizan evitar el problema que acabamos de señalar. Por si fuera poco, estos números de cuenta pueden tener cierta lógica incorporada.
Por ejemplo, las cuentas corrientes pueden empezar por una «C», seguida del año y el mes de creación, y dentro de ese mes, un número secuencial. Así, la cuenta corriente de Andrew Smith puede ser ahora C-200805-22.
Incluso sin remitirse a otra parte, un cajero puede identificar que se trata de la 22ª cuenta corriente creada en mayo de 2008. Las cuentas de ahorro siguen la misma lógica, pero con una «S» en lugar de una «C».
Así que si una tabla de base de datos tiene dos o más identificadores únicos, el administrador o ingeniero de la base de datos elegirá uno de ellos para que sea la clave primaria.
Superclaves y claves candidatas
El uso de superclaves y claves candidatas es más complicado.
Esencialmente, una superclave se compone de un conjunto de atributos (y por poder, a menudo un conjunto de columnas de la tabla) que identifican un registro único.
La clave candidata también identifica un registro único, pero se compone de un campo o columna individual
A menudo verás que se hace referencia a la clave candidata como «mínima» de una superclave.
Por ejemplo, considera una planta de fabricación con dos terminales, en la que sólo se puede fabricar un producto en una terminal determinada en un momento dado.
Como la base de datos registra la creación de productos en una tabla, haciendo referencia a la hora y a la terminal, la superclave, la combinación de hora y terminal, será única para cada registro individual. Sin embargo, las columnas individuales hora y terminal tendrán redundancias.
Si el ingeniero de la base de datos adjunta a la tabla una clave candidata compuesta por una entrada alfanumérica arbitraria, esa clave candidata hará lo mismo que hace la combinación de atributos superclave hora y terminal, con una sola columna.
Teniendo todo esto en cuenta, el uso de una clave candidata puede determinar cómo se accede a los registros y cómo se identifican los sujetos de esos registros.
Al igual que otros tipos de contenidos de bases de datos, las claves candidatas pueden manejarse con cifrado hash para aumentar la ciberseguridad. El hashing consiste en tomar un campo de cadena original y convertirlo en una cadena más corta, con el fin de abstraerlo y ocultarlo a la vista para limitar el acceso no autorizado.
Los ingenieros tienen que evaluar la posibilidad de colisiones hash y otros factores limitantes en la forma de hacer hash a estos datos: cómo sustituir una cadena más corta por un conjunto de datos determinado para que el contenido de la tabla de la base de datos sea menos accesible a los piratas informáticos.
La idea del hash puede ser eficaz en estos diseños tradicionales de bases de datos relacionales. Mientras tanto, la clave candidata actúa como un identificador único y un foco principal de SQL y otras consultas.