Saltar al contenido

Clave principal frente a clave externa: ¿cuál es la diferencia?

Antes de aprender la diferencia entre una clave principal y una clave externa, aprendamos:

¿Qué son las llaves?

Las claves son una característica que le ayuda a identificar una tupla en una relación (tabla). Te permiten encontrar la relación entre dos tablas. Las claves le ayudan a identificar de forma única una fila en una tabla mediante una combinación de una o más columnas en esa tabla. La clave de la base de datos también es útil para recuperar un registro o una fila únicos de la tabla.

¿Qué es una relación de base de datos?

Las relaciones de la base de datos son asociaciones entre una o más tablas creadas mediante declaraciones vinculantes. Se utiliza para recuperar datos de la base de datos de manera eficiente. Hay principalmente tres tipos de relaciones: 1) Uno a uno, 2) Uno a uno, 3) Muchos.

¿Qué es una clave principal?

La restricción principal es una columna o grupo de columnas que identifica de forma única cada fila en la tabla del sistema de administració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 puede tener más de una clave principal. Se puede definir una clave primaria a nivel de columna o de tabla. Si crea una clave primaria compuesta, debe definirse a nivel de tabla.

¿Qué es una clave externa?

Una clave externa es una columna que crea una relación entre dos tablas. La clave de incidente tiene como objetivo 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 porque se refiere a la clave principal de otra tabla. Todas las relaciones en la base de datos deben ser compatibles con una clave externa.

EFECTOS PRINCIPALES:

  • Una restricción primaria es una columna que identifica de manera única cada fila en una tabla del sistema de administración de base de datos relativa, mientras que una clave externa es una columna que crea una relación entre dos tablas.
  • La clave principal no acepta valores cero, pero una clave externa puede aceptar varios valores cero.
  • Solo puede tener una clave principal en una tabla y puede tener varias claves externas en una tabla.
  • El valor de la clave principal no se puede eliminar de la tabla principal, pero el valor del valor de la clave externa se puede eliminar de la tabla secundaria.
  • No hay dos conjuntos que puedan tener valores iguales para una clave principal, por otro lado, una clave externa puede tener valores duplicados.
  • No hay límite para insertar los valores en la columna de la tabla e insertar cualquier valor en la tabla de clave externa, asegúrese de que el valor esté en su columna de clave principal.

¿Por qué utilizar una clave principal?

Estas son las desventajas / ventajas de usar una clave principal:

  • El propósito principal de la clave principal es identificar cada registro en la tabla de la base de datos.
  • Puede utilizar una clave principal cuando no permite que nadie introduzca valores cero.
  • Si elimina o actualiza registros, se tomará la acción que ha especificado para garantizar la integridad de los datos.
  • Realice una operación restringida para rechazar la operación de eliminación o actualización de la tabla principal.
  • Los datos se organizan en una secuencia de índice agrupada siempre que organiza físicamente una tabla DBMS.

¿Por qué utilizar una clave externa?

Aquí hay algunas razones importantes para usar una clave externa:

  • Las claves externas le ayudan a mover entidades utilizando una clave principal de la tabla principal.
  • Una clave externa le permite conectar dos o más tablas juntas.
  • Hace que los datos de su base de datos sean consistentes.
  • Se puede usar una clave externa para hacer coincidir una columna o combinación de columnas con una clave principal en la tabla principal.
  • La principal restricción externa de SQL se utiliza para garantizar la integridad de la referencia del padre de datos para que coincida con los valores en la tabla del hijo.

Ejemplo de clave principal

Sintaxis:

La proporción de la clave principal es la siguiente:


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

Seo

  • Table_Name es el nombre de la tabla que necesita crear.
  • Column_Name es el nombre de la columna que contiene la clave principal.

Ejemplo:

StudIDRollo No.NombreApellidoCorreo electrónico
111TomásPrecioEsta dirección de correo electrónico está protegida contra spambots. Necesita tener JavaScript habilitado para verlo.
212MellaWrightEsta dirección de correo electrónico está protegida contra spambots. Necesita tener JavaScript habilitado para verlo.
313DanaNatanEsta dirección de correo electrónico está protegida contra spambots. Necesita tener JavaScript habilitado para verlo.

En el ejemplo anterior, hemos creado una tabla de estudiantes con columnas como StudID, Roll No, First Name, Last Name y Email. StudID se selecciona como la clave principal porque puede identificar de forma única otras filas en la tabla.

Ejemplo de clave externa

Sintaxis:

A continuación se muestra la clave de sintaxis:


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) ...);

Seo

  • El parámetro Nombre de la tabla indica el nombre de la tabla que va a crear.
  • Los parámetros de la columna 1, columna 2… indican las columnas que deben agregarse a la tabla.
  • Restricción indica el nombre de la restricción que está creando.
  • Indica referencias de tabla con la clave primaria.

Ejemplo:

DeptCodeDeptName
001Ciencias
002inglés
005Ordenador
Reconocimiento del maestroNombreNombre
B002DavidWarner
B017SaraJosé
B009MiguelBrunton

En el ejemplo anterior, tenemos dos mesas, un profesor 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.

Reconocimiento del maestroDeptCodeNombreNombre
B002002DavidWarner
B017002SaraJosé
B009001MiguelBrunton

Este concepto también se denomina Integridad de referencia.

Diferencia entre la clave principal y la clave externa

Aquí está la diferencia importante entre una clave principal y una clave externa:

Clave primariaClave externa
La restricción principal es una columna o grupo de columnas que identifica de forma única cada fila en la tabla del sistema de administración de bases de datos relacionales.Una clave externa es una columna que crea una relación entre dos tablas.
Le ayuda a identificar de forma única un registro en la tabla.Otra clave de tabla es un campo en la tabla.
La clave principal nunca acepta valores cero.Una clave externa puede aceptar cero valores múltiples.
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.No se puede crear automáticamente una clave externa de índice, agrupada o no agrupada.
Puede tener la clave principal individual en una tabla.Puede tener varias claves externas en una tabla.
El valor de la clave principal no se puede restar de la tabla principal.Se puede eliminar un valor de clave externa de la tabla secundaria.
Puede definir implícitamente la clave principal en las tablas temporales.No puede definir claves externas en las tablas temporales locales o globales.
La clave principal es un índice agrupado.De forma predeterminada, no es un índice agrupado.
Dos conjuntos no pueden tener valores iguales para una clave principal.Una clave externa puede contener valores duplicados.
No hay límite para insertar los valores en la columna de la tabla.Al ingresar cualquier valor en la tabla de claves externas, asegúrese de que el valor esté en la columna de su clave primaria.

Entradas relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *