Professional Documents
Culture Documents
Dos niveles con una relacin no-estricta aparece cuando se da una cardinalidad mxima
muchos entre el nivel i y el nivel i+1
4. Explica con ejemplos los dos operadores CUBE y ROLLUP que son una extensin al
SQL. (1 punto)
Calcula, sobre el resultado de la consulta (GROUP BY), todas las agregaciones que pueden
definirse combinando las tres dimensiones (parmetros) de la consulta (ao, departamento,
regin). Se genera un cubo de datos, el ms fino es la celda (ventas para un ao, departamento
y regin) y el ms grueso es la agregacin total (ventas totales en todos los aos,
departamentos y regiones).
Calcula sobre el resultado de la consulta (GROUP BY), agregaciones progresivas (de derecha
a izquierda) sobre los atributos de agrupacin (parmetros) de la consulta.
Dep Regin Ao SUM(importe)
Bebidas Este 2010 30
Bebidas Este 2011 20
Bebidas Este ALL 50
Bebidas Oeste 2010 15
Bebidas Oeste ALL 15
Bebidas ALL ALL 65
Fras Este 2010 25
Fras Este 2011 12
Fras Este ALL 37
Fras ALL ALL 37
ALL ALL ALL 102
Cuando una dimensin tiene una cardinalidad muy grande penaliza gravemente la evaluacin
de consultas que la incluye. La solucin es extraer una mini-dimensin de la dimensin original.
El ejemplo que se vio en teora nos puede servir.
Esta estrategia se basa en incluir ms filas en las tablas de dimensin e incluir un atributo
que indique que nivel de agregacin que se determina en la fila.
De esta forma en la tabla de hechos aparecen filas con informacin agregada para estas
nuevas filas. Esto se puede ver en el dibujo siguiente:
En esta estrategia las claves de las nuevas filas en la tabla de dimensin deben ser
compatibles con las existentes, y tambin se debe de controlar el nivel de agregacin en las
consultas en caso contrario puede aparecer el problema del doble conteo. Este problema
consiste en agregar datos de dos niveles de agregacin distintos, provocando que el mismo
dato se cuente dos veces o ms.