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, N.ยบ de matrรญcula, Nombre, Apellido y Correo electrรณnico. 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.
  • Realice la operaciรณn de restricciรณn para rechazar la operaciรณn de eliminaciรณn o actualizaciรณn de la tabla principal.
  • Los datos se organizan en una secuencia de รญndices agrupados siempre que se 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:

DeptCode Nombre del departamento
001 Ciencias:
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 DeptCode 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.
Bรกsico 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 un รญndice agrupado y los datos de la tabla DBMS estรกn organizados fรญsicamente en la secuencia del รญndice agrupado. Una clave externa no puede crear automรกticamente un รญndice, agrupado o no agrupado.
Contar Puede tener una รบnica clave principal en una tabla. Puede tener varias claves forรกneas en una tabla.
Eliminacion 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 La clave principal es un รญndice agrupado. De forma predeterminada, no es un รญndice agrupado.
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.

Resumir este post con: