Actividad Unidad 2 – Base de Datos I
Participantes:
Luis Manuel Serrano Andrade
Julio Andrés Genes Beltrán
Santiago Leones Tapias
Docente: Vladimir Roa Pérez
Universidad de Cartagena
2025
Introducción
En el contexto actual, la información es uno de los activos más valiosos para cualquier
organización. Una base de datos bien estructurada permite almacenar, organizar y
acceder eficientemente a grandes volúmenes de información. En esta actividad de la
Unidad 2 del curso “Base de Datos I”, abordamos la creación de una base de datos a
partir del modelo relacional desarrollado anteriormente para una biblioteca.
El objetivo principal es utilizar dicho modelo relacional y aplicarlo en dos sistemas
gestores de bases de datos distintos (MySQL y PostgreSQL), haciendo uso del lenguaje
DDL (Data Definition Language) para definir la estructura de las tablas, y el lenguaje
DML (Data Manipulation Language) para insertar datos de ejemplo en las mismas.
Esta actividad tiene como propósito fortalecer nuestras habilidades en la implementación
práctica de bases de datos relacionales, fomentando una comprensión más profunda del
diseño, normalización y manipulación de datos a través de herramientas profesionales
que son ampliamente utilizadas en el ámbito laboral.
1. Explicación de la Actividad
En esta actividad debemos tomar el modelo relacional que hicimos en la unidad 2, basado
en una biblioteca, y crear la base de datos utilizando los lenguajes DDL (para crear las
tablas) y DML (para insertar datos). Además, debemos realizar esto en dos motores de base
de datos distintos: MySQL y PostgreSQL.
A continuación, se presenta el desarrollo completo y detallado de la base de datos de una
biblioteca.
2. Tablas del Modelo Relacional
- Autores (id_autor, nombre, nacionalidad)
- Libros (id_libro, titulo, anio, id_autor)
- Usuarios (id_usuario, nombre, email)
- Prestamos (id_prestamo, id_usuario, id_libro, fecha_prestamo, fecha_devolucion)
3. Creación en MySQL
3.1 DDL (Definición de Tablas)
CREATE DATABASE Biblioteca;
USE Biblioteca;
CREATE TABLE Autores (
id_autor INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100),
nacionalidad VARCHAR(50)
);
CREATE TABLE Libros (
id_libro INT AUTO_INCREMENT PRIMARY KEY,
titulo VARCHAR(150),
anio INT,
id_autor INT,
FOREIGN KEY (id_autor) REFERENCES Autores(id_autor)
);
CREATE TABLE Usuarios (
id_usuario INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100),
email VARCHAR(100) UNIQUE
);
CREATE TABLE Prestamos (
id_prestamo INT AUTO_INCREMENT PRIMARY KEY,
id_usuario INT,
id_libro INT,
fecha_prestamo DATE,
fecha_devolucion DATE,
FOREIGN KEY (id_usuario) REFERENCES Usuarios(id_usuario),
FOREIGN KEY (id_libro) REFERENCES Libros(id_libro)
);
3.2 DML (Inserción de Datos)
INSERT INTO Autores (nombre, nacionalidad) VALUES
('Gabriel García Márquez', 'Colombiana'),
('J.K. Rowling', 'Británica');
INSERT INTO Libros (titulo, anio, id_autor) VALUES
('Cien Años de Soledad', 1967, 1),
('Harry Potter y la Piedra Filosofal', 1997, 2);
INSERT INTO Usuarios (nombre, email) VALUES
('Luis Serrano', 'luis@[Link]'),
('Santiago Tapias', 'santiago@[Link]');
INSERT INTO Prestamos (id_usuario, id_libro, fecha_prestamo, fecha_devolucion) VALUES
(1, 1, '2025-06-01', '2025-06-15'),
(2, 2, '2025-06-02', '2025-06-16');
4. Creación en PostgreSQL
4.1 DDL (Definición de Tablas)
CREATE TABLE Autores (
id_autor SERIAL PRIMARY KEY,
nombre VARCHAR(100),
nacionalidad VARCHAR(50)
);
CREATE TABLE Libros (
id_libro SERIAL PRIMARY KEY,
titulo VARCHAR(150),
anio INT,
id_autor INT REFERENCES Autores(id_autor)
);
CREATE TABLE Usuarios (
id_usuario SERIAL PRIMARY KEY,
nombre VARCHAR(100),
email VARCHAR(100) UNIQUE
);
CREATE TABLE Prestamos (
id_prestamo SERIAL PRIMARY KEY,
id_usuario INT REFERENCES Usuarios(id_usuario),
id_libro INT REFERENCES Libros(id_libro),
fecha_prestamo DATE,
fecha_devolucion DATE
);
4.2 DML (Inserción de Datos)
INSERT INTO Autores (nombre, nacionalidad) VALUES
('Gabriel García Márquez', 'Colombiana'),
('J.K. Rowling', 'Británica');
INSERT INTO Libros (titulo, anio, id_autor) VALUES
('Cien Años de Soledad', 1967, 1),
('Harry Potter y la Piedra Filosofal', 1997, 2);
INSERT INTO Usuarios (nombre, email) VALUES
('Luis Serrano', 'luis@[Link]'),
('Santiago Tapias', 'santiago@[Link]');
INSERT INTO Prestamos (id_usuario, id_libro, fecha_prestamo, fecha_devolucion) VALUES
(1, 1, '2025-06-01', '2025-06-15'),
(2, 2, '2025-06-02', '2025-06-16');
Conclusión
Con esta actividad no solo aplicamos lo aprendido sobre modelos relacionales, sino que
también pusimos en práctica el uso de comandos SQL en dos entornos diferentes, lo cual
es muy útil ya que nos permite adaptarnos a distintos sistemas de gestión de bases de
datos. Esta experiencia refuerza nuestros conocimientos técnicos y nos prepara para
trabajar con bases de datos reales en contextos académicos y profesionales. También se
evidencia cómo un diseño lógico bien estructurado facilita el desarrollo y mantenimiento
de sistemas de información eficientes y confiables.