El modelo relacional es uno de los pilares fundamentales en el campo de las bases de datos. Introducido por Edgar F. Codd en 1970, este modelo organiza los datos en tablas (o relaciones) que pueden ser manipuladas usando un lenguaje de consulta estructurado, como SQL. En esta sección, exploraremos los conceptos clave del modelo relacional, su estructura y cómo se utilizan para gestionar datos de manera eficiente.
Conceptos Clave del Modelo Relacional
- Tablas (Relaciones)
- Definición: Una tabla es una colección de datos organizados en filas y columnas. Cada tabla representa una entidad del mundo real.
- Estructura:
- Filas (Tuplas): Cada fila en una tabla representa una instancia única de la entidad.
- Columnas (Atributos): Cada columna representa un atributo de la entidad.
- Claves
- Clave Primaria (Primary Key):
- Definición: Un atributo (o conjunto de atributos) que identifica de manera única cada fila en una tabla.
- Ejemplo: En una tabla de
Estudiantes
, el atributoID_Estudiante
puede ser la clave primaria.
- Clave Foránea (Foreign Key):
- Definición: Un atributo en una tabla que se refiere a la clave primaria de otra tabla, estableciendo una relación entre las dos tablas.
- Ejemplo: En una tabla de
Inscripciones
, el atributoID_Estudiante
puede ser una clave foránea que referencia aID_Estudiante
en la tablaEstudiantes
.
- Relaciones
- Tipos de Relaciones:
- Uno a Uno (1:1): Cada fila en la Tabla A se relaciona con una única fila en la Tabla B.
- Uno a Muchos (1:N): Una fila en la Tabla A se relaciona con múltiples filas en la Tabla B.
- Muchos a Muchos (M:N): Múltiples filas en la Tabla A se relacionan con múltiples filas en la Tabla B, generalmente implementadas mediante una tabla intermedia.
- Integridad de Datos
- Integridad de Entidad: Cada tabla debe tener una clave primaria que identifique de manera única cada fila.
- Integridad Referencial: Las claves foráneas deben coincidir con valores válidos en la tabla referenciada, asegurando que las relaciones entre tablas sean consistentes.
Ejemplo Práctico
Definición de Tablas
Supongamos que estamos diseñando una base de datos para una universidad. Necesitamos al menos dos tablas: Estudiantes
y Cursos
.
CREATE TABLE Estudiantes ( ID_Estudiante INT PRIMARY KEY, Nombre VARCHAR(100), Apellido VARCHAR(100), Fecha_Nacimiento DATE ); CREATE TABLE Cursos ( ID_Curso INT PRIMARY KEY, Nombre_Curso VARCHAR(100), Creditos INT );
Relaciones entre Tablas
Ahora, definimos una tabla Inscripciones
para registrar qué estudiantes están inscritos en qué cursos.
CREATE TABLE Inscripciones ( ID_Estudiante INT, ID_Curso INT, Fecha_Inscripcion DATE, PRIMARY KEY (ID_Estudiante, ID_Curso), FOREIGN KEY (ID_Estudiante) REFERENCES Estudiantes(ID_Estudiante), FOREIGN KEY (ID_Curso) REFERENCES Cursos(ID_Curso) );
Explicación del Código
- Tabla
Estudiantes
:ID_Estudiante
: Clave primaria que identifica de manera única a cada estudiante.Nombre
,Apellido
,Fecha_Nacimiento
: Atributos adicionales del estudiante.
- Tabla
Cursos
:ID_Curso
: Clave primaria que identifica de manera única a cada curso.Nombre_Curso
,Creditos
: Atributos adicionales del curso.
- Tabla
Inscripciones
:ID_Estudiante
,ID_Curso
: Claves foráneas que establecen la relación entre estudiantes y cursos.Fecha_Inscripcion
: Fecha en que el estudiante se inscribió en el curso.- La combinación de
ID_Estudiante
eID_Curso
forma la clave primaria de la tablaInscripciones
, asegurando que un estudiante no pueda inscribirse en el mismo curso más de una vez.
Ejercicio Práctico
Ejercicio 1: Crear Tablas y Relaciones
-
Crea una tabla
Profesores
con los siguientes atributos:ID_Profesor
(Clave primaria)Nombre
Apellido
Departamento
-
Crea una tabla
Asignaciones
para registrar qué profesores están asignados a qué cursos. Esta tabla debe incluir:ID_Profesor
(Clave foránea que referencia aID_Profesor
enProfesores
)ID_Curso
(Clave foránea que referencia aID_Curso
enCursos
)Fecha_Asignacion
- La combinación de
ID_Profesor
eID_Curso
debe ser la clave primaria.
Solución
CREATE TABLE Profesores ( ID_Profesor INT PRIMARY KEY, Nombre VARCHAR(100), Apellido VARCHAR(100), Departamento VARCHAR(100) ); CREATE TABLE Asignaciones ( ID_Profesor INT, ID_Curso INT, Fecha_Asignacion DATE, PRIMARY KEY (ID_Profesor, ID_Curso), FOREIGN KEY (ID_Profesor) REFERENCES Profesores(ID_Profesor), FOREIGN KEY (ID_Curso) REFERENCES Cursos(ID_Curso) );
Conclusión
En esta sección, hemos cubierto los conceptos fundamentales del modelo relacional, incluyendo la estructura de tablas, claves primarias y foráneas, y los tipos de relaciones entre tablas. También hemos visto cómo aplicar estos conceptos mediante ejemplos prácticos y ejercicios. Con esta base, estás preparado para profundizar en el lenguaje SQL y las operaciones básicas que se pueden realizar en una base de datos relacional.
Fundamentos de Bases de Datos
Módulo 1: Introducción a las Bases de Datos
- Conceptos Básicos de Bases de Datos
- Tipos de Bases de Datos
- Historia y Evolución de las Bases de Datos
Módulo 2: Bases de Datos Relacionales
Módulo 3: Bases de Datos No Relacionales
- Introducción a NoSQL
- Tipos de Bases de Datos NoSQL
- Comparación entre Bases de Datos Relacionales y No Relacionales
Módulo 4: Diseño de Esquemas
- Principios de Diseño de Esquemas
- Diagramas Entidad-Relación (ER)
- Transformación de Diagramas ER a Esquemas Relacionales