FACULDADE CATÓLICA DE ADMINISTRAÇÃO E ECONOMIA CENTRO DE DESENVOLVIMENTO EMPRESARIAL CURSO DE TECNOLOGIA DA INFORMAÇÃO E COMUNICAÇÃO PROJETO DE CURSO PROPOSTA DE UM ROTEIRO PARA PROJETAR UM DATA WAREHOUSE CURITIBA FEVEREIRO DE 2000 CLAUCIA MARQUES COSTA FABIANO AUGUSTO PEREZ LIMA FERNANDO ARAÚJO FIGUEIREDO HENRIQUE SALATINO MIORELLI MARCOS VIEIRA DE SOUZA PROPOSTA DE UM ROTEIRO PARA PROJETAR UM DATA WAREHOUSE Monografia apresentada à disciplina Projeto de Curso para obtenção do título de Especialista no Curso de Pós-Graduação em Tecnologia da Informação e Comunicação no Centro de Desenvolvimento Empresarial da Faculdade Católica de Administração e Economia. Orientador: Prof. Luís Pedro Zambon. CURITIBA FEVEREIRO DE 2000 AGRADECIMENTOS Ao professor e orientador Luís Pedro Zambon, que durante os nossos estudos, nos direcionou à qualidade fazendo críticas e sugestões, dando-nos apoio no trabalho, bem como pelos conhecimentos que nos foram transmitidos. Agradecimentos especiais à nossa equipe de desenvolvimento deste projeto, tanto pelo interesse comum em atingir o sucesso quanto pela grande amizade e companheirismo que fortaleceu-se durante este trabalho. ii RESUMO O data warehouse, literalmente , é um “armazém de dados” . É uma base de dados carregada de forma incremental em um período de tempo. O data warehouse organiza e armazena os dados necessários para processamento informatizado e analítico sobre perspectivas históricas ao longo do tempo, tendo como principal objetivo transformar o dado em informação. É uma arquitetura que utiliza banco de dados desenvolvido para análise e tomada de decisões em bases sumarizadas e também detalhadas, com o intuito de contemplar os segmentos da empresa ou organização. O data warehouse pode revolucionar os negócios da empresa. Ao ser bem elaborado e implementado, e caso seja cuidadosamente direcionado para a chamada “inteligência de negócio”, ele pode tornar-se uma vantagem competitiva. Essa ferramenta está fazendo surgir novos conceitos de gestão da informação , tipos de consultas e análises dos negócios. Os principais conceitos que norteiam essa tecnologia serão abordados e analisados como pré-requisitos que, direta ou indiretamente, são necessários para o desenvolvimento do projeto. O enfoque principal do trabalho é reunir grande parte da fundamentação teórica referente ao assunto data warehouse , organizando essas informações através de um roteiro que especifica as etapas necessárias no desenvolvimento do projeto. Um outro item importante é amenizar o grau de dificuldade encontrado por profissionais da Tecnologia da Informação quando iniciam um projeto de data warehouse, bem como prover o conhecimento mínimo necessário àqueles profissionais que não têm referência alguma sobre esse assunto. Apresentaremos o que é importante entender e considerar para alcançar o sucesso do projeto, através de etapas que auxiliem o desenvolvimento do mesmo e exemplos de cenários reais para a sua utilização, onde a tecnologia de data warehouse pode suprir as necessidades de informação da empresa ou organização. iii SUMÁRIO LISTA DE TABELAS .................................................................................................viii LISTA DE FIGURAS .................................................................................................viii LISTA DE SIGLAS ...................................................................................................... x MÉTODO DE TRABALHO ........................................................................................ xv PLANO DE TRABALHO ........................................................................................... xvi 1. FUNDAMENTOS TEÓRICOS ................................................................................ 1 1.1 CONCEITOS ........................................................................................................ 1 1.1.1 Dado x Informação ............................................................................................ 1 1.1.2. Data Warehouse (Armazém de Dados)............................................................ 1 1.1.3. Data Mart (Mercado de Dados) ........................................................................ 3 1.1.4. Engenharia da Informação ............................................................................... 4 1.1.5. Sistemas de Suporte à Decisão (DSS-Decision Support Systems) ................. 5 1.1.6. Inteligência Do Negócio (Business Intelligence)............................................... 5 1.1.7. Modelagem De Dados ...................................................................................... 6 1.1.8. Banco De Dados Relacional............................................................................. 8 1.1.8.1. Tabelas.......................................................................................................... 8 1.1.9. Banco De Dados Multidimensional ................................................................... 9 1.1.10. Análise Multidimensional ............................................................................... 9 1.1.11. OLTP (Online Transaction Processing) ........................................................ 10 1.1.12. OLAP (Online Analytical Processing) ........................................................... 10 1.1.12.1. ROLAP (Relacional OLAP) ........................................................................ 12 1.1.12.2. MOLAP (Multidimensional OLAP) ............................................................. 13 1.1.12.3. HOLAP (Híbrido OLAP) ............................................................................. 13 1.1.12.4. WOLAP (Web OLAP) ................................................................................ 13 1.1.13. Operações Olap ........................................................................................... 13 iv 1.1.14. Modelagem Dimensional Dos Dados ........................................................... 14 1.1.14.1. Fatos ......................................................................................................... 15 1.1.14.2. Dimensões De Um Cubo ........................................................................... 16 1.1.14.3. Agregações ............................................................................................... 16 1.1.14.4. Técnica star schema (esquema estrela).................................................... 17 1.1.14.5. Técnica snow flake (floco de neve) .......................................................... 18 1.1.15. Metadados.................................................................................................... 18 1.1.16. Ferramenta CASE (Computer Aided Software Engineering) ........................ 20 1.1.17. SQL (Structured Query Language) ............................................................... 21 1.1.17.1. Stored procedure (sp)................................................................................ 22 1.1.18. Indexação ..................................................................................................... 23 1.2. ASPECTOS ESTRATÉGICOS PARA A CONSTRUÇÃO DE UM DATA WAREHOUSE ........................................................................................................... 24 1.2.1. Planejamento ................................................................................................. 24 1.2.2. Necessidades Das Empresas ........................................................................ 25 1.2.3. Hierarquia Clássica Da Informação Na Empresa ........................................... 28 1.2.4. Motivação Da Empresa No Mercado .............................................................. 29 1.2.5. Necessidades e Benefícios Para o Usuário ................................................... 30 1.2.6. Perfil Do Usuário Na Empresa Que Utiliza O Data Warehouse ..................... 31 1.2.7. Análise Do Ambiente Legado ......................................................................... 34 1.2.8. Equipe De Desenvolvedores .......................................................................... 36 1.2.9. Aspectos Da Implementação Física (Rolap/Molap) ........................................ 38 1.2.10. Performance ................................................................................................. 40 1.2.11. Segurança .................................................................................................... 40 2. DESENVOLVIMENTO.......................................................................................... 41 2.1. FATORES CRÍTICOS DE SUCESSO ............................................................... 41 2.2. DEFINIÇÃO DA TÉCNICA DE DESENVOLVIMENTO DE SISTEMAS A SER ..... UTILIZADA ................................................................................................................ 42 v 2.3. VISUALIZAR AS NECESSIDADES DO USUÁRIO ........................................... 43 2.4. NOVA VISÃO DA INFORMAÇÃO PARA A TOMADA DE DECISÕES ............. 44 2.5. ANÁLISE DO NEGÓCIO A SER MODELADO .................................................. 45 2.6. ANÁLISE DO AMBIENTE LEGADO .................................................................. 47 2.7. MODELAGEM DIMENSIONAL DOS DADOS ................................................... 49 2.7.1. Dimensões ..................................................................................................... 50 2.7.2. Fatos .............................................................................................................. 50 2.7.3. Exemplo de uma análise dimensional. ........................................................... 50 2.7.4. Agregações .................................................................................................... 53 2.7.5. Metadados...................................................................................................... 54 2.7.6. Resumo das etapas para a modelagem dimensional. .................................... 54 2.8. ASPECTOS DA IMPLEMENTAÇÃO FÍSICA ..................................................... 55 2.8.1. Levantamento de volumes de dados .............................................................. 55 2.8.2. Periodicidade de Carga .................................................................................. 56 2.8.3. Tempo de Armazenagem dos Dados ............................................................. 57 2.8.4. Controle de Backup’s ..................................................................................... 57 2.8.5. Análise de Performance ................................................................................. 58 2.8.6. Segurança ...................................................................................................... 59 2.9. ASPECTOS DA VISUALIZAÇÃO DAS INFORMAÇÕES .................................. 60 2.9.1. Queries Simples ............................................................................................. 60 2.9.2. Stored Procedures (sp) .................................................................................. 61 2.9.3. Ferramentas OLAP......................................................................................... 61 2.9.4. Aplicativos de Consulta .................................................................................. 65 2.10. ESTUDOS DE CASOS REAIS (NECESSIDADES DO NEGÓCIO E MODELAGEM DIMENSIONAL). ............................................................................... 66 2.10.1. TAP – Termo de Acordo de Parcelamento ................................................... 67 2.10.2. Arrecadação Estadual de ICMS do Paraná .................................................. 69 2.10.3. CONPREVI................................................................................................... 71 vi CONCLUSÃO............................................................................................................ 73 ANEXOS ................................................................................................................... 76 ALGUNS FORNECEDORES DE FERRAMENTAS OLAP ATUAIS .......................... 76 SUGESTÃO DE UMA TABELA DIMENSÃO TEMPO DETALHADA ......................... 77 FIGURAS .................................................................................................................. 78 REFERÊNCIAS BIBLIOGRÁFICAS .......................................................................... 80 vii LISTA DE TABELAS 1. EXEMPLO DE GERENCIAMENTO DE AGREGAÇÕES ...................................56 2. EXEMPLO DE STAR SCHEMA PARA TERMO DE ACORDO DE PARCELAMENTO ................................................................................................................67 3. EXEMPLO DE STAR SCHEMA PARA ARRECADAÇÃO ESTADUAL DE ICMS.....................................................................................................................68 4. DEFINIÇÃO DE AGREGAÇÃO NA TABELA FATOS ARRECADAÇÃO..............69 5. EXEMPLO DE STAR SCHEMA CONPREVI........................................................71 6. FORNECEDORES DE FERRAMENTAS OLAP ATUAIS.....................................75 7. SUGESTÃO DE UMA TABELA DIMENSÃO TEMPO DETALHADA....................76 LISTA DE FIGURAS 1. CUBO PARA MODELAGEM DIMENSIONAL DOS DADOS COM TRÊS DIMENSÕES....................................................................................................................49 2. EXEMPLO DA TÉCNICA STAR SCHEMA...........................................................52 3. AGREGAÇÃO COM DUAS DIMENSÕES............................................................53 4. VISUALIZAÇÃO DAS DIMENSÕES E FATOS ATRAVÉS DA FERRAMENTA OLAP BUSINESS OBJECTS................................................................................62 5. SOLICITAÇÃO DAS INFORMAÇÕES DAS DIMENSÕES E FATOS ATRAVÉS DE COMANDOS DRAG AND DROP....................................................................63 6. HIERARQUIA IMPLEMENTADA EM UM BANCO DE DADOS MULTIDIMENSIONAL............................................................................................... .....................64 7. EXEMPLO DE UM CUBO DIMENSONAL............................................................77 8. EXEMPLO DE UMA ESTRUTURA STAR SCHEMA............................................77 viii 9. EXEMPLO DE UMA ESTRUTURA SNOW FLAKE..............................................78 10. EXEMPLO DE UM MODELO DE DADOS (MER)................................................78 ix LISTA DE SIGLAS ANSI - American National Standards Institute API - Aplication Program Interface CASE - Computer Aided Software Engenering CELEPAR - Companhia de Informática do Paraná CONPREVI - Conselho de Previdência dos Serventuários do Estado do Paraná DATA MARTS - Mercados de Dados DCL - Linguagem de controle de dados DDL - Linguagem de definição de dados DER - Diagrama Entidade Relacionamento DM - Dimensional Modeling DML - Linguagem de manipulação de dados DSS - Decision Support Systems DSS - Sistema de Apoio à Decisão DW - Data Warehouse DWA - Administrador de Data Warehouse EIS - Sistema de Informações Executivas ER - Entity Relation ERP - Enterprise Resource Planning FIPS - Federal Information Processing Standards HOLAP - Híbrido On Line Analytical Processing IB - Business Intelligence ICMS - Imposto sobre Circulação de Mercadorias e Serviços IMS - Information Management System IS - Sistemas de Informações ISO - International Organization for Standardization MER - Modelo Entidade Relacionamento x MOLAP - Multidimensional On Line Analytical Processing NIST - National Institute of Standards and Techonology ODS - Operational Data Store OLAP - On Line Analytical Processing OLTP - On Line Transaction Processing RDBMS - Relational Data Base Management System ROLAP - Relacional On Line Analytical Processing RPC - Remote Procedure Call SDLC - Ciclo de Vida de Desenvolvimento de Sistemas Clássico SEFA/PR - Secretaria da Fazenda do Estado do Paraná SGBD - Sistema de Gerenciamento de Banco de Dados SGBDR - Sistema Gerenciador de Banco de Dados Relacional SQL - Structured Query Language SQL/MM - Structured Query Language Multimídia TAP - Termo de Acordo de Parcelamento VSAM - Virtual Storage Access Method WOLAP - Web On Line Analytical Processing xi INTRODUÇÃO 1. Problema Hoje constata-se freqüentemente nas Empresas que as informações estão desorganizadas, pouco integradas e de difícil acesso pelos usuários quando os mesmos necessitam analisá-las para tomar decisões. São freqüentes as perguntas feitas pelos executivos das empresas com relação às informações: “Nós temos montanhas de dados nesta empresa mas não temos acesso aos mesmos”. “Nós queremos cruzar informações de todas as maneiras possíveis”. “Apenas me mostre o que é importante”. Estas perguntas poderão ser respondidas mais rapidamente se a empresa possui um data warehouse consistente e integrado porém, não é uma tarefa simples o desenvolvimento de um projeto desse nível. Para tanto, as premissas abaixo devem ser observadas: De que maneira agilizar o processo de tomada de decisão na Empresa utilizando a Tecnologia da Informação? De que forma o data warehouse realmente possibilita agilizar o processo de tomada de decisão na Empresa? Quais etapas um profissional da Tecnologia da Informação deve seguir para desenvolver um projeto de data warehouse? 2. Importância e Justificativa Atualmente, a informação é o principal patrimônio de uma empresa ou organização e a mesma é utilizada no processo de tomada de decisões importantes e estratégicas. Portanto, a informação deve ser tratada como fator primordial com relação à competitividade do mercado. No entanto, muitas empresas necessitam integrar seus dados de forma a visualizar todo o escopo operacional da empresa xii para que análises possam ser efetuadas de uma forma rápida, confiável e que o usuário possa solicitar suas consultas às bases de dados sem necessitar de ajuda do analista de informática. A integração destas bases de dados é um problema complexo quando se visualizam várias fontes de informação distribuídas na empresa em um mesmo ambiente computacional ou em ambientes distintos. O conceito de data warehouse surge com a finalidade de organizar a integração das informações e disponibilizá-las através de várias dimensões de consulta, permitindo que todos os dados da Empresa possam estar disponíveis em uma única base para consulta e auxílio à tomada de decisão. O crescimento atual do conceito de data warehouse ocasionou muitas fundamentações teóricas e, até certo ponto, dificultou a organização das etapas necessárias desde o início do projeto até sua implementação física. Essa necessidade que muitos analistas têm em visualizar um roteiro para o desenvolvimento de data warehouse nos impulsionou em desenvolvermos este trabalho, reunindo no mesmo os principais aspectos que , obrigatoriamente, devem ser considerados no projeto. A importância da aplicação de um roteiro para desenvolvimento de um projeto de data warehouse baseia-se, fundamentalmente, em planejar as etapas necessárias. O roteiro estrutura o que deve ser feito, apresenta uma seqüência lógica das etapas e enfatiza a importância e necessidade de análise de cada fase do desenvolvimento do projeto. 3. Objetivo Geral Baseado em fundamentação teórica, desenvolver, para os profissionais de Tecnologia da Informação, um roteiro suscinto e claro de como projetar um data warehouse e aplicação deste roteiro em cenários reais de utilização. 4. Objetivos Específicos xiii 4.1) Elaborar fundamentação teórica para suportar o assunto: prover conhecimentos teóricos, técnicos e conceituais básicos referentes ao desenvolvimento de projetos de construção de data warehouse; aplicar os referidos conhecimentos aos profissionais da área de Tecnologia da Informação; demonstrar as fases necessárias que deverão ser consideradas no desenvolvimento do referido projeto até a parte de projeto do modelo de dados abrangendo: aspectos estratégicos, conceitos gerais, levantamento das informações, modelagem dimensional dos dados, planejamento do data warehouse, aspectos da implementação física, consultas, além de outros assuntos também importantes que são conseqüência dos itens principais e muitas vezes, pré-requisitos de outros. 4.2) Identificar situações reais de necessidade de análise da informação através de alguns estudos de caso que serão apresentados, utilizando as etapas principais do roteiro para a construção de data warehouse para atender estas necessidades, demonstrando principalmente a parte de negócio do cliente e projeto do modelo de dados dimensional. xiv MÉTODO DE TRABALHO O método utilizado é a pesquisa bibliográfica. As fontes bibliográficas utilizadas foram Livros de Leitura Corrente, por constituírem conhecimentos técnicos e Publicações Periódicas que proporcionam informações recentes e atualizadas. Outra classificação de pesquisa bibliográfica utilizada é consultas à sites da Internet. Os autores William H. Inmon e Ralph Kimball nortearam a fundamentação teórica como referências bibliográficas principais. Para o detalhamento do conhecimento adquirido através da pesquisa bibliográfica, também foi utilizado o método de estudo de caso, que permite o estudo profundo e exaustivo de um ou mais objetos de análise. A técnica utilizada para o desenvolvimento de sistemas de informação com o enfoque em data warehouse, foi a da Engenharia da Informação em virtude de o foco principal desta técnica ser os dados, armazenados e mantidos por computadores e as informações deles extraídas. Também foi inserida no contexto do trabalho a experiência profissional dos colaboradores que compõem a equipe. xv PLANO DE TRABALHO Basicamente o trabalho está dividido em três partes distintas: 1ª Parte: Embasamento teórico através de pesquisa bibliográfica que dará o suporte necessário à elaboração do roteiro para a construção de data warehouse, visualizando conceitos e considerações necessárias para o desenvolvimento do projeto. 2ª Parte: Início do desenvolvimento do trabalho onde será proposto o conteúdo do roteiro para projetar um data warehouse, aspectos considerados, a quem se destina, a elaboração do mesmo com todas as etapas necessárias e o porquê definimos o roteiro na ordem especificada. 3ª Parte: Continuação do desenvolvimento do trabalho voltado à aplicação do roteiro desenvolvido no que se refere às necessidades do cliente para a análise do negócio e modelagem dimensional em estudos de casos reais, referentes ao ambiente profissional dos integrantes desse projeto. Primeiramente iremos organizar os assuntos em ordem seqüencial, podendo os mesmos serem trabalhados separadamente e referenciados ao longo do trabalho. Muitos dos itens que serão contemplados, ao menos em uma referência resumida, são importantes no desenvolvimento do projeto para o pleno entendimento do assunto. Nosso plano contempla o desenvolvimento de um roteiro com as etapas principais iniciando pelos conceitos básicos da tecnologia de data warehouse até exemplos práticos de utilização. Nestes exemplos práticos serão apresentados problemas na obtenção de informações para a tomada de decisão pelos usuários e como a construção de modelos de dados utilizando a tecnologia de data warehouse pode solucionar estes problemas. xvi 1 1. FUNDAMENTOS TEÓRICOS 1.1 CONCEITOS 1.1.1 Dado x Informação Dado é um registro de fatos, conceitos ou instruções para a comunicação, recuperação e processamento por meios automáticos e apresentação na forma de informação compreensível para os seres humanos. Informação são dados que os seres humanos assimilam e validam para resolver problemas ou tomar decisões [13]. Dados são os componentes básicos, a partir dos quais a informação é criada. Informação são dados inseridos em um contexto. Contexto é a situação que está sendo analisada. A partir da informação vem o conhecimento, que permite tomar decisões adequadas, trazendo vantagem competitiva [18]. 1.1.2. Data Warehouse (Armazém de Dados) Data warehouse é uma coleção de dados para suportar o gerenciamento das necessidades de decisão, orientado a um assunto, integrado, variante no tempo e não volátil [14]. Orientado por assunto: A primeira característica de um data warehouse é que ele está orientado ao redor do principal assunto da organização como, por exemplo, clientes, vendas, produtos e atividades. O alinhamento ao redor das áreas de assunto afetam o desenho e implementação do dado criado no data warehouse. A área de assunto mais influente é a parte mais importante da estrutura chave [14]. Integrado: A melhor essência do ambiente de warehouse é que dados contidos dentro dos limites do warehouse estão integrados. A integração mostra-se em muitas diferentes maneiras: na consistência e padronização de nomes, na forma consistente das variáveis, na estrutura consistente de códigos, nos atributos físicos consistente dos dados, e assim por diante [14]. 2 Não Volátil: Atualizações - inclusão exclusão, e alteração - são feitas regularmente no ambiente operacional de um registro básico. Mas a manipulação de dados básicos que ocorre no data warehouse é mais simples. Tem somente três espécies de operações que ocorrem no data warehouse: a carga inicial do dado, o acesso ao dado e atualização temporal (semanal, mensal) conforme necessidades do negócio [14]. Histórico: Todo dado no data warehouse é exato em algum momento do tempo e em conseqüência desta informação, o dado criado no warehouse é dito ser "histórico". Os valores históricos dos dados no data warehouse são mostrados em várias maneiras. O modo mais simples é que o dado no data warehouse representa os dados sobre um horizonte de tempo distante - de 5 até 10 anos [14]. Uma coleção de bancos de dados integrados e orientados a assuntos projetados para apoiar as funções de um Sistema de Apoio de Decisão (Decision Support Systems); onde cada unidade de dados é importante em um momento no tempo. O data warehouse contém dados atômicos e muitas vezes sumarizados [13]. Um data warehouse não é um produto ou mesmo um conjunto de produtos, mas processos suportados por diversas tecnologias: ele coleta dados das várias aplicações operacionais; integra-os em um modelo lógico, por áreas de negócio; armazena as informações de tal maneira que possam ser recuperadas por usuários pouco técnicos; e entrega essas informações aos tomadores de decisão através de ferramentas de fácil utilização, como geradores de relatórios e de consulta [29]. A idéia de data warehouse é integrar os dados de uma organização em uma estrutura única provendo qualidade e melhor acesso aos dados [6]. Base de dados analítica que permite análises e simulações, para suporte às decisões estratégicas de médio e longo prazo. Geralmente é armazenada em ambiente específico, ou seja, separado do ambiente operacional. Características: [25]. 3 Dados históricos: para possibilitar análises combinatórias e simulações. Armazenam grandes quantidades de dados, podendo chegar a dezenas de anos [25]. Sumário estático: decorrente de atualização pontual, as sumarizações são calculadas e fixadas no momento da carga [25]. Dados Corporativos: estrutura de dados das diversas áreas da empresa (Suprimentos, Manufatura, Vendas, Finanças, Recursos Humanos, etc.), permitindo as mais diversas comparações [25]. Data warehouse é uma arquitetura de banco de dados com informações de caráter gerencial voltado para: suporte à decisão, planejamento estratégico, análise do comportamento de clientes e análise da performance de vendas. Funciona como um provedor de informações de uma empresa ou instituição, pois concentra todas as informações estratégicas e históricas, extraídas dos sistemas transacionais relativos aos clientes e produtos. A proposta principal do data warehouse é a democratização das informações para a área de negócios, através do fácil acesso aos dados para análise [1]. 1.1.3. Data Mart (Mercado de Dados) Um data mart não é uma evolução de um data warehouse, mas sim parte das estratégias deste. Um data mart é um subconjunto de dados de um data warehouse, desenhado para suportar uma necessidade de negócio ou uma unidade organizacional específica. A estratégia correta é fazer o data mart incorporar-se à arquitetura de data warehouse, sem perder a visão de conjunto. Essa visão de conjunto é decorrência de um bom projeto de data warehouse [24]. O data mart é similar ao data warehouse com algumas exceções: [13] O data mart opera um conjunto menor de dados [13]. O data mart visualiza o dados com um enfoque departamental enquanto o data warehouse visualiza os dados com um enfoque corporativo [13]. 4 O data mart visualiza os dados em uma base muito mais previsível enquanto o data warehouse freqüentemente faz exploração na base de dados [13]. Características comuns ao data warehouse e data mart são: informação estrutural, fonte de informação e outras informações encontradas ao longo do ambiente [13]. Obedece os mesmos conceitos do data warehouse, diferenciando-se somente no conteúdo, ou seja, os dados são organizados por assunto, permitindo maior independência, agilidade e ganhos de performance [25]. 1.1.4. Engenharia da Informação É um conjunto integrado de técnicas formais pelas quais modelos de negócios, modelos de dados e modelos de processos são construídos a partir de uma base de conhecimento compreensível utilizada para desenvolver e manter sistemas de informação [33]. O foco principal da Engenharia da Informação são os dados, armazenados e mantidos por computadores e as informações deles extraídas [33]. Premissas básicas: [33] Os dados situam-se no centro dos sistemas de informação [33]. Os dados são estáveis, os procedimentos não [33]. Princípios: [33] A análise rigorosa de dados deve ser feita antes do projeto lógico de processos [33]. A análise de dados deve ser feita de forma independente dos arquivos físicos e da distribuição dos dados [33]. Os dados devem ser planejados para toda a empresa [33]. 5 O acesso a base de dados deve ser possibilitado aos usuários finais através de ferramentas que ele não tenha a necessidade de programar [33]. Construir modelos de dados de processos com a visão integral da empresa possibilitando que os sistemas a serem desenvolvidos, mesmo que independentes, integrem-se e ajustem-se à estrutura do modelo corporativo [33]. 1.1.5. Sistemas de Suporte à Decisão (DSS-Decision Support Systems) Um sistema utilizado para gerenciar decisões. Usualmente envolve a análise de muitos dados. Como regra, não envolve a atualização dos dados, somente efetua consultas. Sistemas projetados para os executivos que caracterizam-se pela análise de tendências [13]. Enquanto o resultado de um data warehouse é a possibilidade de auxiliar no suporte a decisões, um DSS pode existir independentemente da arquitetura de data warehouse. Além disso, um DSS é uma solução isolada e que não inclui necessariamente uma arquitetura, uma infra-estrutura e nem mesmo ferramentas de administração ou auditoria, ao contrário de um data warehouse, que deve incluir todos esses componentes [24]. 1.1.6. Inteligência Do Negócio (Business Intelligence) É um processo de coleta, transformação, análise e distribuição de dados para melhorar a decisão de negócios; sua infra-estrutura tecnológica é composta de data warehouses ou data marts, ferramentas OLAP, EIS, data mining, consultas e relatórios e software de visualização dos dados; os bancos de dados são a infraestrutura básica de qualquer sistema de business intelligence. São neles que vão estar armazenados os dados que serão transformados em informações competitivas [17]. 6 1.1.7. Modelagem De Dados Modelagem de dados é uma atividade na qual procuramos construir uma estrutura de dados que reflita a realidade e ao mesmo tempo seja facilmente manuseada por computadores para que os sistemas construídos a partir dela sejam estáveis e sofram o mínimo de manutenção possível. A modelagem é dividida em três etapas ou níveis: Conceitual, Lógico e Físico [27]. Modelo Conceitual: É desenvolvido sem levar em consideração nenhum aspecto de representação lógica ou física dos dados, seja software, hardware ou visão particular de um usuário. É baseado em como funciona o negócio do cliente e ignora detalhes de implementação e performance [27]. Modelo Lógico: É desenvolvido levando-se em consideração a arquitetura de dados suportada pelo sistema gerenciador de banco de dados. Exemplo: Em Rede, Hierárquico, Relacional. Há a definição das tabelas, colunas e chaves. A meta é a redução de redundâncias para simplificação do gerenciamento e aumento da integridade [27]. Modelo Físico : O mapeamento físico leva em consideração características de hardware e software (SGBD) e estimativas de espaço e tempo (performance) [27]. O ponto de começo para o plano de migração é um modelo de dados. O modelo de dados representa as necessidades de informação da corporação. Representa o que a corporação necessita, não necessariamente o que a corporação atualmente possui. É construído sem consideração de tecnologia [12]. O Modelo Entidade-Relacionamento (MER) será a técnica de modelagem de dados utilizada para criação do Modelo Conceitual de Dados [8]. Esta técnica foi criada por Peter Pin-Shan Chen em 1975 e é usada para descrever o mundo real com alto grau de abstração, em termos de entidades (objetos de interesse), relacionamentos (forma como as entidades estão interligadas) e atributos (características das entidades e relacionamentos) [8]. 7 O MER é composto por uma representação gráfica, o chamado Diagrama Entidade-Relacionamento (DER) e um conjunto de informações escritas sobre cada conceito representado (entidades, relacionamentos e atributos) [8]. Apesar de ter surgido junto com a Análise Estruturada, o MER, por sua flexibilidade, foi evoluindo com o aparecimento de novas abordagens de desenvolvimento de sistemas (Engenharia da Informação, Análise Essencial, Análise Orientada a Objetos), e é considerado, ainda hoje, uma linguagem universal para a representação da realidade dos negócios de uma empresa [8]. Modelo de Dados : Estruturas de dados lógicas, providas por um sistema gerenciador de banco de dados utilizado para a representação dos dados [13]. Entidade: Armazena os dados de uma pessoa, lugar ou objeto de interesse em um alto nível de abstração [13]. Todo o objeto, coisa que tem alguma existência no negócio, na vida real. Não são tabelas, são implantadas como tabelas [21]. Relacionamentos: As ações ou fatos que integram as entidades no mundo real [21]. Modelo Entidade-Relacionamento (MER): Um modelo de dados que define entidades, o relacionamento entre entidades e os atributos que tem valores para descreverem as propriedades das entidades e/ou relacionamentos [13]. Um exemplo de um modelo MER está demonstrado na Figura 4 do Anexo. Diagrama de Entidade-Relacionamento (DER): Um modelo de dados de alto nível que demonstra, esquematicamente, todas as entidades dentro do âmbito de integração e a relação direta entre essas entidades [13]. Chave : Um item de dado ou combinação de itens de dados utilizados para identificar ou localizar uma instância de um registro ou algum agrupamento de dados similares [13]. Chave Primária : Um atributo único utilizado para identificar um registro em um banco de dados [13]. 8 Uma ou mais colunas que unicamente identificam uma linha da tabela. Chaves primárias devem ser únicas e não nulas [5]. Chave Estrangeira: Uma ou mais colunas que referenciadas à chave primária de outra tabela [5]. Chave Comum: Uma ou mais colunas que são freqüentemente utilizadas para relacionar tabelas [5]. Chaves não são o mesmo que índices. Uma chave pode ou não ser um índice [5]. Chaves são definidas no projeto lógico enquanto índices são definidos no projeto físico para garantir performance e outras razões [5]. 1.1.8. Banco De Dados Relacional Um Sistema Gerenciador de Banco de Dados Relacional (SGBDR) mantém tabelas que são compostas por colunas que descrevem linhas de dados [13]. Uma base ou banco de dados é uma coleção de dados relacionados e armazenados ( freqüentemente com redundância controlada e limitada) de acordo com um esquema. Um banco de dados pode servir única ou múltiplas aplicações [13]. Os atuais Sistemas Gerenciadores de Bancos de Dados Relacionais oferecem uma solução poderosa e eficiente para o processamento de grandes volumes de transações de uma grande variedade de aplicações comerciais e científicas [7]. 1.1.8.1. Tabelas Tabela é uma relação que consiste em um conjunto de colunas com um título e um conjunto de linhas. Coluna é uma tabela vertical onde são selecionados valores do mesmo domínio. Uma linha é composta de uma ou mais colunas [13]. 9 Em um banco de dados relacional, todos os dados estão em tabelas. Uma tabela mantém dados relacionados com uma classe particular de objetos (uma entidade). Tabelas são compostas por linhas e colunas. Existe exatamente um conteúdo de dado em cada coluna de cada linha [28]. 1.1.9. Banco De Dados Multidimensional Um sistema gerenciador de banco de dados especificamente projetado para suportar várias dimensões de dados em uma arquitetura três camadas. Tipicamente não suportam SQL (Structured Query Language) diretamente e, atualmente, suportam um volume de dados significantemente menor que um Sistema Gerenciador De Banco De Dados Relacional. Entretanto, esse tipo de gerenciador de banco de dados pode ser uma excelente opção para uma implementação departamental se a funcionalidade que ele provê atende à demanda do usuário referente às informações do negócio [13]. “As pessoas falam da necessidade de separar a captura dos dados do acesso aos dados, em termos de bases separadas, movendo informações entre si, ao menos desde o início dos anos 80”, testemunha o especialista da IDC em data warehouse Henry Morris. O que mudou foi a maturação de várias tecnologias-chave: agora não é mais só o banco de dado relacional; mas SGBDR multidimensional, com features especiais para aumento de performance, como indexação bitmap, e novos esquemas para organizar e representar os dados, visando não somente a inserção rápida de novas transações, mas análise e consultas complexas [2]. 1.1.10. Análise Multidimensional Análise multidimensional é a habilidade em manipular dados que foram agregados em várias caregorias ou dimensões. A proposta da análise multidimensional é auxiliar o usuário a sintetizar a informação da empresa através de uma visão comparativa, personalizada e projetada para a análise de dados históricos [13]. 10 Algumas ferramentas de análise multidimensional possuem a habilidade em acessar dados em um sistema gerenciador de banco de dados relacional; outras requerem um esquema estrela (“star schema”) para facilitar o processamento multidimensional [13]. A visão multidimensional é muito mais útil para os analistas do que a tradicional visão tabular utilizada nos sistemas de processamento de transação. Ela é mais natural, fácil e intuitiva, permitindo a visão dos negócios da empresa em diferentes perspectivas e, assim, transformando o analista num explorador da informação [6]. 1.1.11. OLTP (Online Transaction Processing) Processamento de aplicações transacionais [13]. Transações OLTP são extremamente disciplinadas [13]. O ambiente OLTP é previsível e regular em seu tamanho e forma [13]. Transação OLTP consome poucos recursos; pesquisa quantidade reduzida de dados. Como resultado desta disciplina, o tempo de resposta de uma transação é bom (dois a três segundos são o normal) [13]. De maneira geral, um sistema aplicativo está focado na precisão dos processos operacionais [30]. 1.1.12. OLAP (Online Analytical Processing) Processamento Analítico Online é um importante método na arquitetura do data warehouse na qual os dados podem ser transformados em informação. OLAP é uma categoria de tecnologia de software que permite à analistas, gerentes e executivos a obterem perspicácia em dados de uma forma rápida, consistente e com acesso interativo para uma grande variedade de possíveis visões da informação na empresa. Mais suscintamente, OLAP é um conjunto de funcionalidades que tem, como principal objetivo, facilitar a análise multidimensional [13]. 11 OLAP representa um conjunto de tecnologias projetadas para suportar análise e consultas ad hoc (consultas efetuadas pelo usuário de acordo com sua necessidade momentânea) [6]. A característica principal dos sistemas OLAP é permitir uma visão conceitual multidimensional dos dados de uma empresa [6]. A tecnologia OLAP foi definida em 1993 por F. Cood [4]. A criação foi em decorrência da forte necessidade de análises dos dados de forma fácil e flexibilidade, mas ao mesmo tempo, analisando múltiplas visões do negócio em diferentes níveis de detalhes [4]. Os bancos de dados multidimensionais foram a resposta para atender a essas necessidades analíticas. No início dos anos 90 começaram a surgir os primeiros protótipos de bancos de dados multidimensionais. Após alguns anos de aprimoramento da tecnologia, os bancos de dados multidimensionais foram submetidos à análise de CODD e sua equipe em 1993. CODD então definiu 12 regras, padrões, homologou a tecnologia, e batizou os bancos de dados multidimensionais com o nome de OLAP (derivado do termo OLTP - que foi atribuído aos Bancos de Dados Relacionais no início da década de 1970, quando CODD definiu os padrões para modelo Relacional) [4]. A partir da homologação de CODD, a tecnologia começou a ser utilizada e conhecida em 1994, e os fornecedores da tecnologia criaram produtos com cada vez mais capacidade de armazenamento, bem como vários outros recursos para facilitar as análises [4]. Começou então a utilização de Banco de Dados Multidimensionais como Data Marts entre 1995/96 e a tecnologia evoluiu a passos largos[4]. As bases OLAP podem ser acessadas/manipuladas através de aplicações personalizadas ou ainda: [4]. via Internet/Intranet [4]. via aplicações pré-definidas para se fazer análises diversas [4]. 12 A tecnologia OLAP hoje é largamente utilizada na elaboração de Data Marts, com desdobramentos para ROLAP/modelagem NxN no Relacional) e HOLAP (Híbrido OLAP que combina OLAP com ROLAP) [4]. A utilização de OLAP híbrido, o H-OLAP só é necessária quando se trata de bases muito grandes, de grande ocorrência em Varejo, Banco e Seguradoras [4]. Histórico de lançamento de alguns produtos OLAP [17]: Em 1970, Express foi a primeira ferramenta multidimensional usada para aplicações de marketing. Foi adquirida pela Oracle em 1995 [17]; Em 1982, Comshare System W foi a primeira ferramenta OLAP usada para aplicações financeiras [17]; Em 1984, Metaphor foi o primeiro ROLAP. Foi adquirido pela IBM em 1991 [17]; Em 1985, Pilot Command Center foi o primeiro EIS Cliente/Servidor estilo OLAP [17]; Em 1992, Arbor Essbase primeiro OLAP Cliente/Servidor que usa a planilha eletrônica com front-end [17]; Em 1994, MicroStrategy DSS Agent primeiro ROLAP com um engine multidimensional [17]; Em 1995, Holos 4.0 primeiro HOLAP [17]; Em 1996, Business Objects primeira ferramenta que provém ao mesmo tempo relatórios relacionais e multidimensionais de cubos construídos dinamicamente no desktop de dados relacionais [17]; Em 1998 IBM lança o IBM DB2 OLAP [17]; Em 1998 Microsoft lança Microsoft OLAP [17]. 1.1.12.1. ROLAP (Relacional OLAP) Qualquer análise multidimensional efetuada em um sistema gerenciador de banco de dados relacional. A base de um desenho físico ROLAP é, tipicamente, 13 uma combinação de dados apropriadamente normalizados em uma ou mais técnicas star schema [13]. 1.1.12.2. MOLAP (Multidimensional OLAP) Qualquer análise multidimensional efetuada em um sistema gerenciador de banco de dados multidimensional [13]. MOLAP é uma classe de sistemas que permite a execução de análises bastante sofisticadas usando como gerenciador de dados um banco de dados multidimensional [6]. 1.1.12.3. HOLAP (Híbrido OLAP) É um produto de OLAP híbrido que pode prover análise multidimensional simultaneamente de dados armazenados em um banco de dados multidimensional e em um banco de dados relacional [17]. 1.1.12.4. WOLAP (Web OLAP) Representa a migração da tecnologia OLAP para o ambiente da Internet. Tem havido uma grande divulgação sobre o uso de Web browsers para acesso à OLAP, mas ainda são poucos os sites em funcionamento com o uso de OLAP. Segundo alguns institutos de pesquisa o OLAP baseado na Web será a chave para aplicações na Intranet e deverá oferecer um caminho simples e barato no acesso ao data warehouse [17]. 1.1.13. Operações Olap Operações OLAP são as operações de pesquisa e exploração da informação no cubo de dados. São elas: [21]. 14 Slice and Dice: São operações de fatiamento do cubo de dados, permitindo sua visualização em segmentos, assim como a rotação do cubo buscando novas perspectivas de visão de dados [21]. Drill Down e Roll UP: É a capacidade de navegação aprofundando o nível de detalhamento dos dados, ou subindo este nível de detalhe conforme a hierarquia [21]. 1.1.14. Modelagem Dimensional Dos Dados A modelagem dimensional é a técnica utilizada para se ter uma visão multidimensional dos dados. Nessa técnica, os dados são modelados em uma estrutura dimensional conhecida por cubo. As dimensões do cubo representam os componentes dos negócios da empresa, tais como “cliente”, “produto”, “fornecedor” e “tempo”. A célula resultante da intersecção das dimensões é chamada de medida e geralmente representa dados numéricos como “unidades vendidas”, “lucro” e “total de venda” [6]. Além dos componentes dimensão e medida, outro importante aspecto do modelo multidimensional é a consolidação dos dados, uma vez que para a tarefa de análise são mais úteis e significativos à agregação (ou sumarização) dos valores indicativos dos negócios [6]. O próprio desenho do data warehouse leva a novas perspectivas de projeto. Não há necessidade de modelagem na terceira forma normal. Na prática, redundância de dados é bem-vinda nesse ambiente. Para muitos projetistas, é uma maneira diferente de modelar dados [30]. Modelagem Dimensional é um nome novo para uma técnica antiga usada para criar bancos de dados simples e compreensíveis. Quando um banco de dados pode ser visualizado como um “cubo” contendo até três, quatro, cinco ou mais dimensões, as pessoas conseguem visualizar este esse cubo em qualquer de suas dimensões [19]. 15 Outro nome para modelo dimensional é star join schema. Os projetistas de bancos de dados têm utilizado esse nome já há algum tempo para descrever modelos dimensionais porque o diagrama é semelhante a uma estrela com uma tabela no centro rodeada por tabelas auxiliares exibidas em um padrão radial [19]. Dimensional Modeling (DM) é uma técnica lógica de projeto muito utilizada nos data warehouses, diferente e oposta ao entity-relation modeling (ER). O DM é a única técnica viável para os bancos de dados projetados para suportar as consultas de usuário final de um data warehouse. O ER é muito útil na captura de transações e nas fases de administração de dados da construção de um data warehouse, mas deve ser evitado para o usuário final [3]. O DM é uma técnica lógica de projeto que busca apresentar os dados dentro de uma estrutura padrão e intuitiva, permitindo ainda o acesso de alto desempenho. Ele é inerentemente dimensional e adota a disciplina com algumas restrições importantes. Todo modelo dimensional é composto por uma tabela com uma chave de várias partes, denominada tabela de fatos e um conjunto de tabelas menores chamadas tabelas de dimensão. Cada tabela de dimensão possui uma chave de uma única parte, que corresponde exatamente a um dos componentes da chave de várias partes da tabela de fatos. Essa característica de estrutura de “estrela” também é chamada de star join. Este termo remonta os primeiros dias dos bancos de dados relacionais [3]. 1.1.14.1. Fatos São as medidas básicas de informações do negócio. Representa as quantidades e valores dos dados que podem ser agregados sem perderem seu significado. A tabela fato ou fact table armazena as medidas básicas objetos de análise do negócio. O dado na tabela fato é composto de elementos de dados organizados em um nível estruturado. Os valores destes elementos de dados podem 16 ser sumarizados em uma variedade de formas sem por em risco a integridade dos dados [13]. A chave de uma tabela fato é a composição das chaves das tabelas dimensão. O resultado é que existirá uma linha na tabela fato para cada combinação única dos domínios de todas as chaves de todas as tabelas dimensão. Características: [13] Quantifica o dado que foi descrito nas tabelas dimensão [13]. Chave composta de combinação única de valores das chaves das dimensões [13]. Os valores da tabela fato são somente aditivos [13]. Sempre contém uma data [13]. 1.1.14.2. Dimensões De Um Cubo Descrevem ou caracterizam os dados relacionados e organizados na tabela fatos. As tabelas dimensão circundam a tabela fato. Representam as possíveis formas de visualizar e consultar os dados. Características: [13] Chave deve ser única [13]. Permitir gerenciar número de níveis de agregações [13]. Dimensão não precisa ser uma hierarquia, pode ser uma combinação de atributos [13]. (Exemplo demonstrado na Figura 1 do Anexo) [13]. 1.1.14.3. Agregações Agregações são sumarizações de dados com o objetivo principal de melhorar a performance de acesso. Geralmente armazenadas em tabelas fatos separadas [13]. 17 Abstração de dados que, aplicada à modelagem conceitual de dados, permite que objetos venham a formar um novo objeto de mais alto nível. Foi proposto por J. M. Smith em 1977 [27]. Agregações fornecem níveis múltiplos de detalhes do fato [18]. Os resultados das queries (ou seus valores intermediários) são précalculados, o que melhora muito a performance [18]. As agregações podem ser acumuladas através de agrupamentos diferentes, freqüentemente através de várias dimensões ou combinação de dimensões [18]. O único aspecto mais importante de desígn de um data warehouse é o assunto da granularidade. Granularidade se refere ao nível de detalhe contido as unidades de dados no data warehouse [12]. Quanto mais detalhamento há, mais baixo será o nível de granularidade. Quanto menos detalhamento há, mais alto o nível de granularidade [13]. A razão por que granularidade é o assunto de desígn principal no ambiente de data warehouse é que afeta profundamente o volume de dados residente no data warehouse e ao mesmo tempo afeta o tipo de questão que pode ser respondida [12]. 1.1.14.4. Técnica star schema (esquema estrela) A técnica star schema pré-processa os dados em uma tabela fatos central com tabelas de dimensão relacionadas. As chaves únicas de cada tabela dimensão compõem uma chave combinação na tabela fatos. Os benefícios desta técnica são que os dados estão pré-processados em dimensões conhecidas e caracterizadas em um conjunto específico de necessidades de informação do negócio, tornando o acesso pelo usuário mais eficiente (Exemplo demonstrado na Figura 2 do Anexo) [13]. Este modelo é composto por uma tabela com chave de múltiplas partes (dimensões) chamadas de tabela fato e de um conjunto de tabelas pequenas 18 chamadas de dimensões, que formam as pontas das estrela. Cada tabela de dimensão tem uma chave primária simples que corresponde a um dos componentes da chave múltipla da tabela fato. A princípio parece um modelo muito simples de ser construído, porém a determinação das dimensões e do fato tem necessidade de excelente entendimento conceitual para que se obtenha sucesso em uma implantação de data warehouse [21]. 1.1.14.5. Técnica snow flake (floco de neve) A técnica snow flake é uma variante do star schema com as tabelas dimensões normalizadas (Exemplo demonstrado na Figura 3 do Anexo) [21]. As hierarquias tem significado e importância dentro da análise multidimensional. No modelo star, elas estão todas em vista da desnormalização das entidades, um dos conceitos básicos de modelagem multidimensional. Um esquema alternativo é o esquema snow flake, onde normalizando as hierarquias encadeamos relacionamentos e entidades a partir das dimensões. A utilização de esquema snow flake depende da necessidade de otimizações no projeto físico ou nas queries realizadas. Lembramos que sempre um data warehouse tem como objetivo sistemas de apoio a decisão, que necessitam das mais variadas consultas [21]. Um esquema snow flake em nosso entendimento é somente uma alternativa de construção do modelo de dados multidimensional .Todo modelo snow flake pode rapidamente ser transformado em um star, bastando para isto relacionarmos as hierarquias diretamente às tabelas fato, desnormalizando-as completamente [21]. 1.1.15. Metadados São dados sobre dados. Descrição dos dados: estrutura, conteúdo, chaves, índices, detalhes, etc. Sem os metadados, o data warehouse e seus componentes 19 associados seriam meramente componentes não integrados trabalhando independentemente e com objetivos distintos [13]. Para alcançar harmonia e unidade entre os diferentes componentes do ambiente projetado, deve haver uma técnica bem definida e rigorosa para desenvolver os metadados. Existem metadados para: [13] O ambiente operacional [13]. A camada de integração e transformação [13]. Porções detalhadas do data warehouse [13]. Depósitos de dados operacionais [13]. Data mart’s [13]. Ambiente de desenvolvimento [13]. Modelo do negócio da Empresa [13]. Para atingir um grau de segurança na confiabilidade dos dados, o primeiro passo é catalogar os metadados com RDBMS (Relational Data Base Management System), plataforma, fontes de dados, tabelas, campos, índices, chaves primárias, chaves estrangeiras, stored procedures, parâmetros, programas – ou seja, o metadados contém todas as informações que explicam o funcionamento da base de dados [22]. Com os metadados catalogados, as estruturas de dados de todo o ambiente estarão sempre sendo verificadas. Portanto, a cada mudança que ocorra nas bases de dados transacionais, o administrador estará sempre sendo alertado, o que aumenta sua confiança na informação que estará sendo disponibilizada aos tomadores de decisão [22]. Importante utilizar metadados para descrever o modelo dos dados e para auxiliar na construção das consultas. Dessa maneira, um analista pode executar suas análises utilizando seus próprios termos [6]. É o dado sobre um determinado dado. Por exemplo: os metadados poderiam indicar se uma base de dados existe na corporação, quais atributos formam uma 20 determinada tabela, características físicas de um determinado atributo, tais como: tamanho e formato, onde ele é utilizado, etc. As informações do metadado podem ser sobre os dados do legado, dados armazenados em data warehouse ou informações pertinentes a um catálogo. Estas informações são armazenadas em um repositório que tem o objetivo de documentar e administrar estes metadados e fornecer informações para reuso destes dados, melhorando a qualidade e produtividade da empresa [16]. Metadados é a mais importante regra no data warehouse e, é usado em vários aspectos: [14] É direcionado para ajudar na localização analítica do conteúdo no data warehouse para o DSS [14]. É um guia para mapear os dados, como o dado é transformado do ambiente operacional para o ambiente do data warehouse [14]. É um guia para o algoritmo usado para a sumarização entre dado corrente detalhado e o dado “lightly” sumarizado e o dado “highly” sumarizado, etc [14]. 1.1.16. Ferramenta CASE (Computer Aided Software Engineering) São ferramentas individuais que auxiliam o desenvolvedor de software ou gerente de projeto durante uma ou mais fases do desenvolvimento de software (ou manutenção) [10]. Uma combinação de ferramentas de software e metodologias de desenvolvimento estruturado [10]. CASE pode auxiliar diretamente no projeto e suporte do desenvolvimento de sistemas e também provê gerenciamento da informação, documentação e controle de como desenvolver um projeto [10]. Alguns benefícios do CASE: [10] Reduz custos, especialmente manutenção [10]. 21 Melhora a qualidade de software [10]. Acelera o processo de desenvolvimento [10]. Incrementa a produtividade [10]. Tornam práticas as técnicas estruturadas [10]. 1.1.17. SQL (Structured Query Language) É uma linguagem padrão de acesso aos dados em bancos de dados relacionais independente de fornecedor. É dividida em três partes: linguagem de definição de dados (DDL), linguagem de manipulação de dados (DML) e linguagem de controle de dados (DCL). O padrão internacional é estabelecido pela ISO (International Organization for Standardization). A primeira normatização do SQL foi feita pela ANSI (American National Standards Institute) em 1986. O SQL/86 foi um subconjunto das implementações de SQL da IBM. A primeira norma da ISO saiu em 1989. A norma internacional vigente é a versão de 1992 (ISO/IEC 9075:1992(E), também conhecida como SQL92 ou SQL2). Ela se subdivide em 3 partes: Entry Level, Intermediate Level e Full Level. A maioria dos sistemas gerenciadores de banco de dados só implementa o Entry Level completamente. Já existem trabalhos para o SQL/3 e SQL/MM (Multimídia) que devem implementar alguns conceitos da tecnologia de orientação à objeto. Um dos órgãos de certificação de conformidade dos produtos com a norma é o NIST (National Institute of Standards and Technology) que publica o FIPS (Federal Information Processing Standards) que contém uma lista de sistemas gerenciadores de banco de dados que tem conformidade com o padrão e em qual plataforma [27]. Uma linguagem que habilita o usuário a interagir diretamente com o sistema gerenciador de banco de dados para recuperar e/ou modificar dados gerenciados pelo mesmo [13]. Características: [28] É uma forma padrão de especificar conjuntos de dados [28]. 22 É uma forma de recuperar e manipular dados em um banco de dados relacional [28]. É utilizada para todas as funções de bancos de dados, incluindo administração, criação de esquemas e recuperação [28]. Pode ser utilizada na forma de “SQL embutida” em um programa de aplicativo [28]. 1.1.17.1. Stored procedure (sp) Stored Procedure é uma técnica de projeto que permite que um conjunto de instruções SQL sejam compiladas e armazenadas no gerenciador de banco de dados. São rotinas chamadas por aplicações cliente de modo semelhante a RPC (Remote Procedure Call) e são armazenadas e executadas no servidor. A stored procedure fornece uma significante melhora de performance sobre o SQL utilizado diretamente na aplicação [27]. Uma stored procedure é uma coleção de comandos SQL armazenados no banco de dados e que pode ser executada pelo nome. Características: [5] Podem aceitar e retornar parâmetros e podem chamar outras procedures [5]. Processam mais rapidamente que os mesmos comandos SQL executados interativamente [5]. Reduzem o tráfego de dados na rede [5]. A primeira vez que uma stored procedure é executada, um plano de acesso é produzido no banco de dados [5]. Garantem a consistência do banco de dados [5]. Provêem um nível extra de segurança [5]. Sugerem o desenvolvimento de uma aplicação modular [5]. Reduz erro de operação [5]. Exemplo de sintaxe padrão de criação de uma stored procedure: [5] 23 create proc nome da procedure as comandos_SQL Exemplo de sintaxe padrão de execução de uma stored procedure: [5] exec nome da procedure 1.1.18. Indexação É o conceito de índices de acesso. São estruturas de indexação destinadas a otimizar o acesso aos dados. É importante lembrar que em bancos de dados relacionais, uma chave nem sempre tem um índice associado a ela. Chaves são definições de nível lógico e os índices são estruturas físicas para melhorar a performance no acesso aos dados. Há dois tipos de índices: clustered index e nonclustered index. No clustered index os dados de uma tabela são ordenados fisicamente pelo índice. Ele tem um nível a menos de acesso em relação ao nonclustered. O índice nonclustered armazena os valores das chaves e ponteiros para as páginas de dados onde as linhas estão armazenadas [27]. Índice : Porção da estrutura de armazenamento de dados mantida para prover acesso eficiente a um registro quando seu conteúdo chave é conhecido [13]. Índice Invertido : Uma estrutura de índice organizada por meio de uma chave não única que aumenta a velocidade de pesquisa aos dados [13]. Índices: [5] São utilizados para melhorar a performance. (se nenhum índice é definido a uma tabela, a tabela inteira deverá ser pesquisada para satisfazer uma condição de consulta) [5]. Provêem um mecanismo para garantir a unicidade [5]. Clustered: O dado é classificado na ordem do índice. Somente pode existir um único índice clusterizado por tabela (geralmente é a chave primária). Determina a ordem física do dado na tabela [5]. 24 NonClustered: O dado não é classificado na ordem da chave Podem existir vários índices associados à tabela (geralmente são as chaves estrangeiras) [5]. 1.2. ASPECTOS ESTRATÉGICOS PARA A CONSTRUÇÃO DE UM DATA WAREHOUSE 1.2.1. Planejamento Um problema sério em projetos de data warehouse é um planejamento defeituoso. O fato de todos concordarem que o projeto de um data warehouse não se baseia em requisitos bem delimitados não significa que os projetistas não devam planejar minuciosamente cada atividade do processo. E mais, tal planejamento deve levar em consideração o fato de se tratar de um data warehousing mais que um data warehouse: um processo sem fim para todos os efeitos práticos. Deve ser considerado o longo prazo geralmente envolvido. Não se estará projetando uma aplicação operacional, mas sim um repositório de informações gerenciais [9]. A operação do negócio tende a uma estabilidade grande. Um aplicativo voltado para gerir essas atividades tende, portanto, a ser bastante estável, pelo menos quando comparado às necessidades de informação para a tomada de decisão. É aqui que a competitividade do mercado se faz sentir. As perguntas que os executivos precisam ver respondidas hoje para tomarem suas decisões podem ser substancialmente as de amanhã. Desse modo, um planejamento consistente deve prever liberações parciais de dados, em curtos intervalos, de maneira que o usuário cedo possa interagir com o ambiente, facilitando essa mudança inevitável de requisitos. Os planejadores devem identificar muito cedo os alvos do projeto e seus benefícios [9]. Recomenda-se que o data warehouse não comece muito ambiciosamente. O primeiro projeto não deve levar mais que nove meses para estar operacional e deve atingir basicamente as áreas de negócio mais importantes e que tragam 25 retorno direto e tangível. Com o tempo, ele será refinado e aumentado em sua abrangência [29]. Um projeto de data warehouse deve ser conduzido com enfoque diferente de um projeto de aplicações tradicional. A primeira etapa é identificar os objetivos da organização, sob a óptica de seus executivos. A empresa pretende crescer dentro de seu segmento de negócio? Ou pretende expandir seu market-share ? Depois, são identificados os processos de negócio diretamente relacionados com esses objetivos. A seguir, definem-se as informações que são necessárias para suportar esses processos de decisão. Onde essas informações serão obtidas? As especificações técnicas aparecem no final, quando então se desenham as alternativas tecnológicas para a sua total implementação [30]. 1.2.2. Necessidades Das Empresas No princípio haviam sistemas simples de automação. Então vieram sistemas de banco de dados e sistemas on-line. Em um tempo muito pequeno o computador tinha achado seu modo de incorporar-se ao cotidiano das empresas. De quase nenhum computador nos anos cinqüenta para milhões de computadores de todo tipo e tamanho nos anos oitenta, o mundo da tecnologia explodiu além de qualquer previsão a uma taxa de crescimento que parecia ser impossível acreditar [13]. Os sistemas de computação iniciais foram projetados para processar as transações diárias da corporação. Decisões imediatas eram o enfoque destes sistemas pioneiros. Com o advento dos primeiros sistemas, veio um subproduto de dados. Estes dados refletiam as atividades que estavam acontecendo e cresceram à medida que o tempo passava e de como o negócio era administrado [13]. Logo, a quantidade de trabalho exigiu manter as aplicações ao ponto em que 95% do trabalho era dedicado à manutenção de programas. Ao mesmo tempo em que o fardo de manutenção estava crescendo, os usuários finais estavam ficando frustrados com a inabilidade dos sistemas de informação da organização em 26 responder às necessidades de informação. Caso após caso, os usuários finais sabiam que os dados de que eles precisavam estavam disponíveis mas difíceis de serem obtidos. Ainda, em cada caso, o departamento de sistemas de informação dava uma ou outra justificativa do porquê de os dados não poderem ser acessados. Usuários finais sentiam-se abandonados e frustrados [13]. Então, o data warehouse foi criado. O data warehouse transferiu os dados do ambiente transacional, armazenando-os e organizado-os de forma que o usuário final poderia obter a informação pela qual tanto ansiava. Afinal, os dados estavam disponíveis em uma base para que o usuário processasse suas próprias consultas [13]. O data warehouse representou uma troca fundamental na concepção de sistemas de informação e introduziu alguns conceitos novos importantes: [13] Dados devem ser integrados através da empresa [13]. Dados sumarizados tem um grande valor para a organização [13]. Dados históricos são a chave para compreender os dados ao longo do tempo [13]. Metadados representam um papel muito importante na infra-estrutura do data warehouse [13]. Muito importante manter a precisão dos dados históricos com o passar do tempo [13]. Além de resolver alguns problemas muito importantes para a corporação, a criação do data warehouse aliviou o fardo do programador de aplicação em tentar transformar o ambiente de sistemas legado em um sistema para a tomada de decisão. As solicitações dos usuários e a manutenção das aplicações, pela primeira vez, tornaram-se gerenciáveis [13]. O objetivo básico do data warehouse deve ser adicionar valor ao negócio. À medida que as regras do negócio são incorporadas às aplicações, exige-se rapidez cada vez maior nas respostas. O ambiente de negócios é crescentemente dinâmico. 27 Responder com rapidez ao como, quando e quanto passa a ser decisivo para a empresa sobreviver e crescer nesse cenário [30]. As organizações hoje em dia estão enfrentando enormes pressões para prever informações de melhor qualidade para tomada de decisões, em formatos de fácil acesso e manipulação. Em poucas palavras, as empresas precisam se tornar mais ágeis em sua capacidade de utilizar as enormes quantidades de dados no esforço de proporcionar melhor suporte ao cliente [32]. Um data warehouse reconhece o valor estratégico do gerenciamento intencional do bem corporativo de dados. A ênfase no data warehouse reflete o reconhecimento de que a exploração de dados é o caminho para vantagem competitiva, novas oportunidades de negócios, e melhoria no serviço ao cliente. Ela também reconhece que os sistemas tradicionais de gerenciamento de base de dados estão geralmente assoberbados pelo enorme volume de dados que lhes são confiados. Como resultado, os sistemas de extração de informações que trabalham com a totalidade das bases de dados geralmente funcionam mal [32]. O data warehouse e a arquitetura associada a ele providencia o objetivo para lutar contra os mais variados desafios confrontados nos sistemas de informações gerenciais de hoje [14]. Em outras palavras, o data warehouse permite o gerenciamento para considerar resultados no contexto. Sem a armação do data warehouse e sua arquitetura associada é uma tarefa quase impossível formar sentido para os diversos resultados obtidos [14]. Os sistemas de informações (IS) gerenciáveis encontram a noção da arquitetura indispensável no movimento da corporação dentro de um mundo de processamento de informação efetiva. Em particular, o IS gerenciável usa a arquitetura como um guia para o gerenciamento, como o seguinte: [14] uso da armazenagem e aquisição [14] tecnologia adequada com processamento necessário [14] 28 gerenciamento de orçamento [14] mudança de tecnologia e plataforma [14] informações derivadas do ambiente de produção [14] determinação das responsabilidades organizacionais [14] desenvolvimento de relatórios da arquitetura [14] definição da interface entre as diferentes unidades organizacionais [14] gerenciamento de gráficos organizacionais como a responsabilidade no processamento da informação concernida [14] gerenciamento do impacto na arquitetura no desenvolvimento do processo [14]. Afinal, é antigo o enfoque por trás da idéias do depósito, galpão ou armazém de dados extraídos dos muitos sistemas de produção – geralmente “legacy systems” – das companhias: transformar o dado cru em informação, para obtenção de vantagem competitiva. [2] Data warehouse é entendido como uma “enabling technology”; uma tecnologia-meio, que favorece a tomada de decisões ao separar sistemas de informações para decisão dos dados de produção. Essa divisão dos dados permite, dizem os entusiastas, melhor alocação e administração de recursos; enquanto que a proliferação de ferramentas sofisticadas de acesso possibilita combinar várias fontes de dados de estruturas distintas e concretiza, assim, antigas promessas de gerência participativa e menor concentração de poder decisório [2]. 1.2.3. Hierarquia Clássica Da Informação Na Empresa Pirâmide com três níveis: [33] 1º Nível (Topo da Pirâmide) é o Nível Estratégico: EIS-Sistema de Informações Executivas [33]. 2º Nível (Meio da Pirâmide) é o Nível Tático: DSS-Sistema de Suporte a Decisão [33]. 29 3º Nível (Base da Pirâmide) é o Nível Operacional: Sistemas Operacionais [33]. O patrocínio efetivo da alta administração da empresa é crítico. E esse patrocínio não pode se revelar apenas na hora de assinar o cheque. A empresa precisa fornecer os analistas do negócio, aqueles técnicos que conhecem profundamente a informação e o negócio da empresa [9]. Drivers para data warehousing: [31] Operacional [31] Substituir relatórios feitos no mainframe [31]. Dar ao usuário o acesso direto aos dados [31]. Atualizar o sistema [31]. Tático [31] Explorar novos recursos e funcionalidades de análise de dados [31]. Fornecer melhores informações para o processo de decisão gerencial [31]. Melhorar o conhecimento da empresa sobre seus dados [31]. Estratégico [31]. - - Competitividade [31]. Time-to-market [31]. Qualidade de produtos e serviços [31]. Mercado global (pressionando preço e qualidade) [31]. Quebra de paradigmas [31]. Privatização [31]. Novos mercados [31]. 1.2.4. Motivação Da Empresa No Mercado O verdadeiro impulso para a utilização da tecnologia de data warehouse começou quando as pessoas perceberam que as informações disponíveis no data 30 warehouse poderiam ser utilizadas para a obtenção de vantagem competitiva. Esta informação apoiou a habilidade da corporação em atrair e manter parte do mercado, reduzir despesas e aumentar as vendas. Estes atributos elevaram o data warehouse para a vanguarda de sistemas de informação, tornando-o promissor tanto para o profissional técnico da informação quanto para o profissional da área de negócios [13]. Estamos vivendo o início da era da informação. Nela os grandes desafios são a integração dos processos operacionais entre as empresas e o gerenciamento do negócio através da análise dos fatos para identificação de oportunidades [25]. 1.2.5. Necessidades e Benefícios Para o Usuário A necessidade principal do usuário é a transformação dos dados em informações [13]. Embora o seu uso ainda seja incipiente, alguns resultados positivos parecem demonstrar que realmente o data warehouse produz um alto retorno sobre o investimento. A grande vantagem de um data warehouse é permitir a tomada de decisões baseadas em fatos. Na verdade, ele busca disponibilizar à organização o grande volume de dados que foram e estão sendo armazenados em bases de dados operacionais, espalhadas por toda a empresa [29]. O principal resultado de um data warehouse é, indiscutivelmente, a facilidade de os gestores da empresa poderem tomar decisões rápidas, baseados em informações mais consistentes [29]. Levantamentos realizados junto a usuários em âmbito mundial e local atestam o sucesso dos projetos já implantados, nos quais os primeiros resultados apontaram para: aumento do tempo dos tomadores de decisão (decision makers) para a análise e tomada de decisão; eliminação de tarefas operacionais como pesquisa e identificação dos dados necessários ao processo decisório; melhor confiabilidade das informações devido à implantação de um elo integrador dos 31 dados transacionais; racionalização do fluxo de informações da empresa; padronização dos conceitos de negócio; democratização das informações sobre o desempenho do negócio [22]. 1.2.6. Perfil Do Usuário Na Empresa Que Utiliza O Data Warehouse O usuário, o formulador de perguntas, é o ponto mais crítico nos projetos de data warehouse. Idealmente, os usuários devem ser membros da equipe de projeto, desde o seu nascimento [9]. Os usuários finais do data warehouse tem alguns papéis específicos a cumprir. Estes geralmente dividem-se em duas categorias: Suporte aos Papéis e Tipos de Usuário [13]. Suporte aos Papéis: [13] Cada interação do data warehouse deve ter um “Patrocinador Executivo” da área de negócios da comunidade usuária que serão os primeiros beneficiários da funcionalidade destas interações. O Patrocinador Executivo é especialmente importante para o data warehouse. Ele define o escopo e requisitos do negócio e analisa as necessidades de informação da organização para a tomada de decisão. Existem, também, dois importantes papéis adicionais na comunidade de usuários finais: Especialista do Assunto e Técnico de Apoio ao Usuário [13]. O Especialista do Assunto é quem facilita a comunicação entre os usuários finais e a equipe técnica do data warehouse. Provê as informações para definir o escopo de uma interação do data warehouse. Participa no projeto e revisão da aquisição e capacidade de acesso aos dados. Assiste o treinamento de outros usuários em seus grupos funcionais. Atua como suporte a outros usuários em suas áreas [13]. O Técnico de Apoio ao Usuário provê apoio técnico global para os usuários do seu departamento, grupo, linha de negócio, etc.; entende o ambiente técnico de 32 uma área específica do data warehouse, presta apoio como administrador de banco de dados local e apoio técnico aos usuários locais [13]. Tipos de Usuário: [13] São categorizados como: Usuários de Aplicações Pré-definidas, Usuários com Acesso Limitado e Usuários com Acesso Ilimitado [13]. Os Usuários de Aplicações Pré-definidas não possuem um nível alto de experiência técnica mas estão, tipicamente, em um nível relativamente alto dentro da estrutura de administração de uma organização. Eles também são, freqüentemente, assistentes administrativos. Acessam o data warehouse através de consultas prédefinidas que atendem aos seus requisitos de negócio [13]. Os Usuários com Acesso Limitado são a maioria dos usuários analíticos. Requerem caminhos pré-definidos de acesso ao data warehouse como, por exemplo, uma ferramenta OLAP para facilitar o acesso e tem conhecimento em drillup/down. Tipicamente oferecem apoio aos pedidos de informação da administração superior [13]. Os Usuários com Acesso Ilimitado são os “exploradores”, altamente habilitados tecnicamente no acesso aos dados, precisam de ferramentas poderosas, procedurais e não ferramentas simples e limitadas. Freqüentemente desenvolvem aplicações para uso por outros tipos de usuários e, tipicamente, são um número pequeno de usuários. Oferecem apoio às exigências organizacionais para relatórios complexos [13]. Pode parecer desnecessário identificar os papéis chaves que os usuários executam no desenvolvimento e gerenciamento de um data warehouse. Entretanto, muitas organizações não têm reconhecido a importância que os usuários exercem durante esse desenvolvimento e, conseqüentemente, perderam a visão da importância em conduzir a evolução do data warehouse através das necessidades de negócio do usuário. O resultado é normalmente um enfoque tecnológico ao data warehouse e não um enfoque do usuário, resultando em um ambiente de informação 33 que não atinge as necessidades da organização para a análise e suporte à decisão [13]. De patrocinador da funcionalidade de negócio para um executivo que precisa monitorar as tendências em uma métrica importante do negócio; de perito de assunto para um usuário técnico altamente qualificado para a obtenção ocasional da informação, usuários têm papéis distintos e importantes a executar na evolução do data warehouse de forma que podem continuar satisfazendo suas exigências de informação sobre o negócio. Usuários também tem uma responsabilidade significativa como “bons cidadãos corporativos” para trabalhar com a equipe do data warehouse para assegurar-se de que o data warehouse continuará agregando valor à organização através de uma importante ferramenta tática e estratégica de análise e acesso à informação [13]. Um ingrediente essencial para o sucesso do ambiente do data warehouse é o fator humano. O melhor projeto e a melhor arquitetura no mundo não são bem usadas se não existirem pessoas capazes e preparadas para colocarem os planos em ação [14]. O ambiente do data warehouse é administrado por uma unidade organizacional chamada grupo de arquitetura de dados. O grupo de arquitetura de dados algumas vezes faz parte da administração de dados. [14]. Em outros casos, o grupo de arquitetura de dados permanece sozinho. O grupo de arquitetura de dados está próximo do grupo de sistemas ou do grupo de aplicações [14]. O grupo de arquitetura de dados possui interface com o topo gerencial, gerência do IS, da organização do IS e com o usuário final. O grupo de arquitetura de dados ultimamente é responsável para o sucesso ou falha do data warehouse [14]. 34 1.2.7. Análise Do Ambiente Legado Situada entre o ambiente operacional, o data warehouse e o depósito de dados operacionais está a interface de integração e transformação dos dados. Esta interface é o local onde o dados não integrados do ambiente operacional são integrados e enviados ao data warehouse [13]. As tecnologias de sistemas gerenciadores de bancos de dados que normalmente alojam as aplicações do legado mais antigas, usualmente requerem que os dados sejam acessados na forma de um registro por vez. Esta abordagem requer lógica de programa que é familiarizada com a maneira com que os dados são armazenados. Em muitos casos, o dados provenientes de muitas áreas de assunto diferentes são amarrados e controlados pelas aplicações. A execução da integração e transformação dos dados torna-se um problema complexo decorrente do grande volume de dados armazenados no ambiente de aplicações do legado. A integração e transformação dos dados a serem carregados no data warehouse são um dos aspectos mais importantes e devem ser cuidadosamente gerenciados [13]. Como todo o data warehouse depende dos dados disponíveis nas bases de dados operacionais da empresa, o primeiro passo para sua construção é o mapeamento dessas bases, sua limpeza e sincronização com as demais camadas. Para isso, é extremamente necessário conciliar em um único ambiente a administração de todas as bases de dados operacionais que são fonte de alimentação para o data warehouse com a administração do data warehouse em si [22]. Criar um data warehouse não é uma simples questão de escolha de banco de dados ou ferramentas, mas envolve planejamento e modelagem (aspectos que garantem a qualidade dos dados, fator crítico para o sucesso do projeto), escolha de ferramentas e atualização e refinamento contínuos. É, de fato, uma arquitetura completa e que se compõe dos seguintes elementos principais: bases de dados operacionais, que são as fontes primárias das informações; processos de extração e 35 conversão de dados; bancos de dados específicos para data warehouse; recursos de administração e ferramentas de inteligência de negócios, que facilitam o acesso, manipulação e análise dos dados contidos no data warehouse [24]. Um armazém de dados é composto de três áreas funcionais distintas, cada uma das quais deve ser customizada para satisfazer as necessidades do negócio. O primeiro componente é a aquisição de dados, podendo ser de sistemas legados ou de outras fontes quaisquer. Lá o dado é identificado, copiado, formatado e preparado para ser carregado no armazém. O segundo componente do armazém é o espaço de armazenamento e o terceiro é a área de acesso aos dados [26]. A busca pelas informações espalhadas pelas diversas aplicações e plataformas tecnológicas, pode ser um problema muito sério. Mesmo que as informações que vão preencher o data warehouse venham apenas de sistemas legados baseados em mainframes, o que nem sempre ocorre, a diversidade de tecnologias envolvidas é grande. Uma recente pesquisa mostrou que apenas 25% das informações desses sistemas estão em bancos de dados relacionais, como o DB2. A grande maioria está espalhada por bancos de dados não relacionais, arquivos VSAM, etc [29]. Um armazém de dados se propõe compatibilizar um número grande de sistemas desintegrados oriundos do legado a uma coleção igualmente diversa de tipos de estações de trabalho de usuário final. Os ambientes existentes normalmente se compõem de um conjunto de hardware sortido, software e sistemas operacionais incompatíveis e com características únicas a cada organização [26]. A maioria dos “armazéns de armazenamento” está sendo administrada por bancos de dados relacionais sob plataformas Unix. De acordo com o Meta Group Inc., Oracle, Sybase Inc., IBM Corp. e Informix controlam 65% do mercado de “armazéns de armazenamento”; os vendedores de outros bancos de dados relacionais e bancos de dados especializados são secundários nesse contexto [26]. 36 Uma questão relevante será como integrar as diversas fontes de dados legadas ou não, arquivos VSAM, DB2, CA-IDMS, CA-DATACOM, OpenIngres, Oracle, Informix, Sybase e mais uma infinidade de outras fontes. A resposta: utilizando gateways que tenham as características de transparência e confiabilidade para sustentar o ambiente de data warehouse [20]. O assunto mais óbvio relativo à interface de integração e transformação refere-se às tecnologias utilizadas pelos sistemas transacionais encontradas no ambiente legado (às vezes chamado de ambiente fonte) como, por exemplo, as tecnologias que são, na maioria dos casos antigas, orientadas à transações e complexas: IMS (Information Management System) – um sistema gerenciador de banco de dados hierárquico desenvolvido pela IBM para ambientes mainframe, VSAM (Virtual Storage Access Method) – arquivo indexado desenvolvido pela IBM para ambientes mainframe, IDMS, Adabas, Oracle, Sybase, Informix, Arquivos Seqüenciais, etc [13]. 1.2.8. Equipe De Desenvolvedores O crescimento do data warehouse criou a necessidade de disciplinar o gerenciamento do mesmo que é o papel do administrador do data warehouse (DWA). O DWA é parte administrador de dados, parte administrador de banco de dados, deve posicionar-se um pouco como usuário final, um pouco programador de sistemas e muito de programador e projetista de aplicação [13]. O administrador do data warehouse é um disciplinador organizacional que apareceu com o advento do data warehouse e dos sistemas de apoio à decisão. Ele é o principal responsável para o sucesso contínuo do armazém de dados [13]. O administrador do data warehouse deve conhecer as várias habilidades abaixo descritas: [13] Projetista da Base de Dados: projeta e constrói o data warehouse [13]. 37 Modelador de Dados: integra um novo data warehouse em um já existente [13]. Desenvolvedor : que mantém, nos programas, novas integrações e transformações de dados [13]. Político: solicita e negocia os recursos necessários para a construção do data warehouse [13]. Programador de Sistemas: capacidade de planejamento e refinamento do data warehouse [13]. Usuário final: deve entender as necessidades das áreas de negócio da empresa como, por exemplo, financeira, gerência de vendas, atuarial, engenharia, etc. [13]. Em alguns casos, o administrador do data warehouse não somente deve possuir as habilidades acima mas estar apto a executá-las. Em suma, o administrador do data warehouse é responsável por um ambiente inteiro de suporte à decisão que é o fator crucial para o sucesso da corporação [13]. O Administrador de Data warehouse (DWA) é o responsável pelo data warehouse, envolvendo obter, agendar e coordenar o trabalho entre os recursos humanos, preparando relatórios de situação, orientando revisões de design, garantindo que membros de equipes de trabalho e usuários finais estão sendo efetivamente treinados, e gerenciando outras atividades relacionadas ao Data warehouse como especificado pela gerência da organização [13]. O Administrador de Banco de Dados é essencial na organização da equipe de data warehouse, em número suficiente e dedicados em tempo integral. As diferenças entre os sistemas de informação e operacional da empresa devem ser acompanhadas pelo Administrador de Banco de Dados [13]. O Gerenciador de Metadados deve assegurar que os metadados no Subdiretório de Informações está sincronizado com a produção de recursos, regras de negócio na obtenção de dados, e regras de negócio norteando o acesso dos 38 dados, bem como fontes de conceito de metadados como ferramentas CASE e novas aplicações em desenvolvimento [13]. 1.2.9. Aspectos Da Implementação Física (Rolap/Molap) Quanto à localização dos dados a serem utilizados na análise, atualmente existem duas abordagens: [6] Um banco de dados multidimensional especializado [6]. Um data warehouse implementado com a tecnologia de banco de dados relacional, mas otimizado para a tarefa de análise: Nesse caso, os dados são modelados utilizando um esquema projetado para balancear desempenho e volume de dados. Normalmente é utilizada uma representação desnormalizada da conhecida por esquema estrela [6]. Sistemas OLAP que implementam a primeira abordagem são chamados de MOLAP (Multidimensional OLAP) e aqueles que implementam a segunda são chamados de ROLAP (Relacional OLAP) [6]. Em um banco de dados MOLAP, os dados são mantidos em arranjos e indexados de maneira a prover um ótimo desempenho no acesso a qualquer elemento. O indexamento, a antecipação da maneira como os dados serão acessados e o alto grau de agregação dos dados fazem com que sistemas MOLAP tenham um excelente desempenho. Além de serem rápidos, outra grande vantagem desses sistemas é o rico e complexo conjunto de funções de análise que oferecem [6]. Existem algumas limitações nos sistemas MOLAP. Bancos de dados multidimensionais são sistemas proprietários que não seguem padrões (linguagem, Application Program Interface, etc.) estabelecidos pela indústria de banco de dados. Isso se torna uma desvantagem para tais sistemas, uma vez que a arquitetura não é aberta. A utilização das estruturas dimensionais adotadas também traz algumas desvantagens. Mudanças do modelo dimensional requerem uma reorganização do 39 banco de dados, e a estrutura de cubos não suporta a criação ad hoc de visões multidimensionais. Além dessa falta de flexibilidade, sistemas MOLAP enfrentam problemas quanto à escalabilidade porque um dos recursos para garantir o excelente desempenho é manter os índices dos arranjos na memória e isso acaba limitando banco de dados multidimensionais a 20 ou 30 gigabytes de dados, tornando-se, dessa maneira, mais apropriados para data marts ou organizações com pequenos data warehouses [6]. Sistemas ROLAP fornecem análise multidimensional de dados armazenados em uma base de dados relacional [6]. A principal vantagem de se adotar uma solução ROLAP reside na utilização de uma tecnologia estabelecida, de arquitetura aberta e padronizada como é a relacional, beneficiando-se da diversidade de plataformas, escalabilidade e paralelismo de hardware [6]. Quanto às limitações, podemos citar o pobre conjunto de funções para análise, a inadequação do esquema estrela para atualização dos dados e as soluções proprietárias para metadados que acaba por anular muitas das vantagens da tecnologia relacional [6]. MOLAP ou ROLAP? Qual escolher? Atualmente existe um grande debate sobre essa questão e, se possível, esse debate deve ser deixado para os fornecedores. Para quem utilizará a tecnologia, o mais importante é entender os negócios da empresa para então decidir pela solução que melhor atende o volume de dados e as necessidades de análise da empresa [6]. Provavelmente esse debate não terá um vencedor. Já se percebe que existe uma convergência dessas duas tecnologias. Fornecedores MOLAP têm adicionado funcionalidade ROLAP nos seus produtos e, igualmente, fornecedores ROLAP têm enriquecido a funcionalidade e desempenho de seus servidores [6]. 40 1.2.10. Performance A duração de tempo desde o momento em que um pedido é emitido até o primeiro resultado recebido [13]. A maioria das consultas dos usuários precisam processar rápida e eficientemente. O administrador do data warehouse é responsável pela performance de carga de dados, criação de índices e manutenção de metadados, itens importantes ao analisar a performance [13]. A maioria dos projetos de data warehouse residem em um sistema gerenciador de banco de dados separado do ambiente OLTP, com um processador dedicado, disco e memória. Esta separação é o melhor ambiente porque, certamente, alivia o processamento e proporciona, ao administrador do data warehouse, liberdade para projetar as bases de dados e suporta uma estrutura de acesso específica para um ambiente de data warehouse onde as consultas são variadas [13]. 1.2.11. Segurança Proteção dos dados em um banco de dados que gerencia os acessos com ou sem autorização. Há níveis diferentes de segurança conforme o perfil do usuário [13]. O problema de proteger as informações do data warehouse é normalmente colocado em segundo ou terceiro plano. Temos que saber quem está acessando as informações, de onde e como se está manuseando. Os bancos de dados têm seus esquemas de segurança, porém eles não conseguem resolver todos os problemas. É necessário procurar uma solução que realmente consiga evitar que os intrusos e curiosos consigam tirar proveito dessas informações. Se essa ferramenta for integrada junto com outras soluções de gerenciamento de recursos, será ainda melhor. Uma estrutura por exemplo, que integre em uma única interface todas as disciplinas de gerenciamento, incluindo segurança, backup, redes, distribuição de software e help-desk será uma solução muito próxima do ideal [20]. 41 2. DESENVOLVIMENTO De acordo com o embasamento teórico do nosso trabalho, iniciamos o desenvolvimento das etapas do nosso roteiro. Essas etapas estão em uma ordem seqüencial, algumas delas podem ser realizadas paralelamente a outras ou a ordem pode ser alterada, de acordo com a necessidade; isso será definido pela equipe que está elaborando o projeto. Sugerimos essa seqüência pois facilita o entendimento do objetivo do projeto e descreve etapas interligadas e fundamentais para o sucesso do mesmo. Abaixo apresentaremos o roteiro em uma forma esquemática para prover, ao leitor, uma ampla visualização das etapas do projeto: 1. Fatores críticos de sucesso. 2. Definição da técnica para desenvolvimento de sistemas a ser utilizada. 3. Visualizar as necessidades do usuário. 4. Nova visão da informação para a tomada de decisões. 5. Análise do negócio a ser modelado. 6. Análise do ambiente legado. 7. Modelagem dimensional dos dados. 8. Aspectos da implementação física. 9. Aspectos da visualização das informações. A seguir, iniciaremos o detalhamento de cada uma das etapas acima seqüencializadas. 2.1. FATORES CRÍTICOS DE SUCESSO Primeiramente, é de extrema importância elencar os principais itens que determinarão o sucesso do projeto. Abaixo apresentamos alguns itens importantes: 1. É fundamental planejar o projeto. 2. É importante ter o orçamento aprovado para desenvolver o projeto de acordo com o plano de investimento da empresa. 42 3. É importante que a empresa esteja disposta a modernizar-se para garantir o crescimento e a competitividade. 4. É importante ter o apoio e o empenho dos usuários responsáveis e suas respectivas gerências através de atitudes participativas e cooperativas. 5. É fundamental ressaltar a importância das informações para a empresa e, em especial, o compartilhamento das mesmas, evitando duplicidade de dados e informações proprietárias. 6. É necessário negociar um acordo com a alta administração referente à proposta de implementação do projeto. 7. É importante primeiro analisar as áreas de atuação mais lucrativas da empresa. 8. É importante analisar a contenção de custos. 9. É imprescindível que as informações sejam precisas, consistentes e rápidas de obter. 10. É importante ter a capacidade de adaptação às necessidades de negócio. 11. É necessário apresentar resultados entre as etapas do desenvolvimento do projeto. Após definirmos os fatores críticos de sucesso do projeto, devemos iniciar a análise de qual técnica de desenvolvimento de sistemas mais se integra à construção de um projeto de data warehouse. 2.2. DEFINIÇÃO DA TÉCNICA DE DESENVOLVIMENTO DE SISTEMAS A SER UTILIZADA É de extrema importância utilizar uma técnica para desenvolvimento de sistemas para auxiliar no projeto do data warehouse. Indicamos a técnica da Engenharia da Informação em virtude de os dados serem o enfoque principal desta técnica e em um data warehouse o objetivo principal é a transformação dos dados em informações. 43 Ao utilizar a técnica da Engenharia da Informação, torna-se mais fácil a forma de visualização dos relacionamentos entre os requisitos básicos que estruturam o negócio objeto de análise. Como produto principal desta técnica temos o modelo de entidades e relacionamentos (MER). Um MER é válido e confiável quando consegue responder às perguntas dos processos que serão por ele atendidos. Portanto é um modelo obrigatório em qualquer desenvolvimento de sistemas até porquê é requisito básico para a implementação física das bases de dados. Esta técnica sugere que devemos identificar os objetivos da organização , sob a óptica de seus executivos, por exemplo: “ a empresa pretende crescer dentro do seu segmento de negócio? Devemos identificar os processos de negócio diretamente relacionados a esses objetivos, com base nas prioridades emergentes da empresa sempre associadas com as prioridades reais dos negócios da empresa, por exemplo: clientes, finanças, vendas, produção, etc. Tendo definida e assimilada a técnica de desenvolvimento de sistemas a ser utilizada no projeto, é importante entender quais são as necessidades do usuário, diferenciando-as entre o ambiente analítico e o operacional. 2.3. VISUALIZAR AS NECESSIDADES DO USUÁRIO O usuário é o fator chave para o sucesso do projeto. Sua participação efetiva durante todo o projeto é o requisito mais importante pois ele é quem domina a área a ser analisada e irá dirimir as dúvidas do analista da informação que implementará o projeto. O usuário necessita de um sistema que forneça informações para que decisões sejam tomadas de acordo com a análise destas informações. Um exemplo de decisão estratégica é: analisar os padrões de consumo em um determinado período para decidir a viabilidade ou não de criação de um novo produto. Há a necessidade 44 de entender a diferença entre os sistemas de processamento operacional e o analítico. Sistemas de processamento operacional são sistemas que suportam as operações do dia a dia da empresa. São sistemas de processamento on-line atualizados ao longo do dia. Exemplos: Sistema de Estoque, Sistema Contábil, Folha de Pagamento, etc. As informações refletem o momento atual [15]. Sistemas de processamento analítico disponibilizam informações usadas para analisar um problema ou uma situação. É feito por meio de comparações ou através da análise de padrões ou tendências. As informações refletem um instante específico no tempo. Exemplos: mostrar como uma marca de um produto está sendo vendida em diferentes estados; mostrar como uma marca específica de um produto está sendo vendido desde que foi introduzido nas lojas; comparar as vendas dessa marca de produto em diferentes localidades, etc. [15]. Tendo definidas e assimiladas quais são as necessidades do usuário, é importante entender a mudança de enfoque em um projeto de data warehouse no que se refere às informações para a tomada de decisões. Durante este processo, é fundamental a participação do usuário e o pleno entendimento dele nesse novo processo de análise da informação. 2.4. NOVA VISÃO DA INFORMAÇÃO PARA A TOMADA DE DECISÕES O que buscamos quando estamos modelando sistemas de informação é o entendimento operacional do negócio que está sendo modelado, sem pensar na aplicação em si, sem pensar na tecnologia envolvida, mas com a visão relacional de dados. Quando vamos executar uma modelagem multidimensional, estamos desenhando soluções de gestão de negócios, buscando entender como os executivos e gestores de uma organização avaliam as informações para adoção de estratégias e avaliação de desempenho. A mudança de enfoque de “entendimento operacional do negócio para entendimento da gestão do negócio” concentra e provoca diferença 45 acentuada na forma de se desenvolver um modelo de dados multidimensional. A análise multidimensional requer um modelo de dados que permita que os dados sejam facilmente visualizados através de diversas perspectivas. Mais adiante apresentaremos como aplicar a modelagem dimensional. Abaixo citamos um exemplo de uma nova visão da informação com a utilização do data warehouse: “O data warehouse é parte fundamental da solução, que analisa o comportamento do cliente, informando em caso de desvio padrão. Durante testes em um banco australiano, por exemplo, foi identificado um depósito que fugia aos padrões do correntista. O banco entrou em contato com o cliente e descobriu que o depósito fora um presente de casamento – o valor da quitação de uma casa. A partir dessa informação, desenvolveu promoções para aquele cliente específico, que conseguiu um empréstimo para acabar de montar sua casa [11]”. O passo seguinte é como analisar a área do negócio a ser modelado. 2.5. ANÁLISE DO NEGÓCIO A SER MODELADO Primeiramente definir os objetivos do projeto que podem ser resumidamente descritos nos dois itens abaixo: 1. Disponibilizar as bases de dados do ambiente operacional (OLTP) para um ambiente analítico (OLAP). 2. Permitir aos usuários a extração dos dados através de análise exploratória no ambiente OLAP. Definir o escopo do projeto, observando: Caracterizar o problema: o dado deve ser representado como informação para que a empresa possa tomar decisões. Definir quais processos são mais críticos para o negócio e que precisam de decisões sobre ele. 46 Assimilar o conhecimento e definição da área de atuação (negócio) do cliente específico e tomada de decisão. É importante representar este conhecimento em um modelo de entidades e relacionamentos pois será muito útil na modelagem dimensional. Definir grupo gestor da informação que irá participar durante todo o processo de desenvolvimento do projeto. O grupo gestor pode ser considerado como os usuários que dominam a área de negócio e que tomam decisões, juntamente com o pessoal de informática. É extremamente importante a definição do escopo do projeto pois é a base do mesmo. No escopo deve ser descrito se a implementação será em um data warehouse (base corporativa que atenderá toda a organização) ou em um ou vários data mart`s (base de informação por linha de negócio que contém um sub-conjunto dos dados corporativos da organização). Recomenda-se iniciar com data mart`s integrando-os a um data warehouse ao longo do tempo. Isto justifica-se pelos seguintes aspectos: O custo é bem inferior a implantar um data warehouse de toda a empresa; O tempo de implementação é reduzido; Mais fácil assimilar a atuação de uma área de negócio específica a entender todo o processo da empresa. Optando-se por implementar em data mart`s, deve-se ter o cuidado de não esquecer a integração entre os data mart`s caso contrário o projeto é inviabilizado. Tendo definida a área de negócio da empresa a ser implementada no projeto, deve-se analisar onde estão as informações que alimentarão o data warehouse / data mart(s). A origem destas informações é comumente chamada de “legado”. 47 2.6. ANÁLISE DO AMBIENTE LEGADO Partindo das necessidades de informação por área de negócio já estarem definidas, nesta análise deve-se observar o seguinte: Analisar o ambiente computacional da empresa como, por exemplo: mainframe IBM, ambiente DOS, ambiente windows, ambiente UNIX, etc. Se as informações necessárias estão armazenadas nos aplicativos operacionais ou, caso contrário, manter os aplicativos operacionais para que obtenham os dados que faltam. Verificar viabilidade deste tipo de manutenção para gerar a informação que falta no sistema analítico. Definir como integrar as várias fontes de informação, se houverem. Um fator importante é como analisar as fontes de informação do ambiente legado como, por exemplo: tipos de bancos de dados (relacionais, em rede, hierárquicos), arquivos seqüenciais, planilhas, etc. Também é importante verificar os modelos de dados, dicionários de dados dos sistemas do ambiente operacional, relatórios gerenciais dos aplicativos, etc. Estas informações auxiliam muito a construção do modelo dimensional. É importante separar em quatro itens observando os questionamentos e atividades em cada um deles segundo Felipe Machado [21]: “ 1. Seleção de Dados: Qual dado interessa? Onde estão os dados? Onde mais existe o dado? Qual o ambiente de sistema gerenciador de banco de dados? Qual dado é válido? Qual período de existência ? Qual o formato do dado? Quantos formatos tem o dado? 2. Extração de Dados: 48 Qual a frequência de carga? Validação da carga. Gerência de dimensões: dimensões que sofrem alterações e é necessário manter o histórico. Validação de dado calculado. Agregação de valores, indicadores. Unicidade de extratores ou seja, se vários data mart´s utilizam a mesma dimensão, o processo de carga deve ser único. Gerência do processo. 3. Limpeza de Dados: Redundância de nomes e endereços. Códigos desconhecidos. Unificação de códigos. Validação de valores pré-calculados. Unificação de nomes. Padronização de conceitos. Tratamento de valores nulos. 4. Transformação de Dados: Validação de valores agregados. Consolidação de regras de negócio. Análise de formatos e tipos de dados “. O grande fator de sucesso de projetos incrementais de data marts/ data warehouse está na transformação, extração, preparação e limpeza dos dados. Definir criteriosamente as necessidades, forma, fontes e as regras de mecanismos de transformação como, por exemplo, a padronização do conteúdo dos dados. Supondo que, no ambiente operacional, a informação sexo do cliente está, em alguns sistemas, como “F/M” e em outros “1/2”. Ao carregar esta informação no data 49 warehouse, deve-se definir um único padrão para conteúdo do mesmo dado originário de fontes distintas. A próxima etapa do nosso roteiro é a construção da modelagem dimensional. 2.7. MODELAGEM DIMENSIONAL DOS DADOS Utilizaremos como técnica principal para a modelagem de dados dimensional o star schema que é a técnica mais indicada para projetos de data warehouse. Muito importante é documentar o modelo de dados em uma ferramenta CASE onde definem-se as tabelas, atributos, domínios, enfim, todas as informações necessárias para garantir a plena documentação do modelo e facilitar a geração dos esquemas físicos no banco de dados, principalmente em bancos de dados relacionais. Considere a seguinte afirmativa: “Nós vendemos produtos em vários mercados e nós medimos nosso desempenho ao longo do tempo”. O modelo de dados mais adequado para representar diversas relações entre grandezas é o modelo dimensional. [15] Para melhor visualizar as dimensões, abaixo representamos um “cubo” propriamente dito com 3 dimensões: TEMPO MERCADO Cada ponto do cubo representa uma combinação de Produto, Mercado e Tempo armazenado. 50 PRODUTO A seguir definiremos, os conceitos básicos que norteiam a modelagem dimensional: 2.7.1. Dimensões Representam as possíveis formas de visualizar os dados. São as entradas para as consultas (tempo, região, cliente, etc). A base para entendimento de qualquer negócio é responder às quatro perguntas fundamentais abaixo: 1. QUANDO? (Período de tempo a que se refere a análise) 2. O QUÊ ? (O principal objeto de análise) 3. ONDE? (Localização física ou geográfica para análise) 4. QUEM? (Um objeto específico e detalhado para análise: opcional) Dimensão mascarada: É aquela dimensão com pouquíssimas ocorrências. Exemplo: Dimensão Tipo Cliente – Ativo ou Inativo. Não se cria uma tabela dimensão com essas ocorrências e sim usar esta dimensão como restrição na cláusula where da consulta. No modelo pode ou não ser representada como uma dimensão ligada à tabela fatos. 2.7.2. Fatos É a tabela central que interliga as dimensões e tem os indicadores de análise ou métricas (quantidade, valores,etc). A tabela fato deverá possuir, no mínimo, as três primeiras dimensões. A pergunta “QUEM?” refere-se a um nível de análise mais detalhado. 2.7.3. Exemplo de uma análise dimensional. “Precisamos analisar a quantidade e valor faturado dos produtos de nossa empresa em nossas lojas para medirmos nosso desempenho ao longo do tempo”. Partindo da premissa acima que reflete a necessidade de informação do usuário, o 51 projetista do data warehouse faz o primeiro esboço da modelagem dos dados de acordo com as 4 perguntas fundamentais: 1. QUANDO: Período de tempo. De acordo com a necessidade de análise do usuário. Pode ser: dia, semana, quinzena, mês, bimestre, trimestre, semestre, ano, etc. 2. O QUÊ : Produtos oferecidos pela empresa. 3. ONDE : Lojas da empresa. 4. QUEM : Opcional. No exemplo acima essa pergunta não se encaixaria pois não foi solicitada como objeto de análise. Porém, caso o usuário necessitasse saber quais os maiores clientes que efetuam compras de determinados produtos, aí sim a informação Cliente se enquadraria na pergunta “quem”. Até agora definimos os objetos de análise, no caso as dimensões de consulta. Obviamente nenhum resultado aparente será apresentado combinando as referidas dimensões pois o que está faltando são os fatos ainda não analisados em nosso modelo. Os fatos ou medidas são o elo de ligação entre os vários tipos de combinações de consulta entre as dimensões. É o que será medido, no caso o faturamento e a quantidade de produtos. Sempre são definidos como números que podem ser medidos, sumarizados e calculados. Em nosso exemplo, os fatos são: quantidade de produtos e valor faturado. Em seguida, projetaremos o modelo de dados utilizando a técnica star schema, que consiste em uma tabela central (fatos), relacionada com as dimensões. A estrutura final parece uma estrela, por isso a denominação da técnica. As tabelas dimensões são tabelas independentes, ou seja, possuem uma única chave primária e atributos que a identificam e que são utilizados para a consulta. São tabelas desnormalizadas. A tabela fatos é uma tabela dependente das dimensões ou seja, sua chave primária é a combinação das chaves primárias das dimensões e os atributos 52 para análise são os fatos ou medidas, no nosso exemplo o valor faturado e a quantidade de produtos. Obs: No exemplo abaixo da técnica star schema, as chaves primárias de cada tabela estão em negrito. DIMENSÃO TEMPO DIMENSÃO PRODUTO Chave_tempo Data_Venda Dia_da_Semana Mes Ano ... Chave_produto FATOS VENDAS Chave_tempo Chave_produto Chave_loja Descricao Marca Categoria ... Valor_Faturado Quantidade_Vendida DIMENSÃO LOJA Chave_loja Nome Endereco Cidade UF ... Observação: As chaves primárias das tabelas podem ser, um número seqüencial ou a própria data da venda, código do produto e código da loja, desde que esteja garantida a unicidade da chave primária em cada tabela dimensão e que o conteúdo histórico esteja garantido, ou seja, se houve alteração posterior em uma determinada venda em um determinado dia, é importante, nesse caso, gerar um número seqüencial na chave de tempo para garantir a posição antes da alteração. Caso a chave fosse a própria data da venda, a alteração seria sobreposta. Um outro exemplo seria o cliente em um pedido. Caso o mesmo cliente possua mais de uma ocorrência no cadastro e cada uma em pedidos diferentes, nesse caso justifica-se gerar um número único para identificar cada ocorrência do cliente. É claro 53 que este tipo de análise depende de como é o processo específico do cliente. Fica como sugestão importante a ser analisada. 2.7.4. Agregações É um fator importante a analisar já que o principal objetivo de uma agregação é prever um aumento de performance no acesso aos dados e reduzir o volume de dados na tabela. As agregações (ou sumarizações) consistem em gerar informações redundantes a partir da informação de menor granularidade [15]. As agregações: Fornecem níveis múltiplos de detalhe do fato [18]. Os resultados das queries (ou seus valores intermediários) são précalculados, o que melhora muito a performance [18]. Podem ser acumuladas através de agrupamentos diferentes. Freqüentemente através de várias dimensões ou combinações de Loja dimensões [18]. Tempo Apresentaremos Data da Transação uma agregação com 2 dimensões Júnior [18]: Agregação das Vendas da Loja Número da Loja Nome da Loja segundo Valsoir Tronchin Cidade Estado País Telefone Número da Loja Data da Transação Número de Clientes Quantidade de Produtos Valor das Vendas Agregam-se vários fatos por Loja por Dia: Número de clientes - Quantos clientes fizeram compras? Quantidade de produtos - Quantas unidades de produtos foram vendidas? Valor da venda - Qual foi o faturamento bruto do dia? 54 2.7.5. Metadados Metadados são dados sobre dados que podem ser entendidos como verdadeiros documentadores dos dados que compõem um data warehouse. Os metadados armazenam diversas informações sobre dados armazenados no data warehouse. Estas informações são armazenadas em um repositório que tem como objetivo principal documentar e administrar os metadados. Os metadados englobam o data warehouse e mantém informações sobre a estrutura dos dados, as fontes de dados, a transformação dos dados, as rotinas de extração de dados, o modelo de dados, relacionamentos e demais informações pertinentes a dar significado ao dado. Recomenda-se a utilização de uma ferramenta CASE para documentação dos processos, modelos de dados, dicionário de dados, domínios de atributos e geração dos esquemas físicos no banco de dados. 2.7.6. Resumo das etapas para a modelagem dimensional. A seguir apresentamos, resumidamente, as etapas importantes a serem seguidas na modelagem dimensional. 1. Obter a necessidade executiva: qual o negócio objeto de gestão. 2. Entender quais são os indicadores de valor do negócio definindo as métricas de controle. 3. Descrever em um modelo de dados conceitual o negócio. 4. Se houverem modelos de relatórios do ambiente operacional: simular. 5. Definir o que descreve o negócio: dimensões. 6. Definir a organização da dimensão tempo: qual a menor unidade de tempo. 7. Trabalhar com o conceito de hierarquia nas dimensões de consulta: Por exemplo uma hierarquia na dimensão tempo: Dia -> Mês -> Trimestre -> Semestre -> Ano 55 8. Definir a tabela fatos. 9. Montar o star schema. A modelagem dimensional é aplicada para visualizarmos os dados referentes às necessidades do usuário para obtenção da informação em um sistema analítico. O modelo de dados dimensional independe de qual banco de dados será implementado (ROLAP ou MOLAP). 2.8. ASPECTOS DA IMPLEMENTAÇÃO FÍSICA Um data warehouse exige grande capacidade de armazenamento e processamento dos dados, pois armazena dados analíticos, destinados às necessidades de tomada de decisão. Estes dados podem ser armazenados tanto em um banco de dados relacional (ROLAP) quanto em um multidimensional (MOLAP). A diferença básica é que em uma estrutura ROLAP devemos criar vários índices atrelados às tabelas fatos e dimensões para um acesso mais rápido e eficiente ao banco de dados enquanto que em um banco multidimensional somente precisamos informar quais são as dimensões e os fatos e o próprio banco encarrega-se de gerar os cubos. A seguir levantaremos alguns aspectos importantes a serem considerados prevendo a implementação física do data warehouse. 2.8.1. Levantamento de volumes de dados Como visto anteriormente, é necessário analisar a necessidade de sumarizar os dados (agregações). Um fator importante é que as agregações reduzem o volume de dados considerando que um sistema para tomada de decisões geralmente não analisa o dado em nível detalhado pois esta informação já se encontra no ambiente operacional (OLTP). O volume de dados a ser carregado e a previsão de crescimento é fator importante ao decidir qual tipo de banco de dados 56 será utilizado (MOLAP ou ROLAP). Um banco MOLAP não suporta eficientemente um volume muito grande de dados. Abaixo está representado um exemplo de gerenciamento de agregações com relação ao volume de dados segundo Valsoir Tronchin Júnior [18]: Evite a explosão exponencial. Por exemplo: explosão do número de linhas da tabela de agregação (n!) em um caso de análise com as seguintes informações: 100 lojas, 25 categorias de produtos, 50 tipos de clientes e dados de 1 ano. Agregação Vendas Vendas Vendas Vendas mensais da loja diárias da loja diárias da loja por categoria diárias da loja por categoria e tipo de cliente Nº. de Linhas da Tabela 1.200 36.500 912.500 45.625.000 Ao analisar o volume de dados na tabela fatos, há de considerar o crescimento no número de linhas na tabela, número de dimensões associadas e qual o nível de detalhe desejado. Muitas vezes, é importante analisar a necessidade de separar a tabela fatos em outras tabelas menores ou em agregações em nível mais alto. Abaixo exemplificaremos o volume de dados na tabela fatos considerando somente o valor das vendas diárias por loja e produto: Armazenar, no mínimo, os últimos 3 anos (previsão de 1.095 dias). Número de Lojas: 100 Número de Produtos: 400 Fatos = 1.095 x 100 x 400 => 43.800.000 linhas na tabela fatos. 2.8.2. Periodicidade de Carga As rotinas de extração dos dados do ambiente operacional devem ser executadas de acordo com um esquema de processamento pré-definido. A 57 periodicidade de execução pode ser diária (inviável quando a extração necessita de muitas fontes externas), semanal, quinzenal, mensal, etc. Um fator importante a ser analisado com relação à periodicidade de carga é a forte dependência com a área de negócio do usuário e da real necessidade de análise da informação pois a informação urgente de hoje pode estar obsoleta amanhã. O volume de processamento é fator primordial para a criação de um esquema de carga. Como o data warehouse possui carga incremental, recomendase que criem-se os movimentos de dados originários do ambiente operacional e carga no data warehouse fora do horário comercial de trabalho. 2.8.3. Tempo de Armazenagem dos Dados De acordo com o volume de dados carregados de forma incremental no data warehouse, é importante estimar por quanto tempo estes dados deverão estar disponíveis na base de dados. O principal objetivo do data warehouse é manter o histórico dos dados por um período de tempo necessário para a análise. Tudo depende do tipo de negócio do cliente. Geralmente a carga inicial do data warehouse corresponde a um volume histórico de 3 anos (no mínimo) para dar um respaldo necessário ao processo analítico. De acordo com o crescimento do banco de dados, é necessário gerenciar o expurgo das informações não mais utilizadas em um determinado período de tempo. Caso o usuário quiser manter as informações por um período de tempo longo, deve-se deixar claro que o custo de manutenção de hardware e software aumentará. 2.8.4. Controle de Backup’s O administrador do data warehouse deve controlar como o backup bases de dados será efetuado (periodicidade, volume, dispositivos das de armazenamento, etc.). É importante verificar se há necessidade de copiar todo o 58 banco de dados ( visto que, em projetos de data warehouse muito grandes, o custo desta atividade é alto e torna-se inviável) ou apenas um determinado período de tempo. É claro que o backup é importante e deve ser analisado. Vale a pena verificar se as informações originárias dos sistemas transacionais para carga do data warehouse são facilmente recuperáveis pelas rotinas de extração, aproveitando o backup das bases operacionais (bancos de dados, arquivos sequenciais, etc) em caso de problemas. Neste caso pode-se utilizar como backup os próprios arquivos oriundos do sistema transacional com os movimentos (diários, semanais, mensais, etc) carregados no data warehouse. Tudo depende de como gerenciar este processo e analisar por quanto tempo o data warehouse pode ficar indisponível em caso de recuperação do banco de dados e estimar quanto tempo levará a recarga a partir dos backup’s operacionais. Este gerenciamento envolve os administradores do data warehouse diretamente. 2.8.5. Análise de Performance Indica-se a técnica star schema pelos principais motivos na implementação física em um servidor ROLAP: As tabelas fato contém a maioria das linhas de dados. As tabelas dimensão tendem a ter um número menor de linhas. Os joins (junções, relacionamentos) em um star schema tipicamente envolvem uma tabela fato grande e uma ou mais tabelas dimensão pequenas, o que torna a operação de consulta mais rápida. Sempre consultar as tabelas fatos pelas entradas que são as dimensões. Esquema altamente desnormalizado para melhorar performance. A desnormalização provoca redundância e duplicação de dados, o que privilegia a performance em detrimento do consumo de espaço. 59 Uma análise importante refere-se aos índices a serem criados nas tabelas fatos e dimensões quando da implementação em uma estrutura ROLAP. Os índices são extremamente importantes pois permitem o acesso às informações de uma maneira rápida visto que o processo de tomada de decisão pode envolver consultas complexas que necessitem acessar um grande número de registros. Geralmente criam-se índices das chaves primárias nas tabelas dimensão e fatos mais outros atributos das dimensões necessários às consultas e também a combinação de dimensões na tabela fatos. Ao criarmos índices em bancos de dados relacionais devemos considerar a granularidade das informações, seletividade e outros fatores pertinentes à estrutura do banco pois os bancos relacionais analisam seu próprio plano de acesso antes de decidir acessar a estrutura de índices ou se é mais eficiente dar um scan table (pesquisa em toda a tabela). Geralmente definemse índices clustered para cada chave primária. Este tipo de suporte é fornecido pelo administrador do banco de dados (DBA). Ao utilizarmos um servidor MOLAP (com um banco multidimensional), não é necessário criar índices visto que a própria estrutura deste tipo de banco de dados cria os cubos com todas as combinações possíveis das dimensões. Devemos informar ao banco de dados quais são as dimensões e quais são os fatos. Esta tecnologia multidimensional têm alta performance porém ocupa um alto espaço de armazenamento dependendo do volume de dados da tabela fatos. A tendência dos bancos de dados é reunir funcionalidades ROLAP e MOLAP. 2.8.6. Segurança Além de utilizar o esquema de segurança de logins do próprio banco de dados (chaves autorizadas e o nível de acesso de cada uma), é importante que o administrador do data warehouse tenha um controle do perfil de usuários com autorização de acesso. Muitas ferramentas OLAP possuem um controle de 60 segurança próprios. Outra alternativa é o desenvolvimento de um aplicativo específico de controle de usuários autorizados antes de executarem uma consulta ao banco de dados onde reside o data warehouse/ data mart. Após considerarmos os aspectos de implementação física mais importantes do projeto, apresentaremos como as informações podem ser visualizadas pelo usuário e como são as consultas. 2.9. ASPECTOS DA VISUALIZAÇÃO DAS INFORMAÇÕES As ferramentas OLAP de visualização dos dados transformam números enfadonhos em excitantes apresentações visuais. Provavelmente, as ferramentas de visualização mais populares caem sob o título de sistemas de informação geográficos. Estes transformam dados sobre lojas, indivíduos ou qualquer outra coisa em mapas dinâmicos e de fácil compreensão [26]. A seguir exemplificaremos várias formas de fazer uma consulta ao banco de dados através de queries simples, stored procedures e o exemplo de como uma ferramenta OLAP monta o SQL para acesso ao banco de dados. 2.9.1. Queries Simples São comandos SQL simples desenvolvidos pelo usuário fazendo o acesso diretamente ao SGBDR e retornando as linhas acessadas em uma forma tabular. Este usuário deve possuir um perfil técnico avançado na criação de consultas SQL. Abaixo exemplificamos um comando SQL simples para acesso às informações de um cliente específico. select NomeCliente, Endereco, Telefone, Email from CADASTRO_CLIENTES where CodigoCliente = “XYZ” Obs: Colunas com as informações Tabela do banco de dados Critério de seleção : NomeCliente, Endereco, Telefone, Email. : CADASTRO_CLIENTES : CodigoCliente = XYZ 61 2.9.2. Stored Procedures (sp) Apresentaremos a mesma consulta acima efetuada com comandos SQL simples, porém organizadas em uma stored procedure que fica armazenada no banco de dados relacional e o acesso é mais rápido. Recomenda-se desenvolver stored procedures quando as consultas são pré-definidas pelo usuário. No exemplo abaixo transferimos o parâmetro de entrada (código do cliente) para a rotina e ele retorna as colunas como parâmetros de saída. Obviamente várias consistências devem ser feitas mas o exemplo é somente para entender a estrutura de uma stored procedure. O nome da função será SP_ObterInformacaoCliente. use <banco_de_dados onde a sp está armazenada> go if exists (select name from sysobjects where name = "SP_ObterInformacaoCliente") drop procedure SP_ObterInformacaoCliente go create procedure SP_ObterInformacaoCliente @codigo_cliente char(10), @nome_cliente char(35) output, @endereco varchar(50) output, @telefone char(10) output, @email char(30) output, @msg_erro varchar(100) output as declare @qtdlinhas int, @erro int select @nome_cliente = NomeAtivEconomica, @endereco = Endereco, @telefone = Telefone, @email = Email from CADASTRO_CLIENTES where CodCliente = @codigo_cliente return 0 go 2.9.3. Ferramentas OLAP Abaixo exemplificamos como uma consulta é feita pelo usuário através da ferramenta OLAP Business Objects e o comando SQL gerado automaticamente pela ferramenta. O banco de dados a ser acessado, no exemplo, é um ROLAP. O 62 projetista do banco de dados utilizou a técnica star schema como demonstrado na ferra 63 menta para que o usuário possa visualizar as dimensões e os fatos conforme apresentaremos na figura abaixo. A referida consulta refere-se a uma base de dados da Secretaria Estadual da Fazenda do Estado do Paraná onde o usuário pretende visualizar as informações de quantidade e saldo por mês e atividade econômica no ano de 1999 no município de Curitiba (101). O usuário solicita as informações das dimensões e dos fatos através de comandos drag and drop (arraste e solte). 64 Dimensões: Delegacia Regional, Município, Atividade Econômica, Tempo Fatos: GIA Gerencial Comando SQL gerado automaticamente pela ferramenta na consulta: SELECT TB_Tempo.MesRefGIA, TB_AtividadeEconomica.CodAtivEconomica, TB_AtividadeEconomica.NomeAtivEconomica, sum(TB_F_GIA_Gerencial.QuantidadeGIA), sum(TB_F_GIA_Gerencial.C11_VlrContabEntrEstado) FROM TB_Tempo, TB_AtividadeEconomica, TB_F_GIA_Gerencial, TB_Municipio WHERE (TB_F_GIA_Gerencial.CodAtivEconomica = TB_AtividadeEconomica.CodAtivEconomica ) AND ( TB_F_GIA_Gerencial.CodMunicipio=TB_Municipio.CodMunicipio ) AND ( TB_F_GIA_Gerencial.AnoBase=TB_Tempo.AnoRefGIA ) AND ( TB_Tempo.AnoRefGIA = 1999 AND TB_Municipio.CodMunicipio = 101 ) GROUP BY TB_Tempo.MesRefGIA, TB_AtividadeEconomica.CodAtivEconomica, TB_AtividadeEconomica.NomeAtivEconomica 65 Abaixo demonstraremos uma hierarquia implementada em um banco de dados multidimensional (Arbor Essbase – MOLAP) segundo Felipe Machado [21]: 2.9.4. Aplicativos de Consulta Muitas vezes o usuário solicita queries pré-definidas que, podem ser armazenadas no banco de dados na forma de stored procedures ou gravadas de acordo com o tipo de ferramenta OLAP. Por exemplo, na ferramenta Business Objects, as queries dos usuários podem ser salvas em arquivos. Quando da necessidade de consulta através da mesma query, o usuário abre o arquivo e faz um refresh no banco de dados, retornando as informações atualizadas. 66 A viabilidade de construir um aplicativo de consulta é diretamente relacionada às necessidades de informação do alto escalão da empresa (presidência, diretoria, gerências). Obviamente estes funcionários não irão desenvolver queries e sim desejam somente clicar em um ícone para obter a informação. Nestes casos, um aplicativo de consulta que integra as queries prédefinidas deve ser implementado prevendo a integração de novas consultas que são executadas freqüentemente. Consultas esporádicas não se justificam implementar em um aplicativo pois o usuário pode desenvolvê-las de acordo com sua necessidade. Depende da análise do usuário se quer ou não implementar determinada consulta em um aplicativo. 2.10. ESTUDOS DE CASOS REAIS (NECESSIDADES DO NEGÓCIO E MODELAGEM DIMENSIONAL). Nos estudos de caso que serão apresentados a seguir, demonstraremos as necessidades de análise da informação sobre o negócio do cliente e a modelagem dimensional utilizando a técnica star schema. Estas duas etapas do roteiro podem ser consideradas como as mais críticas e complexas para o projeto, motivo pelo qual estamos exemplificando o roteiro nestas etapas específicas. Nosso escopo, neste exemplo de estudos de caso, parte do princípio de que a fase de modelo dimensional dos dados é a que garante o sucesso do projeto pois o modelo deve responder às necessidades do negócio. As demais fases também são importantes porém são específicas de acordo com os objetivos tecnológicos de cada empresa. Os estudos de caso referem-se a dois tipos de organizações: A SEFA/PR e o CONPREVI . A SEFA/PR possui vários sistemas de informação desenvolvidos e mantidos pela CELEPAR. Muitos usuários necessitam de informações gerenciais referentes aos parcelamentos de ICMS (Sistema TAP) e Arrecadação de ICMS. 67 O CONPREVI é uma instituição que serve aos tabeliâes do Estado do Paraná para assegurar alguns benefícios como aposentadoria e pensões, através de um sistema de recolhimentos mensais sobre o movimento de cada cartório. O programa que gerencia a CONPREVI foi criado e é mantido pela Datatítulo Sistemas Informatizados, com sede em Curitiba e especializada em ofícios de protesto de títulos em todo o Paraná. As necessidades de informação gerencial sobre estes sistemas serão modeladas nos estudos de casos abaixo: 2.10.1. TAP – Termo de Acordo de Parcelamento Necessidades do usuário: “Precisamos analisar e acompanhar a evolução da concessão de parcelamentos de ICMS dos últimos 5 anos sob vários aspectos: tipo, modalidade e situação do parcelamento, município, agência de rendas e delegacia regional a que pertencem, bem como a atividade econômica dos contribuintes que efetuam parcelamento. A análise, sobre os referidos aspectos acima mencionados, considerará os valores parcelados, quantidade de parcelas concedidas, pendentes em dia, pendentes em atraso, pagas em dia e pagas com atraso em um período de tempo que refere-se a data de assinatura do parcelamento e a data da situação do parcelamento para os casos de parcelamentos já baixados.” Observação: Neste estudo de caso, a tabela fatos será única e conterá o item mais baixo de detalhe que é a informação referente ao próprio parcelamento e não agregações em outras tabelas fatos visto que o usuário têm necessidade de saber quais são os parcelamentos específicos. Esta definição levou em conta um volume de parcelamentos registrados no ambiente operacional nos últimos 5 anos, suficiente para ser armazenado detalhadamente no ambiente OLAP. Este fator em migrar ou não o dado detalhado deve sempre levar em conta o volume de dados e 68 crescimento dos mesmos ou então separar em outras tabelas fatos com agregações pertinentes às consultas mais efetuadas. DIMENSÃO ATIVIDADE ECONÔMICA DIMENSÃO TEMPO Código_Ativ_Economica Data_Assinatura Data_Situação Mês_Situação Ano_Assinatura Ano_Situação DIMENSÃO DELEGACIA REGIONAL Código_Delegacia Nome_Delegacia Endereco Cep Fone Município DIMENSÃO MUNICÍPIO Código_Municipio Nome_Municipio Ano_Instalacao Associação Microregião DIMENSÃO CONTRIBUINTE Código_Contribuinte Nome_Contribuinte CPF CNPJ CadICMS Endereco Município Início_Atividade Fim_Atividade ... Descrição FATOS_TAP DIMENSÃO REGIME PAGAMENTO Data_Assinatura Data_Situação Código_Delegacia Código_Município Código_Ag_Rendas Código_Ativ_Economica Código_Regime_Pgto Código_Modalidade Código_Situacao_TAP Código_Tipo_TAP Código_Contribuinte Código_Regime_Pgto DE PAGAMENTO Número_TAP Qtd_Parc_Concedidas Qtd_Parc_Pendentes Qtd_Parc_Pagas Qtd_Parc_Vencidas Qtd_Parc_Pagas_Atraso Valor_Imposto_Parcelado Valor_CM_Imposto_Parcelado Valor_Multa_Parcelado Valor_CM_Multa_Parcelado Valor_Juro_Vencido_Parcelado Valor_Juro_Vincendo_Parcelado Valor_Imposto_FCA_Parcelado Valor_Multa_FCA_Parcelado Valor_Atraso_Parc_Pendente Saldo_Residual_Imposto Saldo_Residual_Multa Saldo_Residual_Juros Valor_Imposto_Pago Valor_Multa_Pago Valor_Juro_Pago Descrição Descrição DIMENSÃO SITUAÇÃO PARCELAMENTO Código_Situacao_TAP DIMENSÃO TIPO PARCELAMENTO Código_Tipo_TAP Descrição DIMENSÃO MODALIDADE Código_Modalidade Descrição DIMENSÃO AGÊNCIA RENDAS Código_Ag_Rendas Nome Endereco Fone Município 69 2.10.2. Arrecadação Estadual de ICMS do Paraná Necessidades do usuário: “Precisamos analisar e acompanhar a evolução da arrecadação de ICMS dos últimos 3 anos por data de pagamento por várias regiões do Estado considerando os aspectos de tipos de receita e produtos, bem como a atividade econômica e regime de pagamento dos contribuintes que recolhem ao Estado. A análise, sobre os referidos aspectos acima mencionados, considerará a quantidade de recolhimentos e os valores de imposto, multa, acréscimo, juros e total recolhido.” DIMENSÃO TEMPO DIMENSÃO REGIME DE PAGAMENTO Data_Pagamento Dia Mês Trimestre Semestre Ano DIMENSÃO MUNICÍPIO Código_Municipio Nome_Municipio Ano_Instalacao Associação Microregião DIMENSÃO CONTRIBUINTE Código_Contribuinte Nome_Contribuinte CPF CNPJ CadICMS Endereco Município Início_Atividade Fim_Atividade ... Código_Regime_Pgto Descrição FATOS ARRECADAÇÃO Data_Pagamento Código_Receita Código_Ativ_Econômica Código_Regime_Pgto Código_Produto Código_Delegacia Código_Município Código_Contribuinte Qtd_Recolhimentos Valor_Receita Valor_Multa Valor_Acrescimo Valor_Juros Valor_Total_Recolhido DIMENSÃO DELEGACIA REGIONAL Código_Delegacia Nome_Delegacia Endereco Cep Fone Município DIMENSÃO RECEITA Código_Receita Descrição DIMENSÃO PRODUTO Código_Produto Descrição DIMENSÃO ATIVIDADE ECONÔMICA Código_Ativ_Econômica Descrição 70 Analisando o perfil de consultas do usuário de acordo com suas necessidades, percebeu-se que mais de 60% das consultas referem-se ao movimento mensal de arrecadação, não sendo uma necessidade imediata a análise por contribuintes nestas consultas, portanto decidiu-se por criar outra tabela fatos da arrecadação com os valores agregados mensais. Ao construir uma agregação ganha-se em performance pois os dados já estáo sumarizados mas perde-se em espaço no banco de dados visto que as informações sumarizadas poderiam ser obtidas na tabela fatos em nível de detalhe. Cria-se nesse caso, um tipo de “redundância” de dados. DIMENSÃO TEMPO DIMENSÃO REGIME DE PAGAMENTO AnoMês_Pagamento Mês Trimestre Semestre Ano DIMENSÃO MUNICÍPIO Código_Municipio Nome_Municipio Ano_Instalacao Associação Microregião DIMENSÃO ATIVIDADE ECONÔMICA Código_Ativ_Econômica Descrição Código_Regime_Pgto FATOS ARRECADAÇÃO MENSAL AnoMês_Pagamento Código_Receita Código_Ativ_Econômica Código_Regime_Pgto Código_Produto Código_Delegacia Código_Município Qtd_Recolhimentos Valor_Receita Valor_Multa Valor_Acrescimo Valor_Juros Valor_Total_Recolhido Descrição DIMENSÃO DELEGACIA REGIONAL Código_Delegacia Nome_Delegacia Endereco Cep Fone Município DIMENSÃO RECEITA Código_Receita Descrição DIMENSÃO PRODUTO Código_Produto Descrição 71 2.10.3. CONPREVI O CONPREVI tem como negócio o recolhimento de contribuições mensais de cartórios no estado do Paraná. Essas contribuições visam a manutenção de um sistema previdenciário para os cartorários garantindo aposentadoria para os mesmos e pensões para suas respectivas famílias. O recolhimento é feito via declaração da movimentação mensal de cada cartório e correspondente percentual. Como as contribuições são preenchidas pelos próprios cartorários a detecção de sonegação fica difícil. A única forma atual de se verificar uma irregularidade é através de fiscalização no próprio cartório, uma prática além de demorada, dispendiosa financeiramente. Com a implantação da técnica de data warehouse será possível, pelo próprio usuário do sistema, ou até, pelo corpo decisor da instituição CONPREVI detectar os sonegadores e decidir sobre parcelamentos, por exemplo, com um custo muito menor e com ganho em eficácia. O uso do data warehouse através de comparativos entre cartórios de mesma instãncia ou do mesmo cartório no decorrer do tempo, por exemplo, podem disponibilizar a CONPREVI uma ferramenta poderosa para análise de seus contribuintes e agilidade na tomada de decisões. Os dados estão em um micro usado como servidor, a base de dados é Access e periodicidade de carga das informações é mensal. Necessidades do Usuário: “Precisamos analisar e acompanhar a arrecadação de nossa carteira de previdência por parte dos servidores. Os valores a serem analizados dizem respeito ao valor destinado ao CONPREVI e Associações. O comparativo vai ser em relação a épocas distintas, pela data de pagamento, respeitando a sazonalidade para detectar possíveis sonegações. As consultas devem ser tanto evidenciando as serventias, como os titulares das serventias. Deve-se, tambem, comparar-se cartórios de mesmo tipo e de mesma entrância em todas as cidades do Paraná.” 72 DIMENSÃO TEMPO Dt_Pagamento Mês Trimestre Semestre Ano DIMENSÃO TITULAR Cod_Titular Nome Tel(Ramal) Endereço Cidade CEP Estado CPF DIMENSÃO TIPO DE CARTÓRIO Código_Tipo_Cartorio Classificação FATOS RECOLHIMENTO MENSAL Dt_Pagamento Cod_Titular Cod_Serventia Cod_Cidade Cod_Tipo_Cartorio Valor_Certidao Valor_CPC Valor_Total_Assoc Valor_Multa Valor_Juros Valor_Correcao DIMENSÃO SERVENTIA Código_Serventia Nome_Serventia Endereco Cep Tel(Ramal) Cidade Entrancia DIMENSÃO CIDADE Cod_Cidade Cidade Estado 73 CONCLUSÃO Este trabalho forneceu-nos fundamentação teórica e embasamento suficientes para projetar um data warehouse. O roteiro mostrou que é possível, de forma esquemática, elaborar um data warehouse sem maiores problemas. Com ele, muitas das principais dúvidas que surgem, principalmente, àqueles profissionais que estão tendo o seu primeiro contato com a ferramenta, são apontadas e sanadas no decorrer do desenvolvimento do projeto de data warehouse. Outra grande virtude do roteiro é unir, de forma mais harmoniosa, através de correlação, o que foi exposto na teoria com os casos práticos apresentados. Através da exposição de uma seqüência de etapas, tornou-se possível uma visualização mais organizada e sistemática da construção de um data warehouse. Acreditamos que o objetivo proposto foi amplamente atingido dando condições a um profissional da área de informática, sem nenhum conhecimento em data warehouse, a se familiarizar com os novos termos, planejar e desenvolver um projeto desse nível. De acordo com a estrutura lógica da seqüência apresentada envolvendo: 1 º Fundamentação Teórica, 2º Desenvolvimento do Roteiro e 3º Casos práticos com validação de algumas partes do roteiro de acordo com a necessidade de cada situação, acreditamos termos apresentado um texto de fácil leitura, com raciocínio lógico e bem estruturado. Considerações: Data warehouse não é modismo, tornou-se uma necessidade para a organização. Data warehouse não resolve os problemas da organização se não houver o fator humano para analisar os resultados e tomar as decisões. 74 É fundamental o envolvimento do usuário em todo o processo (usuário que atua na análise de informações para a tomada de decisão). São poucos os usuários com este perfil. Evitar trabalhar em nível operacional (detalhe) e sim em nível estratégico (dados consolidados/ agregados) a não ser que seja muito necessária a análise detalhada. A técnica mais adequada para a modelagem dimensional é a star schema. Evitar utilizar a técnica snow flake visto que é uma técnica onde as dimensões são normalizadas, degradando a performance de acesso à tabela fatos. Utilizar a modelagem dimensional. A utilização do MER somente para visualizar a área de negócio para então analisar como obter as informações fontes para o data warehouse. O analista de Tecnologia da Informação deve possuir o conhecimento da tecnologia utilizada no projeto principalmente em: SGBD, Modelagem de Dados Tradicional e Multidimensional. A estação cliente deve ter alto desempenho. As consultas demandam um alto consumo de recursos (tanto do servidor quanto da rede de comunicação de dados). A avaliação da necessidade de implantar tal sistema deve levar em conta: A necessidade da empresa de responder continuamente às mudanças de mercado. A existência ou não de uma base consistente de informações oriundas dos bancos de dados operacionais. A inviabilidade de obter as informações de suporte a decisão diretamente dos bancos de dados operacionais da empresa. À medida que a infra-estrutura de informações das empresas amadurece, aumenta a necessidade de qualidade dos dados e de sistemas eficientes e eficazes de suporte a decisão. Esse tipo de sistema e o uso corporativo 75 que se faz dele alavancam o conhecimento de negócio ou sua inteligência, resultando em vantagem competitiva. No cenário atual onde os administradores das empresas precisam tomar decisões rápidas e certeiras em resposta aos diversos eventos que ocorrem a todo instante em suas empresas, faz-se necessário construir todo um mecanismo de suporte rápido e eficiente aos processos decisórios. O data warehouse é uma ferramenta apropriada para este tipo se situação. Se bem projetado, permite aos gerentes obter informações rápidas e confiáveis que lhe servirão de suporte para a solução de seus problemas e para atingir os objetivos propostos para os negócios. 76 ANEXOS ALGUNS FORNECEDORES DE FERRAMENTAS OLAP ATUAIS Existem, no mercado, vários fornecedores de produtos OLAP cada um dentro de uma categoria, isto é, classificado como um tipo de produto MOLAP, ROLAP, HOLAP e Cliente/Servidor. A seguir relacionamos alguns fornecedores de produtos OLAP: [17] Fornecedores Produto Tipo de Produto Andyne Computing Ltd. PaBLO HOLAP Client Applix TM1 Software Applix TM/1 MDDB Server Arbor Software Corp. Essbase MDDB Client Brio Technology Inc. Brio Query MDDB Client Business Objects Inc. Business Objects ROLAP Client Cognos Corporation PowerPlay HOLAP Client Comshare Inc. Decision MDDB Client Dimension Insight Cross Target MDDB Server Gentia Software GQL MDDB Client/Server Hyperion Software Corp. Pillar MDDB Client/Server IBM DB2 OLAP Server HOLAP Server Information Advantage Inc. Decision Suite ROLAP Server Informix MetaCube ROLAP Server Microsoft Microsoft OLAP Server HOLAP Server MicroStrategy Inc. DSS Server / DSS Agent ROLAP Client/Server Oracle Express MDDB Server Pilot Software Pilot Analysis Server MDDB Server Platinum Technology InfoBeacon ROLAP Server SAS Institute Inc. SAS MDDB Client/Server Seagate Software IMG Holos HOLAP Client/Server Speedware Corp. Inc. Media/MR MDDB Client/server Sybase PowerDimensions ROLAP Server WhiteLight Systems Inc. WhiteLight ROLAP Server 77 SUGESTÃO DE UMA TABELA DIMENSÃO TEMPO DETALHADA [21]. Data da Transação Indicador de último dia do mês Ano Quartil (Trimestre) Mês Semana Dia da Semana Dia do Mês Dia do Quartil Dia do Ano Indicador de Feriado Semana do Mês Semana do Quartil Semana do Ano Indicador de última semana do mês Indicador de última semana do quartil Mês do Quartil Ano Fiscal Quartil Fiscal Mês Fiscal Semana Fiscal Dia da semana fiscal Dia do mês fiscal Dia do quartil fiscal Dia do ano fiscal Indicador de último dia do ano fiscal Semana do mês fiscal Semana do quartil fiscal Semana do ano fiscal Indicador de última semana do mês fiscal Indicador de última semana do quartil fiscal Indicador de última semana do ano fiscal Mês do quartil fiscal 78 FIGURAS Vendemos 1 Milhão de Reais ! Quando ? O quê ? O Q uê ? Onde ? Tomate Região Região Região Laranja Arroz Chocolate 2 3 4 1996 1997 1998 1999 Tempo [21] Figura 1 – Exemplo de um Cubo Dimensional [21] Figura 2 – Exemplo de uma Estrutura Star Schema 79 [21] Figura 3 – Exemplo de uma Estrutura Snow-Flake [21] Figura 4 – Exemplo de um Modelo de Dados (MER) 80 REFERÊNCIAS BIBLIOGRÁFICAS [1] ASSUNÇÃ0, Luis. Data Warehousing. Disponível na Internet. http:// www.luis.assuncao.eti.br/luisdwh.htm#item1. 15/12/1999. [2] COMPUTERWORLD. Data warehouse: depósito de boas oportunidades. Rio de Janeiro. n.173, p. 17, julho,1996. [3] DBMS – TOOLS & STRATEGIES FOR I.S. PROFESSIONAIS. Um Manifesto do Dimensional Modeling. Rio de Janieiro. Ed. Mantelmedia, n. 7, p. 44-50, 7 novembro,1997. [4] EXECPLAN. Apresentação. Disponível na Internet. http: // www.execplan.com.br/apresent/apresent.htm. 28/12/1999. [5] Fast Track to Sybase – Student Guide. 1992, Sybase Inc. [6] FIGUEIREDO, Adriana Maria C.M.. MOLAP x ROLAP: Embate de Tecnologias para Data warehouse. Developer’s Magazine. Rio de Janeiro: Axcel Books do Brasil Editora Ltda. Fevereiro de 1998, nº 18 p.24. [7] FILHO, Trayahú R.Moreira. On-Line Analytical Processing Server (Servidor OLAP). Developer’s Magazine. Rio de Janeiro: Axcel Books do Brasil Editora Ltda. Fevereiro de 1998, nº 18 p.28-29. [8] FORMA INFORMÁTICA LTDA. Técnicas de Modelagem de Dados. São Paulo, 26 maio, 1994. [9] GUTIERREZ, Marco Antônio. Developer’s Magazine. Rio de Janeiro: Axcel Books do Brasil Editora Ltda. Fevereiro de 1998, nº 18 p.7. [10] http://osiris.sunderland.ac.uk/sst/case2/welcome.html em 20/01/2000 [11] INFORMATION WEEK. O Poder do Data warehouse. São Paulo.Ed.Itmidia n.12, p. 12, 20 outubro,1999. [12] INMON, W. H. Building the Data warehouse. New York : Wiley Computer Publishing, 1996. [13] INMON, W. H., WELCH, J. D. e GLASSEY,Katherine L. Managing the Data warehouse. New York : Wiley Computer Publishing, 1997. [14] INMON, Willian H. e HACKATHORN, R. D. Using the Data warehouse. New York : J. Wiley, 1994. [15] JAMHOUR, Edgar. Sistemas de Banco de Dados. Curitiba,Agosto de 1999. Disciplina do Curso de Especialização em Gestão da Tecnologia da Informação e Comunicação da Faculdade Católica de Administração e Economia. [16] JORNAL BATE BYTE – CELEPAR ( Companhia de Informática do Paraná). Administração de Metadados. Curitiba, edição nº 76 em junho de 1998. 81 [17] JORNAL BATE BYTE – CELEPAR ( Companhia de Informática do Paraná). Tecnologia OLAP. Curitiba, edição nº 87 em junho de 1999. [18] JÚNIOR TRONCHIN, Valsoir. Apresentação Sybase : Data Warehousing : Aspectos Estratégicos e de Implementação. Curitiba,1997. [19] KIMBALL, Ralph. Data warehouse Toolkit. 1.ed. São Paulo: Makron Books, 1998. 388p. [20] KONDRATIUK, Edgardo Ruben. Data warehouse: Detalhes que Fazem a Diferença. Developer’s Magazine. Rio de Janeiro: Axcel Books do Brasil Editora Ltda. Fevereiro de 1998, nº 18 p.22. [21] MACHADO, Felipe. Modelagem de Dados Multidimensional. DBA Engenharia de Sistemas. Rio de Janeiro, 1999. [22] MANNI, Luiz Carlos & DORSA, Luiz Fernando A. Data warehouse: Gerenciando a Qualidade dos Dados. Developer’s Magazine. Rio de Janeiro: Axcel Books do Brasil Editora Ltda. Fevereiro de 1998, nº 18 p.20. [23] MANZONI JR, Ralphe. A inteligência é a Alma do Negócio. ComputerWorld Business Inteligence, Rio de Janeiro, n. 285, p.2, 8 março, 1999. [24] NIMER, Fernando.Analisando o Retorno Sobre o Investimento de Data warehouse. Developer’s Magazine. Rio de Janeiro : Axcel Books do Brasil Editora Ltda. Fevereiro de 1998, nº 18 p.16-17. [25] OLIVEIRA LEITE., Argemiro A. Informação à Prova de Equívocos. ComputerWorld Business Inteligence, Rio de Janeiro, n. 285, p.7, 8 março, 1999. [26] PALMA, Sérgio. Os Componentes Funcionais de um Data warehouse. Developer’s Magazine. Rio de Janeiro:Axcel Books do Brasil Editora Ltda. Fevereiro de 1998, nº 18 p.18-19. [27] PORTFÓLIO DE TECNOLOGIAS CELEPAR ( Companhia de Informática do Paraná). SQL, Índices, Modelo de Dados, Banco de Dados. Curitiba,30 de junho de 1998. [28] Sybase System 10: Introduction to SQL- Student Guide.1993, Sybase Inc. [29] TAURION, Cezar. Data warehouse : Vale a Pena Gastar Milhões Investindo em Um?. Developer’s Magazine. Rio de Janeiro: Axcel Books do Brasil Editora Ltda. Fevereiro de 1998, nº 18 p.10-11. [30] TAURION, Cezar. Data warehouse Será Útil Para a Sua Organização ? Developer’s Magazine. Rio de Janeiro : Axcel Books do Brasil Editora Ltda. Fevereiro de 1998, nº 18 p.26-27. [31] VASCONCELLOS, João Marcos. Apresentação Informix: Do Data Mart ao Data warehouse, O Caminho para o Acesso às Informações Gerenciais Estratégicas, Curitiba,1997. [32] WANG, Charles B., Techno Vision II, ed. Makron Books, 1998. [33] ZAMBON, Luís Pedro. Desenvolvimento de Sistemasde Informação. Curitiba,Setembro de 1999.Disciplina do Curso de Especialização em Gestão 82 da Tecnologia da Informação e Comunicação da Faculdade Católica de Administração e Economia.