MODELANDO LA BASE DE DATOS
CONCEPTO
El Modelo Entidad-Relación (MER) es una herramienta conceptual de modelado de datos, creada por Peter Chen en 1976, que representa visualmente la estructura de una base de datos mediante entidades, atributos y relaciones. Utiliza diagramas (DER) para organizar cómo personas, objetos o conceptos se conectan, facilitando el diseño lógico antes de la implementación física
MODELO
ENTIDAD
RELACION
VENTAJAS
Proceso de Creación
MODELO RELACIONAL�
Es la representación lógica de datos mediante tablas (relaciones) de filas y columnas, basada en la teoría de conjuntos.
Componentes:
Modelado Dimensional
MODELADO DIMENSIONAL
Supongamos que creamos una base de datos de una tienda, tenemos que identificar las entidades FACT y las maestras, las FACT son en las que se realizan gran cantidad de transacciones, mientras que las maestras o DIM son las que nos dan datos generales o esenciales del negocio.
en este caso la entidad FACT es la tabla ventas, las demas seran las DIM y estaran relacionadas a la FACT ventas mediante las foreign key.
FACT TABLE
DIM TABLE
EJEMPLO
CREATE TABLE dim_productos (
producto_id INT PRIMARY KEY,
nombre VARCHAR(100),
categoria VARCHAR(50),
marca VARCHAR(50));
CREATE TABLE dim_tiempo (
tiempo_id INT PRIMARY KEY,
fecha DATE,
mes INT,
anio INT,
trimestre INT);
CREATE TABLE fact_ventas (
venta_id INT PRIMARY KEY,
producto_id INT,
tiempo_id INT,
cantidad INT,
monto_total DECIMAL(10,2),
FOREIGN KEY (producto_id) REFERENCES dim_productos(producto_id),
FOREIGN KEY (tiempo_id) REFERENCES dim_tiempo(tiempo_id));
SENTENCIA SELECT
La sentencia SELECT en MySQL se utiliza para recuperar datos de una o más tablas. Permite seleccionar columnas específicas (SELECT col1, col2) o todas (SELECT *), filtrando resultados con WHERE, ordenando con ORDER BY y limitando filas con LIMIT. Es la base para consultar información en bases de datos
CASOS:
SELECT * FROM empleados;
Es mejor práctica pedir solo lo que necesitas para ahorrar recursos.
SELECT nombre, salario FROM empleados;
¿Quieres solo a los que ganan más de 3000?
SELECT * FROM empleados
WHERE salario > 3000;
CASOS:
Por defecto ordena de forma ascendente (ASC), pero puedes usar DESC para descendente.
SELECT nombre, salario
FROM empleados
ORDER BY salario DESC;
A veces no quieres filas individuales, sino resúmenes (contar, sumar, promediar).
SELECT
SUM(salario) AS nomina_total,
AVG(salario) AS salario_promedio,
COUNT(*) AS total_empleados
FROM empleados
WHERE departamento = 'Ventas';