Skip to main content

Introducció a les relacions de bases de dades

Anonim

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 la informació. relacions entre dades que donen a la tecnologia de base de dades relacional el seu nom.

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'un a un es produeixen quan cada entrada de la primera taula té una, i només una, contrapartida a la segona taula. Les relacions personals són rarament utilitzades perquè sovint és més eficient simplement posar tota la informació en una sola taula. Alguns dissenyadors de bases de dades aprofiten aquesta relació creant taules que contenen un subconjunt de dades d'una altra taula.
  • Relacions d'un a molts són el tipus més comú de relació de la base de dades. 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 correspon a un sol registre de la Taula A. Per exemple, la relació entre una taula de professors i una taula d'estudiants en una escola primària la base de dades probablement sigui una relació d'un a molts, perquè cada estudiant només té un professor, però cada professor té diversos estudiants. Aquest disseny d'un a molts ajuda a eliminar les dades duplicades.
  • Relacions entre 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 de la Taula A. Per exemple, la relació entre una taula de Professors i un Curs probablement sigui múltiple, to-many perquè cada professor pot indicar més d'un curs, i cada curs pot tenir més d'un instructor.

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 informa 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
InstructorIDTeacher_NameCurs
001John DoeAnglès
002Jane SchmoeMatemàtiques

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

Estudiants
StudentIDNom de l'estudiantTeacher_FK
0200Lowell Smith001
0201Brian Short001
0202Corky Méndez002
0203Monica Jones001

La columna Teacher_FK A la taula Estudiants es fa referència al valor de la clau principal d'un instructor a la taula de professors.

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. ProfessorFROM StudentsINNER JOIN TeachersON 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