Diferencia entre clave externa y clave primaria

los diferencia clave entre clave externa y clave primaria 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 principal es una columna o un conjunto de columnas que se pueden usar para identificar de forma ú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 denomina clave. Una clave principal en una base de datos relacional es una combinación de columnas en una tabla que identifica de forma única una fila de la tabla. La clave externa en una base de datos relacional es un campo en una tabla que coincide con la clave principal de otra tabla. La clave externa se usa para cruzar tablas.

CONTENIDO

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

¿Qué es la clave externa??

La clave externa es una restricción de referencia entre dos tablas. Identifica una columna o un conjunto de columnas en una tabla, denominada tabla de referencia que hace referencia a un conjunto de columnas en otra tabla, denominada tabla de referencia. La clave externa 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 a la que se hace referencia. Además, las claves externas permiten vincular datos a través de varias tablas. Por lo tanto, la clave externa no puede contener valores que no aparezcan en la tabla a la que hace referencia. Luego, la referencia proporcionada por la clave externa ayuda a vincular la información en varias tablas y esto sería esencial con las bases de datos normalizadas. Varias filas en la tabla de referencia pueden referirse a una sola fila en la tabla referenciada.

Figura 01: Mapeo de clave externa

En el estándar ANSI SQL, la restricción FOREIGN KEY define las claves externas. Además, es posible definir las claves foráneas al crear la propia tabla. Una tabla puede tener varias claves externas y pueden hacer referencia a diferentes tablas.

¿Qué es la clave principal??

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

Figura 02: Clave principal

Además, la restricción PRIMARY KEY en ANSI SQL Standard define las claves primarias. También es posible definir una clave principal al crear la tabla. Además de eso, SQL permite que la clave principal se componga de una o más columnas, y cada columna que se incluye en la clave principal se define implícitamente como NOT NULL. Pero algunos sistemas de administración de bases de datos requieren que las columnas de la clave primaria explícitamente NO sean NULAS.

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

 Clave foránea vs clave principal

La clave externa 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 principal es una columna de tabla de base de datos relacional especial o una combinación de varias columnas que permite identificar de manera única todos los registros de la tabla.
NULO
La clave externa acepta el valor NULL. El valor de la clave principal no puede ser NULL.
Numero de llaves
La tabla puede tener múltiples claves externas. La tabla solo puede tener una clave primaria.
  Duplicación
Las tuplas pueden tener un valor duplicado para un atributo de clave externa. Dos tuplas en una relación no pueden tener valores duplicados para un atributo de clave primaria.

Resumen - Clave externa vs Clave primaria

La diferencia entre la clave externa 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 principal es una columna o un conjunto de columnas que se pueden usar de forma única identificar una fila en una tabla.

Referencia:

1. "Clave extranjera". Wikipedia, Wikimedia Foundation, 12 de mayo de 2018. Disponible aquí  
2. “Clave principal”. Wikipedia, Wikimedia Foundation, 3 de abril de 2018. Disponible aquí 

Imagen de cortesía:

1.'Foreign-Key-Mapping'By MovGP0 - Trabajo propio, (CC BY-SA 3.0) vía Commons Wikimedia  
2.'Erd-id-as-primary-key'By UniCollab - Trabajo propio, (CC BY-SA 3.0) vía Commons Wikimedia