Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Marta Zorrilla
Universidad de Cantabria
2010/11
Tabla de contenido
Ciclo de vida de un sistema BI/DW
Diseo multidimensional
Modelo dimensional bsico
Data warehouse vs data marts
Modelo dimensional extendido
Procesos ETL
Cubos OLAP
Soporte para BD dimensionales en SQL:1999 Y
SQL:2003
2010/11
2010/11
Data Area
Operational
source systems
ETL
processes
ERP
..
.
Ad-hoc
solution
Sales
ETL
processes
Star schemas
Querying
and
Reporting
tool
Staging
Area
SCM
ROLAP Cubes
Web log,..
OLAP
cubes
OLAP
cubes
OLAP
cubes
Data mining
EIS
External data
sources
Statistics files,
etc.
OLAP
cubes
OLAP
cubes
MOLAP
Cubes
2010/11
2010/11
Modelo de procesos
Business
Requirements
Dimensional
Modelling
Test and
Deployment
Maintenance Plan
ETL Design
and Development
OLAP Cubes
Design and Build
User Interface
Development
2010/11
Planificacin
Planificacin
proyecto
proyecto
Definicin
Definicin
de
de
Requisitos
Requisitos
del
del
negocio
negocio
Diseo
Diseo
Arquitectura
Arquitectura
Seleccin
Seleccin
Productos
Productos ee
Instalacin
Instalacin
Modelo
Modelo
dimensional
dimensional
Diseo
Diseo
fsico
fsico
Diseo
Diseo
procesos
procesos ETL
ETL
Integracin
Mantenimiento
Integracin yy Mantenimiento
yy crecimiento
despliegue
crecimiento
despliegue
Desarrollo
Desarrollo
Aplicacin
Aplicacin
Usuario
Usuario
Especificacin
Especificacin
Aplicacin
Aplicacin
Usuario
Usuario
Gestin
Gestin del
del proyecto
proyecto
Marta Zorrilla - Universidad de Cantabria
2010/11
Planificacin
Planificacin
proyecto
proyecto
Definicin
Definicin
de
de
Requisitos
Requisitos
del
del
negocio
negocio
Diseo
Diseo
Arquitectura
Arquitectura
Seleccin
Seleccin
Productos
Productos ee
Instalacin
Instalacin
Modelo
Modelo
dimensional
dimensional
Diseo
Diseo
fsico
fsico
Especificacin
Especificacin
Aplicacin
Aplicacin
Usuario
Usuario
Diseo
Diseo
procesos
procesos ETL
ETL
Desarrollo
Desarrollo
Mantenimiento
Mantenimiento
yy crecimiento
crecimiento
Desarrollo
Desarrollo
Aplicacin
Aplicacin
Usuario
Usuario
Gestin
Gestin del
del proyecto
proyecto
2010/11
Definicin de requisitos
Planificacin
Planificacin
proyecto
proyecto
Definicin
Definicin
de
de
Requisitos
Requisitos
del
del
negocio
negocio
Diseo
Diseo
Arquitectura
Arquitectura
Seleccin
Seleccin
Productos
Productos ee
Instalacin
Instalacin
Modelo
Modelo
dimensional
dimensional
Diseo
Diseo
fsico
fsico
Especificacin
Especificacin
Aplicacin
Aplicacin
Usuario
Usuario
Diseo
Diseo
procesos
procesos ETL
ETL
Desarrollo
Desarrollo
Mantenimiento
Mantenimiento
yy crecimiento
crecimiento
Desarrollo
Desarrollo
Aplicacin
Aplicacin
Usuario
Usuario
Gestin
Gestin del
del proyecto
proyecto
Determinar indicadores
Deben reflejar lo que se quiere medir y, por tanto, hay que tener
una definicin clara y concisa para su clculo.
2010/11
Planificacin
Planificacin
proyecto
proyecto
Definicin
Definicin
de
de
Requisitos
Requisitos
del
del
negocio
negocio
Diseo
Diseo
Arquitectura
Arquitectura
Seleccin
Seleccin
Productos
Productos ee
Instalacin
Instalacin
Modelo
Modelo
dimensional
dimensional
Diseo
Diseo
fsico
fsico
Especificacin
Especificacin
Aplicacin
Aplicacin
Usuario
Usuario
Diseo
Diseo
procesos
procesos ETL
ETL
Desarrollo
Desarrollo
Mantenimiento
Mantenimiento
yy crecimiento
crecimiento
Desarrollo
Desarrollo
Aplicacin
Aplicacin
Usuario
Usuario
Gestin
Gestin del
del proyecto
proyecto
Source: Gartner
2010/11
10
Evaluacin de herramientas
2010/11
11
Marta Zorrilla
Universidad de Cantabria
2010/11
Nombre
Direccion
Codigo_empresa
A-234
Luis Aja
Alta, 5 Stder.
E-54
A-741
Ana Ros
Pez, 21 Madrid
E-33
A-562
Jos Maza
Ercilla, 3 Bilbao
E-54
Nombre
Direccion
Luis Aja
Alta, 5 Stder.
Jos Maza
2010/11
Ercilla, 3 Bilbao
15
Criterio de diseo:
No repetir datos
innecesariamente
(Normalizacin)
Nombre
Direccion
Codigo_empresa
A-234
Luis Aja
Alta, 5 Stder.
E-54
A-741
Ana Ros
Pez, 21 Madrid
E-33
A-562
Jos Maza
Ercilla, 3 Bilbao
E-54
Facturas
Unas tablas se refieren a otras
mediante vnculos de tipo
jerrquico.
Este vnculo de referencia
entre dos tablas se establece
mediante columnas con idntico
tipo de dato.
Codigo_cliente
Fecha
Tipo_IVA
Numero_factura
A-741
22-6-2004
16
3421
A-562
22-6-2004
16
3422
A-741
24-6-2004
16
3423
16
Clientes
Clientes
Codigo_cliente
Codigo_cliente
Nombre
Nombre
Direccion
Direccion
Codigo_empresa
Codigo_empresa
Facturas
Facturas
Numero_factura
Numero_factura
Codigo_cliente
Codigo_cliente
Fecha
Fecha
Tipo_IVA
Tipo_IVA
Lineas_factura
Lineas_factura
Numero_factura
Numero_factura
Numero_linea
Numero_linea
Codigo_articulo
Codigo_articulo
Unidades
Unidades
Precio_unitario
Precio_unitario
Coste_unitario
Coste_unitario
Articulos
Articulos
Codigo_articulo
Codigo_articulo
Cod_tipo_artic
Cod_tipo_artic
Descripcion
Descripcion
Ult_coste_unitario
Ult_coste_unitario
Empresas
Empresas
Codigo_empresa
Codigo_empresa
Nombre_empresa
Nombre_empresa
Pais
Pais
Direccion_central
Direccion_central
Paises
Paises
Pais
Pais
Tipos_articulos
Tipos_articulos
Cod_tipo_artic
Cod_tipo_artic
Descripcion_tipo
Descripcion_tipo
2010/11
17
Beneficio de ventas en el ao
2004 a empresas francesas
segn tipos de artculos?
Facturas
Facturas
Numero_factura
Numero_factura
Codigo_cliente
Codigo_cliente
Fecha
Fecha
Tipo_IVA
Tipo_IVA
Lineas_factura
Lineas_factura
Numero_factura
Numero_factura
Numero_linea
Numero_linea
Codigo_articulo
Codigo_articulo
Unidades
Unidades
Precio_unitario
Precio_unitario
Coste_unitario
Coste_unitario
Articulos
Articulos
Codigo_articulo
Codigo_articulo
Cod_tipo_artic
Cod_tipo_artic
Descripcion
Descripcion
Ult_coste_unitario
Ult_coste_unitario
Empresas
Empresas
Codigo_empresa
Codigo_empresa
Nombre_empresa
Nombre_empresa
Pais
Pais
Direccion_central
Direccion_central
Paises
Paises
Pais
Pais
Tipos_articulos
Tipos_articulos
Cod_tipo_artic
Cod_tipo_artic
Descripcion_tipo
Descripcion_tipo
2010/11
18
Clientes
Clientes
Codigo_cliente
Codigo_cliente
Empresa
Empresa
Nombre
Nombre
Pais
Pais
Direccin
Direccin
Transformacin de datos
Desnormalizacin
Ventas
Ventas
Fecha
Fecha
Codigo_articulo
Codigo_articulo
Codigo_cliente
Codigo_cliente
Unidades
Unidades
Importe
Importe
Coste
Coste
Beneficio
Beneficio
Articulos
Articulos
Codigo_articulo
Codigo_articulo
Descripcin
Descripcin
Tipo_articulo
Tipo_articulo
Medida
Hecho
Tabla de hechos:
Cada fila corresponde a una medida
Igual grado de detalle (grano) en todos los hechos
Los hechos ms tiles son los numricos y aditivos
Tablas de dimensin:
Contienen descriptores textuales
Son los puntos de entrada en la tabla de hechos
An no es el modelo dimensional
Marta Zorrilla - Universidad de Cantabria
2010/11
19
Cubos e hipercubos
n
il e
s
te
Fechas
2010/11
20
Articulos
n
il e
s
te
Fechas
2010/11
21
Articulos
n
il e
s
te
Fechas
2010/11
22
Articulos
n
il e
s
te
Fechas
2010/11
23
2010/11
24
Articulos
d es el nmero de
dimensiones
Muchos de los cubos no
tiene medida (no ocupan
espacio)
Espaa
Francia
Ao 2003
n
il e
s
te
Ao 2004
Fechas
Marta Zorrilla - Universidad de Cantabria
2010/11
25
Clientes
Clientes
Ventas
Ventas
Fecha
Fecha
Codigo_articulo
Codigo_articulo
Codigo_cliente
Codigo_cliente
Unidades
Unidades
Importe
Importe
Coste
Coste
Beneficio
Beneficio
Codigo_cliente
Codigo_cliente
Empresa
Empresa
Nombre
Nombre
Pais
Pais
Direccin
Direccin
Tabla de hechos:
Atributos (hechos) [aditividad]
Claves de referencia
Clave simple (autonumrica)
Articulos
Articulos
Tablas de dimensin:
Codigo_articulo
Codigo_articulo
Descripcin
Descripcin
Tipo_articulo
Tipo_articulo
Claves de gestin
Atributos [criterios de agregacin]
Claves simples (autonumricas)
Fechas
Fechas
Id_fecha
Id_fecha
Fecha
Fecha
Ao
Ao
Mes
Mes
Dia
Dia
Clientes
Clientes
Id_cliente
Id_cliente
Codigo_cliente
Codigo_cliente
Empresa
Empresa
Nombre
Nombre
Pais
Pais
Direccin
Direccin
Ventas
Ventas
Id_venta
Id_venta
Id_fecha
Id_fecha
Id_articulo
Id_articulo
Id_cliente
Id_cliente
Unidades
Unidades
Importe
Importe
Coste
Coste
Beneficio
Beneficio
Articulos
Articulos
Id_articulo
Id_articulo
Codigo_articulo
Codigo_articulo
Descripcin
Descripcin
Tipo_articulo
Tipo_articulo
Esquema dimensional
(en Estrella)
2010/11
26
Facturas
Facturas
Numero_factura
Numero_factura
Codigo_cliente
Codigo_cliente
Fecha
Fecha
Tipo_IVA
Tipo_IVA
Lineas_factura
Lineas_factura
Numero_factura
Numero_factura
Numero_linea
Numero_linea
Codigo_articulo
Codigo_articulo
Unidades
Unidades
Precio_unitario
Precio_unitario
Coste_unitario
Coste_unitario
Articulos
Articulos
Extraccin
Codigo_articulo
Codigo_articulo
Cod_tipo_artic
Cod_tipo_artic
Descripcion
Descripcion
Ult_coste_unitario
Ult_coste_unitario
Transformacin
Empresas
Empresas
Esquema
relacional
Codigo_empresa
Codigo_empresa
Nombre_empresa
Nombre_empresa
Pais
Pais
Direccion_central
Direccion_central
Paises
Paises
Pais
Pais
Tipos_articulos
Tipos_articulos
Cod_tipo_artic
Cod_tipo_artic
Descripcion_tipo
Descripcion_tipo
Fechas
Fechas
Id_fecha
Id_fecha
Fecha
Fecha
Ao
Ao
Mes
Mes
Dia
Dia
Clientes
Clientes
Id_cliente
Id_cliente
Codigo_cliente
Codigo_cliente
Empresa
Empresa
Nombre
Nombre
Pais
Pais
Direccin
Direccin
2010/11
Carga
Ventas
Ventas
Id_venta
Id_venta
Id_fecha
Id_fecha
Id_articulo
Id_articulo
Id_cliente
Id_cliente
Unidades
Unidades
Importe
Importe
Coste
Coste
Beneficio
Beneficio
Articulos
Articulos
Id_articulo
Id_articulo
Codigo_articulo
Codigo_articulo
Descripcin
Descripcin
Tipo_articulo
Tipo_articulo
Esquema dimensional
(en Estrella)
27
2010/11
28
2010/11
29
2010/11
30
Nuevas dimensiones:
Nuevas medidas:
Nuevas columnas en la tabla de hechos
Hay que rellenar de valor las filas anteriores al cambio
2010/11
31
Clientes
Clientes
Id_cliente
Id_cliente
Codigo_cliente
Codigo_cliente
Empresa
Empresa
Nombre
Nombre
Pais
Pais
Direccin
Direccin
Ventas
Ventas
Id_venta
Id_venta
Id_fecha
Id_fecha
Id_articulo
Id_articulo
Id_cliente
Id_cliente
Id_promocion
Id_promocion
Unidades
Unidades
Importe
Importe
Coste
Coste
Beneficio
Beneficio
Articulos
Articulos
Id_articulo
Id_articulo
Codigo_articulo
Codigo_articulo
Descripcin
Descripcin
Tipo_articulo
Tipo_articulo
Promocion
Promocion
Id_promocion
Id_promocion
Nombre_prom
Nombre_prom
Tipo_prom
Tipo_prom
Fecha_ini_prom
Fecha_ini_prom
Fecha_fin_prom
Fecha_fin_prom
2010/11
32
Ej.: Qu productos
estuvieron en promocin
en qu almacenes y en
qu das?
Cobertura
Cobertura
promocin
promocin
Fechas
Fechas
Almacenes
Almacenes
Id_fecha
Id_fecha
Id_articulo
Id_articulo
Id_almacen
Id_almacen
Id_promocion
Id_promocion
Promotion
Promotioncount(=1)
count(=1)
2010/11
Artculos
Artculos
Promocin
Promocin
33
Clientes
Clientes
Empresas
Empresas
Id_empresa
Id_empresa
Empresa
Empresa
Pas
Pas
Ventas
Ventas
Id_venta
Id_venta
Id_fecha
Id_fecha
Id_articulo
Id_articulo
Id_cliente
Id_cliente
Id_promocion
Id_promocion
Unidades
Unidades
Importe
Importe
Coste
Coste
Beneficio
Beneficio
Articulos
Articulos
Id_articulo
Id_articulo
Codigo_articulo
Codigo_articulo
Descripcin
Descripcin
Tipo_articulo
Tipo_articulo
Promocion
Promocion
Id_promocion
Id_promocion
Nombre_prom
Nombre_prom
Tipo_prom
Tipo_prom
Fecha_ini_prom
Fecha_ini_prom
Fecha_fin_prom
Fecha_fin_prom
Id_cliente
Id_cliente
Codigo_cliente
Codigo_cliente
Id_empresa
Id_empresa
Nombre
Nombre
Direccin
Direccin
2010/11
34
Clientes
Clientes
Fechas
Fechas
Empleados
Empleados
Proveedores
Proveedores
Promocion
Promocion
Ventas
Ventas
[transacciones]
Inventario
Inventario
[fotos (snapshot
(snapshot)]
snapshot)]
Articulos
Articulos
Almacenes
Almacenes
Compras
Compras
[transacciones]
2010/11
35
Transaccional
Snapshot
Ejemplos:
Balance bancario
Inventario
Temperaturas de una habitacin
2010/11
36
Inventario
Inventario (snapshot)
(snapshot)
Alm_ID
Alm_ID
Atributos
Atributos alm.
alm.
Margen de retorno
=
de inventario
inventario_ID
inventario_ID
Alm_ID
Alm_ID
Producto_ID
Producto_ID
Fecha_ID
Fecha_ID
Uds_entradas
Uds_entradas
Uds_vendidas
Uds_vendidas
Precio_coste
Precio_coste
Precio_ult_venta
Precio_ult_venta
Producto_ID
Producto_ID
Atributos
Atributos producto
producto
Fecha
Fecha
Fecha_ID
Fecha_ID
Atributos
Atributos derivados
derivados
2010/11
37
2010/11
Fechas
Artculos
Almacenes
Promocin
Empleados
Clientes
Proveedores
2010/11
39
Dimensiones
s
es
n
r
e
s
o
s
i
o
n
o
c
e
d
as u l
te
o
c
ed
a
h
n
c
a
e
c
e
m
i
e
l
i
v
p
Fe Art Alm Pro
Cl Pro
m
E
Hechos
os
Ventas
Inventario
Compras
Movimientos
2010/11
40
2010/11
41
2010/11
42
2010/11
43
Hechos conformados
2010/11
44
Data marts
Data mart:
2010/11
45
2010/11
46
2010/11
47
Kimball vs Inmon
2010/11
48
2010/11
2010/11
Ventas
Ventas
Id_venta
Id_venta
Id_fecha_pedido
Id_fecha_pedido
Id_fecha_entrega
Id_fecha_entrega
.
.
Unidades
Unidades
Total
Total
.
.
50
Relaciones n a m
En ocasiones puede darse el caso de que a una fila de la tabla de hechos le pueda
corresponder un nmero variable de filas de una dimensin (adems de lo normal,
una fila de dimensin que pueda tener asociadas varias filas en la tabla de hechos)
Ejemplo: movimientos de cuentas que puedan ser ms de un cliente
Cuent_client
Cuent_client
Fechas
Fechas
Movimientos_cuenta
Movimientos_cuenta
Id_fecha
Id_fecha
Fecha
Fecha
Ao
Ao
Mes
Mes
Dia
Dia
Id_movimiento
Id_movimiento
Id_fecha
Id_fecha
Id_cuenta
Id_cuenta
Id_tipo
Id_tipo
Debe
Debe
Haber
Haber
Cuentas
Cuentas
Id_cuenta
Id_cuenta
Numero_cuenta
Numero_cuenta
Descripcin
Descripcin
Fecha_apertura
Fecha_apertura
Id_cuenta
Id_cuenta
Id_cliente
Id_cliente
Factor_particip
Factor_particip
Clientes
Clientes
Id_cliente
Id_cliente
Codigo_cliente
Codigo_cliente
Empresa
Empresa
Nombre
Nombre
Pais
Pais
Direccin
Direccin
Tipo_movim
Tipo_movim
Id_tipo
Id_tipo
Codigo_tipo
Codigo_tipo
Descr_tipo
Descr_tipo
2010/11
51
Junk dimensin
Ej.: tipo de pago (crdito o dbito), tarjeta con comisin o sin ella, venta nacional
o internacional,
Junk dimensin, dimensin que combina todos los valores posibles de este
tipo de atributos.
2010/11
52
Dimensin degenerada
2010/11
Ventas
Ventas
Id_venta
Id_venta
Id_fecha
Id_fecha
Id_articulo
Id_articulo
Id_cliente
Id_cliente
Id_promocion
Id_promocion
Numero_pedido
Numero_pedido
Unidades
Unidades
Total
Total
Coste
Coste
Beneficio
Beneficio
53
2010/11
54
Tipo 2
Tipo 3
Id Cd.
1 Q12
Id Cd.
1 Q12
Desc.
mesa
Dpto
oficinas
Id Cd.
1 Q12
2 Q12
Desc.
mesa
mesa
Dpto
mobiliario
oficinas
Desc.
mesa
2010/11
DptoAct
oficinas
DptoAnterior
mobiliario
55
PersonaKey
PersonaKey
Atributos
Atributos
DemografaPer
DemografaPer
DemoKey
DemoKey
Atributos
Atributos
2010/11
56
Marta Zorrilla
Universidad de Cantabria
2010/11
Objetivo
Fuentes de datos
internas
Compras
BD Relacional (OLTP)
Contabilidad
..
.
Herramienta
ETL
Extraccin
Transformacin
Carga
ETL
RR/HH
Datos detalle
ETL
Staging
Area
Web log,..
Fuentes de datos
externas
INE, INEM,
2010/11
85
Limpieza
Integracin
Transformacin
Carga de datos
2010/11
88
2010/11
89
Incompletos porque
Incorrectos debido a
Inconsistentes porque
2010/11
90
Data warehouse
integracin consistente de datos con calidad
2010/11
91
Caractersticas de calidad
Preciso
Completo
Consistente
Creble
Con valor aadido
Interpretable
Accesible
Riguroso en el tiempo
2010/11
92
Importancia
Tareas
2010/11
93
qu soluciones?
2010/11
94
Integracin de datos
El problema de la redundancia:
2010/11
95
Transformacin
errores tipogrficos
datos que no tienen sentido (fecha de nacimiento > hoy)
resolver conflictos de dominio
aclarar datos ambiguos
asignar valor a datos nulos (missing data)
2010/11
96
Transformacin (y 2)
Uso de metadata
2010/11
97
Carga
Inicial
2010/11
98
Cubos OLAP
2010/11
2010/11
110
VENTAS
Tiempo
Marta Zorrilla - Universidad de Cantabria
2010/11
te
n
lie
P
r
o
d
u
c
t
o
111
Informe OLAP
rea
geogrfica
(cliente)
Producto
Ao
E
M
R
O
NF
2010/11
112
Componentes de un cubo
Cliente
Miembro
Argentina
Blgica
Canad
Francia
Italia
VENTAS
()
Producto
Camembert
Gorgonzola
Chocolate
Pat Chinoise
Ravioli
Propiedades
Celdas
Niveles
Da1 Da 2 ....
Tiempo
Producto
Camembert
Gorgonzola
Chocolate
Pat Chinoise
Ravioli
Stock min.
10
20
35
15
125
Obsoleto
N
N
N
N
N
2010/11
113
Definir dimensiones
balanceada (producto)
no balanceada (empleado)
desigual (el padre de un miembro no se encuentra en el
nivel que est por encima inmediatamente de ste, cliente)
2010/11
114
Dimensin equilibrada
2010/11
115
Dimensin no equilibrada
2010/11
116
Dimensin desigual
2010/11
117
Definir cubos
Aditivas y no aditivas
Mtricas calculadas
Mtricas calculadas:
2010/11
118
MOLAP
MOLAP
Base Datos Multidimensional
Capacidad
ROLAP
ROLAP
Base Datos Relacional
HOLAP
HOLAP
Sistema hbrido
DOLAP
DOLAP
Desktop OLAP
Marta Zorrilla - Universidad de Cantabria
2010/11
119
Herramientas OLAP
Lo interesante no es poder realizar consultas que, en
cierto modo, se pueden hacer con selecciones,
proyecciones, concatenaciones y agrupamientos
tradicionales.
Lo realmente interesante de las herramientas OLAP
son sus operadores de refinamiento o manipulacin
de consultas.
DRILL
ROLL
SLICE & DICE
PIVOT
Marta Zorrilla - Universidad de Cantabria
2010/11
126
Seleccin y proyeccin
Pivot (rotar):
Reorientar el cubo
Drill:
2010/11
127
Learner
France
100 50
Italy
200 150
Course
Course
100 200
Databases
Slice and Dice
(learners from France or
Italy in Q1 and Q2 of 2005
and course Programming or
Databases)
Date
Q1-05
Programming
Programming
Q1-05 Q2-05
Date
Databases
Pivot
Learner
Argentina 100 20
Belgium
250 25
80 75
Canada
100 50
France
Italy
200 150 70 300 25
50
Q2-05
150
France Italy
Learner
Course
Programming
Foreign Language
Operating Systems
Databases
Arts
Date
Drill-down
on Learner
Learner
Learner
Roll-up
on Date
Argentina 120
Belgium
275
155
Canada
150
France
Italy
350 370 25
70 300 25
Course
Programming
Foreign Language
Operating Systems
Databases
Arts
Date
Date
2010/11
128
Herramientas OLAP
Las herramientas de OLAP se caracterizan por:
ofrecer una visin multidimensional de los datos (matricial).
no imponer restricciones sobre el nmero de dimensiones.
ofrecer simetra para las dimensiones.
permitir definir de forma flexible (sin limitaciones) sobre las
dimensiones: restricciones, agregaciones y jerarquas entre
ellas.
ofrecer operadores intuitivos de manipulacin: drill-down, rollup, slice-and-dice, pivot.
ser transparentes al tipo de tecnologa que soporta el almacn
de datos (ROLAP o MOLAP).
2010/11
129
2010/11
2010/11
131
BD ejemplo
2010/11
132
2010/11
133
2010/11
134
ROLLUP
CUBE
2010/11
135
2010/11
136
2010/11
137
2010/11
138
Grouping Function
Se
Se utiliza
utiliza para
para distinguir
distinguir entre
entre los
los valores
valores NULL
NULL devueltos
devueltos por
por CUBE
CUBE oo
ROLLUP
ROLLUP yy los
los valores
valores NULL
NULL normales.
normales. Permite
Permite conocer
conocer las
las filas
filas con
con
subtotales.
subtotales.
Obtener el n de unidades pedidas por categora, ao y pas y el total, con los
subtotales por categora
SELECT
SELECT CategoriaNombre,
CategoriaNombre,Pais,
Pais,Ao,
Ao,SUM(UnidadesLinea)
SUM(UnidadesLinea)AS
ASsuma,
suma,
grouping
grouping(ao)
(ao)as
asGroupingAo,grouping
GroupingAo,grouping(pais)
(pais)as
asGroupingPais
GroupingPais
FROM
Ventas_Fact
FROM
Ventas_FactINNER
INNERJOIN
JOINProducto_Dim
Producto_DimON
ON
Ventas_Fact.ProductoKey
Ventas_Fact.ProductoKey==Producto_Dim.ProductoKey
Producto_Dim.ProductoKeyINNER
INNERJOIN
JOIN
Cliente_Dim
Cliente_DimON
ONVentas_Fact.ClienteKey
Ventas_Fact.ClienteKey==Cliente_Dim.ClienteKey
Cliente_Dim.ClienteKey
INNER
INNERJOIN
JOINTiempo_Dim
Tiempo_DimON
ONVentas_Fact.TiempoKey
Ventas_Fact.TiempoKey==
Tiempo_Dim.TiempoKey
Tiempo_Dim.TiempoKey
GROUP
GROUPBY
BYROLLUP
ROLLUP((
CategoriaNombre,
CategoriaNombre,Pais,
Pais,Ao)
Ao)
Marta Zorrilla - Universidad de Cantabria
2010/11
139
34 nuevas funciones:
7 funciones numricas
16 funciones para agregacin
5 funciones de ventana
4 funciones sobre datos muestreados
2 funciones de distribucin inversa
2010/11
140
2010/11
141
Funciones incorporadas:
Funciones de clasificacin
Funciones de distribucin
Funcin de numeracin de filas
Las funciones agregadas (COUNT, SUM, MAX, MIN, AVG, EVERY, ANY O
SOME)
Y las 16 funciones agregadas nuevas
2010/11
142
Comparacin
2010/11
143
Sintaxis estndar
2010/11
144
Ejemplo
Obtener el salario promedio de los empleados por cada localidad
SELECT
SELECT
EmpleadoID,
EmpleadoID,Localidad,
Localidad,Salario,
Salario,
AVG(salario)
AVG(salario)over
over(partition
(partitionby
bylocalidad)
localidad)Salario_promed
Salario_promed
FROM
Empleados
FROM
Empleados
ORDER
ORDERBY
BYlocalidad
localidad
2010/11
145
Funciones ventana
Las
Las funciones
funciones ventana
ventana sese computan
computan despus
despus de
de aplicar
aplicar elel FROM,
FROM, WHERE,
WHERE,
GROUP
GROUPyyHAVING
HAVING
No
Nosesepueden
puedenutilizar
utilizaren
enninguna
ningunade
deestas
estasclusulas
clusulas
Se
Sepueden
puedenutilizar
utilizarfunciones
funcionesde
deagregacin
agregacinen
enlaladefinicin
definicinde
delalaventana
ventana
SiSiquieres
quieresreferirte
referirteaaellas
ellasdebes
debesanidarlas
anidarlasoousar
usaruna
unaexpresin
expresinde
detabla
tablacomn
comn
Clasificacin de las localidades en funcin de los salarios de sus empleados
SELECT
SELECT Localidad,
Localidad,sum(Salario),
sum(Salario),
rank()
rank()over
over(order
(orderby
bysum(salario))
sum(salario))as
asposicin
posicin
FROM
Empleados
FROM
Empleados
GROUP
GROUPBY
BY Localidad
Localidad
2010/11
146
ORDER BY necesario en
funciones ventana
Ejemplo
2010/11
147
2010/11
148
2010/11
149
Window frame
2010/11
150
Ejemplo
Obtener para cada empleado su sueldo promedio con respecto al sueldo del anterior
y el siguiente en su departamento
SELECT
SELECTdepartment_id,
department_id,employee_id,salary,
employee_id,salary,
avg(salary)
avg(salary)OVER
OVER(PARTITION
(PARTITIONBY
BYdepartment_id
department_idORDER
ORDERBY
BYsalary
salaryROWS
ROWS
BETWEEN
BETWEEN11PRECEDING
PRECEDINGAND
AND11FOLLOWING)
FOLLOWING) promedio_especial
promedio_especial
FROM
FROMemployees
employees
2010/11
151
2010/11
152
2010/11
153
Ejemplo
Obtener la posicin que tendra un empleado con un salario de 2300
SELECT
SELECTemployee_id,
employee_id,job_id,
job_id,salary,
salary,
rank()
rank()over
over(order
(orderby
bysalary
salary))as
asposicin
posicin FROM
FROMemployees
employees
SELECT
SELECT
rank(2300)
rank(2300)within
withingroup
group(order
(orderby
bysalary
salaryasc)
asc)
FROM
FROMemployees
employees
order
orderby
bysalary
salary
2010/11
154
Ejemplo
Obtener la posicin que tendra un empleado hipottico con 15.500 de salario y
comisin del 5%
SELECT
SELECTDENSE_RANK(15500,
DENSE_RANK(15500,.05)
.05)WITHIN
WITHINGROUP
GROUP
(ORDER
(ORDERBY
BYsalary
salary, ,commission_pct)
commission_pct)"Dense
"DenseRank"
Rank"
FROM
FROMemployees;
employees;
2010/11
155
2010/11
156
Ejemplo
Computa el salario medio en cada departamento
SELECT
SELECTdepartment_id,
department_id,
PERCENTILE_CONT(0.5)
PERCENTILE_CONT(0.5)WITHIN
WITHINGROUP
GROUP(ORDER
(ORDERBY
BYsalary
salaryDESC)
DESC)
"Median
"Mediancont",
cont",
PERCENTILE_DISC(0.5)
PERCENTILE_DISC(0.5)WITHIN
WITHINGROUP
GROUP(ORDER
(ORDERBY
BYsalary
salaryDESC)
DESC)
"Median
"Mediandisc"
disc"
FROM
FROMemployees
employees
GROUP
GROUPBY
BYdepartment_id;
department_id;
PERCENTILE_CONT devuelve el resultado despus de
hacer la interpolacin lineal
PERCENTILE_DISC devuelve un valor del conjunto de
valores que son agregados
Pueden no coincidir
Marta Zorrilla - Universidad de Cantabria
2010/11
157