Los términos de base de datos relacional y relación describen la forma en que se conectan los datos en las tablas. Una base de datos relacional consta de una serie de dos o más tablas vinculadas por una clave específica. Una base de datos relacional difiere de las bases de datos no estructuradas, que son comunes en las iniciativas de big data. Las bases de datos relacionales tienden a requerir reglas estrictas sobre cómo se definen las tablas y qué constituye una relación válida entre tablas.
Tipos de relaciones de bases de datos
Las relaciones le permiten describir las conexiones entre las tablas de la base de datos de manera poderosa. Estas relaciones se pueden aprovechar para realizar potentes consultas entre tablas, conocidas como JOIN.
Hay tres tipos de relaciones de bases de datos, cada una de ellas nombrada de acuerdo con el número de filas de la tabla involucradas en la relación. Cada uno de estos tres tipos de relaciones existe entre dos tablas.
- Las relaciones uno a uno ocurren cuando cada entrada en la primera tabla tiene solo una contraparte en la segunda tabla. Las relaciones uno a uno rara vez se usan porque a menudo es más eficiente poner toda la información en una sola tabla. Algunos diseñadores de bases de datos aprovechan esta relación creando tablas que contienen un subconjunto de los datos de otra tabla.
- Las relaciones de uno a varios son el tipo más común de relación de base de datos. Ocurren cuando cada registro en la Tabla A corresponde a uno o más registros en la Tabla B, pero cada registro en la Tabla B corresponde a solo un registro en la Tabla A. Por ejemplo, la relación entre una tabla de Maestros y una tabla de Estudiantes en una escuela primaria La base de datos probablemente sería una relación de uno a muchos porque cada estudiante tiene solo un maestro, pero cada maestro tiene varios estudiantes. Este diseño de uno a muchos ayuda a eliminar datos duplicados.
- Relaciones de muchos a muchos ocurren cuando cada registro en la Tabla A corresponde a uno o más registros en la Tabla B, y cada registro en la Tabla B corresponde a uno o más registros en la Tabla A. Por ejemplo, la relación entre una tabla de Profesores y una tabla de Cursos probablemente sería de muchos a muchos porque cada profesor puede impartir más de un curso, y cada curso puede tener más de un instructor.
Conclusión
Las relaciones autorreferenciales ocurren cuando solo hay una tabla involucrada. Un ejemplo común es una tabla de Empleados que contiene información sobre el supervisor de cada empleado. Cada supervisor es también un empleado y tiene un supervisor. En este caso, existe una relación autorreferencial de uno a muchos, ya que cada empleado tiene un supervisor, pero cada supervisor puede tener más de un empleado.
Creación de relaciones con claves externas
Se crean relaciones entre tablas especificando una clave externa. Esta clave le dice a la base de datos relacional cómo se relacionan las tablas. En muchos casos, una columna de la Tabla A contiene claves principales a las que se hace referencia en la Tabla B.
Considere el ejemplo de las tablas Profesores y Alumnos. La tabla de Profesores contiene una ID, un nombre y una columna de curso:
ID del instructor | Nombre_del_profesor | Curso |
001 | Juan Pérez | Inglés |
002 | Jane Schmoe | Matemáticas |
La tabla de Estudiantes incluye una ID, un nombre y una columna de clave externa:
IDEstudiante | Nombre_del_estudiante | Profesor_FK |
0200 | Lowell Smith | 001 |
0201 | Brian Corto | 001 |
0202 | Corky Méndez | 002 |
0203 | Mónica Jones | 001 |
La columna Teacher_FK en la tabla Estudiantes hace referencia al valor de clave principal de un instructor en la tabla Profesores. Con frecuencia, los diseñadores de bases de datos usan PK o FK en el nombre de la columna para identificar una columna de clave principal o de clave externa.
Estas dos tablas ilustran una relación de uno a muchos entre los profesores y los estudiantes.
Relaciones e integridad referencial
Después de agregar una clave externa a una tabla, cree una restricción de base de datos que imponga la integridad referencial entre las dos tablas. Este paso garantiza que las relaciones entre las tablas permanezcan consistentes. Cuando una tabla tiene una clave externa a otra tabla, la integridad referencial requiere que cualquier valor de clave externa en la Tabla B se refiera a un registro existente en la Tabla A.
Implementación de relaciones
Dependiendo de su base de datos, implementará relaciones entre tablas de diferentes maneras. Microsoft Access proporciona un asistente que le permite vincular tablas y también hacer cumplir la integridad referencial.
Si está escribiendo SQL directamente, primero cree la tabla Profesores, declarando una columna de ID como clave principal:
CREATE TABLE Profesores (InstructorID INT AUTO_INCREMENT PRIMARY KEY, Teacher_Name VARCHAR(100), Course VARCHAR(100));
Cuando crea la tabla Estudiantes, declara que la columna Teacher_FK es una clave externa que hace referencia a la columna InstructorID en la tabla Teachers:
CREATE TABLE Estudiantes (StudentID INT AUTO_INCREMENT PRIMARY KEY, Student_Name VARCHAR(100), Teacher_FK INT, FOREIGN KEY (Teacher_FK) REFERENCIAS Profesores(InstructorID)));
Uso de relaciones para unir tablas
Después de crear una o más relaciones en su base de datos, aproveche su poder utilizando consultas SQL JOIN para combinar información de varias tablas. El tipo de combinación más común es SQL INNER JOIN, que es una combinación simple. Este tipo de combinación devuelve todos los registros que cumplen la condición de combinación de una o más tablas.
Por ejemplo, esta condición JOIN devuelve Student_Name, Teacher_Name y Course, donde la clave externa en la tabla de Estudiantes coincide con la clave principal en la tabla de Profesores:
SELECT Estudiantes. Nombre_Estudiante, Profesores. Nombre_Profesor, Profesores. Curso
FROM Estudiantes
INNER JOIN ProfesoresON Estudiantes. Profesor_FK=Profesores. InstructorID;
Esta declaración produce una tabla como esta:
Nombre_del_estudiante | Nombre_del_profesor | Curso |
Lowell Smith | Juan Pérez | Inglés |
Brian Corto | Juan Pérez | Inglés |
Corky Méndez | Jane Schmoe | Matemáticas |
Mónica Jones | Juan Pérez | Inglés |