A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Banco de Dados Multidimensionais e OLAP (On-Line Analytical Processing) Jacques Robin e Robson Fidalgo CIn-UFPE."— Transcrição da apresentação:

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

2 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

3 BD multidimensionais e Data Warehouses *BD multidimensional (BDMD): 4BD histórico com modelo lógico de dados multidimensionais especializado para OLAP *Data Mart: 4BDMD de escopo departamental, 4armazenando réplicas históricas, não volátis, 4as vezes limpadas, completadas e normalizadas, 4e sempre agregadas ao longo de várias dimensões analíticas, 4de dados de um único banco operacional *Data Warehouse: 4BDMD de escopo organizacional, 4integrando réplicas agregadas e históricas, 4de dados de vários data marts ou vários bancos operacionais, 4e as vezes outras fontes, âBD de legado, dados semi-estruturados, etc.

4 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%

5 OLAP x OLTP

6 Elementos de um modelo de dados lógico multidimensional *BDMD: coleção de cubos D- dimensionais *Cubo: 4D dimensões (ex, tempo, produto, espaço) 4C celulas de dados quantitativos atómicos *Dimensão: 4H 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: 4um cubo A do DBMD 4d dimensões de A como analíticas 4m dimensões de A como medidas 4para cada d: âuma hierarquia h d âum nivel n d com m d membros 4para cada m, uma função de agregação (sum, max, avg, var) 4 m d celulas, cada uma contendo m dados agregados

7 Elementos de um modelo lógico de dados multidimensional: exemplo Tempo 5168 Produto P1 P2P3P4 Jan./99 Fev./99 FORTALEZA SOBRAL NORDESTE CEARÁ SUDESTE RIO DE JANEIRO PERNAMBUCO SÃO PAULO... *Dimensões 4Hierarquias âNíveis tMembros *Medidas *Celulas

8 Modelos físicos de dados para OLAP *ROLAP (OLAP Relacional): 4Armazena dados em tabelas relacionais 4Reaproveita da tecnologia relacional, inclusive SQL 4Apenas apresenta dados de maneira multidimensional 4Permite acoplamento mais estreito com fontes OLTP (geralmente relacionais) 4Porém, necessita remodelagem prévio de dados em esquema especializados (estrela, floco de neve) 4Mesmas controversias sobre performance do que OO x OR *MOLAP (OLAP Multidimensional): 4Armazena dados em arrays de dimensões N 4Necessita desenvolvimento de novas técnicas de otimização 4Sem acesso a granularidade mínima (i.e., única transações) *HOLAP (OLAP Híbrido): 4Duplica dados 4Tabelas para dados atómicos 4Arrays para agregrados 4Flexível e rápido de execução 4Custoso em memória e desenvolvimento

9 Relacões x Arrays Vendas dimensionadas por produtos e região M A T R I Z B I D I M E N S I O N A L Qual diferença em consultar essas duas tabelas ? Qual a melhor forma de representar esses dados ?

10 Arrays sempre mais consicos? – Ob. Se só existe uma única correspondência entre os campos, estes não podem ser multidimensionais.

11 Dados agregados em relações e arrays - Na representação multidimensional os totais, médias, max,... São mais facilmente calculados

12 Operadores OLAP *Rotate, slice and dice: girar e fatiar cubo Região ProdutoProdutoProdutoProduto Situação Região Produto Situação Região ProdutoProdutoProdutoProduto Situação

13 Operadores OLAP *Drill Down and Roll Up: detalhar ou agregar ao longo de uma hierarquia (mudar granularidade dos dados) Clientes Drill Down Roll Up 500 Cidades 50 Estados 5 Regiões 1 Total 500 Cidades 50 Estados 5 Regiões 1 Total 500 Cidades 50 Estados 5 Regiões 1 Total 500 Cidades 50 Estados 5 Regiões 1 Total

14 Operadores OLAP Drill Down Roll Up

15 ROLAP: esquema estrela Ch_RegiãoNomeClimaPopulação DM Região Ch_TempoCh_RegiãoCh_Produto Vendas (R$) Vl_unitário (R$) Despesas (R$) QtdVendida FT Venda Ch_TempoSemanaMêsTrimestreAnoFeriado? DM Tempo Ch_ProdutoNomeDescriçãoMarcaCategoria DM Produto Tabela de Fatos Tabelas das Dimensões

16 ROLAP: esquema floco de neve Ch_ProdutoNomeDescriçãoCh_Marca DM Produto Ch_MarcaMarcaCh_Categoria Ch_CategoriaCategoria Dimensões normalizadas

17 EstrelaRelacional X Remodelagem de dados: relacional dimensional *ER representa vários processos em um único diagrama 41- Dividir o diagrama ER em vários diagramas MD 42- Definir as tabelas das dimensões (desnormalizar) 43- Definir a tabela de fatos (atributos)

18 Remodelagem de dados: relacional dimensional Tempo Produto Cliente Localização

19 Linguagens e API de consulta de BDMD *Até 98, profusão de linguagens: 4proprietárias dos vendedores de SGBDMD 4acadêmicas *2 tentativas de padronização para interoperabilidade entre BDMD: 4MDAPI do OLAP Council, âliderado pela Oracle e a Arbor âpublicação em 98 em 3 formatos: tmodelo UML, interfaces Java, interfaces COM âaté hoje nenhuma implementação âestá rapidamente perdendo apoio 4OLE DB for OLAP âdesenvolvido pela Microsoft, porém não proprietária âjá apoiado de quase toda indústria dos SGBDMD

20 OLE DB for OLAP *Para conexão com Data Warehouse e funções administrativas: 4 usa outros padrões abertos e orientados a objetos da Microsoft: COM e OLE *Para consultar Data Mart conectado: 4usa uma linguagem com sintaxe parecida com SQL: MDX *Independente do modelo físico de dados 4ROLAP, MOLAP ou HOLAP *Amarrado a plataforma Windows *Pode ser chamado apenas a partir de C++

21 Padrões da Microsoft abertos e orientados a objetos *UDA (Universal Data Access): 4conjunto 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): 4padrão de interfaces para vários tipos de serviços 4como métodos de (pseudo)-objetos sem ID nem atributos 4acesso a métodos via ponteiros, herança simples e simulada via includes *OLE (Object Linking and Embedding): 4conjuntos de interfaces COM fornecendo serviços de acesso a dados de vários tipos (planhilha, BD, HTML, etc) a partir de C/C++ 4OLE DB: parte de OLE para acesso a BD 4OLE DB for OLAP: parte de OLE DB para acesso a BDMD *ADO (ActiveX Data Objects): 4camada de UDA acima de OLE permintindo acesso objetos OLE a partir de outras linguagens MS como Visual J++ e Visual Basic 4ADOMD: parte de ADO para acesso a BDMD

22 MDX: definição e limitações *MultiDimensional eXpression: 4Linguagemde consulta para SGBDMD 4Expressões da forma SELECT FROM WHERE 4Passadas como parametros string de métodos especializados de OLE DB for OLAP e ADOMD 4Chamável a partir de Visual C++, Visual J++, Visual Basic etc. 4Fornece 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: 4Alteração de valores no cubo (celulas) 4Materialização de visões multidimensionais (cellsets)

23 MDX: exemplo criação de cubo *Dimensões: {Produto, Local, Tempo, Vendas} *Hierarquias: 4Produto: âSoftware: {EditorTexto, Planilha, EditorGrafico} âHardware: {Mouse,Teclado,Monitor,Gabinete} 4Local: âPaís: {Brasil, México, USA} 4Tempo: â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

24 MDX: sintaxe das consultas *WITH 4membros virtuais calculados a partir de membros do cubo 4via operadores aritméticos, estatísticos, de agregação, de series temporais, de formatação de saída *SELECT 4conjunto de membros de dimensões, hierarquias e níveis 4especificado 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: 4row, column, page, sections, chapters *FROM cubo *WHERE lista de membros de dimensões medidas

25 MDX: exemplo de visualização inicial a 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]).

26 MDX: exemplo de drill-down até 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]).

27 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]).

28 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]).


Carregar ppt "Banco de Dados Multidimensionais e OLAP (On-Line Analytical Processing) Jacques Robin e Robson Fidalgo CIn-UFPE."

Apresentações semelhantes


Anúncios Google