Está en la página 1de 236

Qu es un Data

Warehouse?

Definicin amplia de BI
Propone la utilizacin por parte de la empresa de un conjunto de
herramientas tecnolgicas que sean capaces, con su inteligencia, con
su capacidad para almacenar datos de forma relacionada y para analizar
un elevado volumen de datos, de proporcionar un conocimiento en
torno al mbito variopinto y amplio del anlisis y la gestin de la
empresa.

Componentes de una solucin de


BI

Evolucin de la filosofa de la
organizacin de datos
Evolucin de la
tecnologa de
los
computadores

Evolucin de
las bases de
datos

Programas
capaces
trabajar sobre
las bases de
datos para
conseguir
informacin

Tecnologa de gestin
de datos

Requisitos de
los usuarios

Aplicacin

Data Warehouse
El objetivo ltimo de un almacn de datos es
integrar datos corporativos, residentes en bases
de datos operacionales de la organizacin, en
un nico repositorio sobre el cual los usuarios
puedan realizar consultas o informes y hacer
anlisis de datos.

La tecnologa de almacenes de datos


integra las tcnicas de bases de datos y las
tcnicas de anlisis de datos.

Almacn de datos
Base de Datos diseada con un objetivo de explotacin
distinto que el de las bases de datos de los sistemas
operacionales.

Sistema Operacional
(OLTP)
Sistema de Almacn
de Datos
(DW)

BD orientada al
proceso

BD orientada al
anlisis

Qu es Data Warehouse?
Es una coleccin de datos orientada a temas, integrados, no voltiles
y variantes en el tiempo, organizada para soportar necesidades
empresariales.

Bill Inmon 1992

Las definiciones de los


proveedores
Segn Oracle: Un data warehouse es una
coleccin de datos orientada a temas
especficos, integrada no voltil, y variante en
el tiempo, organizada para apoyar las
necesidades de administracin

Segn Informix: Un data warehouse no es un


producto que puede ser comprado en el
mercado, sino mas bien es un concepto que
debe de ser construido.

Qu es Data Warehouse?
Coleccin de datos diseada
para dar apoyo a los procesos
de toma de decisiones

caractersticas

orientada hacia
la informacin*
relevante de la
organizacin

integrada

variable en el
tiempo

no voltil

Bill Inmon 1992

Orientada hacia la informacin relevante


de la organizacin
Se disea para consultar eficientemente informacin relativa a las
actividades (ventas, compras, produccin, ...) bsicas de la organizacin,
no para soportar los procesos que se realizan en ella (gestin de
pedidos, facturacin, etc).

Informacin
financiera
de clientes

Planes de
Inversin

Accione
s
Prstamo
s

Sistemas Operacionales

Data Warehouse
Seguros

Integrada
Integra datos recogidos de diferentes sistemas operacionales de
la organizacin (y/o fuentes externas).

Aplicacin
Cuentas de
Ahorro
Aplicacin
Cuentas
Corrientes
Aplicacin
Prstamos
Entorno Operacional

Objeto de inters
=
Cliente

Data Warehouse

Variable en el tiempo
Los datos son relativos a un periodo de tiempo y deben ser
incrementados peridicamente.
Los datos son almacenados como fotos (snapshots)
correspondientes a periodos de tiempo.

Tiempo

Datos

01/97 Datos de Enero


02/97 Datos de Febrero
03/97 Datos de Marzo

Data
Warehouse

Nota: El periodo de tiempo cubierto por un


DW varia entre 2 y 10 aos.

No voltil
Los datos almacenados no son actualizados, slo son
incrementados.

Carga

Bases de datos operacionales

INSERT
UPDATE

DELETE

SELECT

Warehouse

SELECT

Ventajas
Almacenes de datos

rentabilidad de
las inversiones
realizadas para
su creacin

aumento de la
competitividad
en el mercado

aumento de la
productividad de
los tcnicos de
direccin

Problemas
Almacenes de datos

infravaloracin del
esfuerzo necesario
para su diseo y
creacin

infravaloracin de los
recursos necesarios
para la captura, carga
y almacenamiento de
los datos

incremento
continuo de los
requisitos de los
usuarios

privacidad de
los datos

OLTP y OLAP
Sistemas OLTP
(On-Line Transaction Processing)

Sistemas OLAP
(On-Line Analitical Processing)

- Datos al mximo detalle


- Datos normailizados
- Se actualizan por operacin
- Mexcla de entradas, modificaciones
consultas, eliminaciones
- Poco historial
- Voltil
- Consultas continuas y no planificadas
- Si el sistema se cae esto implica no
poder hacer la operacin, prdida
negocio
- Modelo Entidad - Relacin
- Base de datos medianas
- Los datos son dinmicos
- Tiempo de respuesta en segundo

- Datos con criterio de agrupacin


- Datos normalizados y no normalizados
- Se actualiza por procesos batch
- Fundamentalmente consultas

Diseana para reflejar operaciones

- Contiene histricos
- Estable
- Consultas planificadas
- Si el sistema se cae implica no
tener acceso a la informacin
- Modelo Multidimensional
- Base de datos grandes
- Los datos son estticos
- Tiempo de respuesta variable(min or hor)

Diseado para reflejar gestin

Arquitectura de un sistema de almacn de


datos
SAD

gestor
del AD

Datos Op. 1
metadatos

datos
agregados gestor de
consultas

gestor de
carga

herramientas
de consultas
e informes

datos
agregados

Datos Op. 2
datos de
detalle

AD

herramientas
de OLAP

gestor
del AD
Datos Op. 3
rea de
almacenamiento
intermedio

herramientas
de EIS

copias

herramientas
de Data Mining

Componentes
datos operacionales: el origen de los datos puede ser: bases
de datos operacionales de la organizacin, bases de datos
privadas, bases de datos pblicas, etc.

gestor de carga: permite realizar las funciones de extraccin


de datos de las fuentes externas, transformacin (limpieza,
consolidacin, ...) y la carga del AD, utiliza un almacenamiento
intermedio y realiza las siguientes operaciones:
extraccin de los datos.
transformacin de los datos: limpieza, estandarizacin, etc.

carga inicial del almacn: ordenacin, agregaciones, etc.


refresco del almacn: operacin peridica que propaga los
cambios de las fuentes operacionales al almacn de datos
(herramientas* del fabricante o programas de la organizacin).

ETT (extraccin, transformacin y transporte)


ETL (extraccin, transformacin y carga (load))

Componentes
gestor (servidor) del AD: permite realizar todas las funciones de
definicin y mantenimiento del almacn de datos: definicin, agregacin
de datos, vistas, creacin de ndices, copias, etc. (herramienta del
fabricante).

gestor de consultas: ejecucin de consultas. (herramienta del


fabricante).

metadatos: documentacin sobre los datos (origen, descripcin,


nivel de agregacin, almacenamiento, etc).

herramientas de consulta: herramientas para disear


consultas e informes, herramientas de desarrollo de aplicaciones
de usuario final, herramientas de anlisis de datos (OLAP),
herramientas de minera de datos (DATA MINING), herramientas
dirigidas a ejecutivos (EIS). (herramientas de diferentes
fabricantes).

Cundo es necesario OLAP?

Principales Beneficios de OLAP

ROLAP
Relational OLAP. Tanto los datos precalculados y
agregados como los datos fuente residen en la misma
base de datos relacional. Si el Data Warehouse es muy
grande o se necesita rapidez por parte de los usuarios
puede ser un problema.
ROLAP es una implementacin OLAP que almacena los
datos en un motor relacional.
MicroStrategy: herramienta OLAP que trabaja sobre ACCESS,
ORACLE, SQL Server, ...
Discoverer: herramienta OLAP de ORACLE.
Fuente: Wikipedia

MOLAP
MOLAP(Multidimensional OLAP) es una implementacin
OLAP que almacena los datos en una base de datos
multidimensional. Optimiza las queries, pero requiere ms
espacio de disco y uso de estrategias diferentes en el
software.
IQ de SYBASE
Essbase de TERADATA
Express de ORACLE

Fuente: Wikipedia

HOLAP
HOLAP (Hybrid OLAP) almacena algunos datos en un motor
relacional y otros en una base de datos multidimensional.
Los datos agregados y precalculados se almacenan en
estructuras multidimensionales y los de menor nivel de
detalle en el relacional.

Fuente: Wikipedia

Tipos de Implementaciones OLAP


DOLAP es un OLAP orientado a equipos de escritorio
(Desktop OLAP). Trae toda la informacin que necesita
analizar desde la base de datos relacional y la guarda en el
escritorio. Desde ese momento, todas las consultas y anlisis
son hechas contra los datos guardados en el escritorio..

Fuente: Wikipedia

Data Mart
Subconjunto de un almacn de datos.
Se definen para satisfacer las necesidades de
un departamento o seccin de la organizacin.
Contiene menos informacin de detalle y mas
informacin agregada.

Construyendo un Data
Warehouse
BUILDING THE DATA MART
OR THE DATA
WAREHOUSE FIRST?
W.H. Inmon

Data Warehouse
El objetivo del Data Warehouse es incorporar, tanto en
metadata como en a construccin fsica de la base de datos,
la representacin del modelo de informacin
previamente diseado, el cual responde a las necesidades
previas identificadas de anlisis e informacin.

Construir un Data Warehouse


Primer Procedimiento
Construir un almacn central de datos con fines de
explotacin de gestin de la empresa, teniendo en cuenta
que dicho almacn recoger los datos necesarios para el
modelo o conjunto de modelos en gestin.
Se toma la decisin de construir completamente el almacn
de los datos

Desventajas de este modelo


La inversin inicial. El costo de hardware y software, se debe
pensar en Terabytes.
Mover datos con fines departamentales, corporativos o que
se interrelacionen entre departamento.
Cmo sabemos que tenemos el modelo de informacin
completo?
Analizando las empresas de la misma industria.
Analizando los procesos mas eficaces y eficientes, de otras empresas.

Construir un Data Mart a la vez


Segundo Procedimiento
Un Data Mart es un Data Warehouse con sentido o
finalidad departamental.
La construccin se la hace desde los data marts
departamentales para conseguir el data warehouse
corporativo.

Ventajas de este modelo


Las necesidades de informacin nacen de una manera mas
fluida.
Las inversiones iniciales en maquinas y software son
menores; y pueden escalar progresivamente.
Los datos puedes estar separados.
El aprendizaje es mas eficiente, tanto por el manejo de la
informacin como de la verificacin de los modelos de
informacin.

Construyendo directamente el Data


Mart desde la aplicacin

BUILDING THE DATA MART OR THE DATA


WAREHOUSE FIRST? Por W.H. Inmon

BUILDING THE DATA MART OR THE DATA


WAREHOUSE FIRST? Por W.H. Inmon

Construyendo el Data Mart desde los


niveles de detalle de los datos

BUILDING THE DATA MART OR THE DATA


WAREHOUSE FIRST? Por W.H. Inmon

BUILDING THE DATA MART OR THE DATA


WAREHOUSE FIRST? Por W.H. Inmon

Relacin entre los niveles de


detalle y los data marts

Comprendiendo el
Modelo de Negocio
Mastering Data Warehouse Design
Claudia Imhoff

Las preguntas que debemos de


responder
Identificar el negocio
Obtener las preguntas por rea del negocio
Descripcin de los procesos involucrados en la toma de decisiones

Actividades para obtener los


modelos
1.

Entrevista directa con las personas para conocer sus


perspectivas del negocio.
Obtiene informacin individual

2.

Reunin de facilitacin que consiga el consenso de los


participantes sobre el modelo de informacin.
Obtiene informacin en grupo

Entrevista
Consideraciones:
Buscar a los consumidores de informacin.
Estudiar el lenguaje del negocio antes de realizar la
entrevista.
Llevar una conversacin fluida
Posiblemente necesite una segunda reunin.
Si es posible concurra en pareja con otra. persona.

Los previos de la sesin de


facilitacin
Productos
Data Marts
Modelos de consultas

Proveedores
Tomadores de decisin
Las preguntas del mercado de la competencia

Metodologa
Criterio Individual
Propuesta Grupal
Acuerdo Colectivo

Materiales
Los recursos previos para preparar las sesiones de trabajo:
Informacin detallada
Mails con informacin resumida
Recordatorios

Reunin de facilitacin
Introduccin: Los participantes se presentan ellos mismos y
se presenta los objetivos de la sesin.
Educacin: Se relevan los conceptos y los procesos.
Brainstorming: Es usado para desarrollar listas potenciales
de preguntas, dimensiones y hechos.
Refinamiento: La lista potencial es revisada y refinada para
arribar a un conjunto especifico.
Conclusin: Se presentan los resultados para revisar su
respuesta

Resultados de una sesin de


brainstorming

Resultados del proceso de


refinamiento o depuracin

Resultados del proceso de


refinamiento o depuracin

El modelo PUNTO(DOT)
Designing a Data Warehouse: Supporting
Customer Relationship Management

Chris Todman

DOT Model
Identifica las dimensiones de una consulta.
Las respuesta a las consultas.
Objetivo: Dinamizar la forma de obtener Data Marts
con los usuarios de negocios sin necesidad de
hablar de tablas y relaciones entre tablas.

El reporte de ventas: 2D y 3D

El punto es un valor
numrico.

El reporte de ventas: +3D


Nombre de las dimensiones:
Identifica las dimensiones

.: Representa a los valores de


Hecho

Conector:
Relaciona a las dimensiones y el punto

Las dimensiones se comienzan a


jerarquizar

Un DOT Model Completo


Se pueden tener varios hechos,
dependiendo de las reas
relacionadas.
Las dimensiones pueden ser
compartidas por las areas
relacionadas.

Anlisis Multidimensional

Modelo de Consulta

Modelo de Consulta

Modelo de Consulta

Modelo de Consulta

Ejemplo Organizacin:
Cadena de supermercados.
Actividad objeto de anlisis: ventas de productos.
Informacin registrada sobre las ventas: "ventas diarias de
productos en los supermercados de la cadena.
Ejemplo: "del producto Coca-Cola 33cl se han vendido en el
almacn Almacn nro.1 el da 12/01/1999, 50 unidades por un
importe de 70.

Para hacer el anlisis de ventas no interesa la venta individual


(ticket) realizada a un cliente sino las ventas diarias de
productos en los distintos almacenes de la cadena.

- Dimensiones que
caracterizan la actividad.

Producto

- La actividad de ventas se
registra a nivel diario para
cada producto y cada
almacn

Tiempo
(da)

importe
unidades

-Actividad que es objeto de


anlisis con los indicadores
que interesa analizar

-Importe total de ventas por


almacn y producto

Almacn

OLAP
Producto
Almacn

Leche

Vino

Jabn

Agua

Almacn1

2000000 1000000

3000000 2000000

Almacn2

1000000 1500000 8000000 2400000

Tabla multidimensional

Presentaciones del esquema


multidimensional en una herramienta
OLAP:
-representacin en estrella
-representacin en cubo de datos

Modelo de Consulta
Dimensiones que
caracterizan la actividad.

Tiempo

Producto

(da)

importe
unidades

Almacn

Modelo en estrella:
-actividad (centro)
-dimensiones (puntas)

Actividad que es objeto de


anlisis con los indicadores
que interesa analizar

Modelo de Cubo de Datos


Cliente

Almacn

Almacn

Tiempo

Tiempo

Ventas

Ventas
3 dimensiones
Producto

Producto
4 dimensiones
Modelo en cubo de datos:
-actividad (celda)
-dimensiones (ejes)

Atributos Descriptores
Dimensiones con atributos
descriptores.
Marca
Da de la
semana

Descripcin
Categora

Mes

Departamento

Trimestre

Da

Nro_producto

Ao

Tipo

importe

unidades
Nro_almacn
Nombre

Actividad que es objeto de


anlisis con los indicadores
que interesa analizar

Ciudad

Tipo

Regin

Modelo Multidimensional
en un esquema multidimensional se representa una
actividad que es objeto de anlisis (hecho) y las
dimensiones que caracterizan la actividad (dimensiones).
la informacin relevante sobre el hecho se representa
por un conjunto de indicadores (medidas o atributos de
hecho).
la informacin descriptiva de cada dimensin se
representa por un conjunto de atributos (atributos de
dimensin).

Modelo Multidimensional
hecho

Marca
Descripcin

Da de la
semana

Categora
Departamento

Mes

Nro_producto

Trimestre

Da
Ao

Tipo

importe
unidades
Nro_almacn

medidas

Nombre
Ciudad

atributos

Tipo

Regin

dimensin

El Atributo Identificador de las


Dimensiones
Marca
Descripcin

Da de la
semana

Categora
Departamento

Mes

Nro_producto

Trimestre

Da

Tipo

Ao

importe
unidades
Nro_almacn
Nombre
Ciudad

Tipo

Regin

Los valores (instancias)


de la dimensin Tiempo
son das del calendario

Marca
Descripcin

Da de la
semana

Categora
Departamento

Mes

Nro_producto

Trimestre

Da

Tipo

Ao

importe

Los valores (instancias)


unidades
de la dimensin Producto
son productos ofertados
Los valores (instancias)
por la cadena
de la dimensin Almacn
son almacenes de la
cadena

Nro_almacn
Nombre
Ciudad
Tipo
Regin

Jerarquas en las dimensiones de


los atributos
nro. producto

categora

nro. producto

tipo

nro_almacn

ciudad

nro_almacn

tipo

da

mes

departamento
departamento

Producto

regin
Almacn

trimestre

ao

Tiempo

Jerarquas basadas generalmente en dependencias


funcionales entre los atributos de la dimensin.

Jerarquas en las dimensiones de


los atributos
Departamento

Marca
Categora
Descripcin

Ao

Da de la
semana

Trimestre
Mes

Nro_producto

Da

Tipo

importe
unidades
Nro_almacn
Ciudad
Tipo

Regin
Nombre

Los atributos de las dimensiones van a servir


para:
expresar condiciones que restringen el subconjunto
de datos del AD que se desea consultar
definir los parmetros de la consulta: nivel de detalle
(o agregacin) al que se desean presentar los datos
seleccionados

aadir informacin descriptiva a los elementos de la


dimensin
las jerarquas definidas entre los atributos de las

dimensiones son una gua para "navegar" por los datos


seleccionados, cambiando el nivel de agregacin con
el que son presentados

Atributo de: Agrupacin, Descriptivo y


Seleccin
Departamento
Marca
Categora
Descripcin

Ao

Da de la
semana
Trimestre
Mes

Nro_producto

Da

Tipo

importe
atributo de
agrupacin

unidades
Nro_almacn

Importe total de ventas por


almacn, para almacenes de
tipo "gran superficie", indicando
el nombre completo del
almacn.

Ciudad
Tipo

atributo de
seleccin

Regin
Nombre

atributo
descriptivo

OLAP
Marca
Da de la
semana

Categora

Mes
Departamento
Da

Nro_producto

Ao

Tipo

importe
unidades
Nro_almacn

Importe total de ventas por


ao, regin y departamento

Ciudad
Tipo

Regin
Nombre

Trimestre

departamento

regin

ao

importe
OLAP

SELECT ...........
departamento

ROLAP
regin

ao

informe

Importe de ventas

Modelo Multidimensional
Tiempo

Almacn

fecha

nro_almacn

semana

nombre

mes

Producto
nro_producto

descripcin
marca
categora
departamento
peso
unidades_peso
tipo_envase
diettico
...

direccin

ao

regin

da_semana

ciudad

da_mes

pas

trimestre

tlfno

festivo

....

Ventas
fecha
nro_producto
nro_almacn

importe
unidades

fax

superficie
tipo_almacn
...

Otro Ejemplo
Una consulta a un almacn de datos consiste generalmente
en la obtencin de medidas sobre los hechos parametrizados
por atributos de las dimensiones y restringidos por
condiciones impuestas sobre las dimensiones

medida

hecho

Importe total de las ventas durante este ao de los productos


del departamento Bebidas, por trimestre y por categora?.
Restricciones: productos del departamento Bebidas, ventas durante
este ao
Parmetros de la consulta: por categora de producto y por
trimestre

Otro Ejemplo
OLAP

Bebidas

Marca

Da de la
semana

Categora

Mes
Departamento

Da

Nro_producto

Ao

Tipo

2002

importe
unidades

Nro_almacn

Importe total de ventas en


este ao, del departamento
de Bebidas, por categora y
trimestre

Ciudad
Tipo
Regin
Nombre

Trimestre

Otro Ejemplo
trimestre

categora

importe
OLAP

SELECT ...........

ROLAP

Tiempo

Almacn

fecha

nro_almacn

semana

nombre

mes

Producto
nro_producto
descripcin
marca
categora

departamento
peso
unidades_peso
tipo_envase
diettico
...

direccin

ao

regin

da_semana

ciudad

da_mes

pas

trimestre

tlfno

festivo
....

Ventas
fecha
nro_producto

nro_almacn
importe
unidades

fax
superficie
tipo_almacn
...

Consulta SQL
tabla de hechos

medida

SELECT P.categora, T.trimestre, SUM (V.importe)


FROM Ventas V, Tiempo T, Producto P
WHERE V.nro_producto = P.nro_producto AND
V.fecha = T.fecha AND
P.departamento= Bebidas AND
T.ao= year (TODAY)
GROUP BY T.trimestre, P.categora

parmetros

seleccin de datos
de la tabla de
hechos
restringidos por
condiciones sobre
las tablas de
dimensin
agrupacin por
Tiempo y Producto

agregacin sobre
Almacn

Forma de la Consulta OLAP


SELECT D1.C1, ..., Dn.Cn, Agg1(F.A1),..., Aggn(F.An)
FROM Hechos F, Dimensin1 D1,...Dimensin Dn
WHERE
JOIN_cond (F,D1) AND
...
JOIN_cond (F,Dn) AND
condicin_seleccin
GROUP BY D1.C1,..., Dn.Cn

Categora

Trimestre

Ventas

Refrescos

T1

2000000

Refrescos

T2

1000000

Refrescos

T3

3000000

Refrescos

T4

2000000

Zumos

T1

1000000

Zumos

T2

1500000

Zumos

T3

8000000

Zumos

T4

2400000

Presentacin tabular
(relacional) de los
datos seleccionados

Se asumen dos categoras en


el departamento de Bebidas:
Refrescos y Zumos.

Trimestre
Categora

T1

T2

T3

T4

Refresco
s

2000000 1000000

Zumos

1000000 1500000 8000000 2400000

Presentacin matricial
(multidimensional) de los
datos seleccionados

3000000 2000000

Los parmetros de la consulta (por trimestre y por categora)


determinan los criterios de agrupacin de los datos seleccionados
("ventas de productos del ao actual", "del departamento de
Bebidas"). La agrupacin se realiza sobre dos atributos de dos
dimensiones: Producto (categora), Tiempo (trimestre).

Agregacin y Disgregacin
El carcter agregado de las consultas en el anlisis de
datos, aconseja la definicin de nuevos operadores que
faciliten la agregacin (consolidacin) y la disgregacin
(divisin) de los datos:
Agregacin (roll): permite sustituir (eliminndolo o
utilizando uno de mayor granularidad) un criterio de
agrupacin utilizado en el anlisis. Se agregan los
grupos de la consulta actual.
Disgregacin (drill): permite sustituir (aadiendo uno
nuevo o utilizando uno de menor granularidad) un
criterio de agrupacin utilizado en el anlisis. Se
disgregan los grupos de la consulta actual.

ROLL y DRILL
Las operaciones de agregacin (ROLL) y
disgregacin (DRILL) se pueden hacer sobre:
atributos de una dimensin sobre los que se ha
definido una jerarqua: DRILL-DOWN, ROLL-UP

departamento categora - producto


(Producto)
ao - trimestre mes - da (Tiempo)

sobre dimensiones independientes: DRILLACROSS, ROLL-ACROSS


Producto Almacn -Tiempo

ROLL y DRILL
OLAP

Bebidas

Marca

Da de la
semana

Categora

Mes
Departamento

Da

Nro_producto

Ao

Tipo

2002

importe
unidades

Nro_almacn

Importe total de ventas en este


ao, del departamento de
Bebidas, por categora y mes

Ciudad
Tipo
Regin
Nombre

Trimestre

trimestre

categora

importe

OLAP

mes

trimestre

ao

DRILL-DOWN

ROLL-UP

da

la operacin de DRILL
se realiza sobre el
informe original !

Categora

Trimestre

Ventas

Refrescos

T1

2000000

Refrescos

T2

1000000

Refrescos

T3

3000000

Refrescos

T4

2000000

Zumos

T1

1000000

Zumos

T2

1500000

Zumos

T3

8000000

Zumos

T4

2400000

Categora

Mes

Ventas

Refrescos

Enero

1000000

Refrescos

Febrero

500000

Refrescos

Marzo

500000

Cada fila (categora-trimestre) de la


consulta original se disgrega en tres
nuevas filas (categora-mes).

Operacin SQL
medida

tabla de hechos

SELECT P.categora, T.mes, SUM (V.importe)


FROM Ventas V, Tiempo T, Producto P
WHERE V.nro_producto = P.nro_producto AND
V.fecha = T.fecha AND
P.departamento= Bebidas AND
T.ao= year (TODAY)

seleccin de
datos de la tabla
de hechos
restringidos por
condiciones
sobre las tablas
de dimensin

GROUP BY T.mes, P.categora


agrupacin por
Tiempo y Producto

drill-down

Sustitucin de nivel en la jerarqua de


la dimensin Tiempo por un nivel de
granularidad ms fina

Si se desea introducir la dimensin Almacn en


el anlisis anterior e incluir un nuevo criterio de
agrupacin sobre la ciudad del almacn:
Importe total de las ventas durante este ao de los
productos del departamento Bebidas, por trimestre,
por categoras y por ciudad del almacn?.
Restricciones: productos del departamento Bebidas, ventas durante
este ao
Parmetros de la consulta: por categora de producto, por
trimestre y por ciudad del almacn.

3. Explotacin de un almacn de datos: herramientas OLAP

OLAP

Bebidas

Marca

Da de la
semana

Categora

Mes
Departamento

Da

Nro_producto

Ao

Tipo

2002

importe
unidades

Nro_almacn

Importe total de ventas en


este ao, del departamento
de Bebidas, por categora,
trimestre y ciudad

Ciudad
Tipo
Regin
Nombre

Trimestre

3. Explotacin de un almacn de datos: herramientas OLAP


trimestre

categora

importe
OLAP

la operacin de
DRILL se realiza sobre
el informe original !

Categora

Refrescos
Refrescos

Trimestre

Ventas

T1

2000000

T2

1000000

Refrescos

T3

3000000

Refrescos

T4

2000000

Zumos

T1

1000000

Zumos

T2

1500000

Zumos

T3

8000000

Zumos

T4

2400000

Categora

Trimestre

Ciudad

Ventas

Refrescos

T1

1000000
Valencia

Refrescos

Len

Refrescos

T1
T2

Valencia

300000

Refrescos

T2

Len

700000

1000000

Cada fila (categora-trimestre) de la


consulta original se disgrega en dos
nuevas filas (categora-trimestreciudad) para las ciudades de Len y
Valencia.

* Se asumen dos ciudades: Valencia y Len.

Operacin SQL
tabla de hechos

medida

SELECT P.categora, T.trimestre, A.ciudad, SUM (V.importe)


FROM Ventas V, Tiempo T, Producto P, Almacn A
WHERE V.nro_producto = P.nro_producto AND
V.fecha = T.fecha AND
V.nro_almacn=A.nro_almacn AND
P.departamento= Bebidas AND
T.ao= year (TODAY)
GROUP BY T.trimestre, P.categora, A.ciudad
Inclusin de una nueva dimensin en
los criterios de agrupacin

drill-across

seleccin de
datos de la tabla
de hechos
restringidos por
condiciones
sobre las tablas
de dimensin

agrupacin por
Tiempo, Producto y
Almacn

Zumos

300000

500000

200000

2000000

1000000

300000

100000

500000

T1

T2

T3

T4

Presentacin matricial de
los datos seleccionados.

Si se desea eliminar el criterio de agrupacin sobre


la dimensin Tiempo en la consulta original:

Importe total de las ventas durante este ao de los


productos del departamento Bebidas, por categoras?.

OLAP

Bebidas

Marca

Da de la
semana

Categora

Mes
Departamento

Da

Nro_producto

Ao

Tipo

2002

importe
unidades

Nro_almacn
Ciudad

Importe total de ventas en


este ao, del departamento
de Bebidas, por categoras

Tipo
Regin
Nombre

Trimestre

trimestre

categora

importe
OLAP

la operacin de ROLL
se realiza sobre el
informe original !

Categora

Trimestre

Ventas

Refrescos

T1

2000000

Refrescos

T2

1000000

Refrescos

T3

3000000

Refrescos

T4

2000000

Zumos

T1

1000000

Zumos

T2

1500000

Zumos

T3

8000000

Zumos

T4

2400000

Categora

Ventas

Refrescos 8000000

Zumos

12900000

Operacin SQL
tabla de hechos

medida

SELECT P.categora, T.trimestre, SUM (V.importe)


FROM Ventas V, Tiempo T, Producto P
WHERE V.nro_producto = P.nro_producto AND
V.fecha = T.fecha AND
P.departamento= Bebidas AND
T.ao= year (TODAY)
GROUP BY T.trimestre, P.categora
Eliminacin de una dimensin
en los criterios de agrupacin

roll-across

seleccin de
datos de la tabla
de hechos
restringidos por
condiciones
sobre las tablas
de dimensin
agrupacin por
Producto

agregacin sobre
Almacn y Tiempo

Otras operaciones de OLAP:


SLICE: elimina una dimensin de la consulta

actual, fijando un valor para ella.


DICE: selecciona un subconjunto de datos de
la consulta actual.
PIVOT: reorientacin de las dimensiones en la
consulta actual.

Pivot
Ventas

Ventas
5,2
1,9
2,3
1,1
8,9
0,75
4,6
1,5

5,6
1,4
2,6
1,1
7,2
0,4
4,6
0,5

Tienda1

Electrnica
Juguetes
Ropa
Cosmticos
Electnica
Juguetes
Ropa
Cosmticos

Productos

Tienda1 Tienda2

PIVOT

Tienda2

Q2

Q1

Productos

Electrnica
Juguetes
Ropa
Cosmticos
Electrnica
Juguetes
Ropa
Cosmticos

Q1
5,2
1,9
2,3
1,1
5,6
1,4
2,6
1,1

Q2
8,9
0,75
4,6
1,5
7,2
0,4
4,6
0,5

DICE
Ventas

5,2
1,9
2,3
1,1
8,9
0,75
4,6
1,5

5,6
1,4
2,6
1,1
7,2
0,4
4,6
0,5

6,1
4,2
2,6
1,8
6,2
0,5
3,6
0,7

Productos

DICE

Tienda1Tienda2

Q1

Electrnica
Juguetes
Ropa
Cosmticos
Electrnica
Juguetes
Ropa
Cosmticos

Tienda1 Tienda2 Tienda3

Electrnica
Juguetes

5,2
1,9

5,6
1,4

Q2

Q2

Q1

Productos

Ventas

Electrnica
Juguetes

8,9
0,75

7,2
0,4

SLICE
Ventas

5,2
1,9
2,3
1,1
8,9
0,75
4,6
1,5

5,6
1,4
2,6
1,1
7,2
0,4
4,6
0,5

Tienda1 Tienda2

Q1

Electrnica
Juguetes
Ropa
Cosmticos
Electrnica
Juguetes
Ropa
Cosmticos

Ventas

Tienda1 Tienda2

5,2

5,6

Q2

Q2

Q1

Productos

8,9

7,2

SLICE

Productos = 'Electrnica'

Las doce reglas propuestas por


E.F. Codd
Las herramientas de OLAP se caracterizan* por:

ofrecer una visin multidimensional de los datos.


no imponer restricciones sobre el nmero de dimensiones.
ofrecer simetra para las dimensiones.
permitir definir jerarquas sobre las dimensiones
ofrecer operadores de manipulacin: drill-down, roll-up.
permitir expresar condiciones sobre las dimensiones y
criterios de agrupacin de los datos.

ser transparentes al tipo de tecnologa que soporta el


almacn de datos (ROLAP o MOLAP).

*Subconjunto de las 12 reglas propuestas por E.F. Codd.

Diseo Multidimensional
Metodologa de Kimball

Diseo Multidimensional
Metodologa de Kimball
Esquema
multidimensional

esquema relacional compuesto de:

(esquema en estrella)

- n tablas de dimensiones

- 1 tabla de hechos

tabla de hechos: actividad que es objeto del anlisis


tablas de dimensiones: dimensiones del anlisis

tabla de
dimensin

tabla de
dimensin

CAj
tabla de
dimensin

CAj

tabla de
dimensin

CAj

CAj

CAj
tabla de
dimensin

medidas

CAj

tabla de
hechos

esquema estrella
(star schema)

visin multidimensional de los datos

tabla de
dimensin

la tabla de hechos se relaciona con la tablas de


dimensiones a travs de relaciones 1:M !

Esquema Estrella

Esquema de Copo de Nieve


tabla de
dimensin

tabla de
dimensin

CAj
CAj

CAj

CAj
CAj

jerarqua de
dimensin

CAj

CAj

jerarqua de
dimensin

medidas

tabla de
dimensin

CAj

tabla de
hechos

esquema copo de nieve


(snowflake schema)

CAj
jerarqua de
dimensin

Extensin del esquema en estrella cuando las dimensiones se


organizan en jerarquas de niveles de dimensin (normalizar las
tablas de dimensiones)

Pasos en el diseo conceptual


del almacn de datos:
Metodologa de Kimball
Paso 1. Elegir un proceso de la organizacin para
modelar.
Paso 2. Decidir el grnulo (nivel de detalle) de
representacin del proceso.

Paso 3. Definir las dimensiones que caracterizan el


proceso.
Paso 4. Decidir la informacin a almacenar sobre el
proceso.

Paso 1. Elegir un proceso de la


organizacin para modelar.
Proceso: actividad de la organizacin soportada por un
OLTP del cual se puede extraer informacin con el
propsito de construir el almacn de datos.

Pedidos (de clientes)


Compras (a suministradores)
Facturacin
Envos

Ventas
Inventario

Ejemplo: Cadena de supermercados.


Cadena de supermercados con 300 almacenes en la
que se expenden unos 30.000 productos distintos.

Actividad: Ventas.
La actividad a modelar son las ventas de productos
en los almacenes de la cadena.

Paso 2. Decidir el grnulo (nivel de


detalle) de representacin
Grnulo: es el nivel de detalle al que se desea almacenar
informacin sobre la actividad a modelar.
El grnulo define el nivel atmico de datos en el almacn
de datos.

El grnulo determina el significado de las filas de la tabla


de hechos.
El grnulo determina las dimensiones bsicas del esquema
transaccin en el OLTP

informacin diaria
informacin semanal
informacin mensual. ....

Ejemplo: Cadena de supermercados.


Grnulo: se desea almacenar informacin sobre las
ventas diarias de cada producto en cada almacn de la
cadena.
Grnulo:
define el significado de las filas de la tabla de
hechos.
determina las dimensiones bsicas del esquema.
producto
da
almacn
ventas

Grnulo inferior: no se almacena informacin a nivel


de lnea de ticket porque no se puede identificar siempre
al cliente de la venta lo que permitira hacer anlisis del
comportamiento (hbitos de compra) de los clientes
individuales.

Grnulo superior: no se almacena informacin a nivel


semanal o mensual porque se perderan opciones de
anlisis interesantes: ventas en das previos a
vacaciones, ventas en fin de semana, ventas en fin de
mes, ....
En un almacn de datos se almacena informacin a un
nivel de detalle (grnulo) fino no porque se vaya a
interrogar el almacn a ese nivel sino porque ello permite
clasificar y estudiar (analizar) la informacin desde
muchos puntos de vista.

producto

da
almacn
ventas

tabla de id_producto
hechos id_fecha
id_almacn

la clave primaria* est


formada por los
identificadores de las
dimensiones.

.....
.....
......

datos (medidas) sobre las


ventas diarias de un
producto en un almacn.

* pueden existir excepciones a esta regla general

Paso 3. Identificar las dimensiones


que caracterizan el proceso.
Dimensiones: dimensiones que caracterizan la actividad al
nivel de detalle (grnulo) que se ha elegido.
Tiempo

(dimensin temporal: cundo se produce la actividad?)

Producto (dimensin cul es el objeto de la actividad?)

Almacn (dimensin geogrfica: dnde se produce la actividad?)


Cliente

(dimensin quin es el destinatario de la actividad?)

De cada dimensin se debe decidir los atributos


(propiedades) relevantes para el anlisis de la actividad.
Entre los atributos de una dimensin existen jerarquas
naturales que deben ser identificadas (Ej. da-mes-trimestre-ao
en la dimensinTiempo)

Ejemplo: Cadena de supermercados.


tiempo
definicin de
grnulo

dimensiones
bsicas

producto
almacn

Nota: En las aplicaciones reales el nmero de dimensiones


suele variar entre 4 y 15 dimensiones.

Dimensin Tiempo
Dimensin presente en todo esquema multidimensional porque
el AD contiene informacin histrica sobre la organizacin.
Aunque el lenguaje SQL ofrece funciones de tipo DATE, una
dimensin Tiempo permite representar otros atributos temporales
no calculables en SQL.
Se puede calcular de antemano
Atributos frecuentes:
nro. de da, nro. de semana, nro. de ao: valores absolutos del
calendario juliano que permiten hacer ciertos clculos aritmticos.
da de la semana (lunes, martes, mircoles,...): permite hacer
anlisis sobre das de la semana concretos (ej. ventas en sbado,
ventas en lunes,..).

Dimensin Tiempo
atributos frecuentes:
-da del mes (1..31): permite hacer comparaciones sobre el mismo da
en meses distintos (ventas el 1 de mes).

- marca de fin de mes, marca de fin de semana : permite hacer


comparaciones sobre el ltimo da del mes o das de fin de semana en
distintos meses.
- trimestre del ao (1..4): permite hacer anlisis sobre un trimestre
concreto en distintos aos.

- marca de da festivo: permite hacer anlisis sobre los das contiguos


a un da festivo.
- estacin (primavera, verano..)
- evento especial: permite marcar das de eventos especiales (final de
futbol, elecciones...)

jerarqua natural:
da - mes - trimestre -ao

Dimensin de Producto
la dimensin Producto se define a partir de la tabla maestra de
productos del sistema OLTP.
las actualizaciones del fichero maestro de productos deben
reflejarse en la dimensin Producto (cmo?).
la dimensin Producto debe contener el mayor nmero posible de
atributos descriptivos que permitan un anlisis flexible. Un nmero
frecuente es de 50 atributos.
atributos frecuentes: identificador (cdigo en la organizacin),
descripcin, tamao del envase, marca, categora, departamento,
tipo de envase, producto diettico, peso, unidades de peso,
unidades por envase, frmula, ...

jerarquas: producto-subcategora-categora-departamento

Dimensin de Almacn
la dimensin Almacn representa la informacin geogrfica bsica.
en un proceso de integracin como es la creacin de un A.D, esta
dimensin suele ser creada explcitamente recopilando informacin
que slo tiene sentido en el A.D y que no la tiene en un OLTP (nmero
de habitantes de la ciudad del almacn, caracterizacin del tipo de
poblacin del distrito donde se encuentra el almacn, ...)
atributos frecuentes: identificador (cdigo en la organizacin),
nombre, direccin, distrito, regin, ciudad, pas, telfono, fax, tipo de
almacn, superficie, fecha de apertura, fecha de la ltima
remodelacin, superficie para congelados, superficie para productos
frescos, datos de la poblacin del distrito, zona de ventas, ...
jerarquas:
almacn - distrito - ciudad - regin - pas (jerarqua geogrfica)
almacn - zona_ventas - regin_ventas (jerarqua de ventas)

Las dimensiones seleccionadas


Tiempo

Almacn

Producto

da

nro_almacn

nro_producto

semana

nombre

descripcin

mes

direccin

marca

ao

distrito

subcategora

da_semana

regin

categora

da_mes

ciudad

departamento

trimestre

pas

peso

festivo

tlfno

unidades_peso

....

fax

tipo_envase

superficie

diettico

tipo_almacn

...

...

Relacionando con la
tabla de hecho
Tiempo

Almacn

da

nro_almacn

semana

nombre

mes

Producto
nro_producto
descripcin

marca
subcategora
categora
departamento

peso
unidades_peso
tipo_envase
diettico
...

direccin

ao

distrito

da_semana

regin

da_mes

ciudad

trimestre

pas

festivo
....

Ventas
da
nro_producto
nro_almacn
...

...
...

tlfno
fax

superficie
tipo_almacn
...

D1
definicin de
grnulo

dimensiones
bsicas

D2
...
Dn

tabla
Dimensin 1

tabla de
hechos
id_dim1

tabla
Dimensin 3

id_dim2
id_dim3
tabla
Dimensin 2

...

id_dimn
(medidas)

tabla
Dimensin n

Los identificadores de las dimensiones (bsicas) identifican la tabla de hechos

Aadiendo Nuevas
Dimensiones
tabla
Dimensin 1

tabla de
hechos
id_dim1

tabla
Dimensin 3

id_dim2
id_dim3
tabla
Dimensin 2

...

tabla
Dimensin k

id_dimn
(medidas)

tabla
Dimensin n

Se pueden aadir nuevas dimensiones al


conjunto de dimensiones inicial, para incluir
nuevos puntos de vista en el anlisis.

Aadiendo Nuevas
Dimensiones
Se desea incluir en el anlisis el punto de vista de la promocin bajo
la cual se ha realizado una venta.
Ventas
nro_producto
da

nro_almacn
id_promocin
ventas

Si un producto, un da, en un almacn slo puede ser ofertado con un


tipo de promocin: la dimensin promocin est determinada por las
dimensiones originales. El grnulo del esquema no ha variado.
Los identificadores de las dimensiones no constituyen el identificador
de la tabla de hechos

Paso 4. Decidir la informacin a


almacenar sobre el proceso.
Hechos: informacin (sobre la actividad) que se desea
almacenar en cada fila de la tabla de hechos y que ser el
objeto del anlisis.
Precio
Unidades
Importe
....
Nota: algunos datos que en el OLTP coincidiran con valores
de atributos de dimensiones, en el almacn de datos pueden
representar atributos de hechos. (Ejemplo: el precio de venta
de un producto).

Ejemplo: Cadena de supermercados.


Grnulo: se desea almacenar informacin sobre las ventas
diarias de cada producto en cada almacn de la cadena.
importe total de las ventas del producto en el da
nmero total de unidades vendidas del producto en el da
nmero total de clientes distintos que han comprado el
producto en el da.

Tiempo

Almacn

da

nro_almacn

semana

nombre

mes

Producto
nro_producto
descripcin
marca
subcategora

categora
departamento
peso
unidades_peso
tipo_envase
diettico
...

direccin

ao

distrito

da_semana

regin

da_mes

ciudad

trimestre

pas

festivo
....

Ventas
da
nro_producto

nro_almacn
importe
unidades
nro_clientes

tlfno
fax
superficie
tipo_almacn

...

Orientaciones de diseo
lgico a ROLAP

Orientaciones de diseo
lgico a ROLAP
Uso de claves artificiales exclusivas para el
Data Mart
Evitar normalizar
Modelo de Constelacin
Estructuras de ndices

Uso de claves artificiales exclusivas


para el Data Mart
en un almacn de datos debe evitarse el uso de las claves del
sistema transaccional.
las claves de las dimensiones deben ser generadas
artificialmente: claves de tipo entero (4 bytes) son suficiente
para dimensiones de cualquier tamao (232 valores distintos).
la dimensin TIEMPO debe tener tambin una clave artificial.
Inconvenientes del uso de las claves del sistema operacional:
en el OLTP se puede decidir reutilizar valores de la clave no utilizados
actualmente en la organizacin.
en el OLTP se puede decidir cambiar la codificacin de las claves.
reduce el tamao de la tabla de hechos

Tiempo

Almacn

id_fecha

id_almacn

da

nro_almacn

semana

Producto
id_producto
nro_producto
descripcin
marca

subcategora
categora
departamento
peso
unidades_peso
tipo_envase
diettico
...

nombre

mes

direccin

ao

distrito

da_semana

regin

da_mes

ciudad

trimestre
festivo
....

Ventas
id_fecha
id_producto

id_almacn
importe
unidades
nro_clientes

pas
tlfno
fax
superficie

tipo_almacn
...

Evitar normalizar
.
Si se ha definido una nica tabla de dimensin para cada
dimensin identificada en el anlisis (esquema en estrella),
es frecuente que entre el conjunto de atributos de la tabla
aparezcan dependencias funcionales que hacen que la tabla
no est en 3 F.N.

Evitar normalizar:
el ahorro de espacio no es significativo
se multiplican los JOIN durante las consultas.

Producto
id_producto
nro_producto

descripcin
marca
subcategora
categora
departamento
peso
unidades_peso
tipo_envase
diettico
...

Tiempo

Almacn

id_fecha

id_almacn

da

nro_almacn

semana

nombre

mes

direccin

ao

distrito

da_semana

regin

da_mes

ciudad

trimestre

pas

festivo

tlfno

....

fax
superficie

3 F.N

tipo_almacn
...

normalizar?

Esquema de Copo de Nieve:


Dimensin Producto
Departamento
id_dpto

3 F.N
Producto
id_producto
nro_producto

departamento
Categora
Subcategora

id_cat

id_subcat

categora

subcategora

id_dpto

id_cat

descripcin
marca
id_subcat
peso

unidades_peso
tipo_envase
diettico
...

Normalizado

Producto
id_producto

Dimensin de Producto:
Desnormalizado

nro_producto

30.000 productos
30 departamentos

descripcin

300 categoras (30 x10)

marca

3000 subcategoras (300 x10)

subcategora
categora

departamento
peso
unidades_peso
tipo_envase
diettico
...

el nombre de un departamento (20 bytes) se repite


aproximadamente 1000 veces en la tabla Producto.
el nombre de una categora (20 bytes) se repite
aproximadamente 100 veces en la tabla Producto.
el nombre de una subcategora (20 bytes) se repite
aproximadamente 10 veces en la tabla Producto.

Coca-Cola 33cl. Refresco-cola Refrescos Bebidas

Nivel1n
id_nivel

desnormalizar

...

Nivelj
id_nivel

CAj

...
Nivel0
id_nivel

D2
CAj

Hechos

...

id_dim1

CAj

CAj

D1

id_dim2
CAj

..
id_dimn

D
3

CAj

CAj

medidas
Dn

Ventajas de la Desnormalizacin
Ventajas de la desnormalizacin:
evitar la concatenacin (join) de tablas durante las
consultas
sencillez de uso

Inconvenientes de la desnormalizacin:
redundancia (ocupacin de espacio)

Alternativas
dimensin desnormalizada: todos los atributos de la
dimensin estn incluidos en una nica tabla.
dimensin normalizada: cada tabla de nivel en la
dimensin incluye el identificador interno (clave ajena) del
nivel "padre" en cada jerarqua a la que pertenece (puede
incluir tambin el identificador en la organizacin).
dimensin moderadamente normalizada: cada tabla de
nivel incluye los identificadores internos de todos los
"antecesores" en cada jerarqua a la que pertenece
(puede incluir tambin los identificadores en la
organizacin).

Producto
id_producto

nro_producto
descripcin
marca
subcategora
categora
departamento
peso
unidades_peso
tipo_envase

diettico
...

Esquema en estrella
Dimensin Producto desnormalizada

Departamento
id_dpto

3 F.N
Producto
id_producto

nro_producto

departamento
Categora
Subcategora

id_cat

id_subcat

categora

subcategora

id_dpto

id_cat

descripcin
marca
id_subcat

Esquema en copo de nieve

peso
unidades_peso
tipo_envase
diettico
...

Dimensin Producto normalizada

Departamento
id_dpto
departamento
Categora
Subcategora

...

id_cat

Producto

id_subcat

categora

id_producto

subcategora

id_dpto

nro_producto

id_cat

...

descripcin

id_dpto

marca

...

id_subcat
id_cat
id_dpto
peso

Esquema en copo de nieve

unidades_peso
tipo_envase

diettico
...

Dimensin Producto moderadamente


normalizada

Departamento
id_dpto

Producto

Subcategora

id_producto

id_subcat

nro_producto

subcategora

descripcin

id_cat

marca

categora

id_subcat

id_dpto

subcategora

departamento

id_cat

Categora

departamento

id_cat

categora
id_dpto
departamento

categora

id_dpto
departamento
peso
unidades_peso
tipo_envase
diettico
...

Esquema en copo de nieve


Dimensin Producto moderadamente
normalizada

Modelo de Constelacin
Nivel1n
id_nivel

...
Nivelj
id_nivel

...
Nivel0

D1

D2

id_nivel
...
D1

1
Hecho1

D2

medida1
medida2
...

Hecho2

*
medida1
medida2
...

Esquemas multidimensionales que


comparten una dimensin a distinto nivel.

*
*

*
1
D3

Modelo de Constelacin
ao

1..1
mes
1..*

...

1..1
da

1..*

...
Suministros

1
Ventas

unidades
importe
...

*
*

*
1

unidades
importe
...

Data Mart de Ventas


Data Mart de Suministros

Estructuras de ndices
Metodos de acceso tradicionales
B-trees, hash tables, R-trees, grids,

Popular en Warehouses

Lista invertida
Indice de Mapa bits
Indices de Join
Indices de Texto

Lista Invertida
18
19

20
21
22

23
25
26

age
index

r5
r19
r37
r40

rId
r4
r18
r19
r34
r35
r36
r5
r41

name age
joe
20
fred
20
sally
21
nancy 20
tom
20
pat
25
dave
21
jeff
26

...

20
23

r4
r18
r34
r35

inverted
lists

data
records

Usando Lista Invertida


Query:
Obtener personas con age= 20 and name = fred

Lista de age = 20: r4,

r18, r34, r35


Lista for name = fred: r18, r52
Respuesta de la interseccin es : r18

Bit Maps

20
23

20
21
22

1
1
0
1
1
0
0
0
0

23
25
26

age
index

bit
maps

0
0
1
0
0
0
1
0
1
1

id
1
2
3
4
5
6
7
8

name age
joe
20
fred
20
sally
21
nancy 20
tom
20
pat
25
dave
21
jeff
26

...

18
19

data
records

Usando Bit Maps


Query:

Obtener personas con age = 20 and name = fred

Lista para age = 20: 1101100000


Lista para name = fred: 0100000001

Respuesta de la interseccin es: 010000000000

Good if domain cardinality small


Bit vectors can be compressed

Join
sale

Combina la relacin SALE, PRODUCT


En SQL: SELECT * FROM SALE, PRODUCT

prodId storeId
p1
c1
p2
c1
p1
c3
p2
c2
p1
c1
p1
c2

joinTb

date
1
1
1
1
2
2

prodId
p1
p2
p1
p2
p1
p1

amt
12
11
50
8
44
4

name
bolt
nut
bolt
nut
bolt
bolt

product

price
10
5
10
5
10
10

storeId
c1
c1
c3
c2
c1
c2

date
1
1
1
1
2
2

id
p1
p2

amt
12
11
50
8
44
4

name price
bolt
10
nut
5

Join Indexes
join index
product

sale

id
p1
p2

rId
r1
r2
r3
r4
r5
r6

name price
bolt
10
nut
5

jIndex
r1,r3,r5,r6
r2,r4

prodId storeId
p1
c1
p2
c1
p1
c3
p2
c2
p1
c1
p1
c2

date
1
1
1
1
2
2

amt
12
11
50
8
44
4

Diseo de Dimensiones y
de Hechos

Consideraciones de Diseo
Dimensin
dimensin Tiempo
dimensiones muy grandes
dimensiones en la sombra
dimensiones degeneradas
dimensiones no-completas
dimensiones no-estrictas
Hechos
Diseo de la tabla de hechos
Relaciones M:M entre la tabla de hechos y las tablas de dimensiones
Tablas de hechos degeneradas

Otras consideraciones
dimensiones que cambian
definicin de agregados

Dimensin de Tiempo
En un almacn de datos muchas consultas son restringidas y
parametrizadas por criterios relativos a periodos de tiempo
(ltimo mes, este ao, ...).
Tiempo

Almacn

id_fecha

id_almacn

fecha

Product
o
id_producto

semana

nro_producto

ao

descripcin

subcategora

trimestre

categora

festivo

unidades_pe
so

direccin

distrito

da_semana
da_mes

peso

nombre

mes

marca

departamento

nro_almacn

....

regin

Ventas

ciudad

id_fecha

pas

id_producto

tlfno

id_almacn

fax

importe

superficie

unidades

tipo_almacn

Dimensin de Tiempo
id_fecha
fecha
mes
da-semana
trimestre
ao
festivo

Ejemplo de
dimensin Tiempo
desnormalizada

12-12-98

12-98

lunes

4-98

1998

no

10-6-97

6-97

mircoles 2-97

1997

si

10-1-99

1-99

jueves

1-99

1999

no

12-8-98

8-98

lunes

3-98

1998

si

1-6-97

6-97

sbado

2-97

1997

no

Dimensin de Tiempo
Atributos de la dimensin tiempo:

fecha completa (en el formato del AD)


mes, trimestre y ao
da de la semana (lunes.. domingo)
da del mes (1..31)
semana del mes (1..5)
da del ao (1..365)
semana del ao (1..48)
trimestre del ao (1..4)
mes del ao (enero..diciembre)
vspera de da festivo
da festivo

Dimensiones Muy Grandes

Existen dimensiones especialmente grandes, de


millones de registros, que pueden plantear problemas
de eficiencia durante la explotacin del A.D. (tabla de
clientes de una compaa de servicios, tabla de clientes
de una aseguradora, etc)

crear minidimensiones

Dimensiones Muy Grandes


Ejemplo:
El tamao usual de una tabla de dimensin es de un
nmero de registros inferior a 50.000 filas y
aproximadamente 50 atributos. (dimensin PRODUCTO
en una cadena de supermercados).
Una tabla de dimensin muy grande puede tener millones
o incluso decenas de millones de filas. (dimensin
CLIENTE en una compaa telefnica).
El tamao de la dimensin penaliza la evaluacin de
restricciones sobre los atributos de la dimensin.
Nota: Incluso una tabla de dimensin muy grande con 10
millones de tuplas puede ocupar de 5 a 6 GB.

Dimensiones Muy Grandes


CLIENTE
id_cliente
nro_cliente
dni
nombre
direccin
....

nivel_ingresos

son utilizados frecuentemente para


establecer condiciones en las consultas.

estado_civil

tienen un rango de valores reducido.

edad

sexo
nivel_estudios
...

Dimensiones Muy Grandes


minidimensin
demogrfica
separar un grupo de
atributos afines de la
dimensin original en
una dimensin auxiliar.

id_demo

cdigo
franja_edad
nivel_ingresos
estado_civil

CLIENTE
id_cliente

sexo
nivel_estudios

Tabla de Hechos
......

nro_cliente

id_cliente

dni

id_demo

nombre

......

direccin

......

....
id_demo

Dimensiones Muy Grandes


Minidimensin:
se crea un registro en la minidimensin para cada
combinacin distinta de valores de los atributos
seleccionados.
el tamao de la minidimensin debe estar por debajo
de 100.000 filas.
la clave de la minidimensin se incluye en la dimensin
original (dimensin muy grande) y en la tabla de
hechos*.

* En este caso la inclusin de una nueva dimensin no cambia la


granularidad del esquema ni la clave primaria de la tabla de hechos.

Dimensiones Muy Grandes


Ventajas del uso de las minidimensiones:
ahorro de espacio
mejora la evaluacin de restricciones sobre los atributos de
la minidimensin.
restricciones sobre atributos de la minidimensin pueden
ser aplicadas sin acceder a la dimensin original,
concatenando directamente con la tabla de hechos.
restricciones sobre atributos de la minidimensin y otros
atributos de la dimensin original pueden ser evaluados (la
clave de la minidimensin aparece en la dimensin original).
facilita el tratamiento de cambios sobre atributos de la
minidimensin: no es necesario crear un nuevo registro en la
dimensin original.

Dimensiones Muy Grandes


Demo
id_demo ...........

Tabla de hechos

............

.... id_cliente id_demo

.............

............

.... 11

............

............

.... 11

............

.... 33

............

Cliente
id_cliente ......... id_demo

11

...........

26

............

33

............

El cliente de id_cliente 11 ha cambiado su


dimensin demogrfica de un valor 1 a un
valor 2 (valor actual) teniendo hechos
almacenados de cada etapa. Un nuevo
cambio al valor 3 significara modificar el
valor de id_demo en Cliente y almacenar a
partir de ese momento los hechos relativos al
cliente 11 con el valor de id_demo igual a 3.

Dimensiones a la Sombra
Almacn
1

N
1

id_almacn
id_fecha

Producto

Tiempo

Ventas

id_producto
unidades
nro_clientes
importe

Las tablas de dimensiones representan los puntos de vistas


del anlisis.

Dimensiones a la Sombra
Las tablas de dimensiones deben contener atributos
analticos:
- los atributos analticos no son propios de un valor
(instancia) de la dimensin sino de conjuntos de
valores. (Ejemplo: categora, regin, )
- los atributos analticos suelen tener un rango de
valores limitado.
- los atributos analticos son utilizados en el anlisis
de datos: aplicar condiciones sobre las dimensiones.

Dimensiones a la Sombra
Cuando en el anlisis de datos, una dimensin participa al nivel
bsico (producto, almacn, da), suele ser frecuente que en el
informe del usuario se deseen incluir atributos descriptivos del
valor (instancia) de la dimensin.
Ejemplo: En un informe de ventas por productos, regiones y
aos, puede ser interesante que aparezca la descripcin
completa del producto (nombre).
Este hecho justifica la inclusin de atributos que no son
analticos en las dimensiones: descripcin del producto, nombre
del cliente, ..
Para no penalizar el tamao de las tablas de dimensiones con
atributos que no son analticos se suelen definir dimensiones en
la sombra (shadow dimension).

Dimensiones a la Sombra
Tiempo

Almacn

Ventas
1

id_almacn
id_fecha

id_producto
Info_producto

Producto

id_info_producto

unidades
nro_clientes
importe

dimensin en
la sombra

* En este caso la inclusin de una nueva dimensin no cambia la


granularidad del esquema ni la clave primaria de la tabla de hechos.

Dimensiones Degeneradas
Cliente

Facturacin
1

N
1

id_cliente
id_fecha

Clnica

Tiempo

id_clinica
importe

Tabla de hechos: facturacin a clientes en las distintas


clnicas de un sistema sanitario.

Dimensiones Degeneradas
Cliente
1

N
1

id_cliente
id_fecha

Clnica

Tiempo

Facturacin

id_clinica
id_factura
importe

Factura

dimensin
degenerada

N
1

Tabla de hechos: facturacin a clientes en las


distintas clnicas de un sistema sanitario.
Las dimensiones degeneradas suelen aparecer
cuando se intenta trasladar al esquema
documentos del mundo real. La informacin
incluida en el documento de la factura ya est
representada en la tabla de hechos.

Dimensiones no-completas
Categora

Departamento

nombre

nombre

...

Categora

0..

no-completa

...

Departamento

Coac

Bebidas

Vino

Papel

Servilletas
Pauelos
Bisutera

Dimensin no-completa:
dimensin que tiene una
jerarqua no completa

Dimensiones no-completas
Producto
nro_producto

Categora

Departamento

descripcin

Coac

Bebidas

marca

Vino

Papel

subcategora

Servilletas

categora

departamento
peso

Pauelos
Bisutera

unidades_peso
tipo_envase
diettico
...

Solucin: convertir la jerarqua no-completa en


una jerarqua completa introduciendo valores
artificiales para el nivel que causa el problema.

Dimensiones no-completas
Producto
id_prod

Ventas
id_producto id_fecha

id_almacn

importe ...

nro_prod marca

categora

departamento

p23

Magno

Coac

Bebidas

p34

Cune

Vino

Bebidas

12

13

100

p11

Dodot

Servilleta Papel

15

12

50

p4

Klenex

Pauelo

78

11

400

p14

Loewe

Bisutera

12

67

Papel
NULL

......

Informe de ingresos por


departamento.

Departamento

Ingresos

Bebidas

150

Papel

400

Total ingresos:

550

El total (550) es
incorrecto

Dimensiones no-completas
Producto
id_prod

Ventas
id_producto id_fecha

id_almacn

importe ....

nro_prod marca

categora

departamento

p23

Magno

Coac

Bebidas

p34

Cune

Vino

Bebidas

12

13

100

p11

Dodot

Servilleta Papel

15

12

50

p4

Klenex

Pauelo

78

11

400

p14

Loewe

Bisutera

12

67

Papel
Varios

Definir un departamento Varios


para convertir la jerarqua nocompleta en completa.

......

Informe de ingresos por


departamento.

Departamento
Bebidas

Ingresos
150

Papel

400

Varios

67

Total ingresos:

1220

El total (1220) es
correcto

Dimensiones no-estrictas
Categora

Departamento

nombre

nombre

..*

...

Categora

no-estricta

...

Departamento

Coac

Bebidas

Vino

Papel

Servilletas

Droguera

Pauelos

Dimensin no-estricta:
dimensin que tiene una
jerarqua no-estricta

Dimensiones no-estrictas
Producto

Categora

Departamento

nro_producto

Coac

Bebidas

marca

Vino

Papel

subcategora

Servilletas

Droguera

categora

Pauelos

descripcin

departamento
peso
unidades_peso
tipo_envase
diettico
...

Solucin: documentar el esquema y advertir al


usuario de los problemas.

Dimensiones no-estrictas
Producto
id_prod nro_prod marca

Ventas
id_prod id_fecha

......

id_alm importe

12

13

100

15

12

50

78

11

400

12

67

Departamento

categora

id_dpto departamento

p23

Magno

Coac

p34

Cune

Vino

p11

Dodot

Servilleta

p4

Klenex

Pauelo
Prod_Dpto
id_prod

id_dpto

Bebidas

Papel

Droguera

Dimensiones no-estrictas
Producto
id_prod nro_prod marca

Ventas
id_producto id_fecha

id_almacn

importe

categora

departamento

p23

Magno Coac

Bebidas

p34

Cune

Vino

Bebidas

Servilleta Papel

12

13

100

p11

Dodot

15

12

50

p4

Klenex Pauelo Papel, Droguera

78

11

400

12

67

......

Informe de ingresos por


departamento.

Departamento

Ingresos

Bebidas

150

Papel

467

Droguera

67

Total ingresos:

684

El total (684) es
incorrecto

Dimensiones no-estrictas
id_prod nro_prod marca

Ventas
id_producto id_fecha

id_almacn

importe

categora

departamento

p23

Magno Coac

Bebidas

p34

Cune

Vino

Bebidas

Servilleta Papel

12

13

100

p11

Dodot

15

12

50

p4

Klenex Pauelo Papel, Droguera

78

11

400

12

67

......

Informe de ingresos por


departamento.

No se puede agrupar por


departamento, ya que la
jerarqua no es estricta
por debajo de
departamento.

Atributos aditivos, semiaditivos y noaditivos

los atributos de la tabla de hechos (medidas) son generalmente


de dominios continuos, numricos y de carcter aditivo.
existen medidas que pueden ser aditivos para algunas
dimensiones y no serlo para otras. Atencin!

los clculos realizados sobre las medidas pueden ser aditivos o


no aditivos. Atencin!

Atributos aditivos, semiaditivos y noaditivos


agrupacin por Fecha y Almacn
Ventas

agregacin sobre Producto


Ventas

id_fecha

id_fecha id_producto id_almacn importe unidades nro_clientes

id_producto

....

id_almacn

13

23

5000

10

10

importe

13

23

23

2000

unidades

13

12

23

1000

nro_clientes

....

8000

16

aditivo

aditivo

El atributo nro_clientes es semiaditivo


porque no es aditivo sobre la
dimensin Producto.

13

no aditivo

Nota: en el ejemplo cliente es sinnimo de compra (no se pueden identificar


los clientes).

Atributos aditivos, semiaditivos y


no-aditivos
Ventas
id_fecha id_producto id_almacn importe unidades nro_clientes
....
12

23

5000

10

10

12

25

2000

12

1000

8000

16

13

aditivo

aditivo

aditivo

....

Importe es aditivo sobre Tiempo, Producto, Almacn


Unidades es aditivo sobre Tiempo, Producto, Almacn
Nro-clientes es aditivo sobre Tiempo, Almacn y no es aditivo
sobre Producto.

Atributos aditivos, semiaditivos y


no-aditivos
Clculos aditivos y no aditivos Atencin!
beneficio = importe - coste

(beneficio es aditivo)

Z = X - Y (beneficio de cada venta individual)


X - Y = (X -Y) = Z
(el beneficio total es igual a la suma de beneficios individuales)

margen = beneficio/importe

(margen no es aditivo)

Z= X/ Y (margen de beneficio en cada venta individual)

X/ Y (X/Y) = Z
(el margen de beneficios total no es igual a la suma de mrgenes de
beneficio individuales)

Tablas de hechos sin medidas


Ejemplo: el almacn de datos para la cadena de supermercados
introduciendo la dimensin promocin.

id_producto
id_fecha
id_almacn
id_promocin
ventas

En el esquema anterior no es posible saber qu productos han


estado en promocin en un almacn en una fecha determinada si
no han tenido ventas!

Tablas de hechos sin medidas


Solucin: tabla de hechos sin medidas para registrar las
promociones diarias de productos en los almacenes de la cadena.
Promociones
id_producto
id_fecha
id_almacn
id_promocin

La tabla de hechos Ventas y la tabla de hechos Promociones permiten


responder a las consultas:
productos que han estado en promocin y han sido vendidos
productos que han estado en promocin y no han sido vendidos

Tablas de hechos sin medidas


Las tablas de hechos sin medidas son tablas de
hechos compuestas por los identificadores de las
dimensiones pero sin medidas (datos).
Las tablas de hechos sin medidas se usan para
registrar la ocurrencia de eventos que no llevan
informacin asociada

Relaciones M:M entre la tabla de


hechos y una dimensin
En un esquema multidimensional (en estrella) la tabla de hechos se
relaciona con las tablas de dimensiones a travs de relaciones 1:M.

tabla
Dimensin 1

tabla de
hechos
1

tabla
Dimensin 2

tabla
Dimensin 3

id_dim1
id_dim2

1
N

id_dim3
...
id_dim n

N
1

....
(medidas)

tabla
Dimensin n

Relaciones M:M entre la tabla de


hechos y una dimensin
En un esquema multidimensional (en estrella) la tabla de hechos se
relaciona con las tablas de dimensiones a travs de relaciones 1:M.

tabla
Dimensin 1

tabla de
hechos
1

tabla
Dimensin 2

tabla
Dimensin 3

id_dim1

id_dim2
N

1
N

id_dim3
...
id_dim n

N
1

....
(medidas)

tabla
Dimensin n

Relaciones M:M entre la tabla de


hechos y una dimensin
Cliente

Facturas
1

id_cliente
id_fecha

Clnica

Tiempo

id_clinica
id_diag

Diagnstico
N

importe

En un sistema sanitario, en la factura a un cliente la clnica puede


facturar pruebas realizadas para distintos tipos de diagnstico
(hepatitis, sida, )

Relaciones M:M entre la tabla de


hechos y una dimensin
Cliente
1

N
1

id_cliente
id_fecha

Clnica

Tiempo

Facturas

id_clinica
id_diag

Diagnstico
N

importe

El identificador de las tuplas de la tabla de hechos esta


formado por los identificadores: id_cliente, id_fecha,
id_clnica.
El atributo id_diag, en la tabla de hechos es multivaluado.

Relaciones M:M entre la tabla de


hechos y una dimensin
Diagnsticos

Informe de facturacin.
id_cliente
23

id_fecha
4

id_clinica
12

importe id_diag.....
145

Diabetes

Hepatitis

Sida

7
23

15

300

25

78

12

400

......

Informe de ingresos por


tipo de diagnstico.

Diagnstico

Ingresos

445

545

Total ingresos:

990

El total (990) es
incorrecto

Relaciones M:M entre la tabla de


hechos y una dimensin
Cliente

Facturas
1

N
1

id_cliente
id_fecha

Clnica

Tiempo

id_clinica
id_diag

Diagnstico
N

importe

En un sistema sanitario, en la factura a un cliente la clnica puede


facturar pruebas realizadas para distintos tipos de diagnstico
(hepatitis, sida, )

Relaciones M:M entre la tabla de


hechos y una dimensin
Solucin 1
Cliente
1

id_cliente
id_fecha

Clnica

Tiempo

Facturas

Diagnstico
1

id_clinica
id_grupo
importe

desc

Grupo_diag
N

id_grupo
id_diag

id_diag

factor

Solucin 1: Crear una tabla puente (Grupo_diag) que permite fijar un


factor (porcentaje) para cada diagnstico dentro de una factura (o el
importe exacto del diagnstico en la factura). Una factura estar asociada
a tantas filas de la tabla puente como diagnsticos incluya la factura.

Relaciones M:M entre la tabla de


hechos y una dimensin
Solucin 1
Cliente

Facturas
1

N
1

id_cliente
id_fecha

Clnica

Tiempo

Diagnstico
1

id_clinica
id_grupo
importe

desc

Grupo_diag
N

id_grupo
id_diag

id_diag

factor

Solucin 1: el id_grupo representa una clave alternativa en la


tabla de hechos.

Relaciones M:M entre la tabla de


hechos y una dimensin
Diagnstico

Informe de facturacin
id_cliente id_fecha id_clinica id_grupo importe
.....

23

12

145

24

15

300

25

78

12

53

400

Diagnstico

Diabetes

Hepatitis

Sida

Grupo_diag

......

Informe de ingresos por


tipo de diagnstico.

Ingresos
(factor importe)

336.25

508.75

Total ingresos:

845

25

75

100

53

100

Se agrupa
por tipo de
diagnstico

porcentaje que el
diagnstico
representa en el
importe de la
factura
El total (845) es
correcto

Relaciones M:M entre la tabla de


hechos y una dimensin
Diagnstico

Facturas
id_cliente id_fecha id_clinica id_grupo importe
.....
23

12

145

24

15

300

25

78

12

53

400

Diagnstico

Diabetes

Hepatitis

Sida

Grupo_diag

......

Informe de ingresos por


tipo de diagnstico.

Ingresos

336.25

508.75

Total ingresos:

845

25

75

100

53

100

Se agrupa
por tipo de
diagnstico

porcentaje que el
diagnstico
representa en el
importe de la
factura
El total (845) es
correcto

Relaciones M:M entre la tabla de


hechos y una dimensin
Solucin 2
Cliente

Facturas
1

N
1

id_cliente
id_fecha

Clnica

Tiempo

id_clinica
id_diag

Diagnstico
N

importe

En un sistema sanitario, en la factura a un cliente la clnica


puede facturar pruebas realizadas para distintos tipos de
diagnstico (hepatitis, sida, )

Relaciones M:M entre la tabla de


hechos y una dimensin
Solucin 2
Cliente

Facturas
1

N
1

id_cliente
id_fecha

Clnica

Tiempo

id_clinica
id_diag

Diagnstico
1

importe

Solucin 2: Crear varias filas en la tabla de hechos que


representen el mismo hecho (factura), una por cada
diagnstico incluido en la factura.

Relaciones M:M entre la tabla de


hechos y una dimensin
Solucin 2
Cliente

Facturas
1

N
1

id_cliente
id_fecha

Clnica

Tiempo

id_clinica
id_diag

Diagnstico
1

importe

El identificador de la tabla de hechos est compuesto por los


identificadores: id_cliente, id_fecha, id_clinica, id_diag.
Ha cambiado la granularidad del esquema en estrella: grnulo
mas fino.

Relaciones M:M entre la tabla de


hechos y una dimensin
Solucin 2
Cliente
1

id_cliente
id_fecha

Clnica

Tiempo

Facturas

id_clinica
id_diag

Diagnstico
1

importe

En las filas de la tabla de hechos se est almacenando informacin


agregada (importe total de la factura). La medida importe no corresponde a
la granularidad del esquema en estrella.
Con la granularidad del esquema en estrella, slo se pueden usar la
funcin COUNT sobre la tabla de hechos. No se puede utilizar la medida
importe.

4. Diseo de un almacn de datos


Nmero de diagnsticos del departamento
de Resonancia realizados este ao en
clnicas de Valencia, por diagnstico y por
clnica.

OLAP

DNI
Nombre

Da de la
semana

Ciudad

2004

Mes
Regin

Da

Tipo_cliente

Ao

Trimestre

importe

Resonancia
Diagnstico

Clnica

Nombre
Ciudad
Tipo_clinica

Valencia

Descripcin
Tipo_diag
Departamento

Regin

Tiempo

Cliente

Facturas
1

id_cliente
id_fecha

N
Clnica

1
N

id_clinica
id_diag

Diagnstico
1

importe

SELECT D.diagnstico, C.clnica, COUNT (*)


FROM Facturas F, Tiempo T, Diagnstico D, Clnica C
WHERE F.id_diag = D.id_diag AND F.id_fecha = T.id_fecha AND
F.id_clnica = C.id_clnica AND D.departamento= Resonancia AND
C.ciudad = 'Valencia' AND T.ao= year (TODAY)

GROUP BY D.diagnstico, C.clnica

Relaciones M:M entre la tabla de


hechos y una dimensin
Cliente

Facturas
1

N
1

Solucin 2

id_cliente

id_fecha

Clnica

Tiempo

id_clinica
id_diag

Diagnstico
1

factura

importe
Para poder controlar la informacin redundante sobre una misma
factura en la tabla de hechos, es necesario incluir en la tabla de hechos
un atributo que identifique a la factura: nivel de agregacin en el que
tiene significado la medida importe.
Slo cuando se agrupa por factura, se puede incluir la medida importe
como atributo del grupo.

Facturacin realizada en la clnica 'Anlisis


Valencia', para el ao en curso.
OLAP
DNI
Da de la
semana

Nombre
Ciudad

Mes
Regin

Da

Tipo_cliente

Ao

Anlisis
Valencia

factura
importe

Clnica
Nombre

Diagnstico
Descripcin
Tipo_diag

Ciudad

Regin
Departamento

Tipo_clinica

2004
Trimestre

Tiempo

Cliente

Facturas
1

id_cliente
id_fecha

N
Clnica

1
N

id_clinica
factura
id_diag
importe

N
Diagnstico
1

SELECT T.dia, CL.dni, CL.nombre, F.factura, F.importe


FROM Facturas F, Tiempo T, Clnica C, Cliente CL
WHERE
F.id_clinica = C.id_clnica AND F.id_fecha = T.id_fecha AND
CL.id_cliente=F.id_cliente
AND C.clnica = 'Anlisis Valencia' AND T.ao = year (TODAY)
GROUP BY T.dia, CL.dni, CL.nombre, F.factura, F.importe

Relaciones M:M entre la tabla de


hechos y una dimensin
Solucin 2
Tiempo

Cliente

Facturas
1

id_cliente
id_fecha

N
Clnica

1
N

id_clinica
factura
id_diag

importe

N
Diagnstico
1

Observar que el atributo factura de la tabla de hechos determina


funcionalmente a id_cliente, id_fecha e id_clnica, es decir una factura
corresponde a un cliente y ha sido realizada en una fecha y en una clnica
determinada.

Relaciones M:M entre la tabla de


hechos y una dimensin
Solucin 2
Cliente

N
1

id_cliente

id_fecha

Clnica

Tiempo

Facturas

id_clinica
id_diag

Diagnstico
1

factura
importe
factor
Se puede incluir tambin un atributo que represente el porcentaje del
diagnstico en la factura o el importe del diagnstico: medidas al nivel de
la granularidad del esquema en estrella.

Importe total obtenido por pruebas del


departamento de "Resonancia" , este ao
por diagnstico.

OLAP

DNI
Da de la
semana

Nombre
Ciudad

Mes
Regin

Da

Tipo_cliente

Ao

2005
Trimestre

factura
importe

Clnica
Nombre

factor

Diagnstico
Descripcin
Tipo_diag

Ciudad

Regin
Departamento

Tipo_clinica

importe factor

Resonancia

Cliente

N
1

id_cliente
id_fecha

Clnica

Tiempo

Facturas

id_clinica
id_diag

Diagnstico
1

factura
importe
factor
SELECT D.diagnstico, SUM (importe factor)
FROM Facturas F, Tiempo T, Diagnstico D
WHERE F.id_diag = D.id_diag AND F.id_fecha = T.id_fecha
AND D.departamento = 'Resonancia' AND T.ao = year (TODAY)
GROUP BY D.diagnstico

Tablas de hechos degeneradas


Cliente

Facturas
1

N
1

id_cliente
id_fecha

Clnica

Tiempo

Diagnstico
1

id_clinica
id_grupo
importe

desc

Grupo_diag
N

id_grupo
id_diag

id_diag

importe

La tabla Grupo_diag es realmente una tabla de hechos


degenerada: contiene informacin sobre la facturacin a
los clientes a nivel de diagnstico.

Tablas de hechos degeneradas


Tiempo

Cliente

Facturas
1

id_cliente
Diagnstico

id_fecha
1

id_clinica
Clnica

id_grupo
importe

desc

Grupo_diag
N

id_grupo
id_diag

id_diag

importe

La tabla Grupo_diag es realmente una tabla de hechos de un esquema


en estrella cuyas dimensiones son Diagnstico y Facturas.

Tablas de hechos degeneradas


Cliente

Facturas
1

N
1

id_cliente
id_fecha

Clnica

Tiempo

Diagnstico
1

id_clinica
id_grupo
importe

desc

Grupo_diag
N

id_grupo
id_diag

id_diag

importe

La tabla Grupo_diag es realmente una tabla de hechos de un esquema


en estrella cuyas dimensiones son Diagnstico e indirectamente (a
travs de Facturas) Tiempo, Cliente y Clnica.

Dimensiones que cambian


Se considera relevante el caso en que, en el mundo real, para
un valor de una dimensin, cambia el valor de un atributo que
es significativo para el anlisis sin cambiar el valor de su clave.

Ejemplo: En un A.D existe la dimensin CLIENTE. En la tabla


correspondiente un registro representa la informacin sobre el
cliente Mara Garca cuyo estado civil cambia el 15-01-1994
de soltera a casada. El estado civil del cliente es utilizado con
frecuencia en el anlisis de la informacin.

Dimensiones que cambian


Existen tres estrategias para el tratamiento de los
cambios en las dimensiones:
Tipo 1: Realizar la modificacin.
Tipo 2: Crear un nuevo registro.
Tipo 3: Crear un nuevo atributo.

Dimensiones que cambian


Tipo 1: Realizar la modificacin.
estrategia mas fcil de implementar.
la informacin histrica ya no es segura.
es aconsejable para:
corregir errores.

tratar cambios que no son relevantes para el anlisis (ej.


direccin del cliente, nombre del cliente, ...).

Dimensiones que cambian


Tipo 2: Crear un nuevo registro con los nuevos valores.
a partir de ese momento existen en el A.D varias versiones
de un mismo objeto del mundo real (cliente).
es necesario crear un nuevo valor para la clave
(generalizacin de la clave original o generacin de un nuevo
valor).
implica una particin de la tabla de hechos en subconjuntos
de tuplas asociados a cada versin del objeto.
el usuario no puede relacionar la informacin sobre las
distintas versiones del objeto (en la prctica son dos objetos
distintos).

el usuario puede reconstruir la historia del objeto a partir de


otros atributos que no cambien de valor, como la clave del
operacional (dni, nss, ..).
es responsabilidad del S.G.A.D saber cul es la ltima
versin del objeto para asociarle los nuevos hechos que llegan
al A.D.

Dimensiones que cambian


Generalizacin de la clave original: cuando la clave de la
dimensin coincide con una clave del sistema operacional
(clave con significado). La solucin mas usual es aadir a
la clave original uno o dos dgitos de versin para
contemplar los sucesivos cambios.
Generacin de un nuevo valor para la clave: cuando los
valores de la clave son generados artificialmente (clave
sin significado).

Dimensiones que cambian


CLIENTE
Pliza
Cliente

Tiempo

nro_cliente dni

nombre

civil

.......

123

1876543

Mara Garca

Soltera

......

1876543

Mara Garca

Casada

......

1876543

Mara Garca

Divorciada ....

....
nro_cliente

123

id_poliza

id_fecha

12/12/01

35

13/01/02

dgito de versin

...
1232

.....
1232

....
1231

1231

359

11/04/02

....
el cliente de nro_cliente 123 realiza una pliza (1) en la fecha 12/12/01
el cliente de nro_cliente 1231 realiza una pliza (35) en la fecha 13/01/02
el cliente de nro_cliente 1232 realiza una pliza (359) en la fecha 11/04/02

Dimensiones que cambian


Tipo 3: Crear un nuevo atributo.
se mantiene el atributo original con su valor
y se crea un nuevo atributo con el valor
actual y un atributo para indicar la fecha del
cambio
la particin en las tuplas asociadas de la
tabla de hechos se realiza utilizando la fecha
del cambio

Dimensin
...
atributo_original
atributo_actual
fecha_cambio

slo se conservan dos valores: el valor


original y el valor actual (se pierden los
valores intermedios).
permite considerar la historia completa del
objeto (independientemente del valor del
atributo) o considerar la historia dividida en
dos periodos (anterior y posterior a la fecha
de cambio).

...

Definiciones de Agregados
En un almacn de datos es usual consultar
informacin agregada!
Ejemplos:
ventas por almacn, da y categora de producto
ventas por ciudad, da y producto
ventas por ciudad, mes y producto
ventas por ciudad, da y categora de producto

El almacenamiento de datos agregados por distintos


criterios de agregacin mejora la eficiencia del AD.

Definiciones de Agregados
Estrategias de almacenamiento de datos
agregados:
Estrategia 1: definir nuevas tablas de hechos y
de dimensiones para almacenar la informacin
agregada y la descripcin de los niveles de
agregacin. (definir un nuevo esquema en
estrella).
Estrategia 2: insertar en las tabla de hechos y
en las tablas de dimensiones del esquema,
tuplas que representan respectivamente la
informacin agregada y los niveles de
agregacin.

Definiciones de Agregados
Estrategia 1: definir nuevas tablas de hechos y de
dimensiones (nuevos esquemas en estrella).
Si se desea poder almacenar informacin agregada por categoras,
ciudades y meses, se necesitarn tres "nuevas tablas de dimensiones"
(CATEGORA, CIUDAD y MES) y tantas nuevas tablas de hechos como
tipos distintos de agregacin se desee realizar combinando estos tres
criterios de agregacin y las tres dimensiones bsicas. Por ejemplo:
ventas por categora, da y almacn
ventas por producto, mes y almacn
ventas por producto, da y ciudad
ventas por categora, mes y almacn
ventas por categora, da y ciudad
ventas por producto, mes y ciudad
ventas por categora, mes y ciudad.

Definiciones de Agregados
Estrategia 1: definir nuevas tablas de hechos y de
dimensiones.
Categora

id_categora
categora
departamento

Mes
id_mes
mes

Ciudad
id_ciudad

ao

regin
pas

Nuevas tablas de dimensiones

Definiciones de Agregados
Estrategia 1: definir nuevas tablas de hechos y de
dimensiones.
Almacn

Tiempo
id_fecha

id_almacn

da

nro_almacn

semana

Ventascategora

mes

id_fecha

ao

id_categora

....

id_almacn

Categora
id_categora
categora
departamento

importe
unidades

nombre
direccin

distrito
ciudad
pas
...

nro_clientes

Nueva tabla
de hechos

Nuevo esquema
en estrella

Definiciones de Agregados
Estrategia 1: definir nuevas tablas de hechos y de
dimensiones.
La creacin de "tablas de dimensiones de agregacin"
exige la definicin de claves artificiales para identificar todos
los valores posibles para cada criterio de agregacin
considerado (id_categora, id_ciudad, id_mes)

Definiciones de Agregados
Estrategia 1: definir nuevas tablas de hechos y de
dimensiones.
La definicin de tablas de agregacin por cualquier
criterio no siempre tiene sentido.

La definicin de la tabla agregada Ventas-categora


aconseja no definir tambin la tabla agregada de Ventasdepartamento, ya que sta ltima es fcilmente calculable

a partir de la primera.

Definiciones de Agregados
Estrategia 2: insertar nuevas tuplas en la tabla
de hechos y en las tablas de dimensiones.
Producto

Tiempo
id_fecha

id_producto

da

nro_producto

semana
mes
ao

Ventas

descripcin
id_echa
id_producto

Almacn

id_almacn

id_almacn

importe

nro_almacn

unidades

nombre
direccin
distrito

nivel_agregacin

marca
subcategora
categora
departamento
...

nro_clientes

Nuevo atributo para indicar


el nivel de agregacin
representado por la tupla

Definiciones de Agregados
Estrategia 2: insertar nuevas tuplas en la tabla de
hechos y en las tablas de dimensiones.
Producto
id_producto
nro_producto
nivel_agregacin
descripcin
marca
subcategora

categora
departamento
...

Valores del atributo nivel_agregacin: base,


categora, departamento, todos, ...
(contemplando la definicin de agregados a
distintos niveles de agregacin en la
dimensin producto)

Definiciones de Agregados
Estrategia 2: insertar nuevas tuplas en la tabla de hechos
y en las tablas de dimensiones.
Producto
id_prod nivel_agreg

...

categora ... depto ...

tipo_envase

.....
23

base

refresco

bebidas

cristal

145

categora

servilleta

droguera

NULL

13

departamento

NULL

bebidas

NULL

......

tuplas de agregacin

Ventas

id_fecha id_producto id_almacn importe unidades nro_clientes

....
12

145

28

50000

100

18

12

23

23

2000

13

23

600000

340

90

....

Definiciones de Agregados
Estrategia 2: insertar nuevas tuplas en la tabla de
hechos y en las tablas de dimensiones.
La estrategia 2, exige que en las consultas se controle
el valor del atributo nivel_agregacin: todas las tuplas
seleccionadas al evaluar una restriccin sobre la
dimensin deben tener el mismo valor en el atributo
nivel_agregacin.
En la estrategia 2, las claves nuevas definidas para
representar los niveles de agregacin deben ser
compatibles con las claves de las dimensiones
originales.

Definiciones de Agregados
Estrategia 2: insertar nuevas tuplas en la tabla de hechos
y en las tablas de dimensiones.
la estrategia 2 puede plantear el problema del doble
conteo en la evaluacin de restricciones sobre una
dimensin: considerar en una agregacin tuplas de niveles
distintos (ej. del nivel bsico y de otro nivel de agregacin).
Producto
Una restriccin sobre la dimensin
Producto que incluya la condicin
Categora=Papel y que no controle el valor
del atributo nivel_agregacin, recuperara
tuplas correspondientes a productos
bsicos de la categora Papel y la tupla de
nivel de agregacin categora
correspondiente a la categora Papel.

id_producto
nro_producto
nivel_agregacin
descripcin
marca
subcategora
categora
departamento
...