Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação DATA WAREHOUSE Profa Marilde Terezinha Prado Santos Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação Apostila originalmente organizada por: Profa. Marina Teresa Pires Vieira Prof. Joaquim Cezar Felipe 1 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação 1. INTRODUÇÃO ........................................................................................................................................... 3 2. CONCEITOS BÁSICOS ............................................................................................................................. 6 2.1. Data Warehouse................................................................................................................................ 6 2.2. Data Warehousing ............................................................................................................................ 6 2.3. Aplicações sobre o DW para tomada de decisão .............................................................................. 8 2.4. Características de Data Warehouses ................................................................................................ 9 2.5. Arquitetura do Data Warehousing .................................................................................................. 11 2.6. Data Mart (DM) .............................................................................................................................. 12 3. MODELAGEM DE DADOS PARA DW ................................................................................................ 14 3.1. Modelo de dados multi-dimensional ............................................................................................... 14 3.2. Consultas OLAP.............................................................................................................................. 17 3.2.1. Agregação .................................................................................................................................... 18 3.2.2. Roll-up ......................................................................................................................................... 19 3.2.2. Drill-down .................................................................................................................................... 19 3.2.4. Pivot ............................................................................................................................................. 20 3.2.5. Comparando com consultas SQL ................................................................................................. 21 4. PROJETO DO DATA WAREHOUSE .................................................................................................... 24 4.1. Esquema Estrela ............................................................................................................................. 24 4.2. Esquema Snowflack ........................................................................................................................ 26 4.3. Constelação de Fatos ...................................................................................................................... 28 4.3. Visões Materializadas ..................................................................................................................... 28 4.4. Construindo um Data Warehouse ................................................................................................... 30 4.5. Resumindo as Funcionalidades Típicas de Data Warehouses ........................................................ 33 4.6. Considerações Finais...................................................................................................................... 34 4.6.1. Data warehousing e Visões .......................................................................................................... 34 4.6.2. Dificuldades na Implementação de Data Warehouses................................................................. 35 5. SERVIDORES OLAP ............................................................................................................................... 37 5.1. Servidores ROLAP .......................................................................................................................... 37 5.2. Servidores MOLAP ......................................................................................................................... 38 5.3. Servidores HOLAP.......................................................................................................................... 38 5.4. On-Line Analytical Mining (OLAM) ............................................................................................... 39 APÊNDICE A ................................................................................................................................................ 41 ESTUDO DE CASO 1 – Criação de um Data Mart ............................................................................. 41 APÊNDICE B ................................................................................................................................................ 47 ESTUDO DE CASO 2 – Cubo Multidimensional e OLAP ..................................................................... 47 BIBLIOGRAFIA ........................................................................................................................................... 55 2 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação 1. Introdução Os recursos tecnológicos de hardware e software, oferecidos nos últimos anos, para o armazenamento, manutenção e compartilhamento de dados têm permitido aos usuários de banco de dados (empresas, pesquisadores e órgãos governamentais) manter quantidades de informações cada vez maiores em suas bases de dados. Esse grande volume de dados excede a capacidade humana de análise e compreensão, mesmo utilizando métodos como planilhas eletrônicas e ambientes de consulta ad hoc. Isso motivou o grande investimento em pesquisa, que vem ocorrendo, relacionada às tecnologias envolvidas em data warehousing. Data Warehousing e On-Line Analytical Processing (OLAP) surgiram como elementos essenciais de apoio à decisão, atraindo atenção cada vez maior da indústria de bancos de dados. Data Warehousing é uma coleção de tecnologias de apoio à decisão, voltadas a capacitar o usuário a realizar tomadas de decisão mais rápidas e precisas. O “produto” da aplicação dessas tecnologias é o Data warehouse, uma base de dados temporais, não voláteis e integrados, tipicamente mantida separadamente da base de dados operacionais da empresa. Para facilitar análises e visualizações complexas, os dados em um warehouse são modelados de forma multi-dimensional, onde cada elemento de importância relevante corresponde a uma dimensão (por exemplo, produto, tempo e região num warehouse de vendas). Essas dimensões podem ser organizadas em hierarquias (por exemplo, produto - tipo - categoria) a fim de permitir diferentes níveis de agregação durante a análise. OLAP (on-line analytical processing) é um conjunto de operações que podem ser executadas sobre o Data Warehouse, a fim de viabilizar a extração eficaz de informações do mesmo. Os requisitos funcionais e de desempenho dessas operações são totalmente diferentes do processamento de transações online (OLTP – on-line transaction processing) das aplicações tradicionalmente suportadas pelas bases de dados operacionais. 3 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação Aplicações OLTP tipicamente automatizam tarefas de processamento de dados tais como transações bancárias e de processamento de pedido que são operações rotineiras de uma organização. Essas tarefas são estruturadas e repetitivas e consistem de transações curtas, atômicas e isoladas. As transações requerem dados detalhados, atualizados e realizam operações de leitura e escrita envolvendo alguns (poucos) registros tipicamente acessados através de suas chaves primárias. O tamanho das bases de dados operacionais geralmente varia de centenas de megabytes a gigabytes. Aspectos críticos a considerar são a consistência e recuperação da base de dados e a métrica de desempenho chave é maximizar o throughput das transações. Consequentemente, o banco de dados é projetado para refletir a semântica operacional de aplicações conhecidas e, em particular, para minimizar conflitos de concorrência. Data warehouses, em contraste, são totalmente distintos de bancos de dados tradicionais em sua estrutura (são estruturados para suporte à decisão), funcionamento, desempenho e propósito. Dados históricos, sumarizados e consolidados são mais importantes do que registros individuais detalhados. Além dos recursos para tomada de decisão oferecidos pela tecnologia OLAP, existem também técnicas e ferramentas "inteligentes", com o objetivo de fazer emergir, automaticamente, padrões e regras de relacionamento entre os dados, na busca do conhecimento intrínseco aos mesmos. Essas técnicas e ferramentas são objeto de estudo de uma linha de pesquisa que aborda o chamado processo de extração de conhecimento de Bases de Dados (Knowledge Discovery in Databases - KDD). Uma etapa desse processo de KDD é a de aplicação de métodos de Data Mining, que consiste na aplicação de algoritmos específicos sobre uma base de dados, com o objetivo de produzir uma série particular de padrões e regras que relacionem os dados da base de dados. Resumindo, para a obtenção de informações contidas em um warehouse tem-se um conjunto de ferramentas de análise e exploração dos dados, utilizando consultas em SQL , consultas OLAP e técnicas de data mining. Consultas SQL são construídas baseadas na álgebra relacional, com algumas extensões; OLAP fornece idiomas de consulta de nível mais alto com base no modelo de dados 4 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação multi-dimensional e data mining fornece operações de análise mais abstratas. Nos próximos capítulos são tratados os principais conceitos, questões e tecnologia envolvidos com Data Warehouse, procurando focalizar os vários aspectos envolvidos nessa abordagem. 5 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação 2. Conceitos Básicos 2.1. Data Warehouse Data warehouses têm sido desenvolvidos nas organizações para resolver necessidades particulares, com enfoques variados, não possuindo, portanto, uma definição única para o termo. Data warehouses são projetados para suportar extração, processamento e apresentação eficientes de informação para propósitos analíticos e tomada de decisão. O significado de data warehouse tem sido difundido em uma variedade de maneiras na literatura. Inmon [1] caracterizou data warehouse (DW) como uma coleção de dados orientada a assuntos, integrada, não volátil e variável no tempo, que é usada para apoio a decisões gerenciais. Em comparação a bancos de dados tradicionais, data warehouses geralmente contém quantidade muito grande de dados vindos de diversas fontes que podem incluir bancos de dados de diferentes modelos de dados e algumas vezes arquivos adquiridos de sistemas e plataformas independentes. 2.2. Data Warehousing Data Warehousing é um conceito cada vez mais poderoso de aplicação de tecnologia de informação para resolver problemas empresariais. Compõe-se de um conjunto de tecnologias de software e hardware voltadas a viabilizar e otimizar a análise de dados em larga escala, gerando informações gerenciais valiosas. Algumas das principais tecnologias utilizadas são: Gerenciadores de bases de dados distribuídas, que suportam processamento paralelo. Produtos de conversão de dados operacionais. Tecnologia cliente/servidor que permite acesso a dados distribuídos em 6 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação múltiplas plataformas. Integração de ferramentas de análise e relatório em ambiente de escritório (desktop). Algumas aplicações usuais de Data Warehousing: Análises de vendas e marketing. Movimentação de inventário e acompanhamento de produção em manufaturas. Otimização de rotas e análise de riscos em transportes. Análise de lucros e riscos em empreendimentos bancários. Análise de reclamações ou detecção de fraudes em seguradoras. Dados operacionais: são os dados originais utilizados nas transações normais dos sistemas, ou seja, aqueles dados tipicamente armazenados, recuperados e atualizados pelo sistema. São majoritariamente armazenados em bases de dados relacionais, podendo, porém, ser armazenados em bases hierárquicas ou até mesmo em arquivos simples. Algumas das características dos dados operacionais incluem: Freqüentemente atualizados através de transações online. Dados não históricos (geralmente não mais que três a seis meses anteriores). Otimizados para processamento transacional. Tipicamente normalizados em bases relacionais, para otimizar atualizações, manutenção e integridade. Dados informativos: são dados tipicamente armazenados com o objetivo de tornar a análise mais eficaz. Essa análise pode ocorrer na forma de ambientes de apoio à decisão, sistemas de informações executivas ou análises estatísticas sofisticadas. Os dados informativos são criados a partir de seleções e 7 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação sumarizações criteriosas executadas sobre os dados operacionais. O Data Warehouse é uma base de dados composta por dados informativos. A criação do Data Warehouse a partir dos sistemas de dados operacionais é a principal etapa do processo de data warehousing como um todo. A construção da base de dados informativos é feita utilizando-se ferramentas de transformação e propagação. Essas ferramentas não apenas movem os dados de múltiplas fontes, mas freqüentemente manipulam os dados para um formato mais apropriado para o warehouse. Essas alterações podem ser: Criação de novos campos com resultados de cálculos. Criação de novos campos com sumarizações de dados. Desnormalização de dados com propósitos de performance. Compatibilização de campos oriundos de diferentes bases. 2.3. Aplicações sobre o DW para tomada de decisão Uma tendência com relação à abordagem de data warehousing é o desenvolvimento de poderosas ferramentas de análise. Há três amplas classes de ferramentas de análise emergentes [4]: a) SGBDs projetados para suportar consultas complexas eficientemente. Tais sistemas podem ser considerados como SGBDs relacionais otimizados para aplicações de suporte à decisão. b) sistemas que suportam uma classe de consultas que envolvem tipicamente o operadores group-by e de agregação. Aplicações dominadas por tais consultas são as chamadas OLAP (On-Line Analytical Processing). Esses sistemas suportam um estilo de consulta em que os dados são melhor pensados como um array multi-dimensional. Aplicações OLAP permitem a analistas, gerentes e executivos realizar insights pelos dados – normalmente armazenados em data warehouses – através de acessos rápidos, consistentes e interativos, com uma ampla variedade de possíveis visões sobre as informações, para refletir a real dimensão do negócio. OLAP é implementado num ambiente cliente/servidor 8 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação multiusuário e deve oferecer respostas rápidas a consultas, independentemente do tamanho ou da complexidade da base de dados. OLAP ajuda o usuário a sintetizar informações através de visualizações comparativas personalizadas, assim como através de análises de dados históricos em diferentes modelos de cenários. c) ferramentas para análise exploratória de dados ou data mining, em que o usuário procura por padrões de interesse. Por exemplo, um comerciante de venda por catálogo pode querer analisar os registros dos clientes para identificar clientes em potencial para uma nova promoção; essa identificação pode depender do nível de salário, padrões de compra, áreas de interesse demonstradas, etc. Em situações como essa, é muito difícil formular uma consulta que captura a essência de um padrão de interesse e a quantidade de dados é muito grande para permitir análise manual ou mesmo análise estatística tradicional. 2.4. Características de Data Warehouses Um Data Warehouse apresenta as seguintes aspectos que os distinguem de bancos de dados transacionais: Possui um modelo de dados apropriado – o modelo de dados multidimensional se adequa bem para OLAP e tecnologia de suporte à decisão; É um armazém de dados integrados vindos de múltiplas fontes, processados para armazenamento em um modelo multi-dimensional; Tipicamente suportam séries de tempo e análise de tendências, os quais requerem dados mais históricos do que aqueles geralmente mantidos em bancos de dados transacionais; São não voláteis, comparados com os bancos de dados transacionais – isto 9 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação é, a informação no data warehouse muda muito menos freqüentemente e pode ser considerado como não sendo de tempo-real com atualização periódica. Atualizações no warehouse são manipuladas pelo componente de aquisição do warehouse, que fornece todo o pré-processamento requerido. Algumas características de data warehouses são: Visão conceitual multi-dimensional; Dimensionalidade genérica; Níveis de dimensões e agregações ilimitadas; Operações cross-dimensional irrestritas; Manipulação de matriz esparsa dinâmica; Arquitetura cliente-servidor; Suporte a multi-usuário; Manipulação de dados intuitiva; Flexibilidade na elaboração de relatórios. Geralmente data warehouses envolvem grandes volumes de dados (na ordem de terabytes), o que leva a diferentes abordagens: Data warehouses de todo o empreendimento são projetos muito grandes requerendo investimento massivo de tempo e recursos. Data warehouses virtuais fornecem visões de bancos de dados operacionais que são materializadas para acesso eficiente. Data marts são geralmente idealizados para um subconjunto da organização, tal como um departamento, e são mais específicos. 10 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação 2.5. Arquitetura do Data Warehousing Um data warehousing pode ser descrito como uma coleção de tecnologias de suporte à decisão, objetivando capacitar o trabalhador do conhecimento (executivo, gerente, analista) a fazer decisões melhores e mais rápidas. A Figura 1 extraída de [2], apresenta uma arquitetura típica de data warehousing, mostrando todo o processo envolvido. Essa arquitetura inclui ferramentas para: extração de dados de múltiplas bases de dados operacionais e de fontes externas (por exemplo perfil dos clientes fornecida por consultores externos) usando gateways ou interfaces externas padrão suportadas pelo SGBD de suporte; limpeza dos dados para minimizar erros e preencher informações ausentes, quando possível; transformação para reconciliar erros semânticos; integração desses dados; carga dos dados no data warehouse, que consiste na materialização das visões e no seu armazenamento no warehouse; e para periodicamente executar o refresh do warehouse, para que esse reflita as atualizações sofridas pela base operacional. Além do warehouse principal, pode haver diversos data marts (subconjuntos específicos focados em assuntos selecionados) departamentais. Os dados contidos no warehouse e nos data marts são armazenados e gerenciados por um ou mais servidores de warehouse, que oferecem visões multidimensionais dos dados para uma variedade de ferramentas front-end: ferramentas de consulta, geradores de relatórios, ferramentas de análises específicas e ferramentas de data mining. Finalmente, há um repositório para armazenamento e gerenciamento de dados de log e ferramentas para monitoramento e administração do sistema total. 11 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação Monitoramento e Administração Repositório de Metadados Servidores OLAP Análise Data Warehouse Fontes externas Extração Transformação Carga Refresh Relatórios Data Mining Dados operacionais Data Marts Figura 1. Arquitetura de Data Warehousing Ferramentas As informações sobre os dados do warehouse são armazenadas no catálogo do sistema e é freqüentemente armazenado e gerenciado em um banco de dados separado chamado repositório de metadados. O tamanho e complexidade do catálogo é em parte devido ao tamanho e complexidade do warehouse em si e em parte porque uma grande porção de informação administrativa deve ser mantida. Por exemplo, precisamos ser informados sobre a fonte de cada tabela do warehouse e quando ela sofreu o último refresh, além da descrição de seus campos. 2.6. Data Mart (DM) É um data warehouse de pequena capacidade usado para atender a uma unidade específica de negócios. Data Marts não são diferenciados dos DWs com base no tamanho, mas no uso e gerenciamento. Entretanto, DMs são menores e menos complexos do que DWs e portanto são tipicamente mais fáceis de construir e manter. Em média, um DM pode ser construído num período de 3 a 6 meses, enquanto um DW leva de 2 a 3 anos para ser concluído. Os motivos que levam ao desenvolvimento de um Data Mart podem ser: 12 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação servir como projeto piloto, atender necessidades imediatas de uma unidade, atender a restrições de custo, tempo, etc., entre outros. 13 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação 3. Modelagem de Dados para DW 3.1. Modelo de dados multi-dimensional A fim de facilitar análises e visualizações complexas, os dados em um warehouse são tipicamente modelados num formato multi-dimensional. Por exemplo, num data warehouse de vendas, a época da venda, o local geográfico, o cliente e o produto podem ser algumas das dimensões de interesse. Freqüentemente essas dimensões são hierárquicas: a época da venda pode ser organizada numa hierarquia dia – mês – trimestre – ano, e produto pode ser organizado numa hierarquia produto – tipo – categoria. A maioria das pessoas, intuitivamente, pensa no modelo como um cubo de dados (matrizes multidimensionais), como mostrado na Figura 2, onde cada aresta representa uma das dimensões com seus diferentes valores distribuídos ao longo da mesma. Os pontos internos ao cubo representam os valores de medida do negócio – no nosso exemplo, os valores de vendas. Local Tempo Produto Figura 2. Cubo de dados de vendas A figura 3 mostra uma matriz bi-dimensional, apresentando os produtos como linhas, com rendimento de venda para cada local compreendendo as colunas. Essa matriz pode estar representando o rendimento das vendas por local e por produto para um particular período de tempo. 14 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação LOCAL LOC1 LOC2 LOC3 ... P1 P2 P3 P4 ... PRODUTO Figura 3. Matriz bi-dimensional A adição de uma dimensão tempo, produz uma matriz tri-dimensional que pode ser representada usando o cubo de dados. A figura 4 mostra um cubo que organiza dados de venda de produto por data e regiões de venda. Cada célula representa a venda de um produto específico, em um período de tempo específico (ano, trimestre, mês,...) em um local específico. Adicionando outras dimensões, teremos um hipercubo. Tempo (codTempo) t4 t3 t2 t1 Reg1 Reg2 P1 Produto (codProd) P2 Reg3 Local (codLocal) ... . P3 ... Figura 4. Cubo de dados de vendas Os dados podem ser consultados diretamente em qualquer combinação de dimensões, permitindo que consultas complexas no banco de dados original sejam realizadas de forma mais direta e com maior desempenho. Existem 15 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação ferramentas que permitem a visualização dos dados de acordo com a escolha de dimensões do usuário. Num ambiente relacional os dados da matriz multi-dimensional podem ser representados como uma relação, como ilustrado na figura 5. Nessa relação as tuplas estão agrupadas de acordo com as fatias (slices) verticais, paralelas com relação ao eixo do tempo. Essa relação que associa as dimensões à medida de interesse é chamada tabela fato. Note na figura 5 que somente constam da tabela as composições produto-local-tempo que possuem valor de vendas. Cada dimensão pode ter um conjunto de atributos associados. Por exemplo, a dimensão Local é identificada pelo atributo codlocal, que foi usado para identificar um local na tabela Vendas. A dimensão Local pode ter os atributos adicionais Cidade, Estado e País. A dimensão Produto pode conter os atributos codProd, Descrição, Marca, Categoria, Estilo, Preço. A Categoria de um produto indica sua natureza geral; por exemplo, um produto camisa pode pertencer à categoria roupa. O Estilo pode ser social, esporte, passeio, etc. A dimensão Tempo pode ter os atributos Data, Semana, Mês, Trimestre, Ano, além do identificador codTempo. codProd P1 P1 P1 P2 P2 P3 P3 P4 P4 P1 P1 P2 P2 P2 P3 P3 codLocal loc1 loc2 loc3 loc1 loc2 loc1 loc4 loc2 loc3 loc1 loc2 loc1 loc2 loc4 loc1 loc4 codTempo t1 t1 t1 t1 t1 t1 t1 t1 t1 t2 t2 t2 t2 t2 t2 t2 vendas 1000 880 1025 775 1002 888 989 1550 900 1030 920 1010 700 1100 980 980 fatia (slice) do período de tempo t1 fatia (slice) do período de tempo t2 16 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação P4 P4 ... loc2 loc3 t2 t2 1550 950 Figura 5. Relação Vendas (tabela fato) As dimensões podem ser representadas como relações: Local (codLocal, Cidade, Estado, País) Produto (codProd, Descrição, Marca, Categoria, Estilo, Preço) Tempo( codTempo, Data, Semana, Mês, Trimestre, Ano) Para cada dimensão, o conjunto de valores associados podem ser estruturados em uma hierarquia. Por exemplo, cidades pertencem a estados e estados pertencem a países. Datas pertencem a semanas e a meses; semanas e meses estão contidos em trimestres e trimestres estão contidos em anos. A figura 6 mostra as hierarquias para Produto, Local e Tempo do exemplo aqui considerado. TEMPO PRODUTO categoria ano estilo código produto LOCAL país trimestre semana estado mês cidade data Figura 6. Possíveis hierarquias para Produto, Tempo e Local 3.2. Consultas OLAP Sobre o cubo de dados (data warehouse) podem ser aplicadas as 17 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação operações típicas de OLAP, para viabilizar a extração eficaz de informações do mesmo. As operações suportadas pelo modelo multi-dimensional são fortemente influenciadas por ferramentas existentes para usuário final tal como aquelas que trabalham com planilhas eletrônicas. A meta é oferecer ao usuários finais, que não são especialistas em SQL, uma interface intuitiva e poderosa para tarefas comuns de análise de negócio. Cada operação sobre o conjunto de dados multidimensional retorna ou uma apresentação diferente ou uma sumarização desse conjunto de dados. O conjunto de dados está sempre disponível para o usuário manipular, independente do nível de detalhe em que ele está sendo visto. 3.2.1. Agregação Uma operação muito comum é agregar uma medida sobre uma ou mais dimensões. Exemplos de consultas típicas são: Encontrar o total de vendas. Encontrar o total de vendas para cada cidade. Encontrar o total de vendas para cada estado. Encontrar os cinco produtos mais vendidos. As três primeiras consultas podem ser expressas como consultas SQL sobre as tabelas fato e dimensão, mas a última consulta não pode ser expressa em SQL (embora se possa conseguir um resultado satisfatório ordenando o total de vendas através de ORDER BY). Um outro uso de agregação é sumarizar em diferentes níveis de hierarquia. Isso é conseguido através das operações OLAP roll-up e drill-down que oferecem visualizações hierárquicas dos dados. 18 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação 3.2.2. Roll-up A operação roll-up realiza um aumento no nível de agregação dos dados, agrupando em unidades maiores ao longo da dimensão. Por exemplo, a figura 7 mostra os dados de venda usando a operação roll-up que, a partir de informações de venda de produtos individuais por local (por cidade), faz um agrupamento de categorias de produtos, apresentando o total de vendas por categoria de produto (por exemplo: categoria Roupa abrange os produtos P1 a P10, a categoria Calçado abrange os produtos P11 a P15, etc.). LOCAL CATEGORIAS DE PRODUTOS Roupa Calçado Bijuteria ... São Carlos 10.000 7.000 30.000 ... Ribeirão Preto 15.000 10.000 20.000 ... ... ... ... ... Figura 7. A operação roll-up (venda por categoria/cidade) 3.2.2. Drill-down A operação drill-down oferece a capacidade oposta, fornecendo uma visão mais detalhada. Por exemplo, dado o total de vendas por estado e por categoria de produto, podemos solicitar uma apresentação mais detalhada desagregando vendas de cada estado por cidade e também quebrando categoria de produtos por estilos, conforme figura 8. 19 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação São Paulo Rio Grande do Sul ... S.Carlos Rib.Preto Estilos Roupa Estilos Calçado Estilos Bijouteria Lins Assis P. Alegre Caxias Sul A B C D A B D A B C ... Figura 8. A operação drill-down 3.2.4. Pivot 20 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação A mudança de uma hierarquia dimensional (orientação) para uma outra é facilmente obtida em um cubo de dados utilizando a técnica chamada pivoting (ou rotação). A operação pivot realiza uma re-orientação do ângulo de visão dos dados. Nessa técnica, os eixos podem ser mostrados em orientações diferentes. Por exemplo, pode-se fazer uma rotação no cubo de dados da figura 4 para mostrar rendimentos de vendas regionais como linhas, os totais de rendimentos diários como colunas e os produtos da companhia na terceira dimensão (figura 9). Isso equivale a ter uma tabela de venda regional para cada produto separadamente, onde cada tabela mostra, para o produto específico, totais de vendas para cada local e cada período considerado. ... P4 Produto P3 P2 P1 t1 t2 Reg1 t3 ... Tempo Local Reg2 . Reg3 ... Figura 9. Rotação (Pivot) do cubo de dados de vendas 3.2.5. Comparando com consultas SQL Algumas consultas OLAP não podem ser (ou não podem ser facilmente) expressas em SQL. Por exemplo, das quatro consultas a seguir, as duas primeiras podem ser expressas como consultas SQL sobre as tabelas fato e 21 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação dimensão. A terceira consulta pode ser expressa também, mas é mais complicada em SQL. A última consulta não pode ser expressa em SQL, se n é para ser um parâmetro da consulta. Observe que todas as consultas a seguir envolvem o tempo. Na verdade a dimensão Tempo é muito importante em OLAP. Consultas: Encontre o total de vendas por mês. Encontre o total de vendas por mês para cada cidade. Encontre a variação de porcentagem no total de vendas mensalmente para cada produto. Encontre a média de movimento de vendas de n dias. (Para cada dia, deve ser calculada a média de vendas diária sobre os n dias precedentes). Um grande número de consultas OLAP, entretanto, pode ser expresso em SQL. Tipicamente elas envolvem agrupamento e agregação, e uma única operação OLAP conduz a várias consultas relacionadas. Por exemplo, a mesma informação apresentada na tabela da figura 7 pode ser obtida através da seguinte consulta: SELECT SUM (V.vendas) FROM Vendas V, Produto P, Local L WHERE V.codProd=P.codProd AND V.codLocal=L.codLocal GROUP BY P.Categoria, L.Cidade A operação realizada na tabela da figura 7 é a Roll-up, que agrupa os dados em unidades maiores. Cada operação roll-up corresponde a uma consulta SQL com GROUP BY. Em geral, dada uma medida com k dimensões associadas, podemos fazer um roll up sobre qualquer subconjunto dessas k dimensões e então tem-se 2k possíveis consultas SQL. Uma extensão proposta para o SQL chamada CUBE é equivalente a uma 22 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação coleção de comandos GROUP BY, com um comando GROUP BY para cada subconjunto das k dimensões. Por exemplo, considere a consulta: CUBE codProd, codLocal, codTempo BY SUM Vendas Essa consulta fará um roll up sobre a tabela Vendas sobre todos os oito subconjuntos do conjunto { codProd, codLocal, codTempo}. Ela é equivalente a oito consultas da forma: SELECT SUM (V.vendas) FROM Vendas V GROUP BY lista-do-agrupamento As consultas diferem somente na lista-do-agrupamento, que é algum subconjunto do conjunto { codProd, codLocal, codTempo}. 23 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação 4. Projeto do Data Warehouse 4.1. Esquema Estrela Diagramas entidade-relacionamento e técnicas de normalização são popularmente usadas para projetos de bases de dados operacionais. Nos sistemas de apoio à decisão, porém, devem prevalecer métodos de projeto que tenham como alvo a eficiência nas consultas [19]. A maioria dos data warehouses utilizam um esquema estrela para representar o modelo multi-dimensional de dados [12]. A base dos dados consiste de uma tabela dimensão para cada dimensão, além de uma tabela fato, a qual contém um relacionamento com cada uma das tabelas dimensão e um valor para a dimensão do negócio relativo ao conjunto de dimensões referenciadas. A Figura 10 mostra o esquema estrela para o exemplo de vendas de produto adotado no capítulo 3. (tabela dimensão) VENDAS (tabela fato) PRODUTO codProd codTempo codRegião CodProduto Categoria DescrCategoria Estilo Preço (tabelas dimensão) TEMPO vendas valor-vendas codTempo Data Semana Mês Trimestre Ano REGIÃO Figura 10. Esquema estrela do exemplo dado (fig.4) CodReg Cidade Estado País 24 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação Uma outra maneira de representar esquema estrela é fornecido na figura 11. TEMPO CodTempo Data Semana Mês Trimestre Ano REGIÃO CodRegião Cidade Estado País VENDA CodProd CodLocal CodTempo vendas valor-vendas PRODUTO CodProd Categoria DescrCategoria Estilo Preço Figura 11. Outra representação de esquema estrela O volume maior dos dados está tipicamente na tabela fato, que não tem redundância. Usualmente ela está na Forma Normal de Boyce Codd (FNBC). Para minimizar o tamanho da tabela fato, os identificadores das dimensões (ex. CodLocal, CodTempo) são gerados pelo sistema. As tabelas dimensão usualmente são não normalizadas. A razão para isso é que um banco de dados usado para OLAP é estático; assim, anomalias de atualização, inserção e eliminação não são importantes. Além disso, o espaço de armazenamento ganho através da normalização das tabelas dimensão é desprezível, frente ao tempo de processamento gasto para combinar a tabela fato com as tabelas dimensão, caso estas fossem quebradas em tabelas menores normalizadas (que podem conduzir a junções adicionais). 25 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação 4.2. Esquema Snowflack Esquemas estrela não fornecem explicitamente suporte para hierarquias de atributos. Um modelo refinado do esquema estrela é o chamado esquema snowflack, no qual as tabelas dimensão são organizadas em uma hierarquia através de sua normalização, como mostrado na Figura 12. Isso traz vantagens para a manutenção das tabelas-dimensões. Entretanto, a estrutura não normalizada das tabelas dimensão nos esquemas estrela podem ser mais apropriados para a manipulação das dimensões. (tabelas dimensão) PRODUTO VENDA (tabela fato) CodProd CodRegião CodTempo vendas valor-vendas CodProduto Categoria Estilo Preço (tabelas dimensão) REGIÃO CodRegião Cidade Estado ESTADO Estado País TEMPO CATEG-PROD Categoria DescriçãoCateg CodTempo Data Semana Mês Ano Mês Trimestre Figura 12. Esquema Snowflack As figuras 13 e 14 apresentam um outro exemplo de esquemas estrela e snowflack. 26 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação PEDIDO NroPedido DataPedido ... PRODUTO CodProduto NomeProduto DescrProduto Categoria DescrCateg EstiloProduto PreçoUnitario ... RENDIMENTO VENDAS (tabela fato) VENDEDOR CodVendedor NomeVendedor CidadeVendedor Cota ... NroPedido CodVendedor CodCliente CodProduto ChaveData Cidade Quantidade ValorTotal ... CLIENTE CodCliente NomeCliente EndereçoCliente CidadeCliente ... DATA CIDADE ChaveData Cidade Data Estado Mês País Ano PEDIDO ... ... VENDEDOR NroPedido VENDAS CodVendedor Figura 13. Outro exemplo de esquema estrela DataPedido (tabela-fato) NomeVendedor ... CidadeVendedor NroPrdido Cota PRODUTO CodVendedor ... CodProduto CodCliente Categoria DescrCateg ESTADO Estado País NomeProduto DescrProduto Categoria PreçoUnitario ... CodProduto ChaveData Cidade Quantidade ValorTotal ... CLIENTE CodCliente NomeCliente EndereçoCliente CidadeCliente ... DATA CIDADE Cidade Estado ... Figura 14. Esquema Snowflack MÊS Mês Ano ChaveData Data Mês ... 27 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação 4.3. Constelação de Fatos Constelação de fatos são exemplos de estruturas mais complexas nas quais múltiplas tabelas fato compartilham tabelas dimensão. A figura 15 mostra uma constelação de fatos com duas tabelas fato, Resultado de Vendas e Previsão de Vendas, que compartilham a tabela dimensão Produto. Constelações de fatos limitam as possíveis consultas para o warehouse. RESULTADO. VENDAS (tabela fato) PRODUTO (tabela dimensão) CodProduto Categoria DescrCategoria Estilo Preço CodProduto CodRegião CodTempo Vendas PREVISÃO VENDAS (tabela fato) CodProduto CodRegião CodTempoFuturo ProjeçãoVendas Figura 15. Uma constelação de fatos Outro exemplo seria uma constelação de fatos representando despesas projetadas e despesas reais, contendo duas estrelas que compartilham várias dimensões. 4.3. Visões Materializadas A fim de otimizar a análise multi-dimensional, tornando-a viavelmente utilizável pelo usuário, uma das soluções adotadas atualmente é a précomputação de agregações em alguns subconjuntos de dimensões e suas hierarquias correspondentes. Outra solução comumente usada é a materialização de consultas muito freqüentes. Essas tabelas especiais são chamadas de visões materializadas. As visões materializadas geralmente consistem de junções da tabela fato com um subconjunto de tabelas dimensão, com a sumarização de uma ou mais medidas de valor do negócio, agrupadas por um conjunto de atributos das tabelas dimensão. 28 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação A seleção das visões a materializar deve levar em conta a freqüência de utilização, características de carga de trabalho, custo de atualizações incrementais e exigências de armazenamento. Como um exemplo, suponha que num ambiente de vendas, como o do exemplo aqui considerado, uma grande maioria das consultas é baseada na performance de vendas no estado de São Paulo, do trimestre mais recente. Ter uma tabela que contenha dados sumários sobre esses parâmetros pode acelerar significativamente o processamento das consultas. A figura 16 ilustra esse exemplo. Vendas - Estado São Paulo Data Categoria 01/07/99 Roupa 02/07/99 ... 25/11/99 2000 3000 ... 1000 Calçado 500 650 ... 220 Bijuteria 300 550 ... 430 agregação Vendas - Estado São Paulo Categoria Trimestre 3 Roupa 21200 Calçado 5670 Bijuteria 6980 Figura 16. Agregação Consultas ad hoc realizadas pelos usuários são respondidas usando as tabelas originais juntamente com sumários pré-computados. 29 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação 4.4. Construindo um Data Warehouse Há muitos desafios na criação e manutenção de um data warehouse. É necessário projetar um bom esquema de banco de dados para manter uma coleção integrada de dados copiados de diversas fontes. Por exemplo, o data warehouse de uma companhia pode incluir os bancos de dados do departamento de Estoque e de Pessoal, junto com os bancos de dados de Vendas mantidos por escritórios em diferentes países (ou filiais). Uma vez que os dados são criados e mantidos por diferentes grupos, existem algumas questões que devem ser avaliadas, tais como erros semânticos, diferenças na forma como as tabelas foram normalizadas ou estruturadas, nomes diferentes para o mesmo atributo., entre outros. Para construir um data warehouse, é necessário ter uma visão antecipada do uso do warehouse. Não há uma maneira para antecipar todas as possíveis consultas ou análises durante a fase de projeto. Entretanto, o projeto deve especificamente suportar consultas ad-hoc, isto é, acesso aos dados com qualquer combinação significativa de valores para os atributos na tabela dimensão ou tabela fato. A aquisição de dados para o warehouse envolve os seguintes passos: extração de dados: Os dados podem ser extraídos de múltiplas fontes heterogêneas. Durante essa fase pode ser necessário selecionar dados sobre itens específicos ou categorias de itens, ou de armazéns em uma região específica do país; formatação: Os dados devem ser formatados para ficar consistentes com o warehouse. Nomes, significados e domínios de dados vindos de fontes não relacionadas devem ser conciliados. Por exemplo: companhias subsidiárias de uma grande corporação podem ter diferentes calendários fiscais com os trimestres terminando em diferentes datas, tornando difícil agregar dados financiais por trimestre; outro exemplo é a existência de diferentes unidades monetárias. Essas inconsistências de formato devem ser resolvidas. Limpeza dos dados: Os dados devem passar por uma limpeza para 30 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação minimizar erros, preencher informação ausente, quando possível, e deixar os elementos de dados dentro de formatos e significados padronizados e consistentes. Limpeza dos dados é um processo complexo que tem sido identificado como o componente que demanda maior trabalho na construção do data warehouse. Para dados de entrada, a limpeza deve ocorrer antes que os dados sejam armazenados no warehouse. A limpeza de dados que requer o reconhecimento e correção automáticos de dados errôneos e incompletos é uma tarefa difícil. Alguns aspectos, tais como checagem de domínio, são facilmente codificados em rotinas de limpeza de dados, mas reconhecimento automático de alguns problemas de dados pode ser mais desafiador. Por exemplo, o processo de limpeza pode corrigir CEPs inválidos ou eliminar registros com prefixos de telefone incorretos. A tabela da figura 17 a seguir apresenta alguns exemplos de dados que necessitam de um tratamento: nome de cidade errado ("Centro"), e não padronizado (São Paulo e S.Paulo) nome de bairro errado ("XXX") e não padronizado ("Centro" transformar para letras maiúsculas). as datas devem seguir um mesmo formato. valores nulos devem ter um tratamento adequado (data com valor "000000") eliminar dados inúteis para o data warehouse: a última linha da tabela não representa informação útil. CIDADE BAIRRO DATA SÃO CARLOS CENTRO 10/09/99 31 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação CENTRO Centro 08/03/1999 RIO DE JANEIRO XXX 13-05-99 SÃO PAULO PINHEIROS 15101998 S. PAULO SANTANA 000000 RIBEIRÃO PRETO CENTRO 10/06/1998 XXXX 000000 Figura 17 - Erros durante a fase de limpeza Os dados devem ser ajustados no modelo de dados do data warehouse. Os dados vindos de várias fontes devem ser instalados no modelo de dados do warehouse. Os dados podem ter que ser convertidos de bancos de dados relacionais, orientados a objetos ou legados (redes ou hierárquicos) para um modelo multi-dimensional. Os dados devem ser carregados no warehouse. Essa tarefa é significativa devido ao grande volume de dados do warehouse. São requeridas ferramentas de monitoração para a carga, bem como métodos para recuperação a partir de cargas incompletas ou incorretas. Questões sobre a atualização dos dados também são levadas em conta. As seguintes questões devem ser consideradas: Até que ponto os dados podem ser atualizados? O warehouse pode se tornar off-line e por quanto tempo? Quais são as interdependências de dados? Qual é a disponibilidade de armazenamento? Quais são os requisitos de distribuição (tais como para replicação e particionamento)? 32 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação Qual é o tempo de carga (incluindo limpeza, formatação, cópia, transmissão, reconstrução de índice, ...)? Uma tarefa de projeto muito importante é avaliar quais tabelas sumário devem ser materializadas para alcançar o melhor uso de memória disponível e responder consultas ad hoc comumente realizadas com tempo de resposta interativo. Quando o warehouse usa um mecanismo de reabastecimento (refreshing) de dados incremental, pode ser necessário purgar periodicamente os dados; por exemplo, um warehouse que mantém dados sobre os últimos 3 anos pode purgar seus dados a cada ano. 4.5. Resumindo as Funcionalidades Típicas de Data Warehouses O objetivo dos data warehouses é facilitar consultas complexas e que envolvem muitos dados. Eles devem fornecer um suporte de consulta maior e mais eficiente do que os oferecidos nos bancos de dados transacionais. Os suportes do componente de acesso do data warehouse incluem: - funcionalidades melhoradas de ferramentas que trabalham com planilhas eletrônicas: isto é, suportes conhecidos oferecidos para planilhas eletrônicas bem como suporte de programas de aplicação OLAP. - Processamento de consulta eficiente - consultas estruturadas - consultas ad hoc - data mining - visões materializadas As funcionalidades pré-programadas que são oferecidas pelos data warehouses são: - Roll-up: os dados são sumarizados com crescente generalização (por 33 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação ex., de semanalmente para trimestralmente para anualmente). - Drill-down: crescentes níveis de detalhe são revelados (operação oposta de roll-up). - Pivot (rotação): é realizada tabulação cruzada. - Slice and dice: são realizadas operações de projeção sobre as dimensões. - Ordenação: os dados são ordenados através de um atributo. - Seleção: os dados são disponíveis por valor ou agrupados em categorias de valores. - atributos derivados (computados): valores derivados através de operações sobre dados armazenados. 4.6. Considerações Finais 4.6.1. Data warehousing e Visões Data warehouses têm sido considerados por algumas pessoas como sendo uma extensão de funções e visões do banco de dados. Entretanto visões fornecem somente um subconjunto das capacidades de data warehouses. Visões e data warehouses são parecidos nos seguintes aspectos: - ambos têm dados extraídos de bancos de dados; são orientados ao assunto . Data warehouses são diferentes de visões nos seguintes aspectos: - Data warehouses existem como armazenamento persistente ao invés de ser materializado sob demanda; - Data warehouses não são usualmente relacionais, mas sim multidimensionais. Visões de um banco de dados relacional são relacionais. - Data warehouses podem ser indexados para otimizar performance. 34 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação Visões não podem ser indexadas independente dos bancos de dados utilizados. - Data warehouses caracteristicamente fornecem suporte específico de funcionalidade; visões não podem fornecer. - Data warehouses fornecem grande quantidade de dados integrados e freqüentemente temporais, geralmente mais do que está contido em um banco de dados, enquanto que visões são um extrato de um banco de dados. 4.6.2. Dificuldades na Implementação de Data Warehouses A construção de um warehouse de um amplo empreendimento em uma grande organização pode levar anos, considerando desde a fase inicial de concepção até a implementação. Devido à dificuldade e quantidade de tempo requerido para uma tal tarefa, o desenvolvimento e emprego difundido de data marts pode fornecer uma alternativa atrativa, especialmente para aquelas organizações com necessidades urgentes de OLAP, sistemas de suporte à decisão e/ou suporte de data mining. Alguns aspectos a serem considerados são: A administração de um data warehouse é uma tarefa intensiva, proporcional ao tamanho e complexidade do warehouse. O controle de qualidade dos dados e a consistência são aspectos importantes a considerar. Cada vez que um banco de dados fonte muda, o administrador do data warehouse deve considerar as possíveis interações com outros elementos do warehouse. Projeções de uso devem ser estimadas antes da construção do data warehouse e devem ser revisadas continuamente para atender requisitos correntes. 35 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação Administração de data warehouse irá requerer habilidades mais amplas do que são necessárias para administração de banco de dados tradicional. 36 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação 5. Servidores OLAP Servidores que utilizam bancos de dados relacionais tradicionais não foram concebidos para propiciar o uso inteligente de índices e de outros recursos necessários para suportar visões multidimensionais de dados. Em adição aos servidores relacionais tradicionais, há três opções principais para a implementação do servidor OLAP: servidores ROLAP (Relational OLAP), que armazenam os dados em tabelas, servidores MOLAP (Multi-dimensional OLAP), que armazenam os dados em arrays, e servidores HOLAP (Hibrid OLAP), que são híbridos dos dois anteriores. 5.1. Servidores ROLAP Nos servidores OLAP Relacionais (ROLAP) os dados são armazenados em tabelas de bancos de dados relacionais ou relacionais estendidos. Eles utilizam SGBDs relacionais para gerenciar os dados e agregações do esquema estrela do warehouse. Também suportam extensões a SQL e acesso e métodos de implementação especiais, tais como o OLAP midleware para a implementação eficiente do modelo multi-dimensional e suas operações. Dessa forma, sua estrutura de dados é implementada por tabelas relacionais, e uma célula do espaço multi-dimensional é representada por uma tupla. Essa tupla carrega alguns atributos que identificam a posição da célula no espaço multi-dimensional, além de outros atributos que contém os valores de dados correspondentes àquela célula. Por utilizarem bancos de dados relacionais para implementar o modelo multi-dimensional, os servidores OLAP precisam reescrever as consultas dos usuários para compatibilizá-las com as visões materializadas e gerar múltiplas consultas SQL para o servidor. A principal vantagem dos servidores ROLAP está no armazenamento de grandes conjuntos de dados, devido ao fato de se poder 37 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação armazenar dados esparsos de forma mais compacta em tabelas do que em arrays. 5.2. Servidores MOLAP Outra opção Multidimensionais amplamente adotada (MOLAP). Servidores são MOLAP os servidores implementam as OLAP visões multidimensionais diretamente, armazenando dados em algumas estruturas especiais (por exemplo, arrays esparsos) e executando as operações OLAP diretamente sobre essas estruturas. O cubo de dados é implementado através do mapeamento de suas dimensões para os índices do array, de forma que o conteúdo do array é formado pelos valores contidos em cada célula do cubo. Servidores MOLAP possuem excelentes propriedades de indexação devido ao fato de ser mais simples localizar uma célula num array do que numa tabela. Por outro lado, quando os dados são esparsos, os servidores MOLAP perdem performance, sendo que nesses casos algumas técnicas de matrizes de compressão devem ser exploradas. Para pequenos e médios conjuntos de dados, eles são mais eficientes em armazenamento e recuperação dos dados. 5.3. Servidores HOLAP Alguns servidores OLAP adotam uma forma de armazenamento em dois níveis, a fim de manipular conjuntos de dados densos e esparsos. O conjunto de dados de alguns subcubos dimensionais que são identificados como densos são armazenados no formato de arrays. O restante dos subcubos, que são esparsos, são armazenados em tabelas empregando tecnologias de compressão. Isso resulta em um método de armazenamento híbrido chamado de OLAP Híbrido (HOLAP). 38 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação 5.4. On-Line Analytical Mining (OLAM) Considerando o alto poder do método OLAP para se realizar análises multidimensionais e vislumbrando as vantagens geradas pela possibilidade de utilizar essa análise na preparação dos dados na aplicação de Data Mining, J. Han e sua equipe desenvolveram um mecanismo batizado de OLAM (On-Line Analytical Mining), que propicia a aplicação de KDD num ambiente multidimensional em grandes bases de dados e data warehouses . As principais vantagens geradas por essa abordagem são: A maioria das ferramentas de Data Mining necessitam trabalhar com dados integrados, consistentes e limpos, que exigem um árduo trabalho de limpeza, transformação e integração dos dados nas fases que precedem a aplicação de DM no processo KDD. Num data warehouse, a maior parte dessa preparação normalmente já foi realizada, servindo esse warehouse para a aplicação tanto de OLAP quanto de DM. DM efetivo necessita de análises exploratórias de dados. O usuário frequentemente deseja navegar de forma flexível ao longo da base de dados, selecionar diferentes partes de dados relevantes e analisar os dados em diferentes granularidades. A integração de OLAP com múltiplas funções de DM permite ao usuário investigar diferentes tarefas de data mining de forma fácil e flexível. 39 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação 40 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação Apêndice A ESTUDO DE CASO 1 – Criação de um Data Mart Este estudo de caso descreve a criação de um data mart realizada em uma empresa que comercializa pedras e concreto, situada no estado de Maryland, EUA [8]. O objetivo foi auxiliar na análise de vendas e marketing para os seus principais clientes, que são empresas de construção e pavimentação, além de, eventualmente, avaliar a eficiência da rede de distribuição. Os dados de entrada originam-se de sistemas IBM ES/9000 e AS/400. A ferramenta utilizada para a execução do projeto foi o Oracle Data Mart Suite para Windows NT. Objetivou-se fornecer aos usuários do sistema acesso ad hoc gráfico às informações gerenciais, sem envolver grande volume de processamento a cada acesso realizado. A principal área de interesse identificada foi a análise dos lucros. O primeiro passo foi a identificação acurada de todas as informações que o usuário realmente necessitava em suas consultas, definindo-se, assim, o grau de detalhamento que o sistema deveria contemplar. O estudo dos relatórios já existentes foi um ponto de partida. O passo seguinte foi a compreensão do mecanismo de cálculo dos lucros da empresa, já que o antigo sistema de contas não fornecia explicitamente esses valores, mas sim um grande número de campos que poderiam levar a esses valores. O projeto das tabelas foi tal que o lucro pudesse ser pré-calculado e armazenado na tabela fato, evitando, assim, cálculos no momento da consulta. 41 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação Outra característica a ser definida foi o período de tempo em que o usuário gostaria de ter suas informações armazenadas, já que a dimensão tempo é crucial para o esquema estrela. Iniciou-se, então, o projeto do banco de dados, descrito a seguir. O esquema estrela é construído objetivando-se simplicidade e velocidade de recuperação. Cada tabela dimensão possui uma chave primária, usualmente o ID. A tabela fato contém uma chave composta por todas as chaves das dimensões. Ao invés de utilizar diretamente os identificadores das tabelas dimensão, foram criadas chaves sintéticas tanto para as chaves primárias das tabelas dimensão, quanto para as chaves estrangeiras da tabela fato. Esse procedimento torna mais eficientes as consultas, além de manter uma homogeneidade na base de dados, garantindo também a unicidade dos identificadores e uma maior facilidade na manutenção do data mart. A tabela fato da empresa foi construída a partir de tickets e faturas de produtos (pedras) que foram comprados e transportados para um certo local. O grau de granularidade (nível de detalhe informacional) que o cliente deseja obter nos relatórios tem um impacto sobre o projeto da tabela fato. Importante: obter dos clientes o que eles necessitam ver e não o que eles querem ver. As tabelas dimensão criadas são mostradas a seguir. Tabela dimensão Fábrica: Tabela estática com detalhes sobre todas as fábricas da empresa. FÁBRICA Código Descrição Id-linha-produto DIM-FÁBRICA Chave-Fábrica Cod-Fábrica Descr-Fábrica Região-Fábrica 42 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação Tabela dimensão Tempo: A tabela Tempo foi necessária, pois os relatórios necessitam avaliar os dados por dia, feriados, períodos fiscais, etc. Se os agrupamentos fossem somente referentes a anos/meses a tabela Tempo poderia ser dispensada. DIM-TEMPO Chave-tempo Id-data Dia-do-mês Numero-mês Descr-mês Semana-do-ano Descr-dia Num-ano Dia-do-ano Número-trimestre Data-venda Tabela dimensão Item: ITEM Código Tipo Descrição Id-linha-item Classe LINHA-ITEM Código Descrição DIM-ITEM Chave-item Tipo-item Cód-linha-item Descr-linha-item Classe-item Sub-classe-item Flag-item Descrição-item 43 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação Tabela dimensão Cliente: CLIENTE Código Nome Endereço1 Endereço 2 Cidade Estado CEP Represent-venda Tipo DIM-CLIENTE Chave-cliente Cod-cliente Nome-cliente Cod-Repres-venda Nome-repres-venda Tipo-cliente Tabela dimensão Representante de Vendas : REPRES-VENDA DIM-REPRES-VENDA Código Nome Chave-repr-venda Codigo-repr-venda nome-repr-venda Tabela dimensão Transportadora: TRANSPORTADORA DIM-TRANSPORTADORA Código Nome Chave-Transportadora Código Nome 44 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação Tabela fato Ticket -Fatura: TICKET-FATURA Número-fatura Número-ticket Tipo-ticket Cod-Fábrica Cod-cliente Código Data-envio Cod-produto Qtde-enviada Preço-produto Custo-fixado-produto-por-unidade Custo-variavel-produto-por-unidade Cód-transportadora Custo-transporte-por-unidade Região-entrega Local-entrega Tabela dimensão Região de Entrega: DIM-REGIÃO-ENTREGA Chave-entrega Estado-entrega País-entrega Local-entrega Região-entrega 45 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação O negócio da empresa era rastrear e avaliar as faturas e tickets para cada carga transportada por seus caminhões. Havia vários tickets por fatura. Cada ticket tinha medidas e preços tais como datas da transportadora, quantidades de itens, custos totais, etc. Devido ao relacionamento entre tickets e faturas, decidiuse fundir as duas tabelas em uma tabela fato principal. Para cada fatura pode haver vários tickets. Para a tabela fato, a solução adotada foi a criação de uma única tabela contendo as informações sobre os tickets e os pedidos que os contém. Tabelas sumário: A fim de reduzir o tempo de processamento de recuperação de dados que são freqüentemente executadas, foram criadas tabelas sumário para a dimensão tempo, devido à sua alta freqüência de consultas. As tabelas criadas produzem freqüentemente relatórios por mês, trimestre e ano. 46 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação Apêndice B ESTUDO DE CASO 2 – Cubo Multidimensional e OLAP Este estudo de caso descreve a implementação do cubo multidimensional para consultas OLAP realizada em uma usina de açúcar e álcool, situada no estado de São Paulo. O objetivo foi auxiliar nas análises setoriais, gerar regras de negócio, analisar riscos e produtividade e permitir a comparação e a combinação de informações. Algumas perguntas das quais desejava-se conhecer as respostas: - com quais clientes praticou-se o melhor preço? - quais clientes geram maior lucratividade? - quais os mercados mais lucrativos? - qual é o perfil dos clientes? - em que regiões concentram-se as vendas? Inicialmente, foram comparadas as duas alternativas: OLTP e OLAP, a fim de verificar as vantagens da solução OLAP, justificando, assim a implementação do projeto. Algumas das características levantadas foram: OLTP - utilização da base de dados operacionais; - demora na execução de consultas e relatórios; - pouca flexibilidade; - muitos relatórios utilizados apenas uma vez; - necessidade de pessoal de informática para desenvolvimento de templates de relatórios; - grande volume de informações a serem processadas. OLAP - utilização de data marts - consultas e relatórios obtidos instantaneamente - visão multidimensional das informações; - transparência da origem dos dados (Ingres, texto, excel, web); - arquitetura cliente/servidor, permitindo utilização remota; - geração de regras de negócio. Para o desenvolvimento do projeto, foi contratada uma empresa de consultoria com experiência na área. A ferramenta utilizada para a extração/visualização dos dados foi a O3. A criação do cubo foi realizada utilizando-se o aplicativo O3 Designer, seguindo-se os seguintes passos: 47 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação Definição das dimensões e medidas do cubo e das origens de dados: Definição das queries: 48 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação Codificação das queries: Definição dos campos das queries: 49 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação Definição das hierarquias dimensionais: Definição das medidas: 50 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação A seguir são ilustrados alguns exemplos de consultas com visualização gráfica. Volume de vendas anual do produto açúcar para os diferentes ramos de atividade: Drill-down no ramo Doces, enfocando o ano de 98 (vendas mensais): 51 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação 52 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação Volume de vendas anual do produto açúcar para os diferentes destinos: Enfoque no ano de 98 (vendas mensais): 53 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação Receita líquida obtida no ano de 98, com o produto açúcar, para o cliente Vonpar: 54 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação Bibliografia [1] Inmon, W.H. Building the Data Warehouse. John Wiley, 1992. [2] Chaudhuri, S., Dayal, U. An Overview of Data Warehousing and OLAP Technology, ACM SIGMOD Record, vol.26, 65-74, 1997. [3] Elmasri, R., Navathe, S. Fundamentals of Databases, 3ª edição, 2000. [4] Ramakrishnan, R. Database Management Systems. McGraw-Hill, 1998. [5] Felipe, J.C. O Processo de Extração de Conhecimento de Bases de Dados Aplicado a Bancos de Dados Multimídia Orientados a Objetos. Monografia de Exame de Qualificação de Mestrado. Programa de PósGraduação em Ciência da Computação, Departamento de Computação UFSCar, São Carlos, Fevereiro 1999. [6] Becker, K., Pereira, W. Tutorial de Data Warehouse, XIV Simpósio Brasileiro de Banco de Dados, outubro, 1999, Florianópolis, SC, Brasil. [7] Oracle, Oracle Data Mart Suite. http://www.twinsoft.de/english/produkte/dmsuite_E.htm [8] Oracle, Data Marte Suite Design - A Case Study. http://www.avanco.com/dmdesignstudy.htm. [9] IBM, Data Warehousing Concepts. http://as400.rochester.ibm.com/db2/dataware.htm , 1998. [10] Tam, Y. J., Datacube: Its Implementation and Application in OLAP Mining, Thesis submitted for the degree of Master of Science in the Department of Computer Science of Simon Fraser University, Canada, september 1998. [11] Harinarayan, V., Rajaraman, A., Ullman, J. D., Implementing Data Cubes Efficiently, Proc. ACM SIGMOD Int. Conference on Management of Data, June 1996. 55 Universidade Federal de São Carlos Departamento de Computação Curso de Pós-Graduação “Lato-Sensu” em Computação [12] Roussopoulos, N., Materialized Views and Data Warehouses, ACM SIGMOD Record, Vol. 27, No. 1, Março 1998. 56