Módulo 8: Proyecto Práctico

8.1 Diseño y Creación de una Base de Datos

Definición de requisitos:

Aprenderás a identificar y definir los requisitos para tu proyecto práctico. Esto incluye comprender los objetivos, las entidades involucradas y las relaciones entre ellas.

Diseño de la base de datos:

Utilizando los requisitos definidos, diseñarás la estructura de la base de datos. Esto implica la identificación de tablas, atributos y relaciones entre tablas.

Creación de tablas y relaciones:

Llevarás a cabo la creación de la base de datos en MySQL. Definirás las tablas utilizando las sentencias CREATE TABLE y establecerás las relaciones utilizando claves primarias y foráneas.

Ejemplo: Diseño de una base de datos para una tienda en línea:

-- Creación de tablas
CREATE TABLE Productos (
  ID INT AUTO_INCREMENT PRIMARY KEY,
  Nombre VARCHAR(255),
  Precio DECIMAL(10, 2),
  Categoria VARCHAR(50)
);

CREATE TABLE Clientes (
  ID INT AUTO_INCREMENT PRIMARY KEY,
  Nombre VARCHAR(255),
  CorreoElectronico VARCHAR(255)
);

-- Creación de relaciones
CREATE TABLE Ordenes (
  ID INT AUTO_INCREMENT PRIMARY KEY,
  Cliente_ID INT,
  Fecha DATE,
  Total DECIMAL(10, 2),
  FOREIGN KEY (Cliente_ID) REFERENCES Clientes(ID)
);

CREATE TABLE Detalles_Ordenes (
  ID INT AUTO_INCREMENT PRIMARY KEY,
  Orden_ID INT,
  Producto_ID INT,
  Cantidad INT,
  FOREIGN KEY (Orden_ID) REFERENCES Ordenes(ID),
  FOREIGN KEY (Producto_ID) REFERENCES Productos(ID)
);

8.2 Consultas y Manejo de Datos

Implementación de consultas complejas:

Utilizarás las consultas SQL que has aprendido para realizar consultas complejas en tu base de datos, que involucran múltiples tablas y criterios de filtro.

Ejemplo: Consulta de productos comprados por un cliente:

SELECT c.Nombre, p.Nombre AS Producto, d.Cantidad, o.Fecha
FROM Clientes c
JOIN Ordenes o ON c.ID = o.Cliente_ID
JOIN Detalles_Ordenes d ON o.ID = d.Orden_ID
JOIN Productos p ON d.Producto_ID = p.ID
WHERE c.Nombre = 'Juan' AND o.Fecha BETWEEN '2023-01-01' AND '2023-06-30';

Inserción, actualización y eliminación de datos:

Aprenderás a insertar nuevos datos en tu base de datos, actualizar registros existentes y eliminar información cuando sea necesario.

-- Inserción de un nuevo producto
INSERT INTO Productos (Nombre, Precio, Categoria) VALUES ('Nuevo Producto', 25.99, 'Electrónica');

-- Actualización del precio de un producto
UPDATE Productos SET Precio = 29.99 WHERE Nombre = 'Nuevo Producto';

-- Eliminación de un cliente y sus órdenes
DELETE FROM Clientes WHERE Nombre = 'Juan';

Recursos adicionales:

Documentación de MySQL sobre Diseño de Bases de Datos

Ejemplos de Diseño de Bases de Datos

Documentación de MySQL sobre Manipulación de Datos