OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

34
OLAP (On-Line Analytical OLAP (On-Line Analytical Processing) Processing) e Banco de Dados e Banco de Dados Multidimensionais Multidimensionais Jacques Robin CIn-UFPE

Transcript of OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

Page 1: OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

OLAP (On-Line Analytical Processing)OLAP (On-Line Analytical Processing) e Banco de Dados e Banco de Dados Multidimensionais Multidimensionais

Jacques RobinCIn-UFPE

Page 2: OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

O que é OLAP?O que é OLAP? Processamento de dados, dedicado ao suporte a decisão, por meio de visualização de dados agregrados ao

longo de várias dimensões analíticas (tempo, espaço, categoria de produto, quantidade vendida, preço...),

hierarquizadas em várias granularidades, armazenados em BD especializadas, seguindo um modelo lógico de dados

multidimensional, chamados de Data Warehouse, Data Mart ou BD

multidimensionais

Page 3: OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

Exemplos de consultas OLAP:Exemplos de consultas OLAP:

Quais foram os produtos mais vendidos no mês passado ?

A média salarial dos funcionários de informática com menos de 5 anos de experiência é maior do que a mesma para funcionários de telecomunicação?

Qual foi o total de vendas o mês passado por região de vinhos tintos importados da Europa?

Por quais semanas, quais produtos e quais cidades, a variação de venda de produtos em promoção em comparação da semana anterior sem promoção foi 15%

Page 4: OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

Banco de dado operacional Banco de dado operacional x data warehouse x data martx data warehouse x data mart

BD operacional:• armazena valores correntes e

atômicas resultantes direitas das últimas transações

• a fins operacionais predefinidas ex, gerenciamento do estoque

Data Mart: • armazena réplicas históricas,

não voláteis, agregadas ao longo de várias dimensões analíticas

• as vezes limpadas, completadas e normalizadas em termos de escala e distribuição

• de dados de um único banco operacional

• a fins analíticas abertas de escopo departamental

Data Warehouse:• integra e padroniza dados• de vários:

data marts BD operacionais BD de legado empacotados BD semi-estruturados

extraídos de páginas web• em um único repositório

coerente e limpo de dados • a fins analíticas abertas de

escopo organizacional

Page 5: OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

OLTP x OLAPOLTP x OLAP Função Automatizar operações diárias Auxiliar tomada de decisão Usuário humano Cliente, Atendente, DBA Executivo, Analista, Eng. de Conhecimento Software cliente Aplicativos de inventário, Aplicativos de mineração de contabilidade, ... dados, análise matemática, ... Modelo lógico Relacional, Multidimensional, orientado por aplicações orientado por assuntos Granularidade Única e atômica Múltipla e agregada Temporalidade Apenas valor corrente Histórico dos valores, dos dados atualizada continuamente completado periodicamente Consultas Simples e predefinidas Complexas e ad-hoc Direção Tanto ler quanto escrever Essencialmente ler Envolve Acessos via índice e hash Junções, varreduras Registros 10 106 Usuários 103 [0-10] Bytes MB-GB GB-TB Prioridade Disponibilidade, eficiência Flexibilidade, interatividade Métrica Numero de transações Número e tempo de cada consulta

Page 6: OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

Modelo de dados multidimensionalModelo de dados multidimensional Cuboide:

• Espaço de dimensão N para análise de dado Dimensão analítica:

• Atributo geralmente categórico• Escolhido como eixo no espaço analítico N-dimensional• Campo de uma tabela do BD relacional fonte• ex, tempo, local, produto, fornecedor

Medida:• Atributo geralmente numérico• Escolhido como ponto no espaço analítico N-dimensional• Agregação de valores de um campo de uma tabela do BD

relacional fonte, calculada por group-by de outros campos da relação

• ex, valor total das vendas, valor média das vendas, quantidade vendidas,

Page 7: OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

Cuboide de dados: exemplo 4DCuboide de dados: exemplo 4D

Location Chicago New York TorontoItem HE Com

pTel Sec

uHE Comp Tel Secu HE Comp Tel Secu

Time Supplier

Q1 Sup1Sup2

Q2 Sup1Sup2

Q3 Sup1Sup2

Q3 Sup1Sup2

Q4 Sup1Sup2

DimensõesMembros

Células

Page 8: OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

Cuboide de dados: exemplo 4DCuboide de dados: exemplo 4D

605 825 14 400Q 1

Q 2

Q 3

Q 4

C h ic a g oN e w Yo rk

To ro ntoVa nc o uve r

time

(qua

rters)

lo c a tio n (c itie s)

ho m e e n te rta inm e nt

c o m p ute r

ite m (typ e s)

p ho nese c u rity

ho m e e n te rta inm e nt

c o m p ute r

ite m (typ e s)

p ho nese c u rity

ho m e e n te rta inm e nt

c o m p ute r

ite m (typ e s)

p h o nese c u rity

sup p lie r = Ò SUP1Ó sup p lie r = Ò SUP2Ó sup p lie r = Ò SUP3Ó

Page 9: OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

Reticulado de CuboidesReticulado de Cuboides

sup p lie r

all

tim e, ite m , lo c a tio n, sup p lie r

ite m , lo c a tio ntim e, lo c a tio nite m , sup p lie rtim e, sup p lie r

tim e, lo c a tio n, sup p lie rite m , lo c a tio n, sup p lie r

lo c a tio n, sup p lie r

tim e, ite m , sup p lie r

tim e ite m lo c a tio n

tim e, ite m

tim e, ite m , lo c a tio n

0-D (a p e x) c ub o id

1-D c ub o id s

2-D c ub o id s

3-D c ub o id s

4-D (b a se ) c ub o id

Page 10: OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

Tipologia e cálculo das medidasTipologia e cálculo das medidas

Medida distributiva:• agregada por operação distributiva sobre dados atômicos

ou medidas distributivas• count, sum, max, min

Medida algébrica:• agregada por operações algébricas sobre dados atômicos

ou medidas distributivas ou algébricas• avg, standev

Medida holística:• agregada por operações sem limite constante sobre o

espaço necessário para armazenar os sub-agregados• median, mode, rank• em grandes data warehouses, cálculo apenas aproximativo

Page 11: OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

Hierarquias conceituais: da Hierarquias conceituais: da multidimensionalidade a multidimensionalidade a

multigranularidademultigranularidade Hierarquia esquemática:

• implícita no esquema relacional do BD operacional fonte

Hierarquia de agrupamento:• Inexistente no esquema fonte,

gerada para reduzir numerosidade

Hierarquia:• de ordem total ou parcial• simples ou múltipla

Construção de hierarquias:• Manual via GUI• Automática via clustering

c o untry

c ity

p ro vinc e _ o r_sta te

m o nth we e k

ye a r

d a y

q ua rte r

stre e t

(a ) (b )

Page 12: OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

Exemplo de Exemplo de hierarquia conceitual esquemáticahierarquia conceitual esquemática

C a na d a

British C o lum b ia O nta rio

Va nc o uve r Vic to ria O tta waTo ro nto C hic a g oBuffa lo

Ne w Yo rk

Ne w Yo rk

Illino is

USA

all

lo c a tio n

all

c o untry

c ity

p ro vinc e _ o r_ sta te

Page 13: OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

Exemplo de Exemplo de hierarquia conceitual de agrupamentohierarquia conceitual de agrupamento

($0 $1000]

($0 $200] ($200 $400] ($400 $600]

($400 $500]

($500 $600]

($600 $800] ($800 $1000]

($200 $300]

($300 $400]

($0 $100]

($100 $200]

($800 $900]

($900 $1000]

($600 $700]

($700 $800]

Page 14: OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

Operadores OLAP: navegação no espaço Operadores OLAP: navegação no espaço analítico multidimensional e multigranular analítico multidimensional e multigranular

Operadores de navegação ao longo das hierarquias conceituais:• Roll-up, abstrai detalhes, aplicando ao cuboide corrente um

operador de agregação dado ao longo de uma dimensão dada• ex: região pais• Drill-down, detalha o cuboide corrente desagregando ao

longo de uma dimensão dada• ex: região estado• Drill-through, detalha os valores, ao longo de uma dimensão

dada, além do nível mais baixo do cuboide, por consultas SQL diretamente na fonte relacional

• Drill-across, detalha vários cuboides com dimensões compartilhas, por desagregação ao longo de

Page 15: OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

Operadores OLAP: navegação no espaço Operadores OLAP: navegação no espaço analítico multidimensional e multigranular analítico multidimensional e multigranular Operadores de navegação ao longo do reticulado de

cuboides:• Slice, extrair sub-cuboide das células verificando um

restrições de valor ao longo de uma dimensão (ex, time = Q1)• Dice, extrair sub-cuboide das células verificando um restrições

de valor ao longo de várias dimensões (ex, time = Q1 e item = HE)

Operadores de visualização dos resultados:• Pivot, mudar os eixos da visualização (cross-tab ou 3D

grahics) do resultado de uma consultas (ex, time na vertical no lugar da horizontal)

• Rank, ordena os membros de uma dimensão de acordo com a ordem da medida corrente (ex, time retrospectivo, começando pelo mais recentes primeiro); serve também para filtragem

Page 16: OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

Q1Q2

Q3Q4

1 000Ca n a d a

US A 2 0 0 0

time

(qu

arte

rs)

h o mee n t e r t a i n me n t

c o mp ut e r

i t e m ( t y p e s )

p h o n es e c u r i t y

To r on t o 3 9 5

Q1Q2

6 05Va n c o uv e r

time

(qua

rter

s)

h o mee n t e r t a i n me n t

c o mp u t e r

i t e m ( t y p e s )

J a n u a r yF e b r u a r yMa r c hAp r i lMa yJ u n eJ u l yAu g u s tS e p t e mb e rOc t o b erNov e mb e rDe c e mb e r

Ch i c a g oNe w Yo r k

Tor o n t oVa n c o uv e r

time

(mo

nths

)

h omeen t er t a i n me n t

c omp u t e r

i t e m ( t y p e s )

p h on es e c u r i t y

15 010 015 0

605 82 5 1 4 4 00Q1Q2

Q3

Q4

Ch i c a g oNe w Yo r k

To r o n t oVa n c o u v e r

time

(qu

arte

rs)

h o mee n t e r t a i n men t

c o mp ut e r

i t em ( t y p e s )

p h o n es e c u r i t y

4403 95

1 5 6 0

d i c e f o r( l o c a t i o n = ÒTo r o n t oÓ o r ÒVa n c o u v e r Ó)a n d ( t i me = ÒQ1Ó or ÒQ2Ó) a n d( i t e m = Òh o me e n t e r t a i n men t Ó o r Òc o mp u t er Ó)

r o l l - u po n l o c a t i o n( f r o m c i t i e st o c o u n t r i e s )

s l i c ef o r t i me = ÒQ1 Ó

Ch i c a g o

Ne w Yo r kTo r o n t o

Va n c o uv e r

h o mee n t e r t a i n me n t

c o mp u t e r

i t e m ( t y p e s )

p h o n es e c u r i t y

loca

tion

(ci

ties

)

6 05 82 5 14 440

h omee nt e r t a i n me n t

c o mp u t e r

p ho n es e c u r i t y

60 582 5

14

40 0

Ch i c a goNe w Yo r k

l o c a t i o n ( c i t i e s )

item

(ty

pes)

To r o n t oVa n c o u v e r

p i vo t

d r i l l - d owno n t i me( f r o m q u a r t er st o mo n t h s )

Page 17: OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

Modelos físicos de dados para OLAPModelos físicos de dados para OLAP ROLAP (OLAP Relacional):

• Armazena dados em tabelas relacionais

• Reaproveita da tecnologia relacional, inclusive SQL

• Apenas apresenta dados de maneira multidimensional

• Permite acoplamento mais estreito com fontes OLTP (geralmente relacionais)

• Porém, necessita remodelagem prévio de dados em esquema especializados (estrela, floco de neve)

• Mesmas controversias sobre performance do que OO x OR

MOLAP (OLAP Multidimensional):• Armazena dados em arrays de

dimensões N• Necessita desenvolvimento de

novas técnicas de otimização• Sem acesso a granularidade

mínima (i.e., única transações)

HOLAP (OLAP Híbrido):• Duplica dados• Tabelas para dados atómicos• Arrays para agregrados• Flexível e rápido de execução• Custoso em memória e

desenvolvimento

Page 18: OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

Modelos de dados ROLAP: Modelos de dados ROLAP: EstrelaEstrela

Uma tabela de fato com:• uma coluna por medida agregada• uma columa por chave de dimensão analítica

N tabelas de dimensões, uma por dimensão analítica• uma coluna por para cada atributo descrevendo a dimensão• geralmente um atributo por nível na hierarquia conceitual

Não normalizada: • alguma redundância• alguns níveis e membros aparecem em vários registros

Page 19: OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

ModeloModelo estrela: exemplo estrela: exemplotim e

d im e nsio n ta b letim e _ ke y d a y d a y_ o f_ the _we e k m o nth q ua rte r ye a r

sa le s fa c t ta b le

tim e _ ke y ite m _ ke y b ra nc h_ ke y lo c a tio n_ ke y d o lla rs_so ld units_so ld

ite m d im e nsio n ta b le

ite m _ ke y ite m _ na m e b ra nd typ e sup p lie r_ typ e

b ra nc h d im e nsio n ta b le

b ra nc h_ ke y b ra nc h_ na m e b ra nc h_ typ e

lo c a tio n d im e nsio n ta b lelo c a tio n_ ke y stre e t c ity p ro vinc e _ o r_ sta te c o untry

Page 20: OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

Modelos de dados ROLAP: Modelos de dados ROLAP: Floco de NeveFloco de Neve

Igual ao modelo estrela exceto pela normalizaçãonormalização das tabelas de dimensões

Vantagens• Facilita evolução das dimensões• Reduz espaço ocupado por elas

Desvantagens:• Aumenta tempo de resposta pela necessidade de junções

Balanço:• Espaço ganhado negligível já que espaço total do data mart

é principalmente ocupado pela tabela de fato• Modelo estrela mais popular

Page 21: OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

ModeloModelo floco de neve: exemplo floco de neve: exemplotim e

d im e nsio n ta b letim e _ ke y d a y d a y_ o f_ we e k m o nth q ua rte r ye a r

sa le s fa c t ta b le

tim e _ ke y ite m _ ke y b ra nc h_ ke y lo c a tio n_ ke y d o lla rs_so ld units_so ld

ite m d im e nsio n ta b le

ite m _ ke y ite m _ na m e b ra nd typ e sup p lie r_ke y

b ra nc h d im e nsio n ta b le

b ra nc h_ ke y b ra nc h_ na m e b ra nc h_ typ e

lo c a tio n d im e nsio n ta b lelo c a tio n_ ke y stre e t c ity_ ke y

sup p lie r d im e nsio n ta b le

sup p lie r_ke y sup p lie r_ typ e

c ity d im e nsio n ta b lec ity_ ke y c ity p ro vinc e _ o r_sta te c o untry

Page 22: OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

Modelos de dados ROLAP: Modelos de dados ROLAP: ConstelaçãoConstelação

Várias tabelas de fato: um por assunto analítico Uma tabela dimensão por dimensão analítica de

algum assunto As dimensões compartilhadas por vários assuntos

não são duplicadas, mas apontadas por várias tabelas de fato

Em geral:• data mart modelado em estrela• data warehouse modelado em constelação• data mart integrado em um data warehouse por:

uniformização das tabelas de dimensões dos vários data marts ligações entre elas e as tabelas de fato

Page 23: OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

ModeloModelo coconstelaçãonstelação: : exemploexemplo

tim e d im e nsio n ta b le

tim e _ ke y d a y d a y_ o f_ we e k m o nth q ua rte r ye a r

sa le s fa c t ta b le

tim e _ ke y ite m _ ke y b ra nc h_ ke y lo c a tio n_ ke y d o lla rs_ so ld un its_ so ld

ite m d im e nsio n ta b le

ite m _ ke y ite m _ na m e b ra nd typ e sup p lie r_ typ e

b ra nc h d im e nsio n ta b le

b ra nc h_ ke y b ra nc h_ na m e b ra nc h_ typ e

lo c a tio n d im e nsio n ta b lelo c a tio n_ ke y stre e t c ity p ro vin c e _ o r_ sta te c o untry

sh ip p ing fa c t ta b le

ite m _ ke y tim e _ ke y sh ip p e r_ ke y fro m _ lo c a tio n to _ lo c a tio n d o lla rs_ c o st un its_ sh ip p e d

sh ip p e r d im e nsio n ta b le

sh ip p e r_ ke y sh ip p e r_ na m e lo c a tio n_ ke y sh ip p e r_ typ e

Page 24: OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

Elementos de um modelo de dados Elementos de um modelo de dados lógico multidimensionallógico multidimensional

BDMD: coleção de cuboides D-dimensionais

Cuboides: • D dimensões (ex, tempo, produto,

espaço) • C celulas de dados

quantitativos atómicos = valores das medidas

Dimensão: • H hierarquias de N

níveis de granularidade(ex, ano/mês/dias,

ano/semestre/semana)

Nível: E membros (ex, {Jan, ..., Dez}, {1, ..., 31}) Cellset: subcubo resultado de

uma consulta OLAP selecionando:• um cubo A do DBMD• d dimensões de A como analíticas• m dimensões de A como medidas• para cada d:

uma hierarquia hd um nivel nd com md membros

• para cada m, uma função de agregação (sum, max, avg, var)

md celulas, cada uma contendo m dados agregados

Page 25: OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

Linguagens e API de consulta de BDMDLinguagens e API de consulta de BDMD

Até 98, profusão de linguagens:• proprietárias dos vendedores de SGBDMD• acadêmicas

2 tentativas de padronização para interoperabilidade entre BDMD:• MDAPI do OLAP Council,

liderado pela Oracle e a Arbor publicação em 98 em 3 formatos:

¤ modelo UML, interfaces Java, interfaces COM até hoje nenhuma implementação está rapidamente perdendo apoio

• OLE DB for OLAP desenvolvido pela Microsoft, porém não proprietária já apoiado de quase toda indústria dos SGBDMD

Page 26: OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

OLE DB for OLAPOLE DB for OLAP Para conexão com Data Warehouse e funções

administrativas:• usa outros padrões “abertos e orientados a objetos” da

Microsoft: COM e OLE Para consultar Data Mart conectado:

• usa uma linguagem com sintaxe parecida com SQL: MDX Independente do modelo físico de dados

• ROLAP, MOLAP ou HOLAP Amarrado a plataforma Windows Pode ser chamado apenas a partir de C++

Page 27: OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

Padrões da Microsoft Padrões da Microsoft “abertos e orientados a objetos”“abertos e orientados a objetos”

UDA (Universal Data Access):• conjunto de padrões e API para acesso a vários tipos de dados

transparentemente do seu suporte de armazenamento físico COM (Component Object Model):

• padrão de interfaces para vários tipos de serviços • como métodos de (pseudo)-objetos sem ID nem atributos• acesso a métodos via ponteiros, herança simples e simulada via includes

OLE (Object Linking and Embedding):• conjuntos de interfaces COM fornecendo serviços de acesso a dados de

vários tipos (planhilha, BD, HTML, etc) a partir de C/C++• OLE DB: parte de OLE para acesso a BD• OLE DB for OLAP: parte de OLE DB para acesso a BDMD

ADO (ActiveX Data Objects):• camada de UDA acima de OLE permintindo acesso “objetos” OLE a partir

de outras linguagens MS como Visual J++ e Visual Basic• ADOMD: parte de ADO para acesso a BDMD

Page 28: OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

MDX: definição e limitaçõesMDX: definição e limitações MultiDimensional eXpression:

• Linguagemde consulta para SGBDMD• Expressões da forma SELECT FROM WHERE • Passadas como parametros string de métodos especializados

de OLE DB for OLAP e ADOMD• Chamável a partir de Visual C++, Visual J++, Visual Basic etc.• Fornece built-in largo leque de operadores:

OLAP (rotate, slice, dice, drill-down, roll-up, cross-join etc) de agregação numérica, estatística e temporal

Limitado a consultas em leitura; não permite:• Alteração de valores no cubo (celulas)• Materialização de visões multidimensionais (cellsets)

Page 29: OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

MDX: exemplo criação de cuboMDX: exemplo criação de cubo Dimensões: {Produto, Local,

Tempo, Vendas} Hierarquias:

•Produto:Software: {EditorTexto, Planilha, EditorGrafico}Hardware: {Mouse,Teclado,Monitor,Gabinete}

•Local:País: {Brasil, México, USA}

•Tempo:Ano: {1998,1999}Semestre: {S1,S2}

CREATE CUBE vendas ( DIMENSION Produto HIERARCHY ProdCat LEVEL [ProdCat] LEVEL ALL, LEVEL [Categoria], LEVEL [SubCat], DIMENSION Loja HIERARCHY LojaLoc LEVEL [LojaLoc] LEVEL ALL, LEVEL [Pais], DIMENSION Tempo TYPE TIME LEVEL Ano TYPE YEAR LEVEL Semestre TYPE SEMESTER MEASURE [Vendas] FUNCTION SUM)

INSERT INTO vendas ([SubCat], [Pais], [Semestre], [Vendas]), OPTIONS DEFER_DATA <CONSULTA SQL RECUPERANDO CAMPOS CORRESPONDENTES NA OLTP BD FONTE>

Page 30: OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

MDX: sintaxe das consultasMDX: sintaxe das consultas WITH• membros virtuais calculados a partir de membros do cubo• via operadores aritméticos, estatísticos, de agregação, de

series temporais, de formatação de saída SELECT

• conjunto de membros de dimensões, hierarquias e níveis

• especificado via expressão de operadores OLAP (DrillDown, Filter, ...) de manipulação de conjuntos (CrossJoin, Union, Inter,

Member ...) agregação (TopSum, TopCount, TopPercent, Order, ...)

ON eixos de visualização planares: • row, column, page, sections, chapters

FROM cubo WHERE lista de membros de dimensões medidas

Page 31: OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

MDX: exemplo de visualização inicial MDX: exemplo de visualização inicial a um nível arbitrárioa um nível arbitrário

SELECT NON EMPTY (CROSSJOIN ({[LojaLoc].[Pais].MEMBERS}, {[Tempo].[Ano].MEMBERS}) ON COLUMNS NON EMPTY {[ProdCat].[SubCat].MEMBERS} ON ROWS FROM Vendas WHERE ([Medidas].[Vendas]).

Brasil México USA1998 1999 1998 1999 1998 1999

Editor de Texto 167 173 160 164 197 208Planilha Eletrônica 120 122 110 130 133 136

Software

Editoração Gráfica 134 137 126 128 157 164Mouse 245 265 230 243 280 293Teclado 80 82 64 66 104 110Monitor 72 73 56 58 94 98

Hardware

Gabinete 66 68 52 53 78 81

Page 32: OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

MDX: exemplo de drill-down MDX: exemplo de drill-down até granularidade mais baixaaté granularidade mais baixa

SELECT NON EMPTY (CROSSJOIN ({[LojaLoc].[Pais].MEMBERS}, {[Tempo].[Semestre].MEMBERS}) ON COLUMNS NON EMPTY {[ProdCat].[SubCat].MEMBERS} ON ROWS FROM Vendas WHERE ([Medidas].[Vendas]).

Brasil México USA 1998 1999 1998 1999 1998 1999 S1 S2 S1 S2 S1 S2 S1 S2 S1 S2 S1 S2

Editor de Texto 95 72 94 79 68 92 75 89 99 98 102 106 Planilha Eletrônica 53 67 58 64 49 61 62 68 62 71 65 71

Software

Editoração Gráfica 71 63 63 74 68 58 56 72 74 83 86 78 Mouse 112 133 124 141 114 116 111 132 136 144 156 137 Teclado 46 34 49 33 31 33 29 37 46 58 57 53 Monitor 42 30 31 42 32 24 33 25 51 43 53 57

Hardware

Gabinete 29 37 35 33 23 29 29 24 37 41 45 36

Page 33: OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

MDX: exemplo de roll-up MDX: exemplo de roll-up

SELECT NON EMPTY (CROSSJOIN ({[LojaLoc].[Pais].MEMBERS}, {[Tempo].[Semestre].MEMBERS}) ON COLUMNS NON EMPTY {[ProdCat].MEMBERS} ON ROWS FROM Vendas WHERE ([Medidas].[Vendas]).

Brasil México USA1998 1999 1998 1999 1998 1999

S1 S2 S1 S2 S1 S2 S1 S2 S1 S2 S1 S2Software 219 202 215 217 185 211 193 229 235 252 253 255

Hardware 229 234 239 249 200 202 202 218 270 286 311 283

Page 34: OLAP (On-Line Analytical Processing) e Banco de Dados Multidimensionais Jacques Robin CIn-UFPE.

MDX: exemplo do uso de WITHMDX: exemplo do uso de WITHWITH [Medidas].[Lucro] AS ‘[Medidas].[Vendas] * ([Medidas].[PrecoUnitario] - [Medidas].[CustoUnitario])’SELECT NON EMPTY (CROSSJOIN ({[LojaLoc].[Pais].MEMBERS}, {[Tempo].[Ano].MEMBERS}) ON COLUMNS NON EMPTY {[ProdCat].[SubCat].MEMBERS} ON ROWS FROM Vendas WHERE ([Medidas].[Lucro]).