Diferencia entre la clave extranjera y la clave principal

Diferencia entre la clave extranjera y la clave principal

El diferencia clave entre la clave extranjera y la clave principal es que La clave externa es una columna o un conjunto de columnas que se refieren a una clave principal o una clave candidata de otra tabla, mientras que la clave primaria es una columna o un conjunto de columnas que se pueden usar para identificar de manera única una fila en una tabla.

Una columna o un conjunto de columnas que se pueden usar para identificar o acceder a una fila o un conjunto de filas en una base de datos se llama clave. Una clave principal en una base de datos relacional es una combinación de columnas en una tabla que identifica de manera única una fila de la tabla. La clave extranjera en una base de datos relacional es un campo en una tabla que coincide con la clave principal de otra tabla. La clave extranjera se usa para cruzar tablas de referencia.

CONTENIDO

1. Descripción general y diferencia de claves
2. ¿Qué es la clave extranjera?
3. ¿Qué es la clave principal?
4. Comparación lado a lado: clave extranjera y clave principal en forma tabular
5. Resumen

¿Qué es la clave extranjera??

La clave extranjera es una restricción referencial entre dos tablas. Identifica una columna o un conjunto de columnas en una tabla, llamada tabla de referencia que se refiere a un conjunto de columnas en otra tabla, llamada tabla referenciada. La clave extranjera o las columnas en la tabla de referencia deben ser la clave principal o una clave candidata (una clave que se puede usar como clave principal) en la tabla referenciada. Además, las claves extranjeras permiten vincular datos en varias tablas. Por lo tanto, la clave extranjera no puede contener valores que no aparecen en la tabla a los que se refiere. Luego, la referencia proporcionada por la clave extranjera ayuda a vincular la información en varias tablas y esto se volvería esencial con las bases de datos normalizadas. Múltiples filas en la tabla de referencias pueden referirse a una sola fila en la tabla referenciada.

Figura 01: Mapeo de claves exteriores

En el estándar ANSI SQL, la restricción de clave extranjera define las claves extranjeras.  Además, es posible definir las claves extrañas al crear la tabla misma.  Una tabla puede tener múltiples claves extranjeras, y pueden hacer referencia a diferentes tablas.

¿Qué es la clave principal??

La clave primaria es una columna o una combinación de columnas que define de manera única una fila en una tabla de una base de datos relacional. Una tabla puede tener como máximo una clave principal. La clave primaria aplica la restricción implícita no nula. Por lo tanto, una columna con clave primaria no puede tener valores nulos en él. La clave principal puede ser un atributo normal en la tabla que se garantiza que es única, como un número de seguro social, o podría ser un valor único generado por el sistema de administración de bases de datos, como un identificador (GUID) único globalmente en Microsoft SQL Server.

Figura 02: Clave principal

Además, la restricción clave principal en el estándar ANSI SQL define las claves primarias.  También es posible definir una clave primaria al crear la tabla. Además de eso, SQL permite que la tecla principal esté compuesta por una o más columnas, y cada columna que se incluye en la clave primaria se define implícitamente para no ser nula. Pero algunos sistemas de gestión de bases de datos requieren hacer que las columnas clave principales no estén explícitamente.

¿Cuál es la diferencia entre la clave extranjera y la clave principal??

 Clave externa vs clave principal

Exterior Key es una columna o grupo de columnas en una tabla de base de datos relacional que proporciona una asociación entre datos en dos tablas. La clave primaria es una columna de tabla de base de datos relacional especial o una combinación de múltiples columnas que permite identificar de manera única todos los registros de la tabla.
NULO
La clave extranjera acepta el valor nulo. El valor de la clave principal no puede ser nulo.
Número de llaves
La tabla puede tener múltiples claves extranjeras. La tabla puede tener solo una clave principal.
  Duplicación
Las tuplas pueden tener un valor duplicado para un atributo de clave extranjera. Dos tuplas en una relación no pueden tener valores duplicados para un atributo clave principal.

Resumen -Clave exterior vs Key principal

La diferencia entre la clave extranjera y la clave principal es que la clave extranjera es una columna o un conjunto de columnas que se refieren a una clave primaria o una clave candidata de otra tabla, mientras que la clave principal es una columna o un conjunto de columnas que se pueden usar para usar de manera única para identificar una fila en una tabla.

Referencia:

1."Clave externa."Wikipedia, Fundación Wikimedia, 12 de mayo de 2018. Disponible aquí  
2."Clave primaria."Wikipedia, Fundación Wikimedia, 3 de abril. 2018. Disponible aquí 

Imagen de cortesía:

1.'Mapeo de llave extranjera' por Movgp0-Trabajo propio, (CC BY-SA 3.0) a través de Commons Wikimedia  
2.'Erd-id-as-primario-key'by unicollab-trabajo propio, (cc by-sa 3.0) a través de Commons Wikimedia