Introducció a les relacions de bases de dades

El terme de base de dades "relacional" o "relació" descriu la forma en què les dades de les taules estan connectades.

Els nouvinguts al món de les bases de dades sovint tenen dificultats per veure la diferència entre una base de dades i un full de càlcul. Veuen taules de dades i reconeixen que les bases de dades us permeten organitzar i consultar dades de noves maneres, però no entenen la importància de les relacions entre les dades que donen el seu nom a la tecnologia de base de dades relacional.

Les relacions us permeten descriure de manera poderosa les connexions entre taules de base de dades diferents. Aquestes relacions es poden aprofitar per fer consultes de taules creuades poderoses, conegudes com joins.

Tipus de relacions de base de dades

Hi ha tres tipus diferents de relacions de base de dades, cadascuna d'elles segons el nombre de files de la taula que poden estar implicades en la relació. Cadascun d'aquests tres tipus de relació existeix entre dues taules.

Relacions d'autoreferència: un cas especial

Les relacions d'autoreferència es produeixen quan només hi ha una taula implicada. Un exemple comú és una taula d'empleats que conté informació sobre el supervisor de cada empleat. Cada supervisor també és un empleat i té el seu propi supervisor. En aquest cas, hi ha una relació d'autoreferència d'un a molts, ja que cada empleat té un supervisor, però cada supervisor pot tenir més d'un empleat.

Creació de relacions amb claus externes

Podeu crear relacions entre taules especificant una clau externa . Aquesta clau indica a la base de dades relacional com es relacionen les taules. En molts casos, una columna de la Taula A conté claus principals que es fan referència a la Taula B.

Considereu de nou l'exemple de les taules de professors i estudiants. La taula Teachers conté només una ID, un nom i una columna de curs:

Professors
InstructorID Teacher_Name Curs
001 John Doe Anglès
002 Jane Schmoe Matemàtiques

La taula Student inclou una identificació, un nom i una columna de clau externa:

Estudiants
StudentID Nom de l'estudiant Teacher_FK
0200 Lowell Smith 001
0201 Brian Short 001
0202 Corky Méndez 002
0203 Monica Jones 001

La columna Teacher_FK a la taula Student fa referència al valor clau principal d'un instructor a la taula Teachers.

Sovint, els dissenyadors de bases de dades utilitzaran "PK" o "FK" al nom de la columna per identificar fàcilment una clau principal o una columna de clau externa.

Tingueu en compte que aquestes dues taules il·lustren una relació d'un a molts entre els professors i els estudiants.

Relacions i integritat referencial

Una vegada que hàgiu afegit una clau externa a una taula, podeu crear una restricció de la base de dades que reforci la integritat referencial entre les dues taules. Això assegura que les relacions entre taules siguin coherents. Quan una taula té una clau externa en una altra taula, el concepte d'integritat referencial estableix que qualsevol valor de clau estrangera a la Taula B ha de fer referència a un registre existent a la Taula A.

Implementació de relacions

Depenent de la base de dades, s'implementen les relacions entre taules de diferents maneres. Microsoft Access proporciona un assistent que us permet enllaçar taules de forma senzilla i també fer complir la integritat referencial.

Si esteu escrivint SQL directament, primer creeu la taula Professors, declarant que una columna d'identificació és la clau principal:

CREA TAULA Mestres (

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

Quan creeu la taula Estudiants, declara que la columna Teacher_FK és una clau externa que fa referència a la columna InstructorID a la taula dels professors:

CREATE TABLE Estudiants (
Estudiant INT INT AUTO_INCREMENT PRIMARY KEY,
Student_Name VARCHAR (100), Teacher_FK INT,
CLAU EXTERIOR (Teacher_FK) REFERÈNCIES Professor (InstructorID))
);

Ús de relacions per unir taules

Un cop hàgiu creat una o més relacions a la base de dades, podeu aprofitar la vostra potència utilitzant consultes SQL JOIN per combinar informació de diverses taules. El tipus d'unió més comú és un SQL INNER JOIN o una simple combinació. Aquest tipus d'unió retorna tots els registres que compleixen la condició d'unió de diverses taules. Per exemple, aquesta condició JOIN retornarà Student_Name, Teacher_Name i Course, on la clau externa de la taula Students coincideix amb la clau principal de la taula Teachers:

SELECCIONAR Estudiants. Nombre d'estudiant, Professorat. Nombre de professor, Professorat. Professor
FROM Students
INNER JOIN Teachers
ON Students.Teacher_FK = Teachers.InstructorID;

Aquesta afirmació produeix una taula d'aquest tipus:

Taula retornada de la instrucció Join Statement

Student_NameTeacher_NameCourseLowell SmithJohn DoeEnglishBrian ShortJohn DoeEnglishCorky MendezJane SchmoeMathMonica Jones John DoeEnglish