En esta sección, pondremos en práctica los conceptos aprendidos sobre el diseño de esquemas de bases de datos. Realizaremos ejercicios que abarcan desde la creación de diagramas Entidad-Relación (ER) hasta la transformación de estos diagramas en esquemas relacionales.
Ejercicio 1: Creación de un Diagrama ER
Enunciado
Diseña un diagrama Entidad-Relación para una biblioteca que debe gestionar la información sobre libros, autores y préstamos. Los requisitos son los siguientes:
- Cada libro tiene un título, un ISBN único, y puede tener múltiples autores.
- Cada autor tiene un nombre y un identificador único.
- Los préstamos registran la fecha de préstamo y la fecha de devolución. Un libro puede ser prestado a múltiples usuarios, pero solo un usuario puede tener un préstamo de un libro en un momento dado.
- Cada usuario tiene un nombre, un identificador único y una dirección de correo electrónico.
Solución
-
Identificación de Entidades:
- Libro
- Autor
- Préstamo
- Usuario
-
Identificación de Atributos:
- Libro: Título, ISBN
- Autor: Nombre, ID
- Préstamo: Fecha de Préstamo, Fecha de Devolución
- Usuario: Nombre, ID, Correo Electrónico
-
Identificación de Relaciones:
- Un libro puede tener múltiples autores (Relación muchos a muchos).
- Un libro puede ser prestado a múltiples usuarios, pero solo un usuario puede tener un préstamo de un libro en un momento dado (Relación uno a muchos).
- Un usuario puede realizar múltiples préstamos (Relación uno a muchos).
-
Diagrama ER:
[Libro] -- (escrito por) --< [Autor] | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |## Ejercicio 2: Transformación de Diagramas ER a Esquemas Relacionales ### Enunciado Transforma el diagrama Entidad-Relación del Ejercicio 1 en un esquema relacional. Asegúrate de incluir las claves primarias y foráneas necesarias. ### Solución 1. **Identificación de Tablas y Atributos:** - **Libro**: ISBN (PK), Título - **Autor**: ID (PK), Nombre - **Usuario**: ID (PK), Nombre, Correo Electrónico - **Préstamo**: ID (PK), Fecha de Préstamo, Fecha de Devolución, ISBN (FK), UsuarioID (FK) - **Libro_Autor**: ISBN (FK), AutorID (FK) 2. **Definición de Claves Primarias (PK) y Foráneas (FK):** - **Libro**: ISBN (PK) - **Autor**: ID (PK) - **Usuario**: ID (PK) - **Préstamo**: ID (PK), ISBN (FK), UsuarioID (FK) - **Libro_Autor**: ISBN (FK), AutorID (FK) 3. **Esquema Relacional:** | Tabla | Atributos | Clave Primaria (PK) | Clave Foránea (FK) | |-------------|------------------------------------------------|---------------------|--------------------------| | Libro | ISBN, Título | ISBN | | | Autor | ID, Nombre | ID | | | Usuario | ID, Nombre, Correo Electrónico | ID | | | Préstamo | ID, Fecha de Préstamo, Fecha de Devolución, ISBN, UsuarioID | ID | ISBN, UsuarioID | | Libro_Autor | ISBN, AutorID | (ISBN, AutorID) | ISBN, AutorID | ### Ejercicio 3: Diseño de Esquema para una Tienda en Línea ### Enunciado Diseña un esquema relacional para una tienda en línea que debe gestionar la información sobre productos, clientes, pedidos y detalles de pedidos. Los requisitos son los siguientes: 1. Cada producto tiene un identificador único, un nombre, una descripción y un precio. 2. Cada cliente tiene un identificador único, un nombre, una dirección y un correo electrónico. 3. Cada pedido tiene un identificador único, una fecha de pedido y está asociado a un cliente. 4. Cada detalle de pedido registra la cantidad de un producto específico en un pedido específico. ### Solución 1. **Identificación de Entidades:** - Producto - Cliente - Pedido - DetallePedido 2. **Identificación de Atributos:** - Producto: ID, Nombre, Descripción, Precio - Cliente: ID, Nombre, Dirección, Correo Electrónico - Pedido: ID, Fecha de Pedido, ClienteID - DetallePedido: PedidoID, ProductoID, Cantidad 3. **Identificación de Relaciones:** - Un cliente puede realizar múltiples pedidos (Relación uno a muchos). - Un pedido puede contener múltiples productos, y un producto puede estar en múltiples pedidos (Relación muchos a muchos). 4. **Esquema Relacional:** | Tabla | Atributos | Clave Primaria (PK) | Clave Foránea (FK) | |---------------|------------------------------------------------|---------------------|--------------------------| | Producto | ID, Nombre, Descripción, Precio | ID | | | Cliente | ID, Nombre, Dirección, Correo Electrónico | ID | | | Pedido | ID, Fecha de Pedido, ClienteID | ID | ClienteID | | DetallePedido | PedidoID, ProductoID, Cantidad | (PedidoID, ProductoID) | PedidoID, ProductoID | ### Ejercicio 4: Creación de Esquema para una Universidad ### Enunciado Diseña un esquema relacional para una universidad que debe gestionar la información sobre estudiantes, cursos y matrículas. Los requisitos son los siguientes: 1. Cada estudiante tiene un identificador único, un nombre y una fecha de nacimiento. 2. Cada curso tiene un identificador único, un nombre y un número de créditos. 3. Cada matrícula registra la inscripción de un estudiante en un curso específico y la fecha de inscripción. ### Solución 1. **Identificación de Entidades:** - Estudiante - Curso - Matrícula 2. **Identificación de Atributos:** - Estudiante: ID, Nombre, Fecha de Nacimiento - Curso: ID, Nombre, Créditos - Matrícula: EstudianteID, CursoID, Fecha de Inscripción 3. **Identificación de Relaciones:** - Un estudiante puede inscribirse en múltiples cursos, y un curso puede tener múltiples estudiantes inscritos (Relación muchos a muchos). 4. **Esquema Relacional:** | Tabla | Atributos | Clave Primaria (PK) | Clave Foránea (FK) | |-------------|------------------------------------------------|---------------------|--------------------------| | Estudiante | ID, Nombre, Fecha de Nacimiento | ID | | | Curso | ID, Nombre, Créditos | ID | | | Matrícula | EstudianteID, CursoID, Fecha de Inscripción | (EstudianteID, CursoID) | EstudianteID, CursoID | ## Conclusión En esta sección, hemos practicado el diseño de esquemas de bases de datos mediante la creación de diagramas Entidad-Relación y su transformación en esquemas relacionales. Estos ejercicios nos han permitido aplicar los principios de diseño de esquemas y comprender mejor cómo estructurar la información en una base de datos. En la siguiente sección, continuaremos con ejercicios prácticos sobre normalización para optimizar nuestros esquemas de bases de datos.
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