Introdución ás Relacións da Base de Datos

O termo de base de datos "relacional" ou "relación" describe a forma en que os datos nas táboas están conectados.

Os recén chegados ao mundo das bases de datos adoitan ter dificultade para ver a diferenza entre unha base de datos e unha folla de cálculo. Eles ven táboas de datos e recoñecen que as bases de datos permítenlle organizar e consultar datos de maneiras novas, pero non entenden o significado das relacións entre datos que outorgan a tecnoloxía de base de datos relacional.

As relacións permítenlle describir as conexións entre táboas de bases de datos de forma potente. Estas relacións poden ser aproveitadas para realizar consultas poderosas de mesa cruzada, coñecidas como unións.

Tipos de relación da base de datos

Existen tres tipos diferentes de relacións de base de datos, cada un nomeado segundo o número de filas de táboa que poden estar implicadas na relación. Cada un destes tres tipos de relación existe entre dúas táboas.

Relacións de auto-referencia: un caso especial

As relacións de autoreferencia ocorren cando hai só unha táboa involucrada. Un exemplo común é unha táboa de empregados que contén información sobre o supervisor de cada empregado. Cada supervisor tamén é un empregado e ten o seu propio supervisor. Neste caso, existe unha relación de auto-referencia entre un e moitos, xa que cada empregado ten un supervisor, pero cada supervisor pode ter máis dun empregado.

Creación de relacións con chaves estranxeiras

Crea relacións entre táboas especificando unha chave estranxeira . Esta chave dille á base de datos relacional como se relacionan as táboas. En moitos casos, unha columna na táboa A contén claves primarias ás que se fai referencia na táboa B.

Considere de novo o exemplo das táboas de Profesores e Estudantes. A táboa Docentes contén só unha ID, un nome e unha columna de curso:

Profesores
InstrutorID Teacher_Name Curso
001 John Doe Inglés
002 Jane Schmoe Matemáticas

A táboa Estudantes inclúe unha ID, nome e unha columna de chave estranxeira:

Estudantes
StudentID Student_Name Profesor_FK
0200 Lowell Smith 001
0201 Brian Short 001
0202 Corky Mendez 002
0203 Monica Jones 001

A columna Teacher_FK na táboa Student fai referencia ao valor da chave primaria dun instrutor na táboa Teachers.

Con frecuencia, os deseñadores de bases de datos usan "PK" ou "FK" no nome da columna para identificar facilmente unha clave primaria ou unha chave de chave estranxeira.

Teña en conta que estas dúas táboas ilustran unha relación de un a moitos entre os profesores e os alumnos.

Relacións e integridade referencial

Unha vez que engade unha chave estranxeira a unha táboa, pode crear unha restrición de base de datos que reforza a integridade referencial entre as dúas táboas. Isto asegura que as relacións entre táboas sexan consistentes. Cando unha táboa ten unha clave externa noutra táboa, o concepto de integridade referencial afirma que calquera valor de clave externa na táboa B debe referirse a un rexistro existente na táboa A.

Implementación de relacións

Dependendo da túa base de datos, implementas relacións entre táboas de maneira diferente. Microsoft Access proporciona un asistente que facilmente permítelle vincular táboas e tamén impoñer a integridade referencial.

Se está escribindo SQL directamente, primeiro crearía os profesores da táboa, declarando que a columna ID era a chave primaria:

CREAR TABLE Profesores (

Instructor INT INT AUTO_INCREMENT PRIMARY KEY,
Teacher_Name VARCHAR (100),
Curso VARCHAR (100)
);

Cando creas a táboa de estudantes, declaras que a columna Teacher_FK é unha chave estranxeira que fai referencia á columna de instrutorID na táboa dos profesores:

CREATE TABLE Estudantes (
StudentID INT AUTO_INCREMENT PRIMARY KEY,
Student_Name VARCHAR (100), Teacher_FK INT,
CLAVE EXTERIOR (Teacher_FK) REFERENCIAS Profesores (InstructorID))
);

Usar relacións para unir táboas

Unha vez que creou unha ou máis relacións na súa base de datos, pode aproveitar a súa enerxía empregando consultas SQL JOIN para combinar información de varias táboas. O tipo máis común de unirse é un SQL INNER JOIN ou unha simple combinación. Este tipo de combinación devolve todos os rexistros que cumpren a condición de unir de varias táboas. Por exemplo, esta condición JOIN devolverá Student_Name, Teacher_Name e Course onde a chave estranxeira na táboa Students coincide coa clave primaria na táboa Teachers:

SELECCIONAR Students.Student_Name, Teachers.Teacher_Name, Teachers.Course
FROM Students
INNER JOIN Teachers
ON Students.Teacher_FK = Teachers.InstructorID;

Esta afirmación produce unha táboa coma esta:

Táboa devolto da Declaración de unión de SQL

Student_NameTeacher_NameCourseLowell SmithJohn DoeEnglishBrian ShortJohn DoeEnglishCorky MendezJane SchmoeMathMonica Jones John DoeEnglish