¿Cual es la utilidad de las Foreign Key Constraints en las bases de datos?

La claves primarias, foraneas y sus relaciones son conceptos básicos fundamentables de la teorida de base de datos relacionales, no respetar o no cuidar estas estructuras es pan para hoy y hambre para mañana.

Las Foreign Key (FK) Constraints, son restricciones de clave externa. Una clave externa (FK) es una columna que se utiliza para unir una tabla a otras tablas para garantizar la integridad referencial de los datos. Una restricción de clave externa requiere que una columna contenga solo valores de la columna de clave principal en una tabla de dimensión específica.

Una columna con una restricción de FK puede contener valores NULL si no tiene también una restricción no NULL, aunque el valor NULL no aparezca en la columna PRIMARY KEY (CLAVE PRIMARIA) de la tabla de dimensiones. Esto permite insertar filas en la tabla incluso si la clave externa aún no se conoce.

Una Primary Key:

  • No puede tener valores repetidos
  • No puede tener valores nulos





Las columnas de unión de la tabla de hechos deben tener restricciones de clave externa para poder participar en las proyecciones previas a la unión. Si la columna de unión de la tabla de hechos tiene una restricción de clave externa, las consultas de combinación externa producen el mismo conjunto de resultados que las consultas de combinación interna.


Puede agregar una restricción FOREIGN KEY únicamente haciendo referencia a la tabla que contiene la clave principal. Las columnas de la tabla a la que se hace referencia no necesitan especificarse explícitamente.

Los motores de base de datos permiten hacer diagramas de entidad relación  ERD (entity relationship diagram) o DER en español (diagramas de entidad relación)



Armar bien la relación de las entities es fundamental para el buen funcionamiento de las bases de datos y proyectos de programación.

Todas las tablas deben tener una Primary Key. Si una tabla (que tiene o puede tener más de una fila) no tiene una Primary Key eso es un error y debemos corregirlo urgentemente. 



Referencias:
https://www.vertica.com/docs/7.0.x/HTML/Content/Authoring/AdministratorsGuide/Constraints/ForeignKeyConstraints.htm
https://dba.stackexchange.com/questions/76721/find-without-primary-key-table-in-sql-server-2008-r2
http://www.forosdelweb.com/f87/crear-tabla-desde-store-procedure-como-ver-lista-tablas-772546/
http://www.cs.uregina.ca/Links/class-info/215/erd/
https://firebird21.wordpress.com/2013/09/24/tablas-sin-una-primary-key/
http://www.forosdelweb.com/f87/crear-tabla-desde-store-procedure-como-ver-lista-tablas-772546/
https://logicalread.com/sql-server-primary-key-vs-clustered-index-part-1-mb01/#.W7p132hKhEY

Comentarios

Entradas más populares de este blog

¿Qué es la Norma GAMP 5 y para que sirve?

¿Cómo buscar tweets antiguos de una persona?

¿Que tipos de Mensajes de HL7 hay?