Definiciones de clave principal, superclave, clave foránea y clave candidata en el DBMS

Obtenga las definiciones de clave principal, superclave, clave foránea y clave candidata en el DBMS y aprenda cuales debe evitar.

¿Cuáles son las claves principal, superclave, foránea y candidata en el DBMS?

Clave principal es una columna (o columnas) en una tabla que identifica/n de manera única las filas de la tabla.


CLIENTES
No Cliente
Nombre
Apellido
1
María
López
2
María
Téllez
3
Horacio
Téllez
4
Sandra
Vélez


Por ejemplo, en la tabla superior, la clave principal sería No Cliente.


Los valores otorgados en las columnas de la clave principal deben ser exclusivos para cada fila: no se admiten duplicados. Además, en las columnas de la clave principal no se admiten valores nulos.


De este modo, una vez aclarado que es posible utilizar una o más columnas como clave principal, ¿cómo decidimos cuáles (y cuántas) serán esas columnas?


Hay veces en que es aconsejable o incluso esencial usar múltiples columnas. No obstante, si no tienes una razón inmediata para utilizar varias columnas, usa sólo una. Pero esto no es una regla absoluta, es un simple consejo. De todas formas, las claves principales compuestas de una sólo columna son, generalmente, más fáciles de mantener y rápidas de operar. Esto significa que si haces una consulta a la base de datos, la respuesta será más rápida si las tablas incluyen una clave principal de columna única.  


Siguiente pregunta: ¿qué columna deberías seleccionar? La forma más sencilla de elegir una columna para la clave principal (y un método que se aplica de forma relativamente habitual) consiste en que sea la propia base de datos la que asigne automáticamente un número a cada fila.
En una tabla de empleados, está claro que una columna con la etiqueta “Nombre” tiene bastante poca utilidad porque no se pueden controlar los nombres de pila de los empleados. Frecuentemente, sólo tenemos una opción para la clave principal, como en el ejemplo de arriba. Pero si hay más, las claves se denominan “claves candidatas”; el nombre refleja que son candidatas a cumplir la función de clave principal.


Ahora bien, teniendo en cuenta la definición dada más arriba, que la clave principal puede estar compuesta por más de una columna y que debe identificar las filas de forma única y exclusiva, podríamos designar, por ejemplo, los criterios “Número de Empleado” Y “Nombre” como clave principal. Esto cumple con el requisito pero, al mismo tiempo, no tiene mucho sentido porque estaremos añadiendo complejidad al proceso sin obtener ninguna ventaja a cambio. Es también un ejemplo excelente de lo que son las superclaves. En este caso, súper no es sinónimo de “grandioso” sino una contracción de supernumeraria. Es mejor evitar las claves súper.
Las claves foráneas son columnas que apuntan a las columnas de la clave principal. Así, por ejemplo, “Número de pedido” es la clave principal de la tabla PEDIDOS (abajo) y ‘Número de cliente” es una clave ajena que apunta a la clave principal en la tabla CLIENTES.

PEDIDOS
No Pedido
No Empleado
No Cliente
Proveedor
Precio
Artículo
1
1
42
Harrison
$235
Escritorio
2
4
1
Ford
$234
Silla
3
1
68
Harrison
$415
Mesa
4
2
112
Ford
$350
Lámpara
5
3
42
Ford
$234
Silla
6
2
112
Ford
$350
Lámpara
7
2
42
Harrison
$235


Escritorio
Si queremos ser realmente pedantes, las claves foráneas (también llamadas ajenas) no tienen que apuntar a una clave principal. El único requisito que debe cumplir la columna a la que apunta la clave foránea es que debe contener valores únicos. Imaginemos, por ejemplo, que nuestras tablas de empleados se vieran así.


EMPLEADOS
No  Seg. Social
No Empleado
Nombre
Apellido
Fecha Nacimiento
Fecha Inicio Empleo
AF-23432334
1
Manuel
Tomano
12 Abril 1966
01 Mayo 1999
DQ-65444444
2
Rosanna
Kolumnas
21 Marzo 1977
01 Enero 2000
GF-54354543
3
Casio
Codo
01 Mayo 1977
01 Abril 2002
JK-34333432
4
Norma
Listona
03 Abril 1966
01 Abril 2002
VB-48565444
5
Juan
Tomani
12 Abril 1966
01 Abril 2002
FG-23566553
6
Desi
Derata
01 Mayo 1967
01 Mayo 2004


El número de la seguridad social es, en realidad, la clave principal de la tabla pero adjudicamos a cada empleado un número que es también único. En estas circunstancias, PEDIDOS.Número de empleado puede actuar como clave foránea que apunta a EMPLEADOS.Número de empleado, aún cuando esa columna no representa la clave principal. Vemos pues que, en realidad, la regla es ligeramente más sutil. La clave foránea debe apuntar a una clave candidata.
La clave candidata es aquella columna que cumple todos los requisitos de una clave principal. En otras palabras, tiene potencial para ser una clave principal.  


Dicho esto, puedo también añadir que no recuerdo la última vez que vi esto en una base de datos de producción, real y activa. En la práctica, las claves foráneas casi siempre apuntan a claves principales.


La mayor parte de esta respuesta ha sido plagiada sin ningún rubor del libro Inside Relational Databases, escrito por Mark Whitehorn y Bill Marklyn y editado por Springer Verlag. De todos modos, dado que Mark es uno de los autores del libro, las probabilidades de que presente una demanda contra sí mismo son escasas.

 

Investigue más sobre Redes y comunicaciones