1 of 14

MODELANDO LA BASE DE DATOS

2 of 14

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

3 of 14

VENTAJAS

  • Ventajas del Modelo Entidad-Relación:
  • Visualización clara: Permite entender la estructura de la base de datos fácilmente.
  • Reducción de errores: Ayuda a identificar redundancias y problemas de diseño.
  • Independencia: Se centra en la lógica de los datos independientemente de la implementación.
  • Normalización: Facilita la creación de una estructura de base de datos eficiente.

4 of 14

Proceso de Creación

  • Identificar entidades: Definir los objetos principales del sistema.
  • Determinar relaciones: Definir cómo interactúan las entidades.
  • Añadir atributos: Especificar las propiedades de cada entidad.
  • Establecer cardinalidad: Definir los números de asociación (1:1, 1:N, N:M).

5 of 14

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:

  • Tabla: Nombre de la entidad.
  • Columna/Campo: Atributo de la entidad.
  • Fila/Tupla: Registro único de datos.
  • Llave Primaria (PK): Identificador único dentro de la tabla.
  • Llave Foránea (FK): Campo que conecta dos tablas.

6 of 14

Modelado Dimensional

  • Es una técnica de diseño de bases de datos optimizada para el análisis de grandes volúmenes de datos y la toma de decisiones.A diferencia del modelado tradicional (ER o normalizado), que busca evitar la redundancia, el modelado dimensional busca la rapidez en la lectura y la facilidad de comprensión para el usuario final. Es la base de lo que conocemos como Data Warehouse.

7 of 14

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.

8 of 14

FACT TABLE

  • Tabla de Hechos (Fact Table):
  • Contenido: Métricas, medidas o hechos (ej. cantidad_vendida, total_precio).
  • Estructura: Contiene claves foráneas (ID_Producto, ID_Cliente, ID_Tiempo) que apuntan a las tablas de dimensiones.
  • Características: Suele tener gran volumen de filas, pero pocas columnas. Crece verticalmente con el tiempo.
  • Ejemplo: fact_ventas (id_fact, id_producto, id_cliente, fecha_id, cantidad, total).

9 of 14

DIM TABLE

  • Contenido: Atributos descriptivos o contextuales (ej. nombre del producto, categoría, nombre del cliente).
  • Estructura: Tiene una clave primaria propia y suele estar desnormalizada para optimizar consultas.
  • Características: Menor número de filas, pero más columnas. Ofrece contexto como quién, qué, dónde, cuándo y cómo.
  • Ejemplos: dim_producto (id_producto, nombre, marca, categoria), dim_tiempo (id_tiempo, fecha, mes, año).

10 of 14

11 of 14

EJEMPLO

  • DIM TABLE: PRODUCTOS

CREATE TABLE dim_productos (

producto_id INT PRIMARY KEY,

nombre VARCHAR(100),

categoria VARCHAR(50),

marca VARCHAR(50));

  • DIM TABLE: TIEMPO

CREATE TABLE dim_tiempo (

tiempo_id INT PRIMARY KEY,

fecha DATE,

mes INT,

anio INT,

trimestre INT);

  • FACT TABLE: VENTAS

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));

12 of 14

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

  • SELECT: Define qué columnas quieres ver.
  • FROM: Define de qué tabla provienen los datos.
  • WHERE: (Opcional) Filtra las filas según una condición.
  • ORDER BY: (Opcional) Ordena los resultados.

13 of 14

CASOS:

  • A. Seleccionar todo (*)Si quieres ver toda la tabla sin excepciones:

SELECT * FROM empleados;

  • B. Seleccionar columnas específicas

Es mejor práctica pedir solo lo que necesitas para ahorrar recursos.

SELECT nombre, salario FROM empleados;

  • C. Filtrar datos con WHERE

¿Quieres solo a los que ganan más de 3000?

SELECT * FROM empleados

WHERE salario > 3000;

14 of 14

CASOS:

  • D. Ordenar resultados con ORDER BY

Por defecto ordena de forma ascendente (ASC), pero puedes usar DESC para descendente.

SELECT nombre, salario

FROM empleados

ORDER BY salario DESC;

  • E. Funciones de Agregación

A veces no quieres filas individuales, sino resúmenes (contar, sumar, promediar).

    • COUNT(): Cuenta registros.
    • SUM(): Suma valores numéricos.
    • AVG(): Calcula el promedio.

SELECT

SUM(salario) AS nomina_total,

AVG(salario) AS salario_promedio,

COUNT(*) AS total_empleados

FROM empleados

WHERE departamento = 'Ventas';