Clase 03 - UADE - SSD - Construcción Data Warehouse
Clase 03 - UADE - SSD - Construcción Data Warehouse
➢ Lo que se define en esta etapa son las tablas del Data Warehouse
(DW)
➢ Tienen una columna por attribute form + una columna por cada padre
(del atributo)
Tablas de Relación
Look Up (LK_)
Tablas Relación (REL_) Base (BT_)
De hechos / Fact tables
Aggregate (AGG_)
➢ Tienen una columna por cada hecho + una columna por cada
atributo del nivel al cual se conocen los hechos
Tablas de Hechos
Look Up (LK_)
Tablas Relación (REL_) Base (BT_)
De hechos / Fact tables
Aggregate (AGG_)
Las tablas base o base tables son las que
guardan los hechos al mínimo nivel de detalle.
➢ Son imprescindibles en términos de información
➢ Sus filas se llenan a partir de los datos que provienen de los sistemas OLTP
Tablas de Hechos
Look Up (LK_)
Tablas Relación (REL_) Base (BT_)
De hechos / Fact tables
Aggregate (AGG_)
LK_PROVINCIA
Provincia_SK Provincia_DESC
1 Santa Fe
Una fila por elemento del
2 Buenos Aires atributo
3 Chubut
... ...
11 Junín 1
Ciudad
@ID
12 Pehuajó 1
@DESC
31 Paso del Sapo 3
Ventas $
Unidades Vendidas
BT_VENTAS_EMP_DIA_ART
Empleado_SK Dia_SK Articulo_SK Ventas_$ Unid_Vend
111 20130102 17 $2 4
112 20130102 17 $4 8
113 20130102 17 $4 8
... ... ... ... ...
Ejemplo: Tablas Agregadas
BT_VENTAS_EMP_DIA_ART
Empleado_SK Dia_SK Articulo_SK Ventas_$ Unid_Vend
111 20130102 17 $2 4
112 20130104 17 $4 8
113 20130107 17 $4 8
... ... ... ... ...
AGG_VENTAS_EMP_MES
Empleado_SK Mes_SK Ventas_$ Unid_Vend
111 201301 $4,200 315
112 201301 $6,700 405
113 201301 $8,200 617
... ... ... ...
Ventajas del modelado dimensional
✓ Fácil de extender
Item
Category ITEM
Primary Item_sk
Dimension Item_Name
Genre_sk
Genre
SALES_TRANS
Sale_Date_sk
Item Fact Table Store_sk
Item_sk
Cust_sk
Sales Amt
Sales Unit
Snowflake Schema
Completamente normalizado
✓Las tablas lookup contienen el id propio, la descripción y CATEGORY
el id del padre. Category_sk
Category_Name
SALES_TRANS
Sale_Date_sk
ITEM
Store_sk
Item_sk
Item_sk
Item_Name
Cust_sk
Genre_sk
Sales Amt
Sales Unit
Snowflake Schema
Moderadamente Normalizado
✓Las tablas lookup tienen el id propio, su CATEGORY
descripción, y todos los id de sus ancestros Category_sk
Category_Name
SALES_TRANS
Sale_Date_sk ITEM
Store_sk Item_sk
Item_sk Item_Name
Cust_sk Genre_sk
Sales Amt Category_sk
Sales Unit
Snowflake Schema
Completamente Desnormalizado
CATEGORY
Category_sk
✓Las tablas lookup tienen el id propio, su descripción, y Category_Name
todos los id y descripciones de sus ancestros
SALES_TRANS ITEM
Sale_Date_sk Item_sk
Store_sk Item_Name
Item_sk Genre_sk
Cust_sk Genre_Name
Sales Amt Category_sk
Sales Unit Category_Name
Tipos de Hechos
✓ Aditivos: son hechos que pueden ser sumados a través de todas las
dimensiones.
✓ Semi aditivos: se pueden sumar en algunas dimensiones y en otras
no.
✓ No aditivos: no tienen sentidos de ser sumadas.
SALES_TRANS
Sale_Date_sk
Store_id_sk BALANCE
Item_sk Balance_Date_sk
Sales Amt Account_sk
Sales Unit Current Balance
Profit Margin
Tipos de Fact Tables
➢ Acumulativas: describen que fue pasando durante un periodo de tiempo.
Por lo general: los hechos son en su mayoría aditivos
Id_atributos
SALES_TRANS Indicarán la granularidad
Sale_Date_sk
Store_sk
Item_sk
Cust_sk
Sales Amt
Sales Unit
Facts
Slowly Changing Dimensions
➢ Los códigos no cambian pero las descripciones si. No cambian todos los
días, sino que lo hacen ocasionalmente.
Tipo 1: Reescribo el registro perdiendo el valor anterior
Otra forma…
SK_Cliente Id_cliente Cod_cliente Nombre Dirección Estado_civil Versión
Id_Cliente
FACT_TABLE
Nombre
SK_cliente
Dirección
SK_.....
Fecha Nac
SK_.....
Ingresos
Hechos
Nivel_Educacion
Cantidad_Hijos Desventajas
• Pierdo nivel de información
Estado_Civil • Para navegar jerarquías tengo que pasar por la fact
Puntaje_Credito
Puntaje_Compras
Rapidily Changing Monster Dimensions
1° Separo los atributos “estáticos” de los “dinámicos”
LK_CLIENTE
FACT_TABLE
SK_cliente
Estáticos SK_Cliente
Id_Cliente
SK_Demografia
Nombre
LK_DEMOGRAFIA SK_.....
Dirección
SK_demografia Hechos
Fecha Nac
Ingresos
Nivel_Educacion
Cantidad_Hijos
Dinámicos Estado_Civil
Puntaje_Credito
Puntaje_Compras
Rapidily Changing Monster Dimensions
Puede pasar que los rangos que utilizo sean muchos y la dimensión
LK_DEMOGRAFÍA termine siendo muy grande… Entonces separo los
atributos dinámicos de los volátiles.
LK_CLIENTE FACT_TABLE
Estáticos SK_cliente SK_cliente
Id_Cliente SK_demografia
Nombre SK_cred_comp
Dirección Hechos
LK_DEMOGRAFIA
Fecha Nac
SK_demografia
LK_CRED_COMP
Ingresos
Nivel_Educacion SK_cred_comp
Dinámicos Volátiles
Cantidad_Hijos Puntaje_Credito
Estado_Civil Puntaje_Compras
Rapidily Changing Monster Dimensions
En definitiva cuando una dimensión es muy grande y tiene
muchos cambios podríamos:
TIEMPO
CLIENTE
FACT_VENTA
COMPROBANTE PRODUCTO
Granularidad
• Comprobante, producto.
Degenerate Dimensions
LK_COMPROBANTE
Con cada venta voy a insertar un
SK_comp nro_comp tipo
registro en la LK
1 1245214 A
2 2323452 B
BT_VENTA
1 1 101 10/05/2011 5
1 1 540 10/05/2011 10
2 3 350 10/05/2011 3
2 3 540 10/05/2011 15
Degenerate Dimensions LK_TIPO_COMP
Con cada venta voy a insertar un
Sk_Tipo_Comp tipo
registro en la LK
1 A
2 B
BT_VENTA
Sk_Tipo_Comp Sk_cliente Sk_producto Comprobante fecha Volumen_Vta
Tengo 3 posibilidades:
✓ Poner esos atributos en la Fact Table.
✓ Manejar cada atributo como una dimensión separada y crear una
LK para cada atributo.
✓ Sacarlos del diseño.
✓ Crear una Junk Dimension