Els termes relacional i relació de la base de dades descriuen la manera com es connecten les dades de les taules. Una base de dades relacional consta d'una sèrie de dues o més taules enllaçades per una clau específica. Una base de dades relacional difereix de les bases de dades no estructurades, que són habituals en iniciatives de big data. Les bases de dades relacionals solen requerir regles estrictes sobre com es defineixen les taules i què constitueix una relació vàlida entre taules.
Tipus de relacions amb bases de dades
Les relacions us permeten descriure les connexions entre taules de bases de dades de maneres potents. Aquestes relacions es poden aprofitar per realitzar consultes potents entre taules, conegudes com a JOIN.
Hi ha tres tipus de relacions de bases de dades, cadascuna s'anomena segons el nombre de files de la taula implicades en la relació. Cadascun d'aquests tres tipus de relacions existeix entre dues taules.
- Les relacions d'un a un es produeixen quan cada entrada de la primera taula només té una contrapartida a la segona. Les relacions d'un a un s'utilitzen poques vegades perquè sovint és més eficient posar tota la informació en una única taula. Alguns dissenyadors de bases de dades s'aprofiten d'aquesta relació creant taules que contenen un subconjunt de dades d'una altra taula.
- Les relacions d'un a molts són el tipus de relació de base de dades més comú. Es produeixen quan cada registre de la taula A correspon a un o més registres de la taula B, però cada registre de la taula B només correspon a un registre de la taula A. Per exemple, la relació entre una taula de professors i una taula d'alumnes en una escola primària La base de dades probablement seria una relació d'un a molts perquè cada alumne només té un professor, però cada professor té diversos estudiants. Aquest disseny d'un a molts ajuda a eliminar les dades duplicades.
- Les relacions de molts a molts es produeixen quan cada registre de la taula A correspon a un o més registres de la taula B i cada registre de la taula B correspon a un o més registres a la taula A. Per exemple, la relació entre una taula de professors i una taula de cursos probablement seria de molts a molts perquè cada professor pot impartir més d'un curs i cada curs pot tenir més d'un instructor.
Conclusió
Les relacions d'auto-referè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é un supervisor. En aquest cas, hi ha una relació d'auto-referè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
Creeu relacions entre taules especificant una clau estrangera. 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 primàries a les quals es fa referència a la taula B.
Considereu l'exemple de les taules de professors i alumnes. La taula de professors conté un identificador, un nom i una columna de curs:
InstructorID | Nom_del_professor | Curs |
001 | John Doe | Anglès |
002 | Jane Schmoe | Matemàtiques |
La taula Estudiants inclou un identificador, un nom i una columna de clau estrangera:
ID de l'estudiant | Nom_de_l'alumne | Teacher_FK |
0200 | Lowell Smith | 001 |
0201 | Brian Short | 001 |
0202 | Corky Mendez | 002 |
0203 | Monica Jones | 001 |
La columna Teacher_FK de la taula Estudiants fa referència al valor de clau principal d'un instructor a la taula Professors. Sovint, els dissenyadors de bases de dades utilitzen PK o FK al nom de la columna per identificar una clau primària o una columna de clau estrangera.
Aquestes dues taules il·lustren una relació d'un a molts entre els professors i els estudiants.
Relacions i integritat referencial
Després d'afegir una clau estrangera a una taula, creeu una restricció de base de dades que imposa la integritat referencial entre les dues taules. Aquest pas garanteix que les relacions entre taules siguin coherents. Quan una taula té una clau estrangera per a una altra taula, la integritat referencial requereix que qualsevol valor de clau estrangera de la taula B faci referència a un registre existent a la taula A.
Implementació de relacions
Depenent de la vostra base de dades, implementareu les relacions entre taules de diferents maneres. Microsoft Access ofereix un assistent que us permet enllaçar taules i també fer complir la integritat referencial.
Si esteu escrivint SQL directament, primer creeu la taula Professors, declarant una columna ID com a clau primària:
CREA LA TAULA Professors (InstructorID INT AUTO_INCREMENT CLAU PRIMÀRIA, Teacher_Name VARCHAR(100), Curs VARCHAR(100));
Quan creeu la taula Estudiants, declareu que la columna Teacher_FK és una clau estrangera que fa referència a la columna InstructorID de la taula Professors:
CREA LA TAULA Alumnes (StudentID INT AUTO_INCREMENT CLAU PRIMÀRIA, Student_Name VARCHAR(100), Teacher_FK INT, ForEIGN KEY (Teacher_FK) REFERÈNCIES Professors)(Instructor));
Ús de les relacions per unir-se a taules
Després de crear una o més relacions a la vostra base de dades, aprofiteu el seu poder mitjançant consultes SQL JOIN per combinar informació de diverses taules. El tipus d'unió més comú és un SQL INNER JOIN, que és una unió simple. Aquest tipus d'unió retorna tots els registres que compleixen la condició d'unió d'una o més taules.
Per exemple, aquesta condició JOIN retorna Student_Name, Teacher_Name i Course, on la clau estrangera de la taula Students coincideix amb la clau primària de la taula Teachers:
SELECCIONA Students. Student_Name, Teachers. Teacher_Name, Teachers. Curs
FROM Students
INNER JOIN TeachersON Students. Teacher_FK=Teachers. InstructorID;
Aquesta declaració produeix una taula com aquesta:
Nom_estudiant | Nom_del_professor | Curs |
Lowell Smith | John Doe | Anglès |
Brian Short | John Doe | Anglès |
Corky Mendez | Jane Schmoe | Matemàtiques |
Monica Jones | John Doe | Anglès |