Llave candidata

Definición: ¿Qué significa Candidate Key?

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 que una clave candidata "no tiene atributos redundantes" y es una "representación mínima de una tupla" en una tabla de base de datos relacional.

Una de las preguntas más comunes sobre el 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.

Techinfo explica la clave del candidato

Claves candidatas y claves primarias

La relación de la clave candidata y la clave principal es más fácil de describir; básicamente, una base de datos relacional puede tener más de una clave candidata, pero solo una de estas claves candidatas será la clave principal que se utilizará principalmente para identificar cada registro de forma única.

La mejor manera de definir 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.

Entonces, la cuenta corriente del Sr. Andrew Smith puede tener el número 120344-1 y su cuenta de ahorros 120344-2. Se acaba de crear una clave candidata.

Esto puede generar 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 errores, una opción que se utiliza con frecuencia es crear una clave candidata única. En este caso, la base de datos del banco puede emitir números de cuenta únicos que están garantizados para evitar el problema que se acaba de resaltar. Por si acaso, estos números de cuenta pueden tener cierta lógica incorporada.

Por ejemplo, las cuentas corrientes pueden comenzar con una "C", seguida del año y mes de creación, y dentro de ese mes, un número secuencial. Entonces, la cuenta corriente de Andrew Smith ahora puede ser C-200805-22.

Incluso sin referirse a otro lugar, un cajero puede identificar que esta fue la cuenta corriente número 22 creada en mayo de 2008. Las cuentas de ahorro siguen la misma lógica, pero con una "S" en lugar de "C".

Entonces, 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 principal.

Super claves y claves candidatas

El uso de súper claves y claves candidatas es más complicado.

Esencialmente, una superclave se compone de un conjunto de atributos (y por proxy, a menudo un conjunto de columnas de 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á la clave candidata denominada "mínima" de una súper clave.

Por ejemplo, considere una instalación de fabricación con dos terminales, donde solo se puede construir un producto en una terminal determinada en un momento determinado.

A medida que la base de datos registra la creación de productos en una tabla, haciendo referencia al tiempo y al terminal, la superclave, la combinación de tiempo y terminal, será única para cada registro individual. Sin embargo, las columnas individuales de tiempo y terminal tendrán redundancias.

Si el ingeniero de la base de datos adjunta una clave candidata a la tabla compuesta de entrada alfanumérica arbitraria, esa clave candidata hará lo mismo que hace la combinación de atributo de superclave de terminal y tiempo, con solo una columna.

Con todo esto en mente, 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 contenido de bases de datos, las claves candidatas se pueden manejar con cifrado hash para aumentar la ciberseguridad. El hash implica tomar un campo de cadena original y convertirlo en una cadena más corta para abstraerlo y ocultarlo de la vista para limitar el acceso no autorizado.

Los ingenieros tienen que evaluar la posibilidad de colisiones de hash y otros factores limitantes sobre cómo hash estos datos: cómo sustituir una cadena más corta por un conjunto de datos dado para que el contenido de la tabla de la base de datos sea menos accesible para los piratas informáticos.

La idea de hash puede ser eficaz en estos diseños de bases de datos relacionales tradicionales. Mientras tanto, la clave candidata actúa como un identificador único y un foco principal de SQL y otras consultas.