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

Tabla de contenido:

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

Se establece una relación entre dos tablas de base de datos cuando una tabla utiliza una clave externa que hace referencia a la clave principal de otra tabla. Este es el concepto básico detrás del término base de datos relacional.

Cómo funciona una clave externa para establecer una relación

Una clave primaria identifica de forma única cada registro en la tabla. Es un tipo de clave candidata que suele ser la primera columna de una tabla y la base de datos puede generarla automáticamente para garantizar que sea única. Una clave externa es otra clave candidata (no la clave principal) que se utiliza para vincular un registro a los datos de otra tabla.

Por ejemplo, considere estas dos tablas que identifican qué profesor enseña qué curso. Aquí, la clave principal de la tabla Cursos es Course_ID. Su clave foránea es Teacher_ID:

Curso_ID Nombre_del_curso Id_del_profesor
Curso_001 Biología Profesor_001
Curso_002 Matemáticas Profesor_002
Curso_003 Inglés Profesor_003

Puede ver que la clave externa en Cursos coincide con una clave principal en Profesores:

Id_del_profesor Nombre_del_profesor
Profesor_001 Carmen
Profesor_002 Verónica
Profesor_003 Jorge

Podemos decir que la clave externa Teacher_ID ayudó a establecer una relación entre las tablas Courses y Teachers.

Image
Image

Tipos de relaciones de bases de datos

Usando claves foráneas u otras claves candidatas, puede implementar tres tipos de relaciones entre tablas:

Uno a Uno

Este tipo de relación permite solo un registro en cada lado de la relación. La clave principal se relaciona con un solo registro (o ninguno) en otra tabla. Por ejemplo, en un matrimonio, cada cónyuge tiene solo otro cónyuge. Este tipo de relación se puede implementar en una sola tabla y, por lo tanto, no utiliza una clave externa.

Uno a muchos

Una relación de uno a varios permite que un único registro de una tabla se relacione con varios registros de otra tabla. Considere una empresa con una base de datos que tiene tablas de Clientes y Pedidos.

Un solo cliente puede comprar varios pedidos, pero un solo pedido no se puede vincular a varios clientes. Por lo tanto, la tabla Pedidos contendría una clave externa que coincidiera con la clave principal de la tabla Clientes, mientras que la tabla Clientes no tendría ninguna clave externa que apuntara a la tabla Pedidos.

Muchos a muchos

Esta es una relación compleja en la que muchos registros en una tabla pueden vincularse a muchos registros en otra tabla. Por ejemplo, nuestra empresa probablemente necesite tablas de Clientes y Pedidos, y probablemente también necesite una tabla de Productos.

Nuevamente, la relación entre las tablas Clientes y Pedidos es de uno a muchos, pero tenga en cuenta la relación entre las tablas Pedidos y Productos. Un pedido puede contener varios productos y un producto puede vincularse a varios pedidos, ya que varios clientes pueden enviar un pedido que contenga algunos de los mismos productos. Este tipo de relación requiere tres tablas como mínimo.

¿Por qué son importantes las relaciones entre bases de datos?

Establecer relaciones coherentes entre las tablas de la base de datos ayuda a garantizar la integridad de los datos, lo que contribuye a la normalización de la base de datos. Por ejemplo, ¿qué pasaría si no vinculamos ninguna tabla a través de una clave externa y en su lugar combinamos los datos en las tablas de Cursos y Profesores, así:

Id_del_profesor Nombre_del_profesor Curso
Profesor_001 Carmen Biología, Matemáticas
Profesor_002 Verónica Matemáticas
Profesor_003 Jorge Inglés

Este diseño es inflexible y viola el primer principio de la normalización de bases de datos, la primera forma normal, que establece que cada celda de la tabla debe contener un solo dato discreto.

O tal vez decidimos agregar un segundo registro para Carmen, para hacer cumplir 1NF:

Id_del_profesor Nombre_del_profesor Curso
Profesor_001 Carmen Biología
Profesor_001 Carmen Matemáticas
Profesor_002 Verónica Matemáticas
Profesor_003 Jorge Inglés

Este sigue siendo un diseño débil, que introduce duplicaciones innecesarias y lo que se denomina anomalías de inserción de datos, lo que significa que podría contribuir a la inconsistencia de los datos. Por ejemplo, si un maestro tiene varios registros, ¿qué sucede si es necesario editar algunos datos, pero la persona que realiza la edición de datos no se da cuenta de que existen varios registros? La tabla contendría entonces datos diferentes para el mismo individuo, sin ninguna forma clara de identificarlo o evitarlo.

Dividir esta tabla en dos tablas, Profesores y Cursos, crea la relación adecuada entre los datos y, por lo tanto, ayuda a garantizar la consistencia y precisión de los datos.

Recomendado: