Creación y Manipulación de Bases de Datos Relacionales
Objetivos
Comprender qué es una base de datos relacional.
Diferenciar tablas, claves y relaciones.
Conocer qué es un DBMS y sus características principales.
Crear y manipular bases de datos y tablas con SQL.
Datos, Información y Conocimiento
Datos: Son hechos brutos, sin contexto ni interpretación. Ejemplo: "23", "Rojo", "2025-09-17".
Información: Son datos organizados y procesados que adquieren un significado. Ejemplo: "La temperatura es 23°C".
Conocimiento: Es la comprensión y uso de la información para tomar decisiones o resolver problemas. Ejemplo: "Con 23°C es una temperatura agradable para salir a caminar".
¿Qué es una Base de Datos Relacional?
Un sistema para almacenar datos en tablas relacionadas entre sí.
Se basa en el modelo relacional (filas = tuplas, columnas = atributos).
Usa SQL como lenguaje de definición y consulta de datos.
Una Base de Datos Relacional (BDR) organiza la información en tablas formadas por filas y columnas.
Cada fila es un registro único y cada columna representa un atributo.
Tabla: colección de datos sobre una entidad (ej: Usuarios).
Relación: vínculo entre tablas (ej: Usuarios y Pedidos).
Clave Primaria (PK): identificador único por fila.
Clave Foránea (FK): referencia a la PK de otra tabla.
Consulta (Query): petición de datos en SQL.
-- Ejemplo de consulta
SELECT Nombre FROM Usuarios WHERE ID = 1;
Importancia de las BDR
Organización: estructuran grandes volúmenes de datos.
Integridad: aseguran consistencia mediante reglas (PK, FK).
Escalabilidad: soportan desde apps pequeñas hasta grandes sistemas.
Sistema de Gestión de Bases de Datos (DBMS)
Un DBMS es el software que administra bases de datos,
permitiendo crear, modificar y consultar datos de forma eficiente y segura.
Interfaz de usuario: herramientas como MySQL Workbench, pgAdmin.
Control de acceso: define permisos para usuarios y roles.
Transacciones: garantizan operaciones atómicas (todo o nada).
Integridad de datos: evita duplicados y datos inválidos.
Consultas SQL: manipulación con SELECT, INSERT, UPDATE, DELETE.
Creación de una Base de Datos
-- Crear una base de datos
CREATE DATABASE MiBaseDeDatos;
-- Usar la base de datos
USE MiBaseDeDatos;
-- Crear con configuración (charset/collation)
CREATE DATABASE MiBaseDeDatos
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
-- Verificar bases de datos existentes
SHOW DATABASES;
Creación de Tablas
Las tablas almacenan los datos en filas y columnas, definidas por su estructura.
CREATE TABLE Usuarios (
ID INT PRIMARY KEY AUTO_INCREMENT,
Nombre VARCHAR(100),
Correo_Electronico VARCHAR(100) UNIQUE,
Fecha_Registro DATE
);
Inserta 3 clientes, 4 productos, 2 pedidos con 2 ítems cada uno.
Consulta: total gastado por cliente (usa JOIN y GROUP BY).
Consulta: los productos sin stock (<= 0).
-- Pista de consulta
SELECT cl.nombre, SUM(dp.cantidad * pr.precio) AS total
FROM clientes cl
JOIN pedidos pe ON pe.cliente_id = cl.id
JOIN detalle_pedido dp ON dp.pedido_id = pe.id
JOIN productos pr ON pr.id = dp.producto_id
GROUP BY cl.nombre
ORDER BY total DESC;
Tarea y Recursos
Extiende el modelo con proveedores y añade claves foráneas.
Escribe 5 consultas con JOIN y 2 con subconsultas.
Experimenta con transacciones y bloqueos (dos sesiones de SQL).
Opcional: crea vistas para reportes.
-- Ejemplo de vista
CREATE VIEW v_inventario_valorado AS
SELECT p.id, p.nombre, p.stock, (p.stock * p.precio) AS valor
FROM productos p;
Próxima clase: Diseño de esquemas y buenas prácticas