Diferencia entre clave principal y clave externa

Diferencias clave entre clave primaria y clave externa

  • Una restricción de clave principal es una columna que identifica de forma única cada fila de la tabla del sistema de gestión de bases de datos relacionales, mientras que una clave externa es una columna que crea una relación entre dos tablas.
  • La clave principal nunca acepta valores nulos, mientras que la clave externa puede aceptar múltiples valores nulos.
  • Solo puede tener una única clave principal en una tabla, mientras que puede tener varias claves externas en una tabla.
  • El valor de la clave principal no se puede eliminar de la tabla principal, mientras que el valor de la clave externa se puede eliminar de la tabla secundaria.
  • No hay dos filas que puedan tener valores idénticos para una clave principal; por otro lado, una clave externa puede contener valores duplicados.
  • No hay limitación para insertar los valores en la columna de la tabla mientras se inserta cualquier valor en la tabla de clave externa; asegúrese de que el valor esté presente en una columna de una clave principal.
Diferencia entre clave principal y clave externa
Diferencia entre clave principal y clave externa

Aquí, he analizado la diferencia entre la clave primaria y la clave externa y evaluaré exhaustivamente sus ventajas y desventajas.

¿Qué es la clave principal?

Una restricción de clave principal es una columna o grupo de columnas que identifican de forma única cada fila de la tabla del sistema de gestión de bases de datos relacionales. No puede ser un duplicado, lo que significa que el mismo valor no debe aparecer más de una vez en la tabla.

Una tabla no puede tener más de una clave principal. El clave principal se puede definir a nivel de columna o tabla. Si crea una clave primaria compuesta, debe definirse a nivel de tabla.

Ejemplo de clave primaria

Sintaxis:

A continuación se muestra la sintaxis de la clave principal:

CREATE TABLE <Table-Name>
(
Column1 datatype,
Column2 datatype,  PRIMARY KEY (Column-Name)
.
);    

Aquí,

  • Table_Name es el nombre de la tabla que tienes que crear.
  • Column_Name es el nombre de la columna que tiene la clave principal.

Ejemplo:

ID de estudiante Rollo No Nombre Apellido Correo electrónico
1 11 tom Precio abc@gmail.com
2 12 Nick Wright xyz@gmail.com
3 13 Dana Nathan mno@yahoo.com

En el ejemplo anterior, hemos creado una tabla de estudiantes con columnas como StudID, Roll No., Nombre, Apellido y E.mail. StudID se elige como clave principal porque puede identificar de forma única otras filas de la tabla.

¿Por qué utilizar la clave principal?

A lo largo de mis años manejando sistemas de bases de datos, he notado estas desventajas y beneficios al usar una clave principal:

  • El objetivo principal de la clave principal es identificar todos y cada uno de los registros en la tabla de la base de datos.
  • Puede utilizar una clave principal cuando no permite que alguien ingrese valores nulos.
  • Si elimina o actualiza registros, se llevará a cabo la acción que especificó para garantizar la integridad de los datos.
  • Realizar la restricción operaopción de rechazar la eliminación o actualización operación para la tabla principal.
  • Los datos están organizados en una secuencia de clustered índices cada vez que organiza físicamente una tabla DBMS.

¿Qué es la clave externa?

La clave externa es una columna que crea una relación entre dos tablas. El propósito de la clave externa es mantener la integridad de los datos y permitir la navegación entre dos instancias diferentes de una entidad. Actúa como una referencia cruzada entre dos tablas, ya que hace referencia a la clave principal de otra tabla. Cada relación en la base de datos debe estar respaldada por una clave externa.

Ejemplo de clave externa

Sintaxis:

A continuación se muestra la sintaxis de la clave externa:

CREATE TABLE <Table Name>( 
column1    datatype,
column2    datatype,  
constraint (name of constraint) 
FOREIGN KEY [column1, column2...] 
REFERENCES [primary key table name] (List of primary key table column) ...);

Aquí,

  • El parámetro Nombre de la tabla indica el nombre de la tabla que vas a crear.
  • Los parámetros columna1, columna2… representan las columnas que deben agregarse a la tabla.
  • Una restricción denota el nombre de la restricción que está creando.
  • Las referencias indican una tabla con la clave principal.

Ejemplo:

Código de departamento Nombre del departamento
001 Ciencia:
002 Inglés
005 Módulo
Identificación del maestro Nombre Nombre
B002 David Warner
B017 Sara Joseph
B009 Mike Bruntón

En el ejemplo anterior, tenemos dos tablas: un maestro y un departamento en una escuela. Sin embargo, no hay forma de ver qué búsqueda funciona en qué departamento.

En esta tabla, al agregar la clave externa en Deptcode al nombre del profesor, podemos crear una relación entre las dos tablas.

Identificación del maestro Código de departamento Nombre Nombre
B002 002 David Warner
B017 002 Sara Joseph
B009 001 Mike Bruntón

Este concepto también se conoce como integridad referencial.

¿Por qué utilizar una clave externa?

Por lo que he visto, estas son las razones importantes para implementar claves externas:

  • Las claves externas le ayudan a migrar entidades utilizando una clave principal de la tabla principal.
  • A clave extranjera Le permite vincular dos o más tablas.
  • Hace que los datos de su base de datos sean consistentes.
  • Se puede utilizar una clave externa para hacer coincidir una columna o combinación de columnas con la clave principal en una tabla principal.
  • La restricción de clave externa de SQL se utiliza para garantizar que la integridad referencial de los datos principales coincida con los valores de la tabla secundaria.

Diferencia entre clave principal y clave externa

Permítanme compartir la importante diferencia entre una clave primaria y una clave externa, como lo he experimentado personalmente:

Clave primaria vs clave externa
Clave primaria vs clave externa
Base de comparación Clave primaria Clave externa
Definición Una restricción de clave primaria es una columna o grupo de columnas que identifican de forma única cada fila en la tabla del sistema de gestión de bases de datos relacionales. Una clave externa es una columna que crea una relación entre dos tablas.
Basic Le ayuda a identificar de forma única un registro en la tabla. Es un campo de la tabla que es la clave principal de otra tabla.
NULL La clave principal nunca acepta valores nulos. Una clave externa puede aceptar múltiples valores nulos.
Indexación La clave principal es una clusteríndice editado y los datos en la tabla DBMS se organizan físicamente en la secuencia del clusteríndice de edición. Una clave externa no puede crear automáticamente un índice, clustered o noclustered.
Contar Puede tener una única clave principal en una tabla. Puede tener varias claves foráneas en una tabla.
supresión El valor de la clave principal no se puede eliminar de la tabla principal. El valor de la clave externa se puede eliminar de la tabla secundaria.
Mesa temporal Puede definir la clave principal implícitamente en las tablas temporales. No puede definir claves externas en las tablas temporales locales o globales.
Relación familiar La clave principal es una clusteríndice de edición. Por defecto, no es un clusteríndice de edición.
Duplicación No hay dos filas que puedan tener valores idénticos para una clave principal. Una clave externa puede contener valores duplicados.
Inserción No hay limitación para insertar los valores en la columna de la tabla. Al insertar cualquier valor en la tabla de claves externas, asegúrese de que el valor esté presente en una columna de una clave principal.

Cómo elegir entre una clave primaria y una clave externa

Por lo que hemos visto, las claves primarias identifican de forma única las entradas de la tabla y las claves externas vinculan estas entradas entre las tablas, ambas fundamentales para mantener la integridad de los datos y facilitar una recuperación eficiente de los datos.