(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa
Data Warehouse
Data Warehouse 2 min

Cómo modelar un data warehouse con esquema en estrella

João Barros 20 de June de 2023 2 min de lectura

Un data warehouse bien modelado responde preguntas de negocio en segundos. El esquema en estrella — una tabla de hechos rodeada de dimensiones — es el patrón más usado para lograrlo.

Requisitos previos

  • Nociones básicas de SQL y de bases de datos relacionales.
  • Un motor de base de datos (SQL Server, PostgreSQL o equivalente).
  • Una fuente de datos transaccional para modelar (por ejemplo, ventas).

Paso 1: Identificar el proceso de negocio

Elige el proceso a analizar — por ejemplo, ventas. Cada fila de la tabla de hechos será una transacción de venta.

Cómo modelar un data warehouse con esquema en estrella

Paso 2: Definir la tabla de hechos

La tabla de hechos guarda las métricas (medidas) y las claves hacia las dimensiones:

CREATE TABLE fact_vendas (
    data_key    INT NOT NULL,
    produto_key INT NOT NULL,
    cliente_key INT NOT NULL,
    quantidade  INT,
    valor       DECIMAL(12,2)
);

Paso 3: Crear las dimensiones

Las dimensiones describen el contexto (quién, qué, cuándo):

CREATE TABLE dim_produto (
    produto_key INT PRIMARY KEY,
    nome        VARCHAR(120),
    categoria   VARCHAR(60)
);

Repite para dim_cliente y dim_data. Usa claves surrogate enteras (terminadas en _key) en lugar de las claves de negocio.

Paso 4: Conectar hechos y dimensiones

Cada clave de la tabla de hechos apunta a la clave primaria de la dimensión correspondiente. Este vínculo simple es lo que da la forma de estrella.

Verificar el resultado

Ejecuta una consulta de prueba uniendo los hechos a las dimensiones:

SELECT p.categoria, SUM(f.valor) AS total
FROM fact_vendas f
JOIN dim_produto p ON p.produto_key = f.produto_key
GROUP BY p.categoria;

Conclusión

Con una tabla de hechos y algunas dimensiones tienes la base de cualquier informe rápido. ¿Qué proceso de negocio de tu organización se beneficiaría más de un modelo en estrella?

Compartir: