Como referenciar este artigo: PRASS, Fernando Sarturi. FERNANDES, Mikael de Souza. VARGAS, Pablo Tôndolo. Utilizando a Ferramenta Mondrian para Modelagem em Data Warehouses. SQL Magazine, v.67, 2009. Banco de Dados Utilizando a Ferramenta Mondrian para Processamento de um Data Warehouse WOLAP com ferramenta open-source Fernando Sarturi Prass - [email protected] Mestre em Ciência da Computação pela UFSC. Diretor da FP2 Tecnologia (http://www.fp2.com.br/), empresa gaúcha que atua desenvolvimento de sistemas e presta consultoria em Bancos de Dados e Data Mining. Professor da Universidade Luterana do Brasil (ULBRA). Pablo Tôndolo de Vargas - [email protected] Bacharel em Sistemas de Informação da Universidade Luterana do Brasil (ULBRA). Atua na área de desenvolvimento em Delphi e na área de qualidade de software na empresa FP2 Tecnologia. Mikael de Souza Fernandes - [email protected] Bacharel em Sistemas de Informação pela Universidade Luterana do Brasil (ULBRA). Programador Java e desenvolvedor de solução (http://portal.ufsm.br/neuro) de Business Intelligence no CPD (Centro de Processamento de Dados) da UFSM. LEAD: BOX De que se trata o artigo: Este artigo apresenta o Mondrian, uma ferramenta de BI (Business Intelligence) open-source de análise de dados. Além de apresentar a ferramenta, o artigo demonstra seu funcionamento através de um exemplo prático: um Data Warehouse (DW) de uma vídeo locadora. Para que serve: Mondrian é uma ferramenta de BI focada no usuário de nível gerencial que permite a análise de grandes bases de dados por meio de planilhas, tabelas e gráficos. Em que situação o tema é útil: BI pode ter um papel fundamental na tomada de decisões em qualquer organização, através da análise de dados, por exemplo, é composto por DW e On-Line Analytical Processing (OLAP). A tecnologia OLAP manipula e aplica metodologias de multidimensionalidade em grandes fontes de dados (DW). Introdução Cada vez mais os administradores de empresas têm a necessidade de analisar e visualizar os dados corporativos independentemente do local onde estejam, sejam em suas casas ou no escritório. Nesse contexto, é necessário rapidez, dinamismo e consistência nos dados para facilitar a tomada de decisão sobre como agir a partir de informações do mesmo. Como o próprio nome sugere On-Line Analytical Processing (OLAP, em português Processamento Analítico On-Line) tem por finalidade processar grandes quantidades de dados em tempo real. Segundo Kimball(1998), OLAP é um termo criado para descrever uma abordagem dimensional para suporte à decisão, através de uma análise dinâmica e multidimensional dos dados. No entanto, a tecnologia OLAP é somente de visualização de dados que estão numa forma agregada, ou melhor, resumida. Esse resumo é necessário para que se possa analisar os dados dispostos em uma base relacional. Englobado nos conceitos de OLAP, encontra-se a ferramenta Mondrian, que consiste em um projeto open source que está atualmente na versão 3, desenvolvida pela Pentaho (www.pentaho.com). Mondrian aplica as tradicionais operações OLAP em Esquemas XML. Para definir as consultas na devida base dados, Mondrian utiliza uma outra tecnologia padrão, o MDX (Multidimensional Expressions). O MDX consiste em uma linguagem semelhante à linguagem SQL (Structured Query Language), foi criada pela Microsoft e introduzida na ferramenta Microsoft SQL Server Services OLAP (Nota 1), fazendo parte da especificação OLE DB/OLAP API. Porém, o Mondrian não possui um visualizador dos dados multidimensionais, podendo assim ser integrado como uma API em outras ferramentas, como o caso do JPivot (Nota 2). Nota 1. A Ferramenta Microsoft SQL Server OLAP Services O Microsoft SQL Server Services OLAP, também chamado de Analysis Services, é um servidor baseado em OLAP e mineração de dados (Microsoft, 2008b). Assim como o banco de dados SQL Server, ele possui custo de licença. Esta solução oferece um pacote completo de recursos para aplicação dos conceitos de Inteligência de Negócios, como ainda ETL e DW. Nota 2. A Ferramenta Pivot A tecnologia JPivot é responsável pela camada de apresentação, projetada para trabalhar com vários servidores OLAP, especialmente com o Mondrian. O JPivot é uma ferramenta que através de suas tag librarys permite apresentação e interação com os dados analisados (JPivot 2007), isto é, visualização e manipulação de tabelas, resultado de consultas OLAP. Este artigo tem como objetivo apresentar a ferramenta Mondrian, assim como explorar os conceitos de BI, mostrando o seu significado e como o usuário pode usufruir de seus recursos no dia-a-dia através de uma exemplificação de uma base de dados de uma vídeolocadora. A ferramenta Mondrian utiliza a tecnologia JDBC (Java Database Connectivity), logo é flexível quanto a Sistema Gerenciador de Banco de Dados (SGBD). No exemplo não é citado o SGBD utilizado, pois é deixado a rigor de cada um a escolha deste, logo foi utilizada a conexão ODBC (Open Data Base Connectivity) suportada pela tecnologia JDBC. Data Warehouse (DW) Conforme Fortulan e Filho (2005), ao longo do tempo os bancos de dados foram desenvolvidos para fins de processamentos de dados operacionais e analíticos, havendo maior ênfase no primeiro caso, ainda que ambos tivessem usuários com diferentes necessidades. Uma vez compreendida essa diferença, foram criados bancos de dados separados para fins analíticos, chamados de Data Warehouse (DW) ou armazém de dados. Conforme Navathe e Elmasri (2000), os Data Warehouses (ou armazéns de dados) fornecem acesso a dados para análise complexa, descoberta de conhecimento e tomada de decisão. Além disso, eles suportam demandas de alto nível de desempenho de dados e informações em uma organização para vários tipos de aplicações – OLAP, DSS (Decision Support Systems) e Data Mining. Elmasri & Navathe (2000) definem os passos para o desenvolvimento de um DW: Os dados devem ser extraídos de várias fontes, heterogêneas. Os dados devem ser formatados para consistência dentro do DW. Os dados devem ser limpos para garantir a sua validade (a limpeza de dados é um processo complexo e com muitas implicações). Os dados devem ser ajustados ao modelo de dados do DW. Os dados devem ser carregados para o DW (ferramentas de monitoramento para cargas, bem como métodos de recuperação de cargas incompletas ou incorretas, são necessárias). Conhecendo OLAP (On-Line Analytical Processing) Para manipular um DW é necessária a aplicação de conceitos e tecnologias distintas. Comumente em base de dados tradicionais para operações transacionais são utilizadas tecnologias chamadas de OLTP (On-Line Transaction Processing). Entretanto, no caso de DW, utiliza-se de tecnologias denominadas OLAP OLTP (On-Line Analytical Processing). Como o objetivo das ferramentas OLAP é permitir análises para examinar os negócios, elas têm requisitos bem particulares se comparadas a outros sistemas de informação, conforme Berson (1997) e Thomsen (2002), tais como: Flexibilidade: as análises de negócio devem ter liberdade e facilidade para escolher os dados a serem analisados bem como o formato no qual eles devem ser visualizados; Simplicidade: ferramentas OLAP devem prover maneiras simples e intuitivas de confecção de análises para os analistas de negócio; Expressividade: a linguagem de consulta utilizada pela ferramenta OLAP deve ser poderosa o suficiente para que o analista consiga extrair informações realmente úteis para o negócio; Poder de análise: ferramentas OLAP devem prever um conjunto de operações de agregação e exploração de dados que permitam análises de tendências e comparações complexas utilizando os dados que descrevem o negócio; Velocidade: o processamento das consultas sobre o DW deve ser realizado em um tempo relativamente baixo. O tempo de processamento, dependendo do volume de dados e da complexidade do código da consulta, pode em casos específicos chegar a horas. Criando DW em um Estudo de Caso – Sistema de Vídeo Locadora Tomando por exemplo um sistema de uma típica empresa de vídeo locação que possui uma base de dados com as seguintes informações: dados do cliente, como endereço, nome e CPF; informações sobre o produto (vídeo), como título, descrição, gênero; e por fim os registros das locações, contendo detalhes referentes ao locatário (cliente), vídeo, data e valor. A Figura 1 apresenta o modelo de entidade e relacionamento referente a esse sistema que usaremos como exemplo. CLIENTE VIDEO ID_CLIENTE ID_VIDEO NOME SEXO CPF ID_ENDERECO (FK) TITULO DESCRICAO ID_GENERO (FK) LOCACAO ID_LOCACAO ENDERECO ID_ENDERECO CIDADE BAIRRO RUA VALOR DATA ID_CLIENTE (FK) ID_VIDEO (FK) GENERO ID_GENERO NOME_GENERO Figura 1. Modelo entidade relacionamento do sistema da vídeo-locadora Entretanto, para o nível gerencial do referido sistema, a base de dados não representa informações pertinentes à tomada de decisão, mas sim apenas para fins operacionais. Sendo assim, é preciso desenvolver um DW para esta base de dados, através do conceito de multidimensionalidade ou cubo de dados. Cubo de dados é uma estrutura multidimensional que expressa a forma na qual os tipos de informações se relacionam. Ele é formado pela tabela de fatos e pelas tabelas de dimensão que a circundam e representam possíveis formas de visualizar e consultar os dados. O cubo armazena todas as informações relacionadas a um determinado assunto de maneira a permitir que sejam montadas várias combinações entre elas, resultando na extração de várias visões sobre o mesmo tema (Hokama et al. 2004, p. 49). O exemplo de um cubo do sistema de uma vídeo-locadora é representado por tabelas de dimensões e tabela de fatos, sendo a tabela de dimensões referentes a vídeos e clientes; e, por conseguinte, a tabela de fatos que seriam as locações. As dimensões basicamente compreendem aos aspectos a serem analisados que se relacionam ao cubo por meio da tabela de fatos. Por outro lado, os fatos são representados por tabelas (fact tables) que correspondem aos conjuntos de dados mensuráveis e referenciáveis no modelo dimensional. A tabela de fatos é a principal tabela de um modelo dimensional, onde as medições numéricas de interesse da empresa estão armazenadas (Kimball, 2002). Usando o modelo entidade relacionamento (ER) apresentado na Figura 1, pode-se definir como tabela de fatos o conjunto de todas as locações agregadas de outras informações como gênero, valor (R$), quantidade, etc. Sendo que os valores a serem processados são chamados medidas, neste caso seriam os atributos valor da locação e quantidade de locações. Para se chegar à tabela de fatos, recomenda-se os procedimentos de ETL (Extract Transform Load) que consiste na extração, processamento e carga do modelo ER para o modelo dimensional (DW). Segundo Barbieri (2001), as dimensões têm uma relação de 1:N com a tabela de fatos. Logo, elas possuem um número de registros bem menor. Elas possuem inúmeras colunas de informação e uma chave primária que acaba participando das tabelas de fatos, como parte de sua chave múltipla. Para a formulação de uma dimensão, também se utiliza do mesmo procedimento de ETL. Nas dimensões ainda há os conceitos de membro, hierarquia, nível e propriedade. Um membro é um item contido em uma dimensão, isto é, no modelo apresentando, “Infantil” seria um membro da dimensão gênero. Uma hierarquia é um conjunto de membros organizados em uma estrutura, para facilitar a análise. Um nível é um conjunto de membros que têm a mesma distância a partir da raiz da hierarquia. No modelo apresentado temos uma única hierarquia em ambas dimensões, um único nível na dimensão “cliente” e dois níveis na dimensão “gênero”. E, por fim, propriedade é um valor de um membro que será visualizado pelo usuário, no modelo apresentado, o “título” representa uma propriedade da dimensão vídeo. Veja o modelo do DW na Tabela 1. Tabela 1. Definição do modelo de DW Cubo Locadora Dimensão Vídeo/Gênero Cliente Hierarquia Vídeos Clientes Propriedades Gênero, título Nome Medidas Quantidade, valor total A Ferramenta Mondrian O Mondrian é uma ferramenta disponibilizada como uma tecnologia Web desenvolvida na linguagem de programação Java. Conforme Brito (2004), o Mondrian executa as consultas OLAP sob a base de dados e retorna os dados manipulados. Este retorno, porém, não tem uma saída (interface gráfica) definida. A visualização das consultas retornadas depende de outra tecnologia: o JPivot. Possibilita executar as operações, como por exemplo: drill Member: Abre todas as ocorrências de um determinado item; drill Position: Abre apenas a ocorrência selecionada daquele item; drill Replace: Substitui a raiz da dimensão atual pelo item selecionado; drill Through: Explica de onde foi que aquele dado foi calculado; Swap de linhas e colunas; Exportação dos dados da tela para o aplicativo Microsoft Excel e a extensão PDF. Arquitetura do Mondrian A ferramenta Mondrian é composta basicamente por quatro camadas: a camada de apresentação (presentation layer), dimensional (dimensional layer), estrela (star layer) e, por fim, de armazenamento (storage layer). A tecnologia JPivot é responsável pela camada de apresentação. A segunda camada, dimensional, é a camada que recebe, analisa e envia consultas OLAP. A camada estrela é responsável pela ligação da consulta recebida pela camada anterior e a execução da mesma sobre a base de dados através de um mapeamento. E por último, a camada de armazenamento é quem executa as consultas solicitadas pela camada estrela sobre o DW. Mondrian Schema De acordo com Brito (2004), a lógica do Mondrian é implementada através de Schemas, que definem o modelo multidimensional lógico e o mapeamento deste modelo em um modelo físico e relacional. O primeiro, modelo lógico, é formado de elementos definidos pelo Schema, sendo estes: cubos, dimensões, hierarquias, níveis e membros. Por conseguinte, o modelo físico é a base de dados relacional que é mapeada pelo modelo lógico através do Schema. Ainda conforme Brito (2004), a representação destes Schemas é feita através de arquivos XML, utilizando os mesmos conceitos relacionados à análise dimensional: cubo, representando em alto nível a lógica multidimensional do sistema, bem como os fatos e dimensões. Contextualizando com o nosso estudo de caso da vídeo-locadora descrito anteriormente, temos como dimensões do cubo: clientes e vídeos, ambos relacionados com a tabela de fatos (locação). Essa modelagem é representada pelo mapeamento em XML apresentado na Figura 2. Neste passo, sugere-se utilizar uma outra tecnologia do projeto Pentaho, a ferramenta de modelagem chamada Mondrian Schema Workbench (Nota 3). Nota 3. A Ferramenta Mondrian Schema Workbench A ferramenta Mondrian Schema Workbench é uma interface de projeto (design) que possibilita a criação e teste visualmente de schemas de cubo Mondrian OLAP. A engine do Mondrian processa as requisições MDX com os schemas ROLAP (Relational OLAP). Esses arquivos de schema são modelos de meta-dados em XML que são criados em uma estrutura específica usada pela engine do Mondrian. Esses modelos XML podem ser considerados estruturas como cubo que utilizam as tabelas de FATOS e DIMENSÕES existentes que podem ser encontradas em seu banco de dados. Mais detalhes podem ser obtidos em: http://mondrian.pentaho.org/documentation/workbench.php Figura 2. Arquivo Locadora.xml referente ao Schema do sistema da vídeo-locadora Primeiramente, é determinado o nome do esquema através da tag chamada Schema (na linha 1 da Figura 2 o nome do Schema é Locadora). Logo após é dado o nome ao cubo. Neste exemplo ele possui o mesmo nome do esquema. Então através da tag Table (linha 3) é mapeada a identificação da tabela de fatos, que no nosso exemplo é identificada pelo nome “locacao”. Foram criadas duas dimensões, “Video” e “Cliente”, nas linhas 4 e 19 através da tag Dimension. Nesta tag é identificado o nome da dimensão, assim como podemos configurar a chave estrangeira da dimensão (foreignKey), que é a ligação entre a tabela de fatos e dimensão. Nas linhas seguintes são configuradas as hierarquias (hierarchy) de cada dimensão e seus níveis. Na dimensão de vídeos dentro da tag de hierarquia é configurada, através da tag JoinTable (linha 6), o relacionamento dos vídeos e seus gêneros. E através da tag Level (linhas 10 e 11) são configurados os níveis e suas respectivas propriedades, identificados por nome (name) e a devida coluna da propriedade (colunm). A seguir, através da tag Measure (linhas 20 e 22), que identifica uma medida, são determinadas as propriedades, além de nome (name), coluna da tabela (column), tipo de dado da medida (datatype) e como ele será apresentando (formatString). Configurando a Ferramenta Mondrian Ao longo deste artigo, foi desenvolvido um estudo de caso de uma vídeo-locadora através de uma base de dados relacional e o mapeamento desta base para os conceitos de DW, isto é, Schema Mondrian. Agora será mostrado o funcionamento da ferramenta Mondrian em um servidor Web (conforme especificação da linguagem Java). Para a utilização da ferramenta Mondrian, é preciso inicialmente configurá-la. Para isso, devemos adicioná-la ao diretório de aplicações do servidor. A ferramenta é disponibilizada através do endereço http://mondrian.pentaho.org no formato compactado (war). Antes da inicialização do servidor, deve-se realizar duas modificações na aplicação. A primeira é adicionar o mapeamento (schema) anterior, o arquivo Locadora.xml, em um diretório qualquer inserido na aplicação (aqui foi escolhido o diretório /WEBINF/queries), que será referenciado logo após. Por fim, deve-se gerar um arquivo JSP (Java Server Pages) no diretório queries (/WEB-INF/queries) da aplicação. Para exemplificação, será utilizado o nome do arquivo de locadora (locadora.jsp). No corpo deste arquivo será inserida na tag denominada mondrianQuery a consulta e suas propriedades, tais como título, esquema, dentre outras propriedades (conforme Tabela 1 e exemplo da Figura 3). Tabela 1. Tabela de atributos da tag mondrianQuery Atributo id Descrição Valor Nome do atributo criado na query01 sessão. jdbcDriver Nome da classe do Driver JDBC. sun.jdbc.odbc.jdbcOdbcDriver jdbcUrl Definição do banco de dados. jdbc:odbc:Locadora jdbcUser Usuário do banco de dados. nulo jdbcpassword Senha do banco de dados. nulo dataSource Nome de um DataSource (fonte nulo de dados) pré-configurado. catalogUri Descrição do caminho (path) do /WEB-INF/ Mondrian Schema na aplicação. queries/Locadora.xml Figura 3. Arquivo locadora.jsp com a consulta a ser executada Utilizando a Ferramenta Mondrian Após a configuração e inicialização da ferramenta Mondrian no servidor aplicando os conceitos citados até então, podemos utilizá-la para diversos objetivos, conforme já descrito na seção “A Ferramenta Mondrian”. Dentre as funcionalidades disponibilizadas pela ferramenta, podemos citar (Tabela 2) as encontradas na barra de ferramentas (toolbar) da Figura 4: Tabela 2. Tabela de funcionalidades do Mondrian Função Descrição OLAP Navigator Definição de dimensões e medidas como linhas e colunas; MDX Query Permite visualização e edição de consulta MDX; Configure OLAP Table Possibilita a ordenação dos membros, baseando-se em ranking; Show Parent Members Mostra membros superiores nas colunas e linhas; Hide Spans Esconde membros repetidos nos cabeçalhos; Show Properties Mostra as propriedades dos membros; Suppress Missing Rows/Columns Omite linhas e colunas com valores nulos; Swap Axes Drill Buttons Permite a inversão da posição de colunas e linhas; Habilitam a navegação, de diferentes maneiras, nas linhas e colunas; Drill Through Mostra o nível mais baixo de uma linha, com todas suas propriedades; Show Chart Mostra o gráfico configurado; Chart Config Permite configuração do gráfico; Configure Print Settings Permite configuração da impressão do relatório; Print to PDF Emite um relatório com a consulta no formato PDF; Export to Excel Exporta a consulta para um arquivo Excel (do pacote Microsoft Office). Para manipular a ferramenta Mondrian, basta acessar a URL do servidor em um browser seguidos da sua respectiva porta, o nome da aplicação (mondrian), a página padrão (testpage) e o parâmetro query que identifica o nome do arquivo JSP com a consulta. Por exemplo, no caso do sistema de vídeo-locadora, a URL seria (servidor utilizando a porta 8080): http://localhost:8080/mondrian/testpage.jsp?query=locadora. Pronto. Após a execução dos passos anteriores, a ferramenta Mondrian está funcionando, manipulando consultas OLAP em um DW. Realizando Consultas para Extração de Dados Primeiramente iremos implementar através da ferramenta Mondrian uma consulta na linguagem MDX (Multidimensional Expressions). Para isso, inicialmente deve ser selecionado o botão que possui as letras MDX, onde será exibido um editor de texto onde deve ser digitada a consulta a ser realizada. Em nosso estudo de caso, criaremos uma consulta que irá buscar no DW as informações sobre quantidade de locação e valor na tabela de fatos, enquanto trás a dimensão denominada vídeo nas linhas da tabela. Essa consulta está apresentada na Figura 4. Figura 4. MDX referente a consulta no DW da vídeo-locadora Após a inserção e execução da devida consulta, foi obtido o retorno de uma tabela, apresentada na Figura 5, na qual se pode visualizar uma dimensão (Vídeo) e duas medidas (quantidade de e valor), configuradas no Schema Mondrian e selecionadas na consulta MDX (Figura 4). As medidas são valores manipulados sobre a tabela de fatos (fact table) de acordo com as suas dimensões. Figura 5. Tabela do Mondrian com uma dimensão e medidas Os botões logo acima da tabela correspondem às funcionalidades da ferramenta Mondrian, que correspondem, dentre outras funcionalidades, às operações OLAP. Dentre essas, está compreendida a operação drill position que na implementação apresentada na Figura 5 (em vermelho) é executada sobre o membro “Infantil” da dimensão denominada “Video”, exibindo os filhos (childrens) deste membro. Gerando Gráficos Um outro importante recurso da ferramenta é a geração de gráficos que se refere à tabela em exibição naquele momento. Este recurso possui uma robusta configuração, ou seja, é possível alterar inúmeras propriedades do gráfico. Isto se explica pelo fato de os dados em exibição variarem de acordo com o número de medidas ou dimensões. A Figura 6 apresenta um gráfico gerado através do botão selecionado em azul na Figura 5 para a consulta realizada na Figura 4. Figura 6. Gráfico de pizza referente apenas a dimensão Video, por Gênero. A geração de gráficos pela ferramenta Mondrian corresponde a um recurso com várias possibilidades. Há um menu de configurações para a geração destes gráficos, conforme Figura 7. Neste menu é possível selecionar o tipo de gráfico, dentre diversos, no exemplo, utilizou-se no formato de pizza. É possível também definir um título ao gráfico, suas dimensões, suas fontes, suas cores, dentre outras opções. Figura 7. Configurações de gráficos. Conclusão Nos dias atuais, as organizações estão se desenvolvendo de forma acelerada, aumentando o volume de suas bases de dados. Consequentemente, eles estão agregando valores e conceitos a essas bases de dados. Assim, as tecnologias citadas neste trabalho, Data Warehouse e OLAP, são pertinentes e necessárias para o processamento de grandes volumes de informações, para apoiar as tomadas de decisões nas organizações. Uma ferramenta que engloba estas tecnologias juntamente ao ambiente Web é o projeto Mondrian. Esta ferramenta possui o seu código aberto (open-source) desenvolvido pela Pentaho e é considerada um destaque dentre as demais tecnologias OLAP da mesma categoria (Web). Entretanto, pode-se afirmar que, conforme Fernandes e Kantorski (2008), estas tecnologias ainda não estão amadurecidas nos quesitos de recursos visuais e integração, e ainda podemos identificar a necessidade de persistência das consultas geradas. Para uma melhor compreensão da potencialidade desta ferramenta, foi apresentado um exemplo típico de uma vídeo-locadora, através de modelagem relacional e dimensional, mostrando as principais funcionalidades oferecidas pela ferramenta. Referências BARBIERI, Carlos. Business Intelligence: modelagem e tecnologia. Rio de Janeiro: Axcel Books, 2001. BERSON, A., Data Warehousing, Data Mining & OLAP. McGraw-Hill, USA, 1997. BRITO, Maiquel de. Proposta de um Data Warehouse de informações acadêmicas. Novo Hamburgo: 2004. Projeto de Diplomação (Bacharelado em Ciência da Computação) - Instituto de Ciências Exatas e Tecnológicas, Centro Universitário Feevale, Novo Hamburgo. FELBER, Edmilson J. W. Proposta de uma Ferramenta OLAP em um Data Mart Comercial: Uma Aplicação Prática na Indústria Calçadista, Novo Hamburgo RS, Centro Universitário Feevale, 2005. FERNANDES, Mikael S. KANTORSKI, Gustavo Z. Uma Ferramenta WEB para apoio à Decisão em Ambiente Hospitalar - http://portal.ufsm.br/neuro, 3ª Conferência Ibérica de Sistemas e Tecnologias da Informação. Escuela Superior de Ingeniería Informática – ESESI. Universidade de Vigo, Espanha, 2008. FORTULAN, Marcos Roberto; GONÇALVES, Eduardo Vila Filho. Uma proposta de aplicação de Business Intelligence no chão-de-fábrica. São Carlos, SP, 2005 (Disponível em: www.scielo.br/pdf/gp/v12n1/a06v12n1.pdf. Acesso em: Setembro de 2007). HARRISON, Thomas H. Intranet Data Warehouse. Tradução: Daniel Vieira. São Paulo: Berkeley Brasil, 1998. HOKAMA, Daniele Del Bianco et al. A modelagem de dados no ambiente Data Warehouse. São Paulo, SP. 121 p. Projeto de Diplomação (Bacharelado em Sistemas de Informação) – Faculdade de Computação e Informática, Universidade Presbiteriana Mackenzie, 2004. (Disponível em: meusite.mackenzie.com.br/rogerio/tgi/2004ModelagemDW.pdf. Acesso em: Setembro de 2007). KIMBALL, Ralph; et al. The Data Warehousing Lifecycle Toolkit: expert methods for designing, developing, and deploying data warehouses. New York: John Wiley & Sons, 1998. KIMBALL, Ralph; ROSS, Margy. The Data Warehouse Toolkit: The complete guide to dimensional modeling. 2. ed. USA: Wiley, 2002. NAVATHE, S. e ELMASRI, R.. Fundamentals of Database Systems. Addison Wesley, 3th ed., 2000. THOMSEN, Erik. OLAP: construindo sistemas de informações multidimensionais. 2 ed. Rio de Janeiro: Campus, 2002.