Relacións da base de datos

As relacións de base de datos son a espiña dorsal de todas as bases de datos relacionales

Establece unha relación entre dúas táboas de base de datos cando unha táboa ten unha clave externa que fai referencia á clave primaria doutra táboa. Este é o concepto básico detrás do termo base de datos relacional.

Como funciona unha clave estranxeira para establecer unha relación

Repasemos os conceptos básicos das claves primarias e foráneas. Unha clave primaria identifica de forma exclusiva cada rexistro da táboa. É un tipo de clave candidata que xeralmente é a primeira columna dunha táboa e pode ser xerada automaticamente pola base de datos para garantir que sexa única.

Unha clave externa é outra clave candidata (non a chave primaria) que se usa para vincular un rexistro de datos noutra táboa.

Por exemplo, considere estas dúas táboas que identifican que profesor imparte o curso.

Aquí, a clave principal da táboa de cursos é Course_ID. A súa clave externa é Teacher_ID:

Cursos
Course_ID Nome do curso Teacher_ID
Curso_001 Bioloxía Profesor_001
Curso_002 Matemáticas Profesor_001
Curso_003 Inglés Profesor_003

Podes ver que a clave estranxeira nos Cursos coincide cunha clave primaria en Profesores:

Profesores
Teacher_ID Teacher_Name
Profesor_001 Carmen
Profesor_002 Veronica
Profesor_003 Jorge

Podemos dicir que a clave estranxeira Teacher_ID axudou a establecer unha relación entre as táboas dos Cursos e os Profesores.

Tipos de relación da base de datos

Usando chaves estranxeiras ou outras claves candidatas, pódese implementar tres tipos de relacións entre táboas:

Un a un : Este tipo de relación permite só un rexistro a cada lado da relación.

A clave principal refírese a só un rexistro - ou ningún - noutra táboa. Por exemplo, nun matrimonio, cada cónxuxe só ten outro cónxuxe. Este tipo de relación pode ser implementado nunha soa táboa e, polo tanto, non usa unha chave estranxeira.

One-to-many : Unha relación de one-to-many permite que un único rexistro nunha táboa estea relacionado con varios rexistros noutra táboa.

Considere un negocio cunha base de datos que ten táboas Clientes e Ordes.

Un único cliente pode adquirir varias ordes, pero non se pode vincular unha única orde con varios clientes. Polo tanto, a táboa Orders contén unha chave estranxeira que coincida coa clave primaria da táboa Clientes, mentres que a táboa Clientes non tería unha chave estranxeira que sinalase a táboa Orders.

Moitos-a-moitos : Esta é unha relación complexa na que moitos rexistros nunha táboa poden ligar a moitos rexistros noutra táboa. Por exemplo, o noso negocio probablemente non precisa só as táboas de clientes e ordes, pero probablemente tamén precisa dunha táboa de produtos.

De novo, a relación entre a táboa de Clientes e Ordes é de un a moitos, pero considere a relación entre a táboa de Pedidos e Produtos. Unha orde pode conter varios produtos e un produto pode estar ligado a varias ordes: varios clientes poden enviar unha orde que contén algúns dos mesmos produtos. Este tipo de relación require polo menos tres táboas.

Cales son as relacións da base de datos importantes?

Establecer relacións consistentes entre as táboas de bases de datos axuda a garantir a integridade dos datos, contribuíndo á normalización da base de datos. Por exemplo, e se non ligamos ningunha táboa por unha chave estranxeira e só combinamos os datos nas táboas de Cursos e Profesores, como así:

Profesores e Cursos
Teacher_ID Teacher_Name Curso
Profesor_001 Carmen Bioloxía, matemática
Profesor_002 Veronica Matemáticas
Profesor_003 Jorge Inglés

Este deseño é inflexible e viola o primeiro principio de normalización da base de datos, First Normal Form (1NF), que indica que cada célula da táboa debería conter unha única e discreta información.

Ou quizais decidimos simplemente engadir un segundo rexistro para Carmen, para facer cumprir 1NF:

Profesores e Cursos
Teacher_ID Teacher_Name Curso
Profesor_001 Carmen Bioloxía
Profesor_001 Carmen Matemáticas
Profesor_002 Veronica Matemáticas
Profesor_003 Jorge Inglés

Este aínda é un deseño débil, introducindo duplicación innecesaria e as chamadas anomalías de inserción de datos , o que só significa que podería contribuír a datos inconsistentes.

Por exemplo, se un profesor ten varios rexistros, que se hai que editar algúns datos, pero a persoa que realiza a edición de datos non se dá conta de que existen moitos rexistros? A táboa contén informacións diferentes para o mesmo individuo, sen ningunha forma clara de identificalo ou de evitalo.

Ao dividir esta táboa en dúas táboas, os profesores e os cursos (como se visualiza anteriormente) crean a relación adecuada entre os datos e, polo tanto, contribúen a garantir a coherencia e precisión dos datos.