Você está na página 1de 34

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

Jacques Robin CIn-UFPE

O que OLAP?
Processamento de dados, dedicado ao suporte a deciso, por meio de visualizao de dados agregrados ao longo de vrias dimenses analticas (tempo, espao, categoria de produto, quantidade vendida, preo...), hierarquizadas em vrias granularidades, armazenados em BD especializadas, seguindo um modelo lgico de dados multidimensional, chamados de Data Warehouse, Data Mart ou BD multidimensionais

Exemplos de consultas OLAP:


Quais foram os produtos mais vendidos no ms passado ? A mdia salarial dos funcionrios de informtica com menos de 5 anos de experincia maior do que a mesma para funcionrios de telecomunicao? Qual foi o total de vendas o ms passado por regio de vinhos tintos importados da Europa?

Por quais semanas, quais produtos e quais cidades, a variao de venda de produtos em promoo em comparao da semana anterior sem promoo foi 15%

Banco de dado operacional x data warehouse x data mart

BD operacional:

armazena valores correntes e atmicas resultantes direitas das ltimas transaes a fins operacionais predefinidas

Data Warehouse:
integra e padroniza dados de vrios:

Data Mart:

ex, gerenciamento do estoque

armazena rplicas histricas, no volteis, agregadas ao longo de vrias dimenses analticas as vezes limpadas, completadas e normalizadas em termos de escala e distribuio de dados de um nico banco operacional a fins analticas abertas de escopo departamental

data marts BD operacionais BD de legado empacotados BD semi-estruturados extrados de pginas web

em um nico repositrio coerente e limpo de dados a fins analticas abertas de escopo organizacional

OLTP
Funo Usurio humano

OLAP
Auxiliar tomada de deciso Executivo, Analista, Eng. de Conhecimento Aplicativos de minerao de dados, anlise matemtica, ... Multidimensional, orientado por assuntos Mltipla e agregada Histrico dos valores, completado periodicamente Complexas e ad-hoc Essencialmente ler Junes, varreduras 106 [0-10] GB-TB Flexibilidade, interatividade Nmero e tempo de cada consulta

Automatizar operaes dirias Cliente, Atendente, DBA contabilidade, ... Relacional, orientado por aplicaes nica e atmica Apenas valor corrente atualizada continuamente Simples e predefinidas Tanto ler quanto escrever Acessos via ndice e hash 10 103 MB-GB Disponibilidade, eficincia Numero de transaes

Software cliente Aplicativos de inventrio,


Modelo lgico

Granularidade Temporalidade dos dados Consultas Direo Envolve Registros Usurios Bytes Prioridade

Mtrica

Modelo de dados multidimensional


Cuboide:

Dimenso analtica:

Espao de dimenso N para anlise de dado Atributo geralmente categrico Escolhido como eixo no espao analtico N-dimensional Campo de uma tabela do BD relacional fonte

Medida:

ex, tempo, local, produto, fornecedor

Atributo geralmente numrico Escolhido como ponto no espao analtico N-dimensional Agregao de valores de um campo de uma tabela do BD relacional fonte, calculada por group-by de outros campos da relao ex, valor total das vendas, valor mdia das vendas, quantidade

vendidas,

Cuboide de dados: exemplo 4D


Clulas Membros Dimenses
Location Item Time Supplier HE Chicago Comp Tel Secu HE New York Comp Tel Secu HE Toronto Comp Tel Secu

Q1

Sup1
Sup2

Q2

Sup1 Sup2

Q3

Sup1 Sup2

Q3

Sup1 Sup2

Q4

Sup1 Sup2

Cuboide de dados: exemplo 4D


itie (c s)
supplier = SUP1 supplier = SUP2 supplier = SUP3

c lo

tim e (quarters)

Chic ago New Y ork T oronto Vanc ouver Q1 605 825 14 Q2 Q3 Q4 c omputer sec urity home phone entertainment item (types) c omputer sec urity home phone entertainment item (types) c omputer sec urity home phone entertainment item (types) 400

io at

Reticulado de Cuboides
all 0-D (apex) cuboid

time

item

location

supplier

1-D cuboids

time, item

time, supplier time, location

item, supplier

item, location time, location, supplier

location,2-D cuboids supplier 3-D cuboids

time, item, location

time, item, supplier

item, location, supplier

time, item, location, supplier

4-D (base) cuboid

Tipologia e clculo das medidas

Medida distributiva:
agregada por operao distributiva sobre dados atmicos ou medidas distributivas count, sum, max, min agregada por operaes algbricas sobre dados atmicos ou medidas distributivas ou algbricas avg, standev agregada por operaes sem limite constante sobre o espao necessrio para armazenar os sub-agregados median, mode, rank em grandes data warehouses, clculo apenas aproximativo

Medida algbrica:

Medida holstica:

Hierarquias conceituais: da multidimensionalidade a multigranularidade

Hierarquia esquemtica:
implcita no esquema relacional do BD operacional fonte

Hierarquia de agrupamento:
Inexistente no esquema fonte, gerada para reduzir numerosidade
country

Hierarquia:
de ordem total ou parcial simples ou mltipla
province_or_state quarter

year

Construo de hierarquias:
Manual via GUI Automtica via clustering

city

month

week

street (a) (b)

day

Exemplo de hierarquia conceitual esquemtica


location all all

country

Canada

USA

province_or_state British Columbia

Ontario

New Y ork

Illinois

city

Vancouver

Victoria

T oronto

Ottawa

New Y ork

Buffalo

Chicago

Exemplo de hierarquia conceitual de agrupamento


($0 $1000]

($0 $200]

($200 $400] ($400 $600] ($600 $800] ($800 $1000]

($0 $100]

($200 $300] ($400 $500] ($600 $700] ($800 $900] ($500 $600] ($700 $800] ($900 $1000]

($100 $200] ($300 $400]

Operadores OLAP: navegao no espao analtico multidimensional e multigranular

Operadores de navegao ao longo das hierarquias conceituais:


Roll-up, abstrai detalhes, aplicando ao cuboide corrente um operador de agregao dado ao longo de uma dimenso dada ex: regio pais Drill-down, detalha o cuboide corrente desagregando ao longo de uma dimenso dada ex: regio estado Drill-through, detalha os valores, ao longo de uma dimenso dada, alm do nvel mais baixo do cuboide, por consultas SQL diretamente na fonte relacional Drill-across, detalha vrios cuboides com dimenses compartilhas, por desagregao ao longo de

Operadores OLAP: navegao no espao analtico multidimensional e multigranular

Operadores de navegao ao longo do reticulado de cuboides:


Slice, extrair sub-cuboide das clulas verificando um restries de valor ao longo de uma dimenso (ex, time = Q1) Dice, extrair sub-cuboide das clulas verificando um restries de valor ao longo de vrias dimenses (ex, time = Q1 e item = HE) Pivot, mudar os eixos da visualizao (cross-tab ou 3D grahics) do resultado de uma consultas (ex, time na vertical no lugar da

Operadores de visualizao dos resultados:


horizontal)

Rank, ordena os membros de uma dimenso de acordo com a ordem da medida corrente (ex, time retrospectivo, comeando pelo mais recentes primeiro); serve tambm para filtragem

t i me ( quar t er s)

lo

Q 1 Q 2

605

c lo

at

t i me ( quar t er s)

on Tor ont o 395 t i anc ouv er ca V

i (c

ti

es

) t un ri

es

o (c USA o n Canada i
Q 2 Q 3 Q 4

2000

Q 1000 1

c om put er hom e ent er t ai nm ent i t em ( t y pes ) di c e f ( l oc at and ( t ( i t em or i on = Tor ont o or Vanc ouver ) i m = 1 or e Q Q2) and = hom ent er t ai nm e ent or om c put er ) r ol on (f r t o

c om put er s ec ur i t y hom e phone ent er t ai nm ent i t em ( t y pes ) l - up l oc at i on om c i t i es c ount r i es )

t i me ( quar t er s)

oc

Chi c ago 440 N w Y k 156 0 e or Tor ont o 395 V anc ouver

i at

on

ti ci

es

Q 1 Q 2 Q 3 Q 4

605

825

14

400

sl i ce f or t i m = 1 e Q

l ocat i on ( ci t i es)

c om put er s ec ur i t y hom e phone ent er t ai n m ent i t em ( t y pes )

Chi cago New Y k or Tor ont o Vancouv er 605 825 14 440

dr i on (f r t o

l l - down t i m e om quar t er s m ont hs )

c om put er s ec ur i t y hom e phone ent er t ai nm ent i t em ( t y pes )

Ch i c ago N ew Y k or Tor ont o l o Vancouv er J anuar y Febr uar y M ch ar

t ca

n io

i (c

ti

es

150 100 150

t i me ( mont hs)

pi vot

i t em ( t ypes)

hom e ent er t ai nm ent com put er phone s ec ur i t y

605 825 14 400

Apr i l M ay J une J ul y Augus t Sept em ber O t ober c Nov em ber De cem ber c om ut er s ec ur i t y p hom e ph on e ent er t ai nm ent i t em ( t y pes )

N ew Y k V or anc ouver Chi c ago Tor ont o l oc at i on ( c i t i es )

Modelos fsicos 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) Porm, necessita remodelagem prvio 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 dimenses N Necessita desenvolvimento de novas tcnicas de otimizao Sem acesso a granularidade mnima (i.e., nica transaes)

HOLAP (OLAP Hbrido):


Duplica dados Tabelas para dados atmicos Arrays para agregrados Flexvel e rpido de execuo Custoso em memria e desenvolvimento

Modelos de dados ROLAP: Estrela

Uma tabela de fato com:


uma coluna por medida agregada uma columa por chave de dimenso analtica

N tabelas de dimenses, uma por dimenso analtica


uma coluna por para cada atributo descrevendo a dimenso geralmente um atributo por nvel na hierarquia conceitual

No normalizada:
alguma redundncia alguns nveis e membros aparecem em vrios registros

Modelo estrela: exemplo


time dimension table time_ key day day_of_the_week month quarter year sales fact table time_key item_key branch_key location_key dollars_sold units_sold item dimension table item_key item_name brand type supplier_type

branch dimension table branch_key branch_name branch_type

location dimension table location_key street city province_or_state country

Modelos de dados ROLAP: Floco de Neve

Igual ao modelo estrela exceto pela normalizao das

tabelas de dimenses
Vantagens

Facilita evoluo das dimenses Reduz espao ocupado por elas


Desvantagens:
Aumenta tempo de resposta pela necessidade de junes

Balano:
Espao ganhado negligvel j que espao total do data mart principalmente ocupado pela tabela de fato Modelo estrela mais popular

Modelo floco de neve: exemplo


time dimension table time_key day day_of_week month quarter year sales fac t table time_key item_key branc h_key loc ation_key dollars_sold units_sold item dimension table item_key item_name brand type supplier_key supplier dimension table supplier_key supplier_type

branc h dimension table branc h_key branc h_name branc h_type

loc ation dimension table loc ation_key street c ity_key

c ity dimension table c ity_key c ity provinc e_or_state c ountry

Modelos de dados ROLAP: Constelao


Vrias tabelas de fato: um por assunto analtico Uma tabela dimenso por dimenso analtica de algum assunto As dimenses compartilhadas por vrios assuntos no so duplicadas, mas apontadas por vrias tabelas de fato Em geral:

data mart modelado em estrela data warehouse modelado em constelao data mart integrado em um data warehouse por:

uniformizao das tabelas de dimenses dos vrios data marts ligaes entre elas e as tabelas de fato

Modelo constelao: exemplo


tim e dim ension table tim e_key day day_of_week m onth quarter year sales fac t table tim e_key item _key branc h_key loc ation_key dollars_sold units_sold item dim ension table item _key item _name brand type supplier_type shipping shipper fac t table dim ension table item _key shipper_key tim e_key shipper_nam e shipper_key loc ation_key from_loc ation shipper_type to_loc ation dollars_cost units_shipped

branc h dim ension table branc h_key branc h_name branc h_type

loc ation dim ension table loc ation_key street c ity province_or_state c ountry

Elementos de um modelo de dados lgico multidimensional


BDMD: coleo de cuboides D-dimensionais Cuboides: D dimenses (ex, tempo, produto, espao) C celulas de dados quantitativos atmicos = valores das medidas Dimenso: H hierarquias de N nveis de granularidade (ex, ano/ms/dias, ano/semestre/semana)

Nvel: E membros (ex, {Jan, ..., Dez}, {1, ..., 31}) Cellset: subcubo resultado de uma consulta OLAP selecionando:
um cubo A do DBMD d dimenses de A como analticas m dimenses de A como medidas para cada d:

para cada m, uma funo de agregao (sum, max, avg, var) md celulas, cada uma contendo m dados agregados

uma hierarquia hd um nivel nd com md membros

Linguagens e API de consulta de BDMD


At 98, profuso de linguagens:

2 tentativas de padronizao para interoperabilidade entre BDMD:


MDAPI do OLAP Council,

proprietrias dos vendedores de SGBDMD acadmicas

liderado pela Oracle e a Arbor publicao em 98 em 3 formatos:

OLE DB for OLAP


at hoje nenhuma implementao est rapidamente perdendo apoio

modelo UML, interfaces Java, interfaces COM

desenvolvido pela Microsoft, porm no proprietria j apoiado de quase toda indstria dos SGBDMD

OLE DB for OLAP

Para conexo com Data Warehouse e funes administrativas:


usa outros padres 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 fsico de dados


ROLAP, MOLAP ou HOLAP

Amarrado a plataforma Windows Pode ser chamado apenas a partir de C++

Padres da Microsoft abertos e orientados a objetos

UDA (Universal Data Access):


conjunto de padres e API para acesso a vrios tipos de dados transparentemente do seu suporte de armazenamento fsico
padro de interfaces para vrios tipos de servios como mtodos de (pseudo)-objetos sem ID nem atributos acesso a mtodos via ponteiros, herana simples e simulada via includes conjuntos de interfaces COM fornecendo servios de acesso a dados de vrios 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 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

COM (Component Object Model):


OLE (Object Linking and Embedding):


ADO (ActiveX Data Objects):


MDX: definio e limitaes

MultiDimensional eXpression:
Linguagemde consulta para SGBDMD Expresses da forma SELECT FROM WHERE Passadas como parametros string de mtodos especializados de OLE DB for OLAP e ADOMD Chamvel 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 agregao numrica, estatstica e temporal

Limitado a consultas em leitura; no permite:


Alterao de valores no cubo (celulas) Materializao de vises multidimensionais (cellsets)

MDX: exemplo criao de cubo


CREATE CUBE vendas ( DIMENSION Produto HIERARCHY ProdCat Tempo, Vendas} LEVEL [ProdCat] LEVEL ALL, Hierarquias: LEVEL [Categoria], LEVEL [SubCat], Produto: DIMENSION Loja HIERARCHY LojaLoc Software: LEVEL [LojaLoc] LEVEL ALL, LEVEL [Pais], {EditorTexto, Planilha, EditorGrafico} DIMENSION Tempo TYPE TIME Hardware: {Mouse,Teclado,Monitor,Gabinete} LEVEL Ano TYPE YEAR Local: LEVEL Semestre TYPE SEMESTER Pas: {Brasil, Mxico, USA} MEASURE [Vendas] FUNCTION SUM) Tempo:

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

Dimenses: {Produto, Local,

INSERT INTO vendas ([SubCat], [Pais], [Semestre], [Vendas]), OPTIONS DEFER_DATA

<CONSULTA SQL RECUPERANDO CAMPOS CORRESPONDENTES NA OLTP BD FONTE>

WITH

SELECT

membros virtuais calculados a partir de membros do cubo via operadores aritmticos, estatsticos, de agregao, de series temporais, de formatao de sada conjunto de membros de dimenses, hierarquias e nveis especificado via expresso de operadores

MDX: sintaxe das consultas

ON eixos de visualizao planares:

OLAP (DrillDown, Filter, ...) de manipulao de conjuntos (CrossJoin, Union, Inter, Member ...) agregao (TopSum, TopCount, TopPercent, Order, ...)

FROM cubo WHERE lista de membros de dimenses medidas

row, column, page, sections, chapters

MDX: exemplo de visualizao inicial a um nvel arbitrrio


Brasil 1998 Software Editor de Texto Planilha Eletrnica Editorao Grfica Hardware Mouse Teclado Monitor Gabinete 167 120 134 245 80 72 66 1999 173 122 137 265 82 73 68 1998 160 110 126 230 64 56 52 Mxico 1999 164 130 128 243 66 58 53 1998 197 133 157 280 104 94 78 USA 1999 208 136 164 293 110 98 81

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

MDX: exemplo de drill-down at granularidade mais baixa


Brasil 1998 S1 S2 95 72 53 67 71 63 112 133 46 34 42 30 29 37 1999 S1 S2 94 79 58 64 63 74 124 141 49 33 31 42 35 33 Mxico 1998 S1 S2 68 92 49 61 68 58 114 116 31 33 32 24 23 29 1999 S1 S2 75 89 62 68 56 72 111 132 29 37 33 25 29 24 USA 1998 S1 S2 99 98 62 71 74 83 136 144 46 58 51 43 37 41 1999 S1 S2 102 106 65 71 86 78 156 137 57 53 53 57 45 36

Software Editor de Texto Planilha Eletrnica Editorao Grfica Hardware Mouse Teclado Monitor Gabinete

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

MDX: exemplo de roll-up


Brasil 1998 S1 Software Hardware 219 229 S2 202 234 1999 S1 215 239 S2 217 249 1998 S1 185 200 S2 211 202 Mxico 1999 S1 193 202 S2 229 218 1998 S1 235 270 S2 252 286 USA 1999 S1 253 311 S2 255 283

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

MDX: exemplo do uso de WITH


WITH [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]).

Você também pode gostar