Diferencia entre clave primaria y clave externa en DBMS

Autor: Laura McKinney
Fecha De Creación: 1 Abril 2021
Fecha De Actualización: 12 Mayo 2024
Anonim
Tutorial 4 de SqlServer- Diferencia entre clave primaria y clave foranea
Video: Tutorial 4 de SqlServer- Diferencia entre clave primaria y clave foranea

Contenido


Las claves son la parte crucial del DBMS, se utilizan para identificar y establecer una relación entre las tablas en un esquema. Ahora, hoy vamos a discutir dos claves muy importantes de DBMS, es decir, la clave primaria y la clave externa, y también discutiremos la diferencia entre la clave primaria y la clave externa. En el camino, déjenme decirles que la diferencia básica entre la clave primaria y la clave externa, que es la clave primaria, es una de las claves candidatas elegidas por el diseñador de la base de datos, mientras que una clave externa es una clave que se refiere a la clave primaria de otra relación.

Hay muchas otras diferencias entre estos dos, identifiquemos esas diferencias con la ayuda del cuadro de comparación que se muestra a continuación.

  1. Cuadro comparativo
  2. Definición
  3. Diferencias clave
  4. Conclusión

Cuadro comparativo

Bases para la comparaciónClave primariaClave externa
BASICLa clave primaria es una clave candidata elegida que define de forma exclusiva una tupla en una relación.La clave externa en una tabla se refiere a la clave primaria de otra tabla.
NULOEl valor de la clave primaria nunca puede ser NULL.La clave externa acepta el valor NULL.
DuplicarNo hay dos tuplas en una relación que tengan valores duplicados para un atributo de clave primaria.Las tuplas pueden llevar un valor duplicado para un atributo de clave externa.
DistanciaSolo puede haber una clave principal de una relación.Puede haber múltiples claves foráneas en una relación.
Tabla temporalLa restricción de clave principal se puede definir en las tablas temporales.La restricción de clave externa no se puede definir en las tablas temporales.
Índice agrupadoDe manera predeterminada, una clave primaria está indexada en clúster.La clave externa no está agrupada indexada automáticamente; Tiene que hacerse manualmente.
InserciónPodemos insertar un valor en un atributo de clave principal, incluso si la clave externa de referencia no tiene ese valor en su columna.No podemos insertar un valor en una clave externa, si ese valor no está presente en la columna de clave primaria referenciada.
SupresiónAntes de eliminar un valor de clave principal, asegúrese de que ese valor todavía no esté presente en la columna de clave externa de referencia de la tabla de referencia.Puede eliminar un valor de la columna de clave externa sin molestarse, ya sea que ese valor esté presente en la columna de clave primaria referenciada de relación referenciada.


Definición de clave primaria

Una clave primaria únicamente define tuplas en una relación. Puede ser un solo atributo en una relación, o puede ser un conjunto de atributos en una relación. El valor del atributo de clave primaria debe nunca o raramente cambiado. Debido a que es un principal, significa identificar cualquier registro en una base de datos. El cambio en cualquier valor de atributo de la clave primaria crearía confusión.

El diseñador de bases de datos elige uno de los claves candidatas como clave principal, teniendo en cuenta algunos puntos. La primera consideración es un valor de atributo de clave principal que nunca puede contener NULO valor. Porque, si un valor de atributo de clave principal contiene NULL, significa que no podemos identificar ese registro en la tabla. También viola la restricción de integridad de la entidad. La segunda consideración es, no hay dos tuplas en una tabla puede contener el mismo valor para un atributo de clave principal, ya que violaría la unicidad entre las tuplas.


Solo puede haber una clave primaria para cualquier relación. La clave primaria es por defecto indexado por clúster, lo que significa que todas las tuplas de una tabla están ordenadas, en función de los valores de los atributos de las claves primarias. La restricción de clave principal se puede definir en un mesa temporal. Las tablas intermedias creadas durante la ejecución de una consulta se denominan tablas temporales.

Mientras borrando una tupla de una relación, uno debe tener cuidado de que el valor de la clave primaria de la tupla eliminada no esté presente en la columna de clave externa de la relación de referencia. Mientras que el inserción no tiene restricciones en una clave primaria.

La clave principal de una tabla cuando se usa en alguna otra tabla se convierte en clave foránea para esa tabla. Las restricciones de clave externa se analizan a continuación.

Definición de clave externa

Cuando una relación R1, entre sus atributos, tiene un primario llave de otra relación R2, entonces ese atributo se llama Clave externa para la relación R1. La relación R1 que contiene la clave externa se llama relación de referencia como se refiere clave principal de relación R2 y relación R2 se llama relación referenciada.
A diferencia de la clave primaria, la clave externa puede aceptar NULO valores porque no tiene la tarea de identificar un registro claramente en una relación, ya que tenemos la clave principal para esto. Del mismo modo, la clave externa también acepta valores duplicados.

Una relación puede tener múltiple claves foráneas, ya que puede tener diferentes atributos que son claves primarias en diferentes relaciones. La restricción de clave externa puede no ser definido en el tablas temporales, ni una clave foránea es un indexado por clúster atributo.

Mientras insertando un valor en una columna de clave externa de relación de referencia, asegúrese de que el valor de inserción debe estar presente en la columna de clave principal de la relación referenciada. Considerando que, no hay restricción mientras borrando un valor de la columna de clave externa.

  1. Un primario es un conjunto de atributos / una clave candidata que identifica claramente un registro en una relación. Sin embargo, una clave foránea en una tabla se refiere a la clave primaria de otra tabla.
  2. Ningún atributo de clave principal puede contener valores NULL, mientras que un atributo de clave externa puede aceptar un valor NULL.
  3. Una clave primaria debe tener valores de atributo únicos, mientras que una clave externa puede tener valores de atributo duplicados.
  4. Puede haber múltiples claves foráneas en una relación, pero una relación solo tiene una clave primaria.
  5. La restricción de clave principal se puede aplicar a las tablas temporales. Sin embargo, la restricción de clave externa no se puede aplicar a las tablas temporales.
  6. Por defecto, una clave primaria está indexada en clúster, mientras que una clave externa no se indexa en clúster automáticamente, pero se puede hacer manualmente.
  7. Al insertar un valor en una columna de clave externa, asegúrese de que el valor del atributo de inserción esté presente en la columna de clave primaria referenciada. Sin embargo, no hay restricción en la inserción en la columna de clave principal.
  8. Al eliminar un valor de la columna de clave principal, asegúrese de que el valor del atributo eliminado no esté presente en la columna de clave externa de referencia. Sin embargo, no existe ninguna restricción para eliminar un valor de una columna de clave externa.

Conclusión:

Tanto la clave primaria como la clave externa son esenciales para un esquema. Una clave primaria define cada tupla en una relación de manera única, mientras que una clave externa se usa para crear un enlace entre dos relaciones.