Diferencia entre clave primaria y clave externa

En un Sistema de gestión de bases de datos relacionales (RDBMS), los datos se almacenan en tablas. A medida que se almacena una gran cantidad de datos en las tablas, siempre existe la posibilidad de que los datos se desorganicen o contengan duplicados. Además, cuando necesitamos recuperar los datos de acuerdo con nuestros requisitos a partir de esa gran cantidad de datos, la tarea se vuelve difícil. El concepto de clave se utiliza en el RDBMS para identificar registros en la tabla de miles de filas de datos. Además, el uso de Key ayuda a establecer la relación entre las tablas para que los datos se puedan consultar entre varias tablas. Por lo tanto, la clave en el sistema de gestión de bases de datos relacionales mantiene la integridad a nivel de tabla y la integridad referencial. En este artículo, examinaremos en detalle la diferencia entre la clave primaria y la clave externa.

La clave primaria en una tabla identifica registros de manera única y la clave externa se refiere a la clave primaria de otra tabla. Tomemos el ejemplo de dos tablas: tablas de Empleado y Salario para comprender los conceptos de la clave primaria y extranjera. Si la tabla Empleado tiene la Clave primaria como Id. Empleado, entonces debe haber una columna Id. Empleado en la tabla Salario ya que debe tener una relación entre estas dos tablas al tener una Clave externa en la tabla Salario que puede referirse a la Clave primaria de la mesa de empleados.

Comparación cabeza a cabeza entre la clave primaria y la clave externa (infografía)

A continuación se presentan las 6 principales diferencias entre la clave primaria y la clave externa:

Diferencias clave entre la clave primaria y la clave externa

Analicemos algunas de las principales diferencias clave entre la clave primaria y la clave externa:

  • La clave primaria identifica los registros de una tabla de forma exclusiva, mientras que la clave externa se usa para vincular las tablas, es decir, se refiere a la clave primaria de otra tabla.
  • La columna Clave primaria en una tabla no puede tener valores nulos y siempre debe tener valores únicos. Pero la clave externa en la tabla puede contener valores nulos y también puede tener valores duplicados.
  • Una tabla solo puede tener una Clave primaria, mientras que puede haber más de una Clave externa para una tabla.
  • El índice se crea para la Clave primaria automáticamente, mientras que, para la Clave externa, los índices no se crean automáticamente.
  • Es fácil eliminar la restricción de clave externa aunque se refiere a la clave primaria. Pero la eliminación de la restricción de clave principal puede crear registros con registros secundarios que no tienen registro primario.

Tabla de comparación de clave primaria vs clave externa

La siguiente tabla resume las comparaciones entre la clave primaria y la clave externa:

Clave primariaClave externa
La clave primaria de una tabla en RDBMS puede ser una sola columna o puede comprender más de una columna que se utiliza para identificar cada fila de una tabla de manera única. En el caso de la Clave primaria que consta de más de una columna, los datos de cada columna se utilizan para decidir la unicidad de una fila. Una tabla en RDMBS solo puede tener una Clave primaria.La clave externa puede ser una sola columna o puede constar de más de una columna en una tabla que se utiliza para referirse a la clave primaria de otra tabla. La clave externa se puede usar para vincular las tablas en RDBMS. A diferencia del atributo de clave principal, una tabla en RDBMS puede tener más de una clave externa.
Hay pocas condiciones que deben cumplirse para que una columna sea una Clave primaria en una tabla. Una de las condiciones es que la clave primaria debe contener un valor único para cada registro. Por lo tanto, no se puede permitir que una tabla en RDBMS tenga valores duplicados para dos filas para el atributo Clave primaria.A diferencia de la clave primaria de una tabla en RDBMS, la clave externa puede contener valores duplicados. Esto permite tener valores duplicados para las filas de una tabla para el atributo de clave externa.
La otra condición de una columna que satisface ser una Clave primaria es que no debe contener valores nulos.Pero la clave externa de una tabla en RDBMS puede contener valores nulos.
Se especifica una clave primaria al definir la tabla y es obligatorio definir la clave primaria.A diferencia de la clave primaria, no existe una definición de tabla específica para denotar una clave como clave externa.
No es posible eliminar la restricción de clave primaria de una tabla primaria con la clave externa de la tabla secundaria que hace referencia a ella. Por lo tanto, la tabla secundaria debe eliminarse primero antes de eliminar la tabla principal.Pero si necesitamos eliminar la restricción de clave externa en una tabla, puede eliminarse de la tabla secundaria aunque se refiera a la clave primaria de la tabla primaria.

La clave primaria se indexa automáticamente, es decir, la clave primaria se almacena en un índice para una tabla y este índice ayuda a administrar el requisito de unicidad y, debido a esto, los valores de la clave externa se refieren fácilmente a los valores correspondientes de la clave primaria.En el caso de una clave externa, los índices no se crean automáticamente y, por lo general, el administrador de la base de datos los define.

Conclusión

Las claves primaria y externa no solo implementan diferentes tipos de integridad, sino que también crean relaciones entre las tablas. Las claves principal y externa también aseguran que las columnas creadas para la relación deben contener valores coincidentes y que se mantengan registros únicos en la tabla. El sistema de gestión de bases de datos relacionales funciona de manera eficiente debido a la presencia de la clave primaria y la clave externa.

La restricción de clave principal ayuda a aplicar la integridad de los datos automáticamente, ya que impide insertar o actualizar filas duplicadas de datos. Al usar las restricciones de clave también evita que se elimine la fila de la tabla de clave primaria de la tabla primaria para que no se creen dichos registros secundarios para los que no hay registro primario. Además, cuando una fila en referencia a la clave primaria se elimina o actualiza en la tabla primaria, la clave externa mantiene la integridad referencial. Las claves tienen un papel vital en el establecimiento de enlaces entre las tablas de la base de datos y también dentro de la tabla.

Artículos recomendados

Esta es una guía de la clave primaria frente a la clave externa. Aquí discutimos las diferencias entre la clave principal y la clave externa con infografías y tabla de comparación. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. WebLogic vs WebSphere
  2. ROLAP vs MOLAP vs HOLAP
  3. GoCD vs Jenkins
  4. Deuda vs Financiamiento de Capital