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

  1. 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.

  1. 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 atributo ID_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 atributo ID_Estudiante puede ser una clave foránea que referencia a ID_Estudiante en la tabla Estudiantes.

  1. 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.

  1. 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 e ID_Curso forma la clave primaria de la tabla Inscripciones, 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

  1. Crea una tabla Profesores con los siguientes atributos:

    • ID_Profesor (Clave primaria)
    • Nombre
    • Apellido
    • Departamento
  2. 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 a ID_Profesor en Profesores)
    • ID_Curso (Clave foránea que referencia a ID_Curso en Cursos)
    • Fecha_Asignacion
    • La combinación de ID_Profesor e ID_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.

© Copyright 2024. Todos los derechos reservados