Jacques Robin e Robson Fidalgo CIn-UFPE

Slides:



Advertisements
Apresentações semelhantes
Ana Paula B. Barboza Ivana Xavier Rodrigues
Advertisements

O Comando DROP INDEX Para eliminar um índice definido sobre uma tabela, utilize: Drop Index on ; Ex: No Access: Drop Index X on.
Estudo de Caso, modelo Oracle 10g
Banco de Dados Prof. Antonio.
SQL Avançado Continuação
Resumo 1.1) Introdução 1.2) Abordagem Convencional de Arquivos
Data Warehouse Tuning O que é um Data Warehouse? Índices Bitmap
Maurício Edgar Stivanello
OLAP – Motivação e conceitos
Sistema Gerenciador de Banco de Dados SGBD
Apresentação SOE Assunto DATA WAREHOUSE Professor TANAKA
Operadores Especiais da SQL
Material III-Bimestre Wagner Santos C. de Jesus
7.1 © 2004 by Pearson Education 7 7 ADMINISTRAÇÃO DOS RECURSOS DE DADOS Capítulo.
Data Warehouse Um Data Warehouse é um armazém de dados, contendo dados extraídos do ambiente de produção da empresa. De acordo com INMON (1997), um.
MySQL Gerdson de Araújo Silva Universidade Federal de Alagoas Maceió-AL, 21 de maio de 2009.
Gerenciamento dos Recursos de Dados
Banco de Dados Multidimensional
Data Mining, Data Warehousing e OLAP
Banco de Dados Avançado - Prof.ª Valeria Times
Desenvolvimento de Sistemas OLAP
Desenvolvimento de Sistemas OLAP
Banco de Dados II Prof. Antônio Cordeiro.
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Sociedade da Informação: Ambiente de TI nas Organizações
Design Patterns / Acesso ao banco de dados (java.sql)
Tecnologia da informação e estado
Business Intelligence:
Especialização em Tecnologia da Informação
4. Decisões Estruturadas 4.1. Data Warehouse (DW)
Banco de Dados Avançado
Banco de Dados Avançado
Banco de Dados Avançado
Desenvolvendo um script SQL
J OÃO C ARVALHO Data Warehouses. D EFINIÇÃO Um Data Warehouse é um sistema de computação utilizado para armazenar informações relativas às actividades.
Baseado no material do Professor Raul Paradeda
A abordagem de banco de dados para gerenciamento de dados
Jacques Robin e Francisco Carvalho CIn-UFPE Tópicos de projetos da disciplina de mineração de dados
Kamila T. Lyra Karina C. S. Nishimura Thiago P. Colonhezi William S. Soares.
Spatial Data Warehouse Por: Camilo Porto. Apresentação  Revisando esquema estrela... limitações  Spatial Data Warehouse (SDW) Um modelo conceitual Estendendo.
ASSUNTO Facilitando a Tomada de Decisão em um Ambiente Móvel Mohamed A. Sharaf Panos K. Chrysanthis Felipe Menezes Cardoso COPIN – UFCG Banco de Dados.
©Silberschatz, Korth and Sudarshan (modificado)4.1.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
SQLite Banco de Dados II.
Construir e Consultar o Data Warehouse com SQL Server
Uma proposta para OLAP ontológica Adriana Ribeiro.
Ricardo Ferreira Schiavo
Jacques Robin CIn-UFPE
Jacques Robin CIn-UFPE Arquiteturas de software e linguagens de consultas para descoberta de conhecimento em BD.
O L A P PROCESSAMENTO ANALÍTICO ONLINE
Banco de Dados II Prof. Dra. Carla Lanzotti
CIn/UFPE – Banco de dados Avançado - Profs. Robson Fidalgo e Valéria Times  1 Banco de Dados Avançado Banco de Dados Multidimensionais Introdução a linguagem.
OLAP - On-Line Analytical Processing (Processamento Analítico On-Line)
CIn/UFPE – Banco de dados Avançado - Profs. Robson Fidalgo e Valéria Times  1.
Data Warehousing para Mineração de Dados Jacques Robin CIn-UFPE.
Banco de Dados Relacional Objeto-
Projetos de descobertas de conhecimento em banco de dados e mineração de dados Jacques Robin, Francisco de Assis e Paulo Adeodato CIn-UFPE.
CIn/UFPE – Banco de dados Avançado - Profs. Robson Fidalgo e Valéria Times  1.
Gestão de Bases de Dados
B. I., DATAMINING e OLAP Henrique Liduario Joab Esequiel
Sistemas de Informação para Planejamento Estratégico
BANCO DE DADOS MULTIDIMENSIONAIS CONSULTANDO O CUBO DE DADOS (MDX – SQL SERVER 2008) Banco de Dados Avançado - Prof.ª Valeria Times Andresson Firmino.
VBA – Visual Basic para Aplicativos
UCSal – Bacharelado em Informática Banco de Dados Profa. Semíramis Assis
Modelagem Dimensional do Data Warehouse
UCSal – Bacharelado em Informática
Janeiro/2013 Ceça Moraes Data Warehouse Janeiro/2013 Ceça Moraes
INTELIGÊNCIA EMPRESARIAL Aula 9 - Modelagem de Data Warehouse.
INTELIGÊNCIA EMPRESARIAL Aula 8 - Metadados e Operações OLAP.
Prática de Banco de Dados Créditos: Prof. Jefferson Silva Adaptações: Prof. Nécio de Lima Veras.
Modelagem de Banco de Dados: Conceitos
Transcrição da apresentação:

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

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

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

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%

OLAP x OLTP

Elementos de um modelo de dados lógico multidimensional BDMD: coleção de cubos D-dimensionais Cubo: D dimensões (ex, tempo, produto, espaço) C celulas de dados quantitativos atómicos 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

Elementos de um modelo lógico de dados multidimensional: exemplo Dimensões Hierarquias Níveis Membros Medidas Celulas Tempo Fev./99 Jan./99 FORTALEZA SOBRAL NORDESTE CEARÁ SUDESTE RIO DE JANEIRO PERNAMBUCO SÃO PAULO ... 5 1 6 8 P1 P2 P3 P4 Produto

Modelos 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

Relacões x Arrays Qual diferença em consultar essas duas tabelas ? Qual a melhor forma de representar esses dados ? 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 ?

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

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

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

Operadores OLAP Drill Down and Roll Up: detalhar ou agregar ao longo de uma hierarquia (mudar granularidade dos dados) 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 Roll Up 50.000 Clientes Drill Down

Operadores OLAP Drill Down Roll Up

ROLAP: esquema estrela DM Região Tabela de Fatos Ch_Região Nome Clima População FT Venda Ch_Tempo Ch_Região Ch_Produto Vendas (R$) Vl_unitário(R$) Despesas (R$) QtdVendida DM Tempo Ch_Tempo Semana Mês Trimestre Ano Feriado? DM Produto Ch_Produto Nome Descrição Marca Categoria Tabelas das Dimensões

ROLAP: esquema floco de neve Dimensões normalizadas Ch_Produto Nome Descrição Ch_Marca DM Produto Ch_Marca Marca Ch_Categoria DM Produto Ch_Categoria Categoria DM Produto

Remodelagem de dados: relacional  dimensional ER representa vários processos em um único diagrama 1- Dividir o diagrama ER em vários diagramas MD 2- Definir as tabelas das dimensões (desnormalizar) 3- Definir a tabela de fatos (atributos) Estrela Relacional X

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

Linguagens 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

OLE 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++

Padrões da Microsoft “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

MDX: 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)

MDX: 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>

MDX: 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

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

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

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

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