Universidade Católica de Brasília PRÓ-REITORIA DE GRADUAÇÃO TRABALHO DE CONCLUSÃO DE CURSO Bacharelado em Ciência da Computação SIGED – Sistema de Gestão Educacional – Data Warehouse Alunos: André Leonardo Pires Gonçalves Sylvia Sayuri Shibata Orientador: MSc. Milton Pombo da Paz BRASÍLIA 2008 ANDRÉ L.P. GONÇALVES SYLVIA SAYURI SHIBATA SISTEMA DE GESTÃO EDUCACIONAL – SIGED DATA WAREHOUSE Monografia apresentada para obtenção do título de bacharel no Curso de Ciência da Computação pela Universidade Católica de Brasília, sob a orientação do professor Milton Pombo. Brasília – DF 2008 i Projeto Final de Graduação, sob a Orientação do Msc. Milton Pombo da Paz, avaliado por uma Banca Examinadora do Curso de BCC da UCB e constituiu requisito para obtenção do Título de Bacharel em Ciências da Computação. ii AGRADECIMENTOS Agradeço aos meus pais e minhas irmãs por sempre me apoiaram e incentivarem os meus estudos e trabalho. Agradeço ao André Leonardo, parceiro de projeto final pela paciência, bom humor e força de vontade para conclusão do projeto. Agradeço também ao professor Milton P. Paz pela atenção dada ao nosso grupo e pelo incentivo e aos nossos demais colegas de projeto final. Sou grata também as pessoas que me ajudaram na minha conquista profissional, em especial o coordenador da equipe ao qual faço parte, Nobuo que me transmitiu sua constante preocupação com qualidade e praticidade, ensinando-me diversos caminhos para alcançá-la e Jean-Frédéric pela confiança e oportunidade de aprendizado logo no início da minha vida profissional. Por fim, agradeço a Deus por tudo de bom e maravilhoso que Ele me deu e, sem dúvida nenhuma, o maior presente que é a vida. Sylvia Sayuri Shibata iii Primeiramente agradeço a Deus pela vida, por tudo que possuo e o que sou. Agradeço aos meus Pais e minha Irmã Vanessa pelo apoio intensivo e amor que sempre me deram em todos os momentos da minha vida, e que de certa forma fizeram o possível para que este momento se realizasse. Agradeço a minha namorada Helaine Castro por ser forte e também por sua paciência, compreensão e suporte oferecido principalmente nos momentos mais difíceis que passo. Agradeço ao Professor Milton Paz pela orientação e incentivo que nos deu ao longo do semestre. Agradeço a Sylvia Shibata, pela paciência e apoio durante o desenvolvimento deste projeto final. Agradeço a todos os que me apoiaram sempre, e neste momento gostaria de citar de modo especial o senhor Alberto Mizuki pela oportunidade ímpar que me proporcionou no início da minha carreira profissional, ao professor Mário Braga pela chance e confiança depositada em mim. Finalmente agradeço a todos os colegas de trabalho, de faculdade, amigos, familiares e professores que de alguma maneira contribuíram com este momento. André Leonardo Pires Gonçalves iv Resumo A tecnologia Data Warehouse (DW) tem sido cada vez mais difundida nas corporações principalmente pelo diferencial que estes sistemas representam como ferramenta para análise de informações gerenciais e estratégicas. Neste cenário, o DW auxilia a alta cúpula da empresa na medida em que capta informações a partir das bases de dados transacionais e as armazena em repositórios construídos com o propósito exclusivo de análise. A visão do dia-a-dia, as micro-operações, os registros de transação, enfim, os dados dos sistemas transacionais tradicionais, são transformados em informações no contexto do Data Warehouse por meio de visões que oferecem a seus usuários informações globais que possibilitam que os tomadores de decisão tenham uma visão ampla sobre o seu negócio. Com base nisto, percebe-se uma crescente demanda por profissionais críticos que sejam capazes de atender a este mercado. Por isso, entender e conhecer os conceitos sobre esta tecnologia tem feito diferença para alguns profissionais do ramo da Tecnologia da Informação. O objetivo do presente trabalho é elucidar os principais conceitos sobre a Tecnologia Data Warehouse e ao fim apresentar um protótipo para aplicação dos conceitos apresentados. Palavras chave: Data Warehouse, Sistema de Apoio a decisão, Data Mart. v Abstract The Data Warehouse technology has been used and widespread inside corporations mainly because its differential as an information analysis tool. On that way, this technology aids the decision makers of one company to view information from specific databases constructed with the data from multiples transactional sources. These repositories have the specific goal of analysis. The daily view, the micro operations, the transaction rows and finally the traditional data from transactional systems are transformed in information in Data Warehouse context using views that offer global information and insights to its users in the way that offer to that professionals a broad view of their business. Based on that facts, the demand for critic professionals is rising, and the ability to understand and know the concepts about this technology make the difference for some Information Technology professionals and companies. The main goal of this work is elucidate the main concepts about the Data Warehouse Technology and at the end present one prototype for application of the main concepts presented in this work. Keywords – Data Warehouse, Decision Support System, Data Mart. vi Lista de figuras Figura 1 – Organograma do Centro Educacional Tangran. ................................ 6 Figura 2 – Evolução dos Sistemas de Apoio à Decisão [INMON, 2005] .......... 20 Figura 1 – Cronograma no MS Project. ............................................................ 34 Figura 4 – Exemplo de Modelo Relacional [DSPACE,2008] ............................ 36 Figura 5 – Exemplo de Esquema de Modelo Multidimensional [DEVMEDIA, 2008] ................................................................................................................ 36 Figura 6 – Exemplo de Modelo Multidimensional.[MICROSOFT, 2008] ........... 37 Figura 7 – Exemplo de Estrutura Multidimensional [DEVMEDIA, 2008] ........... 39 Figura 8 – Abordagem de implementação Top-Down [MACHADO, 2007] ....... 47 Figura 9 – Abordagem de implementação Botton-Up [MACHADO, 2007] ....... 49 Figura 10 – Tabela de ferramentas segundo [OLIVEIRA, 2002] ...................... 56 Figura 11 – O Ciclo de Vida do desenvolvimento de sistemas [INMON, 2005] 64 Figura 12– Modelo mostrando o modelo dimensional macro baseado em informações coletadas. .................................................................................... 75 Figura 13 – Modelo de dados dimensional utilizado para no Data Mart Escolar. ......................................................................................................................... 76 Figura 14 – Modelo Físico do Sistema OLTP com as principais tabelas a serem utilizadas no DW.. ............................................................................................ 80 vii Lista de tabelas Tabela 1 – Cronograma geral do projeto...................................................... 29 Tabela 2 – Documentos do projeto .............................................................. 30 Tabela 3 – Quadro de funcionários necessários para desenvolvimento de um DW. .......................................................................................................... 30 Tabela 4 - Recursos Financeiros ................................................................. 33 Tabela 1 – Quadro de funcionários sugeridos para desenvolvimento inicial de um DW [INMON, 1999] ............................................................................... 69 Tabela 2 – Quadro de Funcionários de SI sugerido para Gerenciamento Contínuo de DW[INMON 1999] ................................................................... 71 viii SUMÁRIO AGRADECIMENTOS ........................................................................................ iii Resumo .............................................................................................................. v Abstract ............................................................................................................. vi Lista de figuras ................................................................................................. vii Lista de tabelas ................................................................................................viii SUMÁRIO.......................................................................................................... ix 1. 2. 3. Introdução ................................................................................................... 1 1.1 Motivação ............................................................................................. 4 1.2 Histórico ............................................................................................... 4 1.3 Problemas Diagnosticados .................................................................. 5 1.4 Surgimento das Necessidades da Pesquisa ........................................ 5 1.5 Usuários Beneficiados ......................................................................... 5 1.6 Organograma ....................................................................................... 5 1.7 Empresa Interessada ........................................................................... 7 Objetivos da Pesquisa................................................................................. 8 2.1 Objetivo Geral ...................................................................................... 8 2.2 Objetivo Específico .............................................................................. 9 Proposta de Pesquisa ............................................................................... 10 3.1 Descrição da Proposta de Pesquisa .................................................. 10 3.2 Resultados Esperados ....................................................................... 10 3.3 Restrições da Pesquisa ..................................................................... 11 3.4 Recursos necessários para a execução do novo Software................ 11 3.4.1 Descrição de Recursos de Hardware Ideal .................................... 12 3.4.2 Descrição de Recursos de Hardware Mínimo ................................ 12 3.4.3 Descrição de Recursos de Software .............................................. 13 3.4.4 Descrição de Recursos Humanos .................................................. 13 ix 3.5 Relação Custo x Benefício ................................................................. 14 3.6 Áreas afetadas pela pesquisa ............................................................ 14 4. Metodologia da pesquisa .......................................................................... 14 5. Detalhamento da pesquisa – Estudo Teórico............................................ 15 5.1. Introdução .......................................................................................... 15 5.1.1. Conceito ......................................................................................... 16 5.1.2. Objetivo .......................................................................................... 17 5.1.3. Evolução dos Sistemas de Suporte à Decisão ............................... 18 5.1.4. Público Alvo .................................................................................... 21 5.1.5. Características................................................................................ 21 5.1.6. Papéis ............................................................................................ 24 5.2. PLANEJAMENTO DO PROJETO ...................................................... 25 5.2.1. Planejamento ................................................................................. 25 5.2.2. Plano do Processo de Desenvolvimento ........................................ 26 5.2.3. Ciclo de vida do projeto .................................................................. 26 5.2.4. Métodos de Desenvolvimento e ferramentas CASE....................... 27 5.2.5. Ambiente de hardware para o desenvolvimento............................. 27 5.3. Plano de Organização........................................................................ 27 5.3.1. Equipe de Gerência ........................................................................ 27 5.3.2. Equipe de Desenvolvimento ........................................................... 28 5.4. Plano de Acompanhamento ............................................................... 28 5.4.1. Marcos e Pontos de Controle ......................................................... 28 5.4.2. Métodos de acompanhamento e controle ...................................... 29 5.4.3. Análise e Gerência de Riscos ........................................................ 30 5.5. 5.5.1. 5.6. Plano de Documentação .................................................................... 30 Documentos do projeto .................................................................. 30 Plano de Recursos e Produtos .......................................................... 30 x 5.6.1. Recursos Humanos ........................................................................ 30 5.6.2. Recursos de Hardware ................................................................... 32 5.6.3. Recursos de Software .................................................................... 32 5.6.4. Recursos Financeiros ..................................................................... 33 5.7. Cronograma ....................................................................................... 34 5.8. Modelagem de Dados ........................................................................ 34 5.8.1. Modelagem Multidimensional ......................................................... 37 5.8.2. Modelo Star Schema (Modelo Estrela) ........................................... 40 5.8.3. Modelo Snowflake (Floco de Neve) ................................................ 42 5.9. Arquitetura ......................................................................................... 42 5.9.1. Conceito ......................................................................................... 43 5.9.2. Arquitetura Global........................................................................... 44 5.9.3. Arquitetura Data Mart Independente .............................................. 45 5.9.4. Arquitetura Data Mart Integrado ..................................................... 46 5.10. Abordagem de Implementação ...................................................... 47 5.10.1. Top-Down ................................................................................... 47 5.10.2. Botton-Up .................................................................................... 48 5.11. Extração, Transformação e Carga.................................................. 50 5.11.1. Melhores Práticas ....................................................................... 51 5.11.2. Extração ...................................................................................... 52 5.11.3. Transformação ............................................................................ 53 5.11.4. Carga .......................................................................................... 54 5.11.5. Ferramentas................................................................................ 55 5.12. OLAP .............................................................................................. 56 5.12.1. Características das ferramentas OLAP ....................................... 57 5.12.2. Operações Básicas OLAP .......................................................... 58 5.13. Metadados ...................................................................................... 60 xi 5.13.1. O Data Warehouse e o modelo de dados ................................... 61 5.13.2. Padrões para Metadados ............................................................ 61 5.13.3. Dublin Core ................................................................................. 62 5.13.4. TEI .............................................................................................. 63 5.13.5. METS .......................................................................................... 63 5.13.6. EAD ............................................................................................ 63 5.13.7. RDF ............................................................................................ 63 5.14. 6. 7. Ciclo de Vida de Desenvolvimento ................................................. 64 5.14.1. Fases para um projeto Data Warehouse .................................... 65 5.14.1.1. Levantamento das Necessidades ............................................... 65 5.14.1.2. Modelagem ................................................................................. 66 5.14.1.3. Projeto Físico .............................................................................. 66 5.14.1.4. Projeto ETL ................................................................................. 66 5.14.1.5. Desenvolvimento das Aplicações ............................................... 67 5.14.1.6. Validação e Teste ....................................................................... 67 5.14.1.7. Treinamento ................................................................................ 67 5.14.1.8. Implantação ................................................................................ 67 5.14.2. Problemas Comuns de Desenvolvimento ................................... 67 5.14.3. Recursos Humanos .................................................................... 69 Protótipo – Validação da Pesquisa ........................................................... 73 6.1. Planejamento ..................................................................................... 73 6.2. Levantamento de Necessidades ........................................................ 74 6.3. Modelagem Dimensional.................................................................... 75 6.4. Projeto físico do banco de dados ....................................................... 76 6.5. Projeto de extração, transformação e carga ...................................... 79 6.6. Desenvolvimento de aplicações ......................................................... 84 Conclusão ................................................................................................. 85 xii Referência Bibliográfica ................................................................................... 86 Apêndice A ....................................................................................................... 88 Apêndice B ....................................................................................................... 92 SCRIPT DE GERAÇÃO DO BANCO DE DADOS ........................................ 92 Apêndice C ....................................................................................................... 96 TELAS DO PROTÓTIPO .............................................................................. 96 xiii 1. Introdução Segundo Inmon (1997) no começo dos anos sessenta o mundo da computação consistia basicamente na construção de aplicações individuais que resolviam problemas bastante específicos. Daquela época para cá o cenário mudou bastante. Desde a difusão dos computadores pessoais, dos primeiros sistemas operacionais até o advento da Internet, o mundo tem passado por diversas transformações. O conhecimento é um fator chave para estas mudanças e constitui a base para a evolução das sociedades. É notável que o conhecimento sempre influenciou o avanço da humanidade utilizando para isso a tecnologia. Quem detém o conhecimento e tecnologia possui o domínio. Isto é fato que pode ser facilmente observado, por exemplo, quando se visualiza o atual ranking de países desenvolvidos. Quem alia o conhecimento à tecnologia tende a estar na frente. Entretanto para que seja possível adquirir o conhecimento, é necessário ter informação. As informações ajudam a moldar o conhecimento e muitas vezes são determinantes para que se saiba construir um equipamento complexo ou até mesmo para que se consiga tomar uma decisão da forma mais assertiva possível. O conhecimento têm se acumulado ao longo da história e a quantidade de informação recebida por um cidadão atual é espantosamente grande quando comparada ao passado. Machado (2006) cita que “Em uma única edição do jornal The New York Times existe mais informação do que uma pessoa poderia receber durante toda sua existência na Inglaterra do século XVII”. Isso se deve principalmente pela difusão dos meios de comunicação que surgiram no século XX. A difusão da energia elétrica, do rádio, do telefone, da televisão e por último da Internet possibilitaram que uma grande quantidade de pessoas tivessem acesso à informação. Neste sentido, é fato que a evolução está intimamente ligada a questão da competição. Trazendo o contexto exposto para dentro do mundo corporativo, a necessidade de obter informações qualificadas referentes às operações de uma empresa faz com que a utilização de sistemas computacionais seja cada vez mais difundida no mundo corporativo. O uso intensivo destes sistemas vem facilitando a execução de processos dentro das 1 corporações e auxiliando profissionais a executarem suas tarefas cotidianas. A informação é a base para um negócio bem sucedido. O foco do produto de software também tem evoluído. Além do seu papel básico de resolver problemas do dia-a-dia por meio de sistemas transacionais, ele tem sido utilizado para transformação de dados em informações dentro das corporações por meio de tecnologias de apoio a decisão. A necessidade por informações empresariais sempre existiu, no entanto a evolução da Tecnologia da Informação (TI) tem possibilitado a criação de meios eficientes para a transformação de dados em informações. Neste cenário o surgimento de sistemas de apoio à decisão (SAD) tem auxiliado empresas e pessoas a colherem informações a partir deste tipo de sistemas, de forma a auxiliá-los na tomada de decisões estratégicas. Visto que a necessidade de informações para a tomada de decisões foi aumentando e o que haviam eram apenas dados estruturados sendo armazenados historicamente. Além disso, existe o problema de consultas em base de dados estruturados consumir muito tempo devido aos relacionamentos existentes entre as tabelas, inviabilizando o uso deste tipo de estrutura, o que exigiu a criação de uma nova tecnologia para tratar os dados de forma que gerassem consultas a informações, surgindo o Data Warehouse para prover as informações de maneira rápida e simples. Os ambientes transacionais tradicionais ou ambientes OLTP (Online Transaction Processing) têm cumprido seu papel dentro das empresas. No entanto percebeu-se que este tipo de sistema apresenta algumas deficiências quando utilizados como ferramenta para auxilio na tomada de decisões estratégicas de alto nível. O grande problema nessa situação, é que os ambientes transacionais não foram projetados para suportar análise de informação de forma maciça. Quando um gestor questiona dados de sua empresa, ele geralmente deseja saber informações de maneira macro e abrangente, como por exemplo, questionar qual a margem de lucro de um produto nos últimos cinco anos. Pode até existir sistema OLTP que consigam responder a este tipo de pergunta, mas pelo alto volume de transações dentro do ambiente operacional 2 (e por outros fatores) estas informações podem estar guardadas em diversos meios que impossibilitem uma pesquisa imediata ou em um tempo aceitável. Além de outras desvantagens relacionadas, esta consulta poderia requerer uma grande quantidade de processamento nos sistemas transacionais, que talvez fosse proibitivo de ser executada em uma determinada ocasião justamente por causa da brusca queda de desempenho neste sistema. As tecnologias de análise de informações, ou tecnologias OLAP (Online Analytical Processing) trazem solução para esta questão e oferecem um ambiente projetado para análise de informações. Sintetizando suas diferenças essenciais, a mais marcante, é que os sistemas OLAP permitem e são projetados para a extração (consulta) de informações de forma maciça e satisfatória em relação aos ambientes OLTP. Na maioria das vezes o OLTP manipula uma grande massa de pequenas operações, enquanto o ambiente OLAP, uma pequena quantidade de grandes operações. Estes ambientes de análise surgem para auxiliar gestores e alta gerência das companhias a tomarem decisões baseadas nos fatos armazenados em seus sistemas transacionais. Muitas vezes estas decisões são tomadas com base em informações temporais. A visualização de informações de meses, anos e décadas são bem freqüentes e o volume de dados armazenados neste tipo de ambiente é altíssimo, pois devem armazenar informação durante os períodos citados. Dentro do mundo de apoio a decisão existe a categoria de sistemas Data Warehouse (DW). De forma muito geral, estes sistemas funcionam de forma que, a partir das necessidades da alta gerência, extrai-se e tratam-se os dados dos ambientes transacionais tradicionais por meio de processos especiais, e após esta etapa, os dados são carregados em ambientes especializados de análise. Em seguida ficam disponíveis em um repositório dedicado para servir de base para consultas a informações gerencias de uma determinada corporação. Geralmente estas informações servem de base histórica e ficam armazenados nestes repositórios por anos. Em mais detalhes, esta pesquisa tem o objetivo de descrever detalhadamente a estrutura de um Data Warehouse, e mostrar suas principais características e também como este tipo de solução auxilia a alta gerência no processo de tomada de decisão. 3 1.1 Motivação A necessidade de obter informações qualificadas referentes às operações de uma empresa faz com que o uso de sistemas Data Warehouse seja cada vez mais difundido no mercado corporativo. Além de outras vantagens, o uso intensivo destes sistemas vem melhorando cada vez mais a capacidade do ajuste interno dos processos das empresas, na medida em que proporcionam uma visão macro das operações executadas e auxilia os gestores a tomarem decisões baseadas nas informações adquiridas dentro de seus próprios sistemas produtivos. O produto final de um trabalho de implementação de Data Warehouse pode oferecer também, uma visão posicional do referido negócio em relação ao mercado externo, servindo como uma ferramenta para o estudo da melhor estratégia a ser aplicada em um segmento visando à melhora da capacidade de competição da empresa. Segundo Silberschatz e Sudarshan (1999), um Data Warehouse é um repositório de informações coletadas em diversas fontes – tais como Sistema de Recursos Humanos, Contabilidade, Logística - que são armazenadas sob um repositório único, que tem uma interface única e consolidada de dados e que são armazenadas durante longo período de tempo. Isso significa que, ao centralizar as informações, estes sistemas oferecem facilidade de acesso às informações (que antes eram mineradas por meio de relatórios esparsos de cada área de negócio) além de oferecer uma análise histórica destas informações. Nesse sentido, este trabalho de pesquisa tem como propósito propor uma solução baseada em tecnologia Data Warehouse. 1.2 Histórico Desde a fundação do Centro Educacional Tangran não se tinha a preocupação de automatização e informatização dos dados da escola. Todos os processos eram manuais até a pouco tempo, e com o aumento do quadro de funcionários e alunos, iniciou a preocupação de armazenamento de dados sobre a situação acadêmica dos alunos, visto que as informações eram guardadas em armários de arquivos físicos. 4 Desta forma, com a quantidade de informações sendo armazenados, por vezes, tornava-se difícil o acesso a estas informações. Neste sentido foram adquiridos sistemas para controle acadêmico, totalizando-se três sistemas de “prateleira”. Cada um com modelos de dados próprio, banco de dados próprio e código-fonte inacessível. 1.3 Problemas Diagnosticados Devido ao armazenamento de documentos físicos referentes aos alunos e funcionários, estava gerando demora na pesquisa de determinados arquivos e também ao grande risco da perda destes em caso de um acidente. Neste sentido, também não existia nenhum sistema de apoio a decisões, que seria muito importante para a análise estratégica dos dados. Desta forma, não existem meios de extração de dados para a geração de informações históricas da entidade para futura expansão e análise da questão financeira dos alunos de forma a prover algum tipo de atrativo para novos alunos ou criação de política de descontos a fim de manter os alunos já matriculados. 1.4 Surgimento das Necessidades da Pesquisa Assim como nos demais setores tais como telecomunicações, indústria e logística, a área educacional tem a sua própria necessidade de buscar informações gerenciais dentro de suas bases de dados transacionais para que se consiga responder a perguntas essenciais para a estratégia do negócio. Com base no cenário apresentado, o presente trabalho de pesquisa tem como intuito responder a questões estratégicas referentes a um ambiente escolar específico por meio da construção de um sistema computacional de Data Warehouse. 1.5 Usuários Beneficiados Após a construção do sistema de Data Warehouse, os usuários beneficiados serão: Presidente, Diretores e Supervisores das instituições e Coordenadores Educacionais. 1.6 Organograma A seguir, será apresentado o organograma do Centro Educacional Tangran, no qual está sendo baseada a pesquisa presente. 5 A escola é composta por uma alta Diretoria Executiva, onde, estão ligados a ele, as diretorias Administrativa, Financeira e Educacional. A coordenação Pedagógica está diretamente ligado à diretoria educacional, de onde vêm as informações para a análise da Diretoria Educacional e consequentemente, dados de tomada de decisão para a diretoria executiva. Figura 1 – Organograma do Centro Educacional Tangran. 6 1.7 Empresa Interessada O projeto se destina ao cenário atual do Centro Educacional Tangran, instituição de ensino infantil, localizada em Brasília. Hoje a instituição possui aproximadamente 100 alunos e deseja ampliar a sua estrutura para a educação fundamental. O principal objetivo do Centro.Educacional Tangran é promover uma educação de qualidade, buscando sempre a transparência com os pais e responsáveis, porém a instituição enfrenta barreiras por não contar com um sistema para extrair relatórios estratégicos. Atualmente, toda a documentação é preenchida manualmente o que gera uma baixa produtividade e falta de informações confiáveis para as tomadas de decisões. 7 2. Objetivos da Pesquisa O objetivo é desenvolver uma pesquisa sobre Data Warehouse e validá- lo em um estudo de caso para uma escola com o desenvolvimento de um DW para provimento de relatórios gerenciais para tomada de decisão pela alta gerência. O qual possibilita a consulta de várias informações do processo de negócio da área acadêmica. 2.1 Objetivo Geral O presente trabalho tem como objetivo desenvolver uma pesquisa bibliográfica sobre sistemas computacionais de Suporte à Decisão Data Warehouse (SSD/DW) a fim de fornecer à escola citada, uma ferramenta de análise gerencial de informações. 8 2.2 Objetivo Específico Desenvolver um protótipo em computador para atender os principais processos da Instituição de Ensino utilizando SOA para a modelagem destes processos e construção de um sistema transacional. Com base nos dados gerados neste sistema, e só após sua conclusão, será utilizado um sistema de Data Warehouse para responder questões específicas do negócio. Os objetivos específicos identificados para se atingir o objetivo geral são os seguintes: Levantar, junto aos interessados pelo sistema, o conjunto de consultas gerenciais que se deseja obter a partir do Data Warehouse; Mapear os Dados que serão transformados em Informações do ambiente OLTP (Online Transaction Processing) para o ambiente OLAP (On-Line Analytical Processing), em conformidade com o que foi levantado com os interessados pelo sistema; Extrair dados específicos do ambiente transacional OLTP para a criação de um ambiente de análise OLAP utilizando técnicas de ETL (Extract Transform and Load); e Com base nas informações armazenadas neste último repositório, criar consultas gerenciais a partir das questões analíticas levantadas pelos analistas de sistema aos interessados pela construção do sistema para apoio a tomada de decisão na empresa e, após isso, disponibilizar estas consultas aos usuários. 9 3. Proposta de Pesquisa Desenvolver uma pesquisa bibliográfica sobre Data Warehouse em busca de informações importantes de maneira que auxilie na tomada de decisões oferecendo diversidade de cenários de acordo com o histórico da escola. 3.1 Descrição da Proposta de Pesquisa Elucidar de forma descritiva os principais conceitos relacionados à tecnologia Data Warehouse, o importante papel histórico e evolução das tecnologias de Suporte a Decisão, as principais características ligadas à arquitetura, à forma de implementação, questões de modelagem, entre outros conceitos relacionados à tecnologia citada. Feito isso, desenvolver um protótipo para comprovar a viabilidade da aplicação dos conceitos aqui referidos. 3.2 Resultados Esperados Com a conclusão da pesquisa planeja-se implementar um protótipo para aplicação dos conceitos e demonstração de viabilidade da construção de um sistema Data Warehouse engajado nas necessidades da instituição de ensino citada conforme os conceitos elucidados nesta pesquisa. 10 3.3 Restrições da Pesquisa Para realização desta pesquisa é imprescindível: Ciência de que o foco deste trabalho de pesquisa é a construção de um protótipo focado nas questões gerenciais dos usuários do sistema, e não um sistema DSS robusto; Obter junto aos usuários do futuro sistema, o escopo do protótipo a ser desenvolvido; A existência de uma base de dados transacional (OLTP) para mapeamento das necessidades dos usuários; 3.4 Recursos necessários para a execução do novo Software O servidor de banco de dados para armazenamento dos dados relativos à escola será o Oracle Database 9.2.0.1. O software que servirá como ferramenta de ETL (Extração, Transformação e Carga) será o OWB (Oracle Warehouse Builder) na versão 10.1.0.4. Já a aplicação onde os usuários finais poderão criar consultas e acessar as já existentes é o Oracle Discoverer 10.1.2.1. No lado servidor para instalação do banco de dados e do OWB, o hardware ideal para suporte ao software e ao problema da escola específico seria uma máquina com processador de velocidade 2 GHz e 2 GB de memória RAM. O hardware mínino para instalação do banco de dados e OWB seria uma máquina com processador de velocidade de 1.7 GHz e 1 GB de memória RAM. Na máquina cliente para instalação do Oracle Discoverer, para a consulta e criação de relatórios, o hardware ideal sugerido é um processador de velocidade 1 GHz, com 1 GB de memória RAM. O hardware mínimo sugerido para a máquina cliente, para execução das consultas aos relatórios é um desktop com um processador de velocidade 700 MHz, com 512 MB de memória RAM. 11 Em relação aos recursos humanos, serão necessários 2 analistas de sistemas, 1 DBA (Database Administrator), 2 consultores ETL, 2 consultores OLAP para este desenvolvimento. Abaixo segue a descrição detalhada de recursos a ser utilizada. 3.4.1 Descrição de Recursos de Hardware Ideal Servidor Computador IBM PC ou Compatível; Processador 2 GHz; 2 GB de Memória RAM; HD de 160 GB; Teclado; Mouse; e Placa Ethernet 10/100. Máquina Cliente Computador IBM PC ou Compatível; Processador 1 GHz; 1 GB de Memória RAM; HD de 80 GB; Teclado; Mouse; e Placa Ethernet 10/100. 3.4.2 Descrição de Recursos de Hardware Mínimo Servidor Computador IBM PC ou Compatível; Processador 1.7 GHz; 1 GB de Memória RAM; HD de 100 GB; 12 Teclado; Mouse; e Placa Ethernet 10/100. Máquina Cliente Computador IBM PC ou Compatível; Processador 700 MHz; HD de 40 GB; 512 MB de Memória RAM; Teclado expandido; Mouse; e Placa Ethernet 10/100. 3.4.3 Descrição de Recursos de Software Servidor Sistema Operacional – Windows XP Professional; Banco de Dados – Oracle Database Server 9i (versão 9.2.0.1); Software de ETL – Oracle Warehouse Builder (versão 10.1.0.4); Software Front-End – Oracle Discoverer Administrator (versão 10.1.2.1); e Cliente Sistema Operacional - Windows XP Professional ou Home Edition; e Software Front-End – Oracle Discoverer Desktop. Desenvolvimento Ferramenta Case - Enterprise Architect 7.1. 3.4.4 Descrição de Recursos Humanos 2 analistas de sistemas; 1 DBA (Database Administrator); 2 consultores ETL; e 13 3.5 2 consultores OLAP. Relação Custo x Benefício A implementação de um Data Warehouse é um investimento de longo prazo, entretanto existe a possibilidade de durante o desenvolvimento deste, já obter alguns resultados por meio da construção de Data Marts departamentais separados que podem ser integrados ao fim do projeto. Desta forma, é possível que os gerentes tomem conhecimento de informações precisas que afetam diretamente na tomada de decisões estratégicas da evolução da escola. Com o armazenamento dos dados históricos possibilita a análise sobre as mensalidades pagas pelos alunos, o qual possibilita a criação de políticas para manter os alunos já matriculados ou convidar novos alunos a serem matriculados na instituição. 3.6 Áreas afetadas pela pesquisa Com a implementação do Data Warehouse, toda a escola será afetada a longo prazo, incluindo: Marketing; Diretoria; e Recursos Humanos. Porém para o desenvolvimento do protótipo será considerada a análise somente da área fim da escola, que abrange o assunto de ocorrências e notas dos alunos. 4. Metodologia da pesquisa A metodologia adotada para esta pesquisa é a pesquisa classificada como bibliográfica, pois se destina a investigar possibilidades do emprego dos melhores métodos e práticas a serem recomendadas a fim de aplicação prática de um estudo de Data Warehouse em uma instituição de ensino. Foram realizadas pesquisas bibliográficas com a finalidade de apoiar as idéias propostas, por meio de um estudo desenvolvido com base em materiais 14 originados de livros, materiais eletrônicos, com o objetivo de se levantar uma base para o embasamento teórico. 5. Detalhamento da pesquisa – Estudo Teórico Nesta seção serão apresentadas as principais características de um Data Warehouse. Embasado em trabalhos realizados e publicados por diversos autores renomados da área, o objetivo desta pesquisa é elucidar os principais aspectos relacionados à tecnologia citada. A princípio serão apresentados aspectos macros relativos ao assunto, tais como principais conceitos, objetivos, histórico, entre outras questões. Feito isso, outros aspectos mais profundos tais como modelagem, arquitetura, processos ETL (Extração, Transformação e Carga), criação de consultas e ciclo de desenvolvimento serão apresentados. 5.1. Introdução A importância de definir uma estratégia para conquistar clientes e conseqüentemente, aumentar o lucro e o capital das companhias faz com que o uso de tecnologia da informação voltada para a tomada de decisão seja cada vez mais utilizado dentro das companhias de forma a auxiliar no alcance dos objetivos contemplados por sua estratégia. Essas tecnologias são vitais porque a partir da visão dos dados contidos nos repositórios transacionais, será possível a extração de informações importantes e históricas para análise estratégica do negócio em um ambiente analítico próprio. Segundo Oliveira (2002) o Data Warehouse surgiu principalmente devido às dificuldades emergentes que as organizações começaram a enfrentar no momento de reunir os dados para uma análise mais eficiente. A solução para este problema foi armazenar os dados utilizando uma arquitetura própria e criada exclusivamente para suportar o armazenamento destes dados em um ambiente de análise de informações. Com isso, é possível identificar vários assuntos sobre os quais se deseja tomar uma decisão, a partir dos questionamentos gerenciais dos usuários interessados na implementação deste sistema. 15 Atualmente esta tecnologia é aplicada amplamente em empresas de grande porte no Brasil e no mundo, provendo ao alto escalão empresarial uma tecnologia robusta e completa que consegue atingir seus objetivos quando aplicada de forma correta. Trazendo este cenário para o mundo acadêmico, percebe-se a necessidade de uma análise estratégica dentro do ambiente escolar para o alcance de objetivos de igual importância quando comparados ao ramo da Indústria, Telecomunicações, Logística, entre outras. Com base nesta necessidade, esta pesquisa, tem como intuito de elucidar os principais conceitos relacionados à tecnologia DW e ao final responder a questões estratégicas referentes a um ambiente escolar específico por meio de um protótipo. 5.1.1. Conceito Um Data Warehouse oferece os fundamentos e os recursos necessários para um Sistema de Apoio a Decisão (SAD) eficiente, fornecendo dados integrados e históricos que servem desde a alta direção, que necessita de informações mais resumidas, até as gerencias de baixo nível, onde os dados detalhados ajudam a observar aspectos mais táticos da empresa. [Oliveira, 2002] Ralph Kimball e William Inmon estão entre os autores mais respeitados no universo Data Warehouse. Eles foram os pioneiros na tecnologia, e conceituam-na de formas um pouco diferente, entretanto complementares. Segundo Inmon (1997), um Data Warehouse é caracterizado como “uma coleção de dados orientada por assuntos, integrada, variante no tempo, e não volátil, que tem por objetivo dar suporte aos processos de tomada de decisão”. Já na opinião de Ralph Kimball (1998), um Data Warehouse é “uma cópia dos dados de transações, estruturadas especificamente para consultas e análises”. Sumarizando a essência dos conceitos, um Data Warehouse é um sistema que é utilizado pela alta cúpula empresarial com o intuito de auxiliar nas decisões estratégicas de uma corporação, de forma que utiliza os dados dos sistemas transacionais (OLTP) e os armazena em um ambiente de 16 arquitetura própria para análise, e que é orientado por assunto, integrado, variante no tempo e não volátil. A própria tradução do termo Data Warehouse diz bastante sobre o seu conceito. Um Armazém de Dados – tradução do termo DW - é um repositório de dados onde se podem guardar os dados históricos de uma organização. A alta gerência usuária do DW acessa o sistema usando ferramentas SAD para consulta instantânea de relatórios na tela com montagem de gráficos, textos, tabulação de números, entre outros recursos, acessando diretamente a base de dados corporativa da empresa. É importante salientar que estes artefatos são os resultados das necessidades que foram levantadas em algum momento pelos analistas de sistema DW juntamente com estes usuários. No entanto há situações onde os usuários podem criar suas próprias consultas a partir de uma estrutura já montada do Data Warehouse. Estas consultas são chamadas de ad hoc, ou simplesmente consultas aleatórias, que são criadas a partir de usuários com mais experiência e que conheçam a estrutura DW que lhe foi montada. 5.1.2. Objetivo O Data Warehouse tem o objetivo de integrar e mostrar informações gerenciais das organizações, para que estas sejam utilizadas como base pela alta cúpula da companhia durante a tomada de decisões. Essa ferramenta ajuda os gestores a terem uma visão abrangente dos seus processos de negócio por meio da seleção dos assuntos mais relevantes que cercam a corporação. A seleção destes assuntos por vezes envolve várias áreas de uma empresa. Um exemplo é quando um gestor deseja cruzar dados da área de Contabilidade e de Recursos Humanos e saber o valor do orçamento despendido com um determinado departamento por cargo. Estes assuntos, bem como seus relacionamentos, são definidos conforme as necessidades do gestor no início de um projeto DW e repassada à parte desenvolvedora para que esta possa avaliar a viabilidade de entrega deste assunto dentro do DW. Neste contexto o DW tem o objetivo de fornecer informações consistentes a seus usuários. O gestor no caso do exemplo acima deve ter certeza de que aqueles dados foram cruzados de forma correta e que aquela 17 informação pode ser tomada como base para a formação do conhecimento do gestor. Outro objetivo do DW é tornar as informações corporativas acessíveis para visualização. Isso significa que, uma vez fechado o escopo do projeto, os dados são carregados de forma que fiquem à disposição para seus usuários. Esta utilização geralmente é feita por meio de ferramentas de consultas OLAP, que oferecem visões por meio de relatórios, planilhas, entre outros. O termo acessível também quer significa que os o DW deve entregar suas informações de forma ágil. Outro objetivo também importante exercido pelo DW é a comparação das operações de forma histórica. Isso é possível devido a este tipo de sistema ter a capacidade de armazenar informações ao longo de vários anos. Ao armazenar os dados de forma histórica é possível verificar tendências relativas às operações de uma empresa, de modo que um processo possa ser remodelado por meio de um processo de reengenharia. O último objetivo é aumentar o lucro da empresa quando a alta gerência opta por implementar um Data Warehouse na empresa. Isso porque os usuários destes sistemas têm condições de conhecer exatamente os números de sua corporação. Por meio disso, estes usuários adquirem a capacidade de saber pontualmente que foco deve ser dado ao seu negócio de forma que o lucro desta corporação seja expandido. 5.1.3. Evolução dos Sistemas de Suporte à Decisão Segundo Inmon (2005), a figura abaixo mostra a evolução processamento de informação no começo dos anos sessenta com o início da criação de aplicativos individuais que funcionavam usando master files (arquivos-mestre). Os aplicativos com características de relatórios e programas normalmente eram escritos em Fortran ou Cobol, perfurando cartões ou fitas de papéis. Os master files eram hospedados em fitas magnéticas, que eram ótimas para armazenamento de grande volume dados barato, mas o inconveniente era o acesso seqüencial dos dados. Era possível o acesso aos 100% dos dados, porém normalmente 5% ou menos dos dados registrados eram realmente necessários. Além do acesso à fita inteira levava em torno de vinte a trinta minutos, dependendo de onde o dado se encontrava. 18 De acordo com Inmon (2005), por volta do meio da década de sessenta, o crescimento de master files e fitas magnéticas explodiram. Vindo também o crescimento da enorme quantidade de dados redundantes. A proliferação dos master files e dados redundantes apresentou um problema muito insidioso: A necessidade de sincronização sobre a atualização dos dados; A complexidade de manutenção dos programas; A complexidade da criação dos novos programas; e A necessidade de ampla quantia de hardware para suporte de todos os master files. Por volta dos anos setenta, deu-se início a uma nova tecnologia de armazenamento com o DASD (Direct Access Storage Device), dispositivo de armazenamento de acesso direto, que era diferente das fitas magnéticas, onde os dados poderiam ser acessados diretamente via DASD, não sendo mais necessário passar pelos dados 1, 2, 3, ...,,n até chegar ao dado gravado na posição n+1, pois o endereço do dado é conhecido, simplificando o acesso a este, além de que o tempo requerido para ir ao dado gravado na posição n+1 era um tempo significantemente menor que o tempo requerido para o acesso a este mesmo dado em uma fita magnética, agora sendo mensurado em milisegundos. Com o DASD, veio um novo tipo de sistema de software conhecido como Sistema Gerenciador de Banco de Dados (SGBD ou DBMS – Database Management System) com o propósito de facilitar o armazenamento e acesso de informações pelos programadores ao DASD. O DBMS tomava cuidado com alguns serviços de armazenamento de dados no DASD, como indexar a informação. Estas novas tecnologias vieram solucionar o problema dos master files e com o DBMS teve uma noção do que é um banco de dados. Em meados dos anos 1975, foi criado um meio de acesso rápido aos dados chamado OLTP, abrindo toda uma nova perspectiva para processamento e negócio, possibilitando o uso do computador em novas tarefas antes impossíveis, como sistema de controle de manufaturas, sistemas de reservas, entre outros. Em meados de 1980 vieram novas tecnologias, como os PCs (Personal Computers) e 4GL (Fourth-generation Languages), possibilitando o usuário 19 final controlar diretamente os dados e os sistemas. Com estas duas tecnologias teve-se a noção da simplicidade das transações Online. O MIS (Management Information System), eram processamentos usados para operar decisões de gerenciamento. Figura 2 – Evolução dos Sistemas de Apoio à Decisão [INMON, 2005] 20 5.1.4. Público Alvo A solução de Data Warehouse está voltada para o nível estratégico e gerencial de uma companhia de forma a suportar a tomada de decisões. Dentre os principais usuários deste tipo de sistema, pode-se citar os Sócios, Diretores, Analistas de Suporte a Decisão, Presidentes, Gerentes e Usuários Chave. Estes são profissionais de alto nível que devem estar informados a respeito da sua corporação de forma que possam contribuir com seu crescimento. Além de serem os usuários finais de uma solução de DW, estas são as pessoas que visualizam as necessidades que deverão ser supridas pelo sistema. Estes usuários geralmente são envolvidos diretamente no processo de levantamento dos assuntos que serão tratados por um DW. 5.1.5. Características Um DW proporciona uma sólida e concisa integração dos dados da empresa e análises gerenciais sólidas dos dados estratégicos de seus principais processos de negócio, preocupando-se em integrar as informações de fontes internas e externas, sumarizando, filtrando e limpando os dados. Entre as principais características de um Data Warehouse segundo Machado (2006) podem ser citadas as seguintes: Extração de dados de fontes heterogêneas internas e/ou externas – O DW possui um conjunto de processos responsáveis por carregar os dados a partir dos sistemas transacionais (OLTP). Este conjunto é denominado processos de extração, transformação e carga (ETL- Extraction, Transform and Load). Esta característica inicial se refere ao primeiro passo de coleta dos dados a partir dos sistemas OLTP para o DW. É basicamente uma cópia dos dados de um lado para o outro. Esta extração é realizada segundo normas de mapeamento de dados. Estas normas definem a localização bem como a origem e o destino dos dados que deverão ser carregados; Transformação e integração dos dados – Após os processos de extração dos sistemas OLTP para o DW são aplicadas algumas 21 regras de negócio aos dados. Esta transformação é realizada para que as necessidades dos usuários sejam refletidas nos dados e para transformá-los em informações úteis. Esta transformação então se refere à aplicação de filtros, conversão de dados, manipulação de dados de diferentes fontes. Um exemplo básico, o DW pode ser responsável por unificar as informações de Sexo (Masculino ou Feminino) que estão representadas em seus diversos sistemas ora como “M” para masculino e “F” para feminino, ora como “1” para homens e “2” para mulheres; Requer máquina e suporte próprios – Salvo casos especiais de implementação de Data Marts (assunto abordado mais a frente) departamentais ou demonstrações, um projeto de Data Warehouse comprometido com a empresa deve possuir recursos e máquinas próprios para que seja possível seu desenvolvimento; A visualização de dados pode ser feita em diferentes níveis – As informações podem ou não serem extraídas para um nível mais específico, como os Data Marts e deste para um BD individual; Uso de ferramentas para acesso ao DW com níveis diferentes de apresentação – Uma ferramenta de Data Warehouse deve ser capaz de mostrar várias perspectivas de visão da mesma informação. Isso significa que estas ferramentas devem oferecer a seus usuários, a capacidade de, a partir de uma determinada visão das informações, se aprofundar mais nos detalhes daquela visão (também chamado de Drill Down). Isso possibilita ao analista daquela informação ter um conhecimento maior sobre o assunto pesquisado; Os dados não são atualizados, são somente inseridos – Para se manter o histórico de mudanças dentro do sistema, geralmente os dados não sofrem processos de atualização (update). Por exemplo, se a descrição do peso de um produto de uma companhia for alterado, o DW por praxe, insere uma nova linha idêntica a anterior salvo pelo atributo peso. Para evitar duplicações geralmente é aplicado um atributo no registro dizendo se ele é ou não atual e qual foi a data de alteração do mesmo. Com isso, o analista das 22 informações tem a capacidade de acompanhar mudanças neste determinado produto; Orientação por assunto – Dentro de um Data Warehouse são comumente encontradas informações sobre diversos assuntos de uma empresa, e estes assuntos estão relacionados às suas áreas. Um exemplo é que dentro do universo DW de uma empresa, está inserido uma consulta retratando a quantidade de funcionários de uma empresa que estão lotados em determinadas diretorias e que participam de diversos centros de custo. Este exemplo mostra como três assuntos diferentes podem estar relacionados entre si, “funcionário” representando o assunto Recursos Humanos, “diretorias” representando Estrutura Organizacional e “centro de custo” representando o assunto Financeiro; Variação no tempo – Ao contrário dos sistemas OLTP, o DW precisa manter informações históricas relacionadas aos seus diversos assuntos. Ele faz isso armazenando seus dados por vários anos em algumas ocasiões. Estas informações servem de fundamento para análise histórica de alguma questão relacionada à corporação. Esta variação muitas vezes é importante para análise das tendências relacionadas a determinados assuntos. Não volátil – Em um sistema OLTP tradicional geralmente existem várias operações ocorrendo ao mesmo tempo, tais como operações de leitura, escrita, atualização e inserção. No DW estas operações basicamente se resumem a carga inicial dos dados (primeira inserção dos dados), carga incremental e a consultas destes dados. Como já visto, o DW mantém um histórico das suas informações o que significa que operações de “deleção” das informações são muito raras, tornando-o não volátil; e Integrado – Esta característica diz respeito a unicidade das informações, ou seja, mesmo que mesmas informações venham com formatos diferentes de lugares diferentes, estas informações devem ser unificadas para que seja apresentado apenas um valor dentro do Data Warehouse. 23 5.1.6. Papéis Por sua abrangência, o DW envolve vários profissionais, dentre eles analistas de processamento de dados até analistas de negócio, ou clientes deste ambiente. No ambiente de DW inclui os administradores do projeto, os projetistas do banco, os administradores de bancos de dados (Database Administrators) dos sistemas operacionais, os administradores de dados, programadores e analistas de sistemas, analistas de aplicativos e usuários finais, onde estes são agrupados por papéis como descrito a seguir: Analistas responsáveis pela carga dos dados composto por programadores que precisam conhecer o mapeamento entre o DW e os sistemas operacionais além dos requisitos para filtragem e integração dos dados; Usuários finais que são os especialistas, gerentes executivos e analistas de negocio que utilizam as informações para apoio à tomada de decisão, os quais estão sempre em busca de solução de um problema ou em busca de novas oportunidades de negócio. São divididos em dois grupos, os usuários diretos que acessam livremente o DW enquanto os usuários indiretos buscam os dados nos Data Marts (DMs) especializados; Analistas de desenvolvimento e manutenção do DW e DMs que abrangem os analistas de banco de dados e administradores de dados dos sistemas gerenciadores de banco de dados, sendo responsáveis pelos metadados, arquitetura de armazenamento e estrutura de dados afim de melhorar o desempenho das consultas; e Administradores de Dados que desempenham papel fundamental por ser um integrador dos ambientes transacional e dimensional, para garantia da qualidade e existência da integridade do DW, via acompanhamento e administração dos metadados entre os sistemas transacionais e seu processo de manutenção de extração, transformação e carga do DW. 24 5.2. PLANEJAMENTO DO PROJETO O plano de projeto proposto pode ser visualizado em quatro grandes partes, a saber: Ferramentas; Hardware; Recursos humanos; e Desenvolvimento da aplicação. Essa segmentação das atividades tem o objetivo de: Mitigar os riscos envolvidos com ciclo de desenvolvimento e implantação; Formalizar, por meio de uma boa documentação - ponto fundamental em EDW (Enterprise Data Warehouse), o elo entre design e construção; e Garantir a estabilidade da infra-estrutura. 5.2.1. Planejamento Na primeira etapa do projeto de Data Warehouse, é definido o escopo do projeto com ênfase no negócio. A definição da abordagem corporativa vai desde a escolha de um DW monolítico, grande, fortemente integrado em nível de projeto, do qual sairão os Data Marts posteriormente (abordagem top-down), até uma alternativa gradativa, onde os Data Marts evolutivos integrarão o DW na medida de suas implementações (abordagem bottom-up). Após a definição das áreas/assuntos do primeiro projeto, é feito o planejamento para a integração dos DM de forma gradativa, identificando os elos que possibilitarão as conexões futuras e integrações: 25 5.2.2. Plano do Processo de Desenvolvimento As atividades para o desenvolvimento de aplicações (cada produto a ser entregue) cobrem todas as tarefas - desde os levantamentos até o aceite final do produto pelo usuário-final, que, resumidamente, são as seguintes: Identificação da área de negócio; Estudo da cadeia de valores para identificação dos medidores/critérios de desempenho e a definição do escopo do produto; Modelagem dimensional preliminar do Data Mart (DM); Mapeamento de origem e destino dos dados; Definição dos processos de ETL; Construção dos processos de ETL; Construção das aplicações; Carga dos dados; e Teste, homologação e termo de aceite do produto. 5.2.3. Ciclo de vida do projeto O ciclo de vida para o projeto será dividido em seis fases na metodologia em espiral a saber: Levantamento – Fase em que são levantados os requisitos para o novo sistema ou para o sistema já existente. Neste ponto as necessidades são colhidas junto ao cliente; Design e Modelagem – Levantamento, documentação e Modelagem do DW a ser aprimorado a cada iteração; Codificação – Geração dos scripts ou dos programas de acordo com a evolução do projeto de DW; Testes e homologação – Testes unitários e homologação pelo cliente, feitos desde a documentação até o produto final; e Implantação – Implantação em ambiente produtivo para uso efetivo do DW. 26 5.2.4. Métodos de Desenvolvimento e ferramentas CASE O método para o levantamento de dados será baseado em pesquisa científica e método de desenvolvimento será o desenvolvimento em espiral, visto que as iterações da metodologia é atualmente muito utilizada como uma metodologia de desenvolvimento e que não contém somente informações sobre como construir Data Warehouse, mas também descreve como se usa um Data Warehouse. A metodologia de desenvolvimento em espiral descreve dinamicamente as atividades específicas, entregáveis das atividades e a ordem das atividades. O dinamismo da criação iterativa de um Data Warehouse, não são descritas, porém, é descrito um plano em três dimensões das migrações fragmentadas, enquanto que a metodologia de desenvolvimento espiral descreve os detalhes do plano em uma dimensão. Juntos, eles formam uma imagem completa do que é necessário para a construção do Data Warehouse. A ferramenta utilizada no desenvolvimento do projeto será o Enterprise Architec. 5.2.5. Ambiente de hardware para o desenvolvimento Para o desenvolvimento do Data Warehouse será necessário os seguintes hardwares: Servidor de banco de dados Oracle com alguma massa de dados considerável descaracterizado para geração dos cubos OLAP e fase de ETL; 2 Computadores IBM/PC ou compatível com 1 GB de RAM, velocidade de 1 Ghz e HD de 80 GB. 5.3. Placa Ethernet 10/100 Plano de Organização O plano de organização proposto para o desenvolvimento do Data Warehouse será dividida em duas equipes: Uma equipe de gerência do projeto e a equipe de Desenvolvimento do projeto, as quais são detalhadas a seguir. 5.3.1. Equipe de Gerência Será composto por um gerente de desenvolvimento de Data Warehouse, responsável por: 27 Coordenar os trabalhos; Auxiliar no desenvolvimento do plano; e Revisão final do plano. 5.3.2. Equipe de Desenvolvimento A equipe de desenvolvimento será composta por vários profissionais descritos abaixo Analistas responsáveis pela carga dos dados composto por programadores que precisam conhecer o mapeamento entre o DW e os sistemas operacionais além dos requisitos para filtragem e integração dos dados; Analistas de desenvolvimento e manutenção do DW e DMs que abrangem os analistas de banco de dados e administradores de dados dos sistemas gerenciadores de banco de dados, sendo responsáveis pelos metadados, arquitetura de armazenamento e estrutura de dados afim de melhorar o desempenho das consultas; e Administradores de Dados que desempenham papel fundamental por ser um integrador dos ambientes transacional e dimensional, para garantia da qualidade e existência da integridade do DW, via acompanhamento e administração dos metadados entre os sistemas transacionais e seu processo de manutenção de extração, transformação e carga do DW. 5.4. Três analistas de Banco de dados; Um administrador de dados; Plano de Acompanhamento Será descrito a seguir um plano de acompanhamento do desenvolvimento do Data Warehouse. 5.4.1. Marcos e Pontos de Controle Para a execução do projeto, serão pré-estabelecidos pontos de controles semanais para acompanhamento a fim de identificar falhas, cumprimento do cronograma de acordo com o estabelecido. 28 Cronograma Geral Fev Mar Abr Mai Jun Planejamento Levantamento das necessidades Modelagem dimensional Projeto físico dos banco de dados Projeto de ETL Desenvolvimento de aplicações Validação e Teste Treinamento Implantação. Tabela 1 – Cronograma geral do projeto 5.4.2. Métodos de acompanhamento e controle Por ser adotado o modelo de desenvolvimento em espiral, cada circuito completo da espiral resultará no desenvolvimento da especificação do produto até a conclusão do projeto. Em cada passagem pela região de planejamento resultará em ajustes do plano do projeto, onde o custo e o cronograma são ajustados com base no feedback derivado do cliente após a comunicação do andamento do projeto, o qual o gerente do projeto poderá ajustar o número planejado de iterações necessárias para completar o software. 29 5.4.3. Análise e Gerência de Riscos A seguir serão abordados os riscos identificados para o processo de desenvolvimento do Data Warehouse dos quais alguns problemas podem ocorrer durante o desenvolvimento do sistema DW. Carga de dados desnecessários dentro do DW; Confundir o projeto do banco de dados DW com o projeto de um sistema transacional 5.5. Plano de Documentação 5.5.1. Documentos do projeto Abaixo são descritos alguns documentos para para implementação de um DW. Tabela 2 – Documentos do projeto Nome Proposta de Descrição Especificação e Documento que descreve de forma Desenvolvimento do DW (plano de detalhada o escopo do projeto e o plano de projeto) trabalho do projeto de DW. Descrição da Modelagem do DW Documento que descreve, de forma detalhada, a modelagem do DW. Scripts do DW Documento que contém os scripts utilizados na geração do DW. Manual do Usuário do DW Documento que serve de referência para uso do software pelo cliente. 5.6. Plano de Recursos e Produtos A seguir serão descritos os planejamentos de recursos humanos, hardware e software necessários para o desenvolvimento do DW. 5.6.1. Recursos Humanos Tabela 3 – Quadro de funcionários necessários para desenvolvimento de um DW. Função Nome Formação Experiência 30 Formação superior em Analista de Sistemas Sistemas de Informação; André L. P Gonçalves Mestrado na área de analise de sistemas de Mínimo de 5 anos em Analise de Sistemas. informação. Formação superior em Administrador de Dados Sistemas de Informação. Sylvia S Shibata Modelagem de Mestrado ou especialização dados; banco de na área de gerencia de dados projeto. Superior completo na área Analista de Testes Sylvia S Shibata de tecnologia da informação. 5 anos em desenvolvmento e certificações na área de qualidade. Superior completo na área Analista de dados André L. P Gonçalves de tecnologia da Banco de dados informação. Analista de banco de dadosDBA Superior completo na área Sylvia S Shibata de tecnologia da Banco de dados informação. 31 5.6.2. Recursos de Hardware Os recursos de hardware necessários para o desenvolvimento do DW serão descritos a seguir: Recursos de Hardware Discriminação Unidade Quantidade de Medida Valor Índice de Valor Total Unitário Aplicação (R$) (%) (R$) Microcomputadores un. 04 1.800,00 100 7.200,00 Servidor un. 01 1.200,00 100 1.200,00 SUBTOTAL 8.400,00 5.6.3. Recursos de Software Os recursos de software necessários para o desenvolvimento do projeto são: Sistema Operacional – Windows XP Professional; Banco de Dados – Oracle Database Server 9i (versão 9.2.0.1); Software de ETL – Oracle Warehouse Builder (versão 10.1.0.4); Software Front-End – Oracle Discoverer Administrator (versão 10.1.2.1); e Sistema Operacional - Windows XP Professional ou Home Edition; e Software Front-End – Oracle Discoverer Desktop. Ferramenta Case - Enterprise Architect 7.1. 32 5.6.4. Recursos Financeiros Tabela 4 - Recursos Financeiros Recursos Financeiros Recursos Atividades Analista de Sistemas Gerente de Projeto Administrador de dados Administrador de dados DBA Analista de Testes Pessoal Total Serviços de Limpeza Terceiros Total Gastos não esperados Outros Total Total Fev mar Ano 2008 abr mai jun Total R$ 7.000 R$ 7.000 R$ 7.000 R$ 21.000 R$ 10.850 R$ 10.850 R$ 10.850 R$ 10.850 R$ 7.500 R$ 7.500 R$ 7.500 R$ 7.500 R$ 30.000 R$ 7.500 R$ 7.500 R$ 7.808 R$ 7.500 R$ 7.808 R$ 7.500 R$ 7.808 R$ 30.000 R$ 31.232 R$ 3.799 R$ 7.598 R$ 22.457 R$ 174.080 R$ 420 R$ 2.100 R$ 420 R$ 2.100 R$ 1.000 R$ 5.000 R$ 1.050 R$ 5.250 R$ 47.804 R$ 362.610 R$ 32.850 R$ 420 R$ 420 R$ 40.658 R$ 420 R$ 420 R$ 40.658 R$ 420 R$ 420 R$ 3.799 R$ 37.457 R$ 420 R$ 420 R$ 1.000 R$ 1.050 R$ 68.590 R$ 1.000 R$ 1.050 R$ 84.206 R$ 1.000 R$ 1.050 R$ 84.206 R$ 1.000 R$ 1.050 R$ 77.804 R$ 10.850 R$ 7.808 R$ 54.250 33 5.7. Cronograma A seguir será apresentado um cronograma resumido do projeto de Data Warehouse elaborado no MS Project. Figura 3 – Cronograma no MS Project. 5.8. Modelagem de Dados Segundo o Dicionário Aurélio, modelo significa Molde; Aquilo que serve como exemplo ou norma. Neste sentido, modelo de dados representa a essência de algo que deve ser criado. O modelo de dados utilizado em sistemas de Data Warehouse é essencialmente diferente da modelagem utilizada nos sistemas OLTP. Grande parte dos bancos de dados de sistemas transacionais das empresas atuais utiliza o Modelo Relacional. Data Warehouse utiliza o Modelo Multidimensional para organizar as informações. O porquê da utilização de dois modelos para estes dois ambientes está ligado intimamente à natureza de cada um dos mundos. Mundo Transacional versus Analítico. O ambiente OLTP está basicamente centrado em operações do dia-a-dia da empresa, tais como a inserção de um novo produto, a atualização do salário de um funcionário, a remoção de uma conta contábil, e outras manipulações no banco de dados. As operações de banco de dados para sistemas transacionais são 34 essencialmente select, insert, update, delete. Estas operações são bem pontuais e geralmente requerem pouca quantidade de processamento. Já no universo da análise o tipo de manipulação exercida sobre os dados é diferente. Quando um usuário DW deseja saber alguma informação, ele abre sua ferramenta preferida de análise e executa uma nova consulta. Esta pergunta na maioria das vezes requer a recuperação de milhares ou por vezes milhões de registros em um banco de dados. Neste caso a quantidade de processamento exigido é bem maior do que nos sistemas transacionais. As operações mais comuns em ambiente de análise são select e insert. Comumente um DW recebe uma carga inicial de dados e após esta etapa são feitas apenas cargas incrementais. A partir desta massa de dados seus usuários então podem realizar consultas (selects). A normalização é um processo que tem como objetivo a remoção da redundância de informações em bancos de dados além de garantir que a informação se relacione de forma precisa dentro deste ambiente. A normalização oferece um conjunto de normas (formas normais) que aconselham como o projetista deve montar a estrutura do banco. As formas normais servem como instrumento para que os mesmos dados não se repitam ao longo das tabelas do banco, causando a duplicação de dados de forma desnecessária e consequentemente afetando o desempenho do Sistema Gerenciador de Banco de Dados (SGBD). Neste contexto os sistemas OLTP por padrão apresentam estrutura bem mais normalizada quando comparados com os sistemas DW. Segundo Machado (2006) “a maioria das técnicas de modelagem concorda que a aplicação completa da teoria relacional não é apropriada para Data Warehouse.” e esta afirmação leva em consideração aspectos distintos dos dois ambientes tais como alto volume de dados dos sistemas DW. Apesar do DW utilizar técnicas de normalização em casos muito específicos, esta técnica é mais recomendada para sistemas OLTP. Técnicas de normalização aplicadas aos sistemas DW como um todo, apresentam um alto grau de ineficácia. Conclusivamente segundo Machado(2006) “Se mover o modelo de dados transacional para um banco de dados separado e inserir os dados históricos, chamando-o de Data Warehouse, não será possível trabalhar com estes dados, pois os usuários não conseguirão realizar consultas ad hoc por possuir uma complexidade muito alta e pelo fato do modelo transacional respeitar a terceira 35 forma normal, não respondendo com rapidez a questões de apoio à decisão por requererem de cinco a mais joins de tabelas.” Figura 4 – Exemplo de Modelo Relacional [DSPACE,2008] Figura 5 – Exemplo de Esquema de Modelo Multidimensional [DEVMEDIA, 2008] 36 Figura 6 – Exemplo de Modelo Multidimensional.[MICROSOFT, 2008] 5.8.1. Modelagem Multidimensional “A modelagem multidimensional é uma técnica de concepção e visualização de um modelo de dados de um conjunto de medidas que descrevem aspectos comuns de negócios. É utilizada especialmente para sumarizar e reestruturar dados e apresentá-los em visões que suportem a análise dos valores desses dados.” [Machado,2006] Devido ao grande volume de dados e a complexidade envolvida nas consultas de Data Warehouse, o modelo multidimensional busca organizar as informações de forma a facilitar o entendimento do usuário final e de forma a agilizar o retorno das consultas. Entre os elementos básicos da modelagem multidimensional os Fatos, Dimensões e as Medidas são de suma importância par ao entendimento do modelo. 37 Conceitualmente os fatos, dimensões e medidas são determinados segundo Machado(2005) como: Fatos – são “elementos que representam um item, uma transação ou um evento de negócio e é utilizado para analisar o processo de negócio de uma empresa” e acrescenta que “a característica básica de um fato é que ele é representado por valores numéricos...”; Dimensões – são denominadas como “elementos que participam de um fato e são as possíveis formas de visualizar os dados, ou seja, são os ‘por’ dos dados: ‘por mês’, ‘por país’, ‘por produto’, ‘por região’, entre outros.”; e Medidas – “são os atributos numéricos que representa um fato, a performance de um indicador de negócios relativo às dimensões que participam deste fato”. Com isso pode-se dizer que a relação essencial entre Fatos, Medidas e Dimensões é bem simples: Os Fatos são os elementos quantificadores (valores) enquanto as Dimensões são os elementos qualificadores (descrições) enquanto as medidas são atributos numéricos que representam um fato. Fisicamente, dentro do modelo multidimensional os fatos ficam armazenados em tabelas chamadas “Tabelas de Fato” e as dimensões do negócio são armazenadas respectivamente nas “Tabelas de Dimensão”. Os fatos estão diretamente relacionados às dimensões, pois necessitam destas “descrições” para que se tenha uma análise com sentido completo. Outra característica física relacionada a estrutura de tabelas, é que as tabelas de fato carregam os identificadores das dimensões (chaves estrangeiras) como forma de interligar estas duas entidades. Abaixo um exemplo típico do modelo multidimensional. 38 Figura 7 – Exemplo de Estrutura Multidimensional [DEVMEDIA, 2008] Observa-se que para a tabela de fatos acima existe um conjunto de dimensões ligadas a ela. Isso justamente porque os fatos necessitam ser descritos de forma que se empregue semântica nas análises. Inseridas no fato existem medidas que são determinadas pela combinação das dimensões que participam de um fato e estão localizadas como atributos de um fato. As dimensões vão qualificar ou descrever os fatos. Um exemplo de uma das análises que pode ser feita a partir da estrutura multidimensional mostrada na figura é quando um gestor gostaria de obter a seguinte informação ilustrativa: Visualizar o valor em dólares (medida) das vendas (fato vendas) realizadas no mês de Dezembro de 2006/2007 e 2008 (dimensão tempo) dos aparelhos de telefone celular (dimensão produto) que foram vendidas em lojas de São Paulo, Brasília e Rio de Janeiro (dimensão loja). Este exemplo ilustra a forma como estes vários elementos podem se relacionar dentro da estrutura. O valor em dólares representa a medida, que é um atributo da tabela de fatos. Este atributo como o próprio conceito cita, armazena o valor numérico em questão. Já as dimensões representam as perspectivas sob qual aquela informação pode ser vista, e que no caso da figura acima são as dimensões de tempo, produto e loja. Em outras palavras, a mesma medida pode ser analisada somente sob o ponto de vista (Somente Por mês, ou Somente Por Loja, ou Somente Por Produto) ou pode ser combinada com várias outras perspectivas dimensionais. Na modelagem multidimensional, os usuários conseguem entender melhor o modelo de dados, pois muitas vezes estes navegam com facilidade pela estrutura de 39 dados resultante apesar de exigir um nível de abstração maior, comumente utilizado em modelo de dados transacionais. Ao invés de uma estrutura altamente complexa derivada da modelagem Entidade Relacionamento, a multidimensional mostra-se muito mais acessível em termos de visualização e praticidade, além de ser altamente adequada a ambientes de análise. O exemplo acima poderia muito bem representar um modelo lógico de alto nível em alguma situação prática de implementação. Durante a criação e visualização do modelo físico (ou de implementação), os relacionamentos deste modelo são bem mais intuitivos que os do modelo E/R. Neste contexto, existem várias formas de modelagem multidimensional. Conforme Thomas H. Harrison[HAR98] existem cinco opções de modelos multidimensionais. Cada opção tem um conjunto de vantagens e considerações: Estrela (Star Schema); Snowflake (Flocos de neve); Estrela Parcial; Tabela Fato Particionada; e Tabela dimensional. Apesar das várias opções o intuito desta pesquisa é mostrar as características dos dois principais modelos: Modelo Estrela e do Snowflake. Estes dois são os modelos mais comumente utilizados em implementações práticas. 5.8.2. Modelo Star Schema (Modelo Estrela) É o modelo mais utilizado dentro do universo multidimensional e ao contrário do modelo relacional este possui sua estrutura desnormalizada. “Sua composição típica possuiu uma grande entidade central denominado fato (fact table) e um conjunto de entidades menores denominadas dimensões (dimension table), arranjadas ao redor dessa entidade central, formando uma estrela.” [Machado, 2006] Entre as principais características do modelo a mais marcante e a que dá o nome ao modelo é a questão da existência de uma única tabela fato histórica simples ligada às dimensões por meio de chaves estrangeiras. Com uma única 40 tabela de fatos cercada de um conjunto de dimensões, este modelo lembra fisicamente o formato de uma estrela. Este histórico do fato é guardado devido as cargas incrementais realizadas nestas tabelas. Aliando conceito e prática, o DW tem o objetivo de apresentar dados históricos para análise e esta característica de cargas incrementais é a que representa claramente esta marca. As tabelas de dimensão também podem guardar histórico e para isso devem atualizar o registro antigo e fazer utilização de flags (bandeiras) que indicam que o registro antigo consta na tabela somente para fins históricos. Nos sistemas de Data Warehouse as tabelas de fatos são em geral bem maiores que as tabelas de dimensão. Ainda que possam existir tabelas de dimensão realmente grandes as tabelas de fato com freqüência atingem uma quantidade de registros muito grande, chegando a casa dos milhões. Para o caso de tabelas DW muito grandes existem soluções que podem ser empregadas para melhorar o desempenho de consultas de usuários finais. Entre essas técnicas estão inclusos o particionamento de tabelas e a sumarização de dados. O particionamento consiste em dividir logicamente as tabelas em porções menores de modo que as consultas sejam direcionadas diretamente àquela porção em que está contido o dado desejado. É como se uma grande tabela se tornasse várias outras pequenas. Já a sumarização ou agregação, consiste em agrupar registros de forma que o resultado final reflita um sumário contendo um número menor de linhas, mas que reflita a mesma realidade. A parte das soluções, este tipo de modelo é o mais apropriado para a construção de um Data Warehouse, pois melhora bastante a performance, diminuindo o número de ligações entre as tabelas. Além disso, o uso de uma tabela única por dimensão e de uma tabela fato simples por categoria assegura que definições dos metadados podem ser usadas novamente, independentemente do nível de sumário ou fatos. A performance também é aumentada usando uma única declaração SQL (Structured Query Language) para cada consulta – independente do conteúdo do relatório. A desvantagem consiste na grande replicação de dados nas dimensões desnormalizadas. Dependendo do banco de dados utilizado e do espaço reservado 41 para o armazenamento será necessário fazer uma análise do volume estimado para a criação do DW. 5.8.3. Modelo Snowflake (Floco de Neve) Os modelos Snowflake empregam uma combinação da normalização da base de dados para manter a integridade e reduzir os dados redundantes e a desnormalização para obter maior desempenho. O modelo é mais fácil de ser compreendido pelo usuário final, por esse motivo é muito utilizado como modelo lógico, sendo utilizados outros modelos como modelo físico. As dimensões são quebradas conforme os níveis de hierarquia apresentados fazendo ligações entre si. Por exemplo, uma dimensão tempo contendo ano, mês e dia será composta por três tabelas normalizadas, uma para cada atributo, passando a chave estrangeira da tabela ano para mês e da tabela mês para dia. Neste tipo de modelo, tem-se como principal vantagem, a integridade dos dados. Também diminui a replicação dos dados, ocupando menos espaço em disco. Contudo, como em um Data Warehouse o objetivo é agilizar as consultas, é importante considerar a baixa performance apresentada por este tipo de modelo. 5.9. Arquitetura Segundo o SEI (Software Engineering Institute), "A arquitetura de software de um programa ou de um sistema computacional é a estrutura ou estruturas do sistema, que abrangem elementos de software, as propriedades visíveis destes elementos, e as relações entre eles". Sintetizando a idéia, o termo arquitetura se refere a um conjunto de estruturas conhecidas (como programas ou módulos isolados) que, estruturadas de forma lógica e consistente, podem prover serviços ou funcionalidades umas para as outras de modo a atingir o objetivo de resolver um problema que o sistema como um todo se propõe a solucionar. O projeto da arquitetura de um sistema é de vital importância e muitas vezes está diretamente relacionado com o sucesso de um produto de software. É na arquitetura que se define a organização do sistema e como as estruturas trocarão mensagens ou proverão serviços a outros elementos. Com base nisto, Filho (2004) comenta que este provimento de serviços é desenhado diretamente no projeto arquitetural, que se for mal definido, pode afetar diretamente os atributos de 42 qualidade ou os requisitos não funcionais de um sistema tais como desempenho, portabilidade, confiabilidade, disponibilidade, entre outros. A partir deste cenário, entende-se que a escolha e a definição da arquitetura para um sistema de Data Warehouse é fundamental para que se consiga responder às perguntas que este sistema de apoio a decisão se propõe a esclarecer. Além disso, por ser um sistema que apoio gerencial, os fatores de qualidade citados podem ser cruciais para o sucesso neste tipo de sistema. Segundo Machado (2006), a escolha da arquitetura do projeto de DW, está baseado em fatores relacionados à infra-estrutura, ambiente do negócio, escopo, tempo que se tem para se realizar o projeto e a capacitação dos recursos humanos disponibilizados e projetados para investimento. Neste sentido, é necessário que a gerência do projeto tenha em mãos estas informações ao planejar a arquitetura destes sistemas. 5.9.1. Conceito Para que um Data Warehouse seja útil, ele deve ser capaz de responder a consultas avançadas de maneira rápida, sem deixar de mostrar detalhes relevantes às respostas. O estudo de uma arquitetura permite compreender como o DW faz para armazenar, integrar, comunicar, processar e apresentar os dados que os usuários utilizarão em suas decisões. Em [Oliveira,2002], o termo arquitetura Data Warehouse é definido como um conjunto de estruturas que servem de base para o desenvolvimento do projeto de um sistema ou produto. Uma arquitetura de dados tem como função primordial a identificação e o entendimento de como os dados se movimentam e são organizados dentro de um sistema e de como ele será empregado para o fim a que se destina. Neste tipo de sistema há vários aspectos que devem ser considerados durante o projeto de arquitetura. Alguns exemplos que podem ser citados é a maneira como a empresa enxerga o Data Warehouse, a forma como os dados são armazenados fisicamente no banco de dados, o volume de informação que este sistema deverá tratar. O último aspecto, por exemplo, é de suma importância para a previsão de recursos que serão necessários no projeto. Neste sentido, os aspectos 43 citados devem ser conhecidos amplamente antes da iniciação de um projeto de arquitetura. Estas decisões devem ser tomadas com base nos recursos globais que o projeto disporá, tais como recursos de infra-estrutura, humanos, orçamentários, tempo, entre outros. Além destes recursos, há uma série de variáveis que devem ser levadas em consideração e que são importantes para escolha da melhor arquitetura para o projeto mencionado. Para entender melhor as principais arquiteturas relacionadas à tecnologia DW, serão apresentadas a seguir, três abordagens consideradas as mais comumente utilizadas sobre o tema segundo Machado (2006). Entretanto, apesar de existirem outras arquiteturas disponíveis para a implementação destes sistemas, serão objetos de estudo deste trabalho, a Arquitetura Global, Arquitetura de Data Mart Independente e a Arquitetura de Data Mart Integrado. 5.9.2. Arquitetura Global A arquitetura global tem um foco corporativo. Segundo Machado (2006), esta arquitetura é aquela onde o Data Warehouse suporta as necessidades da empresa como um todo ou da maior parte destas necessidades. Isso significa que vários representantes dos sistemas transacionais daquela corporação terão seus dados transformados e repassados ao DW por meio de processos especiais. Como exemplo de representantes de sistemas transacionais, pode-se ilustrar o seguinte cenário em que uma empresa possui seis departamentos dentre os quais estão o Departamento de Recursos Humanos, Financeiro, Operacional, Jurídico, Comercial e de Tecnologia. Para o caso exposto, é dito que esta empresa possui um DW implementado de forma global, quando grande parte dos departamentos disponibiliza informações de seus sistemas no DW. Neste sentido o DW é implantado em toda empresa e não somente em um único departamento. O fato de grande parte de departamentos estarem contemplados no DW, significa uma maior abrangência de informações sobre questões operacionais da empresa. A vantagem deste tipo de arquitetura é a possibilidade de cruzamento de dados de vários departamentos de forma integrada, ou seja, quando se deseja obter informações sobre diferentes departamentos, não existe a necessidade de “garimpar” estas informações em diferentes fontes. A partir de uma arquitetura global 44 é possível coletar respostas em um repositório global, em um único momento. Basta que para isso estas perguntas sejam montadas antecipadamente no ambiente de consultas DW. Esta integração, em outras palavras significa maior visão da corporação. Em Inmon (1997) esta integração dados fontes diversas é comentada por ele como “Em todo ambiente, informações operacionais não integrados são complexos e difíceis” e para isso, os sistemas de DW têm suas próprias técnicas para lidarem com isso. Quando bem projetado, um sistema de DW consegue resolver a questão de integração de informações utilizando este tipo de arquitetura. Por contemplar maior parte da companhia, esta arquitetura possui obviamente um custo de implementação mais elevado. A quantidade de recursos necessários nas fases de implementação será maior simplesmente pelo fato desta arquitetura cobrir um escopo mais abrangente da empresa. Para este tipo de implementação geralmente existe um departamento de tecnologia que é responsável pela manutenção deste Data Warehouse. Este é um fato relevante, pois a manutenção destes sistemas será centralizada, evitando problemas de inconsistências ou de múltiplas interpretações. Entretanto este conceito não diz respeito a distribuição física do DW, ou seja, não existe relação do conceito elucidado acima com o fato do sistema ser fisicamente centralizado ou distribuído em locais diferentes. Por fim é importante observar que este tipo de arquitetura possui uma complexidade alta. 5.9.3. Arquitetura Data Mart Independente Arquitetura de Data Mart independente é voltada para grupos ou departamentos específicos, que desejam obter informações sobre suas próprias necessidades de forma isolada. Este tipo de arquitetura é totalmente distinto da arquitetura global e seu escopo são as próprias necessidades do departamento. As informações contidas neste DW independente não se integrarão com as outras áreas da empresa. Devido ao escopo mais limitado e são mais identificados com grupos de necessidades dos usuários, os Data Marts são construídos em esforço/time concentrado. O principal objetivo de implantação deste tipo de arquitetura surge da necessidade de responder a perguntas específicas de um determinado grupo de 45 usuários. Em alguns casos, ela é utilizada para fins demonstrativos por fornecedores de software como prova de conceito ou para apresentar as principais características do Data Warehouse. Neste caso, os dados são extraídos dos sistemas operacionais internos do departamento, com o auxílio da área de tecnologia da informação e carregados em um repositório de dados. Em muitos casos não existe uma manutenção do departamento de tecnologia para estes Data Marts, ficando esta completamente por sua área responsável. O custo de implementação de um Data Mart isolado é mais baixo do que a implementação de uma arquitetura global ou de um Data Mart integrado pelo fato de possuir um escopo menor que o escopo dos outros dois. Geralmente é reunido um pequeno conjunto de profissionais que serão responsáveis pela implantação daquele escopo com base nas necessidades do departamento. 5.9.4. Arquitetura Data Mart Integrado Esta arquitetura é caracterizada pela implementação separada por departamento do seu próprio Data Mart e posterior interconexão provendo uma visão corporativa maior das informações. Os Data Marts integrados mesclam características da arquitetura Global, pelo fato de sua alta integração de informações, e também semelhanças da arquitetura Data Mart Independente onde cada departamento implementa seu DM separadamente. A vantagem de utilização desta arquitetura é a maior distribuição do trabalho e de recursos entre departamentos para a consecução do desenvolvimento. Neste sentido, o custo de administração este tipo de ambiente é mais elevado. Eventualmente alguns departamentos podem compartilhar das mesmas informações e esta arquitetura provê suporte a este tipo de compartilhamento. O lado positivo dessa opção é que se aumenta a capacidade e qualidade de visão corporativa de informações. A responsabilidade pela manutenção deste ambiente é delegada ao departamento de Tecnologia, e a atuação deste nos processos de controle é essencial para integrar o controle e a administração dos Data Marts. 46 5.10. Abordagem de Implementação Em projetos de Data Warehouse podem ser utilizados vários tipos de abordagem de implementação. Entretanto existem dois tipos que são considerados segundo Machado (2006), substancialmente importantes: Implementação Top-Down e Botton-Up. Esta definição está diretamente relacionada a como sistema será desenvolvido. Se o desenvolvimento for gradativo, situação na qual os Data Marts evolutivos integrarão o DW na medida em que forem implementados, tem-se uma abordagem Botton-Up. Quando se opta por uma implementação que engloba o desenvolvimento do sistema todo e de uma só vez para posterior formação de Data Marts, ou implementação monolítica tem-se uma implementação Top-Down. 5.10.1. Top-Down Esta abordagem é muito utilizada como padrão inicial do conceito de DW. Esta abordagem requer um planejamento e definições conceituais de tecnologia completos antes de se iniciar o projeto. Isto se dá porque o sistema será construído de forma monolítica, ou seja, o DW será um construído de forma contínua em um só bloco, e depois disso servirá de base para a carga de Data Marts. Elucidando o conceito acima, nessa arquitetura o processo se inicia com a extração, a transformação e a integração das informações dos sistemas operativos e dados externos para uma área de armazenagem intermediária ou até diretamente das fontes operacionais. A seguir, os dados são transferidos para o DW. Figura 8 – Abordagem de implementação Top-Down [MACHADO, 2007] 47 A escolha da abordagem deve levar em consideração as vantagens e desvantagens como se observa a seguir: Vantagens Herança de arquitetura - Os Data Marts utilizarão a arquitetura e dados do DW monolítico; Visão de empreendimento - Proporciona uma concentração de todos os negócios da empresa; Repositório de metadados centralizado e simples - Permite manutenções mais simples do que aquelas realizadas em múltiplos repositórios; e Controle e centralização das regras - Garante a existência de um único conjunto de aplicações para extração, limpeza e integração dos dados, além de processos centralizados de manutenção e monitoração. Desvantagens Implementação é muito longa - Nessa abordagem e o desenvolvimento é feito por áreas de assuntos tais como vendas, finanças, recursos humanos, entre outros. Neste sentido, são necessários em média quinze ou mais meses para que a primeira área de assunto esteja em produção; Alta taxa de risco - Não existem garantias para o investimento neste tipo de ambiente; Heranças de cruzamentos funcionais – Se trata de um fator negativo, pois é necessária uma equipe de desenvolvedores e usuários finais altamente capacitados, para avaliar as informações e consultas que garantam a empresa habilidade para sobreviver e prosperar; e Expectativas relacionadas ao ambiente – Esta questão pode gerar insatisfação justamente pelo fator demora de implementação, pois isso pode induzir expectativas nos usuários. 5.10.2. Botton-Up O fato da implementação Top-Down ser politicamente difícil, ser definida como cara e demorada, e com ROI (Return of Investment) demorado pode levar a 48 utilização da abordagem de implementação Botton-Up e é bem aceita pelos executivos pelo fato de possuir um ROI rápido. Para isso há de se fazer uma análise detalhada das vantagens e desvantagens de cada implementação para que seja possível calcular qual será a mais aplicável e vantajosa em um determinado cenário. Neste caso a implementação permite que o planejamento e o desenho dos Data Marts possam ser realizados sem esperar que seja definida uma infra-estrutura corporativa para o DW. A infra-estrutura existirá e será implementada conforme as Datas Marts forem sendo desenvolvidos. Elucidando o conceito da abordagem Botton-Up e o seu fluxo, o processo se inicia com a extração, a transformação e a integração das informações dos sistemas operativos e dados externos diretamente para um DM específico e lá ficam armazenados. No contexto empresarial pode existir diversos Data Marts relacionados com os assuntos da empresa (tais como RH, Financeiro, Operacional). Após a construção destes DMs eles serão integrados para a composição do Data Warehouse de forma única. Figura 9 – Abordagem de implementação Botton-Up [MACHADO, 2007] Vantagens Implementação rápida - Esta é altamente direcionada, permitindo um desenvolvimento rápido; 49 Retorno rápido - Permite que o produto mostre rapidamente seu valor e servindo como base para investimento adicional com nível mais elevado de confiança; Manutenção do enfoque da equipe - Em equipes fixas e subdivididas por assuntos é mais fácil de manter um foco definido do que quando se tem uma implementação; e Herança Incremental - Na medida em que obriga a entrega de recursos de informação passo a passo. Isso permite à equipe crescer e aprender, reduzindo os riscos. Desvantagens Desafio de possuir a visão de empreendimento - De modo a manter um rígido controle do negócio como um todo pois requer maior trabalho ao extrair e combinar as fontes individuais do que utilizar um DW; e Administrar e coordenar múltiplas equipes e iniciativas - Normalmente este tipo de arquitetura emprega o desenvolvimento de DM em paralelo. Isso pode conduzir a uma rígida administração, tentando coordenar os esforços e recursos das múltiplas equipes, especialmente nas áreas de regras e semântica empresariais. 5.11. Extração, Transformação e Carga Segundo Oliveira (2002) a fase de ETL (Extração, Transformação e Carga) é composta por um conjunto de processos que têm como objetivo coletar as informações que serão utilizadas no sistema Data Warehouse a partir do ambiente tradicional (OLTP). De maneira geral, seleciona-se as informações essenciais do sistema OLTP, realiza transformações e limpeza nos mesmos e logo após as carrega no ambiente DW. Conforme o autor citado, esta fase é considerada uma das etapas mais críticas da construção de um DW. Ela envolve a fase de extração dos dados dos sistemas transacionais ou de outras fontes tais como flat files (arquivos texto), planilhas; a fase de filtragem que consiste em garantir a integridade dos dados e a fase de carga dos dados no DW. 50 Esta fase constitui-se essencialmente em observar os requisitos dos usuários finais e reproduzir esta especificação na forma de mapeamentos. Este mapeamento deve dizer onde as informações solicitadas estarão presentes dentro dos sistemas fonte, quais são as regras de negócio que deverão ser aplicadas e qual deve ser o destino destes dados no DW. Durante a movimentação dos dados entre os sistemas transacionais e o DW tem-se a impressão que nada além de simples extrações de dados de um local para outro está ocorrendo. Em função disto, muitas vezes as empresas acabam perdendo tempo e dinheiro por ter de refazer toda a parte de extração. O desafio por trás disso não é técnico e sim gerencial, pois não é fácil automatizar estas tarefas. Especialistas afirmam que identificar fontes, definir regras de transformação e detectar e resolver questões de qualidade e integração consomem cerca de 80% do tempo de projeto. Além disso, existem outros fatores influentes na estimativa de tempo para estas tarefas, tais como o grande número de fontes e a qualidade dos metadados mantidos sobre estas fontes. 5.11.1. Melhores Práticas Segundo Kimball (1998) são necessários onze etapas para extração dos dados de produção para o DW que são consideradas melhores práticas no desenvolvimento deste tipo de sistema. As etapas são as seguintes: 1. Extração primária (Ler o formato legado); 2. Identificação dos registros modificados; 3. Generalização de chaves para dimensões e modificação; 4. Transformação em imagens de registro de carga; 5. Migração do sistema legado para o sistema de Data Warehouse; 6. Classificação e construção de agregados; 7. Generalização de chaves para agregados; 8. Carregamento; 9. Processamento de exceções; 51 10. Garantia de qualidade; e 11. Publicação. O processo de carga dos dados passa por algumas etapas: extração (envolve os passos 1, 2 e 3), transformação (passos 4, 5, 6 e 7), carga (passos 8 e 9) propriamente dita e homologação (passos 10 e 11). 5.11.2. Extração O processo de Extração de Dados de um ambiente de produção transacional para o Data Warehouse muitas vezes requer adaptação às tecnologias já existentes nestes sistemas transacionais. O fato é que os sistemas transacionais podem apresentar-se implementados utilizando diversas tecnologias de gerenciamento de banco de dados. Um exemplo desta heterogeneidade é o fato que muitas vezes, os dados são transferidos de um banco de dados hierárquico, como o Adabas, para uma nova tecnologia de SGBD para Data Warehouse, tal como o Oracle. Não menos comum é a utilização de arquivos texto (flat files) que utilizam algum símbolo textual específico como delimitador de colunas e que são utilizados como fonte para o DW. Estes flat files comumente são gerados a partir dos dados de um repositório especifico e disponibilizados para que sejam usados como fonte para os processos de Extração DW. Segundo Inmon (1997) algumas funcionalidades são necessárias durante a fase de extração dos dados: A seleção de dados do ambiente operacional pode ser muito complexa, pois muitas vezes é necessário selecionar vários campos de um sistema operacional para compor um único campo no Data Warehouse; Os dados são re-formatados. Por exemplo: um campo data do sistema operacional do tipo DD/MM/AAAA pode ser passado para o outro sistema do tipo ano e mês como AAAAMM; Podem existir várias fontes de dados diferentes para compor uma informação. Ela pode ser oriunda de uma planilha Excel enquanto uma outra que serviria para compor um mesmo fato viria de um arquivo texto; 52 Quando há vários arquivos de entrada, a escolha das chaves devem ser feitas antes que os arquivos sejam intercalados. Isso significa que se diferentes estruturas de chaves são usadas nos diferentes arquivos de entrada, então se deve optar por apenas uma dessas estruturas; Os arquivos devem ser gerados obedecendo a mesma ordem das colunas estipuladas no ambiente de Data Warehouse; Pode haver vários resultados. Dados podem ser produzidos em diferentes níveis de resumo pelo mesmo programa de criação do Data Warehouse; Valores padrões devem ser fornecidos. Às vezes pode existir um campo no Data Warehouse que não possui fonte de dados, então a solução é definir um valor padrão para estes campos; Data Warehouse espelha as informações históricas necessárias, enquanto o ambiente operacional focaliza as informações correntes; e Volumes massivos de entrada devem ser levados em consideração. Quando há somente uma pequena quantidade de dados de entrada, diversas opções de projetos podem ser conciliadas. Mas quando há muitos registros de entrada, opções especiais de projeto (como cargas em paralelo ou leituras em paralelo) talvez tenham que ser empregadas. 5.11.3. Transformação Seguindo o fluxo ETL existem os processos de transformação. Após a etapa de Extração dos dados é necessária uma definição de qual deverá ser o formato de armazenamento dos dados no Data Warehouse. Existe a necessidade de filtrar os dados para colocá-los no padrão definido. Esta etapa tem como um dos objetivos padronizar a informação vinda de diversas fontes de dados de forma a apresentar os dados de maneira homogênea. O objetivo disso é evitar várias interpretações que podem ser causadas pela existência da mesma informação com um formato diferente. Este passo garante que informações cruzadas de vários sistemas tenham um sentido único. Um exemplo simplório desta padronização se dá quando se considera um sistema operacional onde existe o campo de sexo sendo preenchido como “F” ou “M” e em outro sistema tem-se este mesmo dado está sendo preenchido como “0” 53 ou “1”. É, justamente, nesta hora que entra a parte de transformação, que remodela todos estes dados para o padrão definido. Outro objetivo da etapa é o de fazer com que as regras de negócio sejam carregadas no DW. O objetivo disso é fazer com o que o DW possa refletir com fidelidade a realidade dos processos da empresa. Exemplo deste cenário é quando em um sistema transacional se tem uma informação para um cálculo contábil de desconto de determinado imposto sobre o salário de um empregado. Para o caso desta regra de negócio específica, é necessário fazer uma transformação matemática envolvendo cinco campos do banco de dados, utilizando somas, percentuais, divisões. Para que esta informação seja reproduzida de maneira correta dentro do DW é preciso que esta regra de negócio seja implementada corretamente durante o processo de transformação de dados. Por fim o processo de transformação de dados é responsável por implementar rotinas que tornem os dados homogêneos à medida que estes dados são filtrados e limpos e também é responsável pela implementação da lógica do negócio para que os processos dos sistemas transacionais sejam refletidos dentro do Data Warehouse. 5.11.4. Carga Esta se trata da ultima etapa do processo, onde os registros são efetivamente gravados no banco de dados DW. Há algumas maneiras em que a informação pode ser inserida no DW, por meio de um registro por vez, por meio de uma interface de linguagem, ou em massa com a ajuda de um utilitário. Em geral, a carga de dados por meio de um utilitário é mais rápida. Em alguns casos, convém declarar a parte de índices após toda a carga inicial do Data Warehouse. A carga também pode ser incremental ou total. A carga incremental normalmente é feita para tabelas fatos e a carga por cima dos dados é feita em tabelas dimensões onde o analista terá que apagar os dados existentes e incluí-los novamente. Este processo de carga incremental para as dimensões normalmente acontece devido os usuários já estarem com o arquivo pronto, que foi gerado a partir 54 da extração dos operacionais. No entanto, se a modificação for apenas de inclusão de um registro, deve ser feito diretamente no Data Warehouse. Caso a carga não seja possível, por problemas de obtenção dos dados necessários, o Data Warehouse se tornará inutilizável. 5.11.5. Ferramentas Segundo Oliveira (2002), existem algumas categorias de ferramentas ETL conforme descrito na figura a seguir: 55 Figura 10 – Tabela de ferramentas segundo [OLIVEIRA, 2002] 5.12. OLAP Online Analiytical Processing (OLAP) é um conjunto de ferramentas que possibilitam a análise e exploração das informações contidas em um Data 56 Warehouse de maneira multidimensional ao invés de tabelas representando um conjunto de tecnologias projetadas para suportar análise e consultas ad hoc que segundo Inmon (1994) “são consultas com acesso casual único e tratamento dos dados segundo parâmetros nunca antes utilizados, geralmente executado de forma iterativa e heurística”. Segundo Machado (2006) este tipo de ferramenta permite ao usuário analisar o porquê dos resultados obtidos. Atualmente existe disponível no mercado uma variedade dessas ferramentas com diferentes abordagens. Estas ferramentas basicamente têm o papel de fazer interface entre o usuário e o sistema gerenciador de banco de dados. Entende-se por usuário tanto o desenvolvedor que é o profissional responsável pela criação das consultas, quanto os usuários finais os quais a solução é direcionada. Elas têm a habilidade de simplificar o processo de desenvolvimento, o gerenciamento de metadados, o processo de consulta dos usuários, entre outros. 5.12.1. Características das ferramentas OLAP Por meio do modelo multidimensional é possível fazer uma grande diversidade de combinações que possibilitam a extração das informações conforme necessidade. Estas informações ajudam analistas e executivos a sintetizarem informações sobre a empresa, utilizando comparações, visões personalizadas, análise histórica e projeção de dados em vários cenários de "e se..." entre outras funções estatísticas e financeiras por ser mais natural, fácil e intuitiva, permitindo a visão em diferentes perspectivas dos negócios da empresa, fazendo com que o analista seja um explorador da informação. Sistemas OLAP são implementados para ambientes multi usuário, arquitetura cliente-servidor oferecendo respostas rápidas e consistentes às consultas iterativas executadas pelos analistas, independente do tamanho e complexidade do banco de dados. Segundo Machado (2007) a arquitetura OLAP possui três componentes principais: Um modelo de negócios para análises interativas, implementado numa linguagem gráfica que permite diversas visões e níveis de detalhes dos dados; 57 Um motor OLAP para processar consultas multidimensionais contra o dado-alvo; e Um mecanismo para armazenar os dados a serem analisados. A base de dados usada define se o pacote é um ROLAP, que interfaceia(?) com um banco de dados relacional de mercado, ou um MOLAP, que se liga a um servidor OLAP, usando um banco de dados multidimensional e dedicado. Machado (2006) diferencia as variações de ferramentas OLAP como segue observado a seguir: ROLAP (Relational OLAP) – é um produto relacional OLAP que possibilita a análise multidimensional de dados, agrega e armazena dados em um SGBDR – Sistema Gerenciador de Banco de Dados Relacional. O processamento multidimensional pode ser feito dentro do SGBDR, ou na camada de servidor ou no cliente; MOLAP (Multidimensional OLAP) – é um banco de dados multidimensional. Um produto que pode armazenar e processar dados multidimensionais; HOLAP (Hibrid OLAP) – é um produto de OLAP híbrido que pode prover análise multidimensional e simultaneamente de dados armazenados em um banco de dados multidimensional e em um banco de dados relacional; e DOLAP (Desktop OLAP) – ferramentas OLAP voltadas para computadores pessoais. Este tipo de ferramenta vem sendo mais empregado nos bancos de dados individuais para análises mais específicas do que as realizadas no DM. Os dados, normalmente, são carregados a partir de DM. 5.12.2. Operações Básicas OLAP As operações OLAP são executadas basicamente por aplicativos para usuários finais que possuem acesso de leitura das bases de dados a fim de extraírem e manipularem o layout das informações para seus relatórios de forma que estes respondam às suas questões gerenciais. 58 Essas ferramentas surgiram juntamente com os sistemas de apoio à decisão (DSS – Decision Suport System) para fazerem consulta e análise dos Data Warehouses e Data Marts, apoiando o usuário final nas suas atividades, tais como slice and dice e drill, onde as operações drill utilizam a navegação nos dados, modificando o nível da granularidade da consulta e para navegar nas dimensões são utilizados as operações de slice and dice. Segundo Machado(2007) as principais operações OLAP são: Drill Down e Roll Up - método de exploração de dados detalhados que foram usados na criação de um nível sumarizado de dados ao longo dos níveis hierárquicos de uma dimensão. O Drill Down ocorre quando o usuário aumenta o nível de detalhe da informação, diminuindo o nível de granularidade; e Drill Up ou Roll Up – é o inverso, ocorrendo quando o usuário aumenta o nível de granularidade, diminuindo o nível de detalhamento da informação. Com a capacidade do drill o usuário pode navegar do mais alto nível até o nível mais detalhado. Já com a capacidade de roll up o usuário pode navegar no nível de detalhe até o mais alto nível de sumarização dos dados. Os quais os níveis de aprofundamento dependem da granularidade dos dados existentes no Data Warehouse; Drill Across - ocorre quando o usuário pula de um nível intermediário dentro de uma mesma dimensão, desde que ambos tenham algumas dimensões em conformidade, ou seja, as mesmas dimensões estão compartilhadas; Drill Through - está relacionado com o fato de se desejar uma informação num nível de detalhe menor do que aquele colocado na tabela fato e permitido pela sua granularidade. Em um Data Mart onde trabalha com informações sumarizadas no nível de Linha de Produtos e deseja baixar o nível, onde este nível menor é encontrado no Data Warehouse (havendo compatibilidade entre os dois ambientes). Neste caso, a ferramenta OLAP irá efetuar um Drill Through e buscar esta informação no ambiente de DW; e 59 Slice And Dice - é uma das principais características de uma ferramenta OLAP. Como a ferramenta OLAP recupera o micro cubo, surgiu a necessidade de criar um módulo que se convencionou de Slice and Dice para ficar responsável por trabalhar esta informação, servindo para modificar a posição de uma informação, alterar linhas por colunas de maneira a facilitar a compreensão dos usuários e girar o cubo sempre que tiver necessidade. Com o Slice and Dice é possível analisar as informações de diferentes prismas limitados somente pela imaginação e agindo como um filtro. Utilizando esta tecnologia é possível visualizar a informação sobre ângulos que anteriormente inexistiam sem a confecção de um Data Warehouse e a utilização de uma ferramenta OLAP. De maneira simplista, significa a redução de escopo das informações em análise, mudando a ordem das dimensões e a orientação de acordo com a maneira que os dados são visualizados. 5.13. Metadados Uma parte importante do Data Warehouse são os Metadados, também chamados de dados sobre os dados e índice do conteúdo de um DW. Possui um mapeamento de que modo os dados foram extraídos das fontes operacionais e como estão sendo inseridos no DW. Os metadados definem os tipos de dados e descrevem os dados de negócio, não apenas o conteúdo do DW, mas também informações úteis para o julgamento da qualidade do conteúdo. Em um projeto de Data Warehouse, o processo de metadados deve gerar e gerenciar uma documentação sobre o levantamento de dados, do banco de dados, a origem dos dados que alimentam o DW, processos de extração , tratamento e rotinas de cargas dos dados, as regras de negócios da empresa e todas as suas mudanças. Os metadados podem surgir de vários locais no decorrer do projeto e permitem ao usuário transformar os dados crus em informações que gerem conhecimento e tragam vantagem competitiva. O coração da arquitetura do ambiente de BI (Business Intelligence) é o Data Warehouse, e no seu centro nervoso estão os metadados, sendo considerado o 60 DNA do DW. Sem Metadados, o Data Warehouse e seus componentes nesta arquitetura, são meramente componentes deslocados, trabalhando independentemente e com metas diferentes. Para alcançar harmonia e unidade entre os diferentes componentes no ambiente de Data Warehouse, é necessário ter uma bem definida e disciplinada integração com metadados. Segundo Machado (2007), os metadados são classificados conforme descrito a seguir: Metadados Técnicos – Os metadados técnicos fornecem aos desenvolvedores e aos usuários técnicos de sistemas de suporte à decisão a confiança de que os dados estão corretos. Eles são críticos para a manutenção e o crescimento contínuo do DW; e Metadados de Negócio – Estes metadados são o elo de ligação entre os usuários de negócios (executivos e analistas de negócios) e o DW. Os metadados de negócios mostram que relatórios, consultas e dados estão no DW, a localização dos dados, confiabilidade dos dados, contexto dos dados, regras de transformação que foram aplicadas e as origens desses dados. 5.13.1. O Data Warehouse e o modelo de dados No ambiente do Data Warehouse, Inmon (1997) destaca três modelos de dados: corporativo (genérico), operacional (aplicações operacionais) e analítico (Data Warehouse). O modelo corporativo de dados contém primitivas básicas sobre o tipo de dados necessários para a corporação. Os outros dois modelos (operacional e analítico), são derivações do modelo corporativo. 5.13.2. Padrões para Metadados Atualmente existem vários padrões para descrever metadados, como The Text Encoding Initiative (TEI), Metadata Encoding and Transmission Standard (METS), Metadata Object Description Schema (MODS), The Encoded Archival Description (EAD) e MPEG-7. Entretanto o padrão de metadados Dublic Core é o principal dentre eles. Essas duas instituições (OCSC e NCSA) realizaram um 61 workshop em Dublin, Ohio no ano de 1995. Os trabalhos continuaram a serem desenvolvidos e gerenciados pelo DCMI. Ele tem como objetivo definir um grupo de elementos que possam ser usados por autores para descrever seus próprios recursos na Web. Isso ocorreu devido a grande incapacidade das bibliotecas eletrônicas de catalogar todos esses recursos, que atualmente são muitos na Web. O objetivo era definir poucos elementos e algumas regras para serem usadas nos recursos não catalogados. O DCMI tem uma definição própria que diz: “Dedicado a promover a adoção difundida de padrões interoperacionais de metadados e a desenvolver vocabulários especializados de metadados para sistemas de busca”. 5.13.3. Dublin Core Inicialmente, o padrão Dublin Core possuía treze elementos, agora são quinze: Title, Creator, Subject, Description, Publisher, Contributor, Date, Type, Format, Identifier, Source, Language, Relation, Coverage, Rights. Entretanto o Dublin Core passa por um problema: o de qualificar ao máximo suas descrições ou continuar simples e conciso. Se tornar qualificado pode trazer várias vantagens para esse padrão. Um bom exemplo disso é o elemento data, ele pode com outro significado, como identificar as data de alteração de um documento seguindo um padrão ISO (o qual definiu representação para data e hora). Todos os elementos do Dublin Core são opcionais e todos são repetíveis. Os elementos podem ser apresentados em toda a ordem. Os valores dos elementos não possuem um padrão. Entretanto, Dublin Core recomenda que use alguns valores controlados para campos apropriados, como Subject. O Dublin Core apenas recomenda isso, não é obrigatório. Por esse motivo alguns grupos vêm trabalhando para definir algum padrão para definir os campos (resource Type). Embora tão padrão tenha sido criado para descrever documentos Web, passou a ser usada em aplicações mais complexas, devido a sua eficiência e simplicidade. Pesquisadores, museus e músicas utilizam o padrão Dublin Core. 62 5.13.4. TEI O TEI, que significa iniciativa de codificação de textos, é um projeto internacional que busca desenvolver padrões para caracterizar textos eletrônicos como peças, poesias, novelas, entre outros. Primeiramente tem como finalidade possibilitar a pesquisa para a população, pretendendo chegar a estabelecer um padrão para a codificação de textos, o padrão do TEI também especifica um cabeçalho, que traz metadados sobre o próprio texto. 5.13.5. METS Foi desenvolvido com o intuito de suprir a necessidade de padrões para estruturação de dados em objetos complexos de bibliotecas digitais. O METS é um XML Schema para criação de documentos XML que expressam a estrutura de objetos de bibliotecas digitais, a descrição associada e metadados administrativos, além do nome e da localização do objeto digital. 5.13.6. EAD Foi criada para servir como uma forma de caracterizar estruturas de arquivos, para que estes arquivos pudessem ser procurados e mostrados na internet. Assim como o TEI a EAD trás um cabeçalho que descreve a estrutura de arquivo, e segue descrevendo a coleção, podendo trazer apontadores para objetos digitais. A EAD e bastante popular em bibliotecas acadêmicas, sociedades de história, e museus com grandes coleções. A EAD acaba tornando possível a disposição de peças únicas na internet. 5.13.7. RDF O padrão RDF foi desenvolvido pela W3C. É um modelo de dados para descrição de recursos na Web. Serve como um mecanismo para integração de múltiplos esquemas de metadados. Possui um namespace o qual é definido por uma url, apontando para a descrição do esquema de metadados usado. Pode haver vários namespaces apontando para vários esquemas usados ao mesmo tempo, geralmente expressos em XML. 63 5.14. Ciclo de Vida de Desenvolvimento Segundo Inmon (2005), é preciso ver como o dado operacional é usualmente orientado a aplicação e as suas conseqüências, como a falta de integridade, enquanto dados de Data Warehouse são integrados. Outra diferença existente entre o nível operacional de dado e processamento e o nível de DW de dado e processamento. O ciclo de vida de desenvolvimento subjacente destes sistemas pode causar profunda preocupação. Figura 11 – O Ciclo de Vida do desenvolvimento de sistemas [INMON, 2005] A figura 10 mostra que o Ciclo de vida de desenvolvimento de sistemas clássico (quadro à esquerda) é praticamente o oposto do ciclo de vida de desenvolvimento de DW (quadro à direita) 64 5.14.1. Fases para um projeto Data Warehouse Com o intuito de oferecer software de qualidade aos compradores, muitas vezes é preciso estabelecer quais serão as fases para a construção de um determinado produto. O planejamento destas fases é de vital importância, pois a partir dele é possível determinar uma série lógica de atividades que deverão ser executadas para a construção deste software. As atividades deverão ser totalmente claras e compreensíveis para toda equipe de projeto com o objetivo de construir o produto certo e da maneira certa. Neste sentido Barbiere (2001) sugere um conjunto de fases para o desenvolvimento de sistemas Data Warehouse e Data Mart. Estas fases são mostradas de forma macro a seguir e explicadas ao longo deste tópico da pesquisa. Estas fases ajudam a equipe de desenvolvimento na medida em que a norteiam em relação às principais atividades a serem executadas durante a construção do DW/DM. As fases por Barbiere (2001) são: Planejamento; Levantamento das necessidades; Modelagem dimensional; Projeto físico dos banco de dados; Projeto de ETL; Desenvolvimento de aplicações; Validação e Teste; Treinamento; e Implantação. A seguir estas fases são explicadas detalhadamente. 5.14.1.1. Levantamento das Necessidades Nesta etapa deverão ser identificados dois modelos. O primeiro modelo é o modelo Dimensional, ou aquele que representa os blocos conceituais de dados necessários ao alcance dos objetivos do sistema de suporte a decisão. O outro modelo é relacionado com as fontes das informações. É o modelo Fonte dos Dados. 65 Nele deverão ser registrados os blocos conceituais de dados existentes, com suas respectivas descrições e formas atuais de armazenamento e de uso nos sistemas. 5.14.1.2. Modelagem A modelagem de dados é seguramente um dos fatores críticos de sucesso em um projeto de DW e pode representar a fronteira entre o seu sucesso e o seu fracasso. Os volumes brutos dos dados deverão ser cuidadosamente considerados no projeto, visando ao processamento para obtenção das informações sumarizadas e consolidadas. 5.14.1.3. Projeto Físico Nessa etapa serão desenhadas as estruturas lógicas do modelo dimensional, com as definições das tabelas fatos e dimensões, relacionamentos, indexação, atributos de tabelas e implantação de regras. 5.14.1.4. Projeto ETL Nessa etapa deverão ser definidos os processos requeridos de transformação do modelo fonte para o modelo dimensional. Segundo Barbiere (2001), os conceitos de extração dos dados e de seu tratamento podem ser divididos em: Filtro de Dados – Relaciona os procedimentos e condições para se eliminar os elementos de dados indesejáveis no modelo dimensional; Integração dos Dados – Define a forma de se correlacionar informações existentes de formas distintas e que deverão ser integradas no sistema gerencial; Condensação dos Dados – Define forma de se reduzir volumes de dados visando a obter informações resumidas e sumarizadas; Conversão de Dados – Define os procedimentos para se transformar dados em unidades, formatos e dimensões diferentes; e Derivação de Dados – Define os meios e fórmulas para se produzir dados virtuais, a partir de dados existentes. 66 5.14.1.5. Desenvolvimento das Aplicações Nessa etapa será projetado o sistema aplicativo, objeto do trabalho. As ferramentas devem ser de fácil utilização e devem priorizar a interface Web, facilitando o acesso aos dados via browser. 5.14.1.6. Validação e Teste Fase em que o sistema é testado e validado, considerando-se o máximo possível, as simulações de volume e de processamentos. 5.14.1.7. Treinamento O grupo objeto do treinamento deverá ser formado prioritariamente de usuários voltados para atividades de negócios, além de gerentes das áreas envolvidas. 5.14.1.8. Implantação A implantação deverá ser seguida de um rigoroso acompanhamento de uso das aplicações disponibilizadas. Os usuários devem ser estimulados a apresentar criticas e sugestões de melhorias para as próximas versões do sistema. Em paralelo com as etapas descritas anteriormente, acontecerá a construção do diretório de metadados do projeto. 5.14.2. Problemas Comuns de Desenvolvimento Alguns problemas podem ocorrer durante o desenvolvimento de um sistema DW. Para ajudar o gerente do DW a detectá-los, Barquini (1996) antecipa os problemas mais comumente encontrados: Iniciação do projeto sem o comprometimento da diretoria da companhia – Para que o projeto de DW tenha sucesso e continuidade é necessário que a alta diretoria esteja comprometida com o projeto, garantindo as verbas necessárias e ajudando a direcionar o foco do DW para o negócio da organização; Levantar expectativas prometendo o que não é possível de ser cumprido – Frases do tipo "O DW guiará os gerentes para as melhores decisões" podem causar tanto desconfiança no projeto quanto desprezo. O DW não mostrará as melhores decisões, mas sim respostas às 67 consultas efetuadas. Cabe aos usuários elaborar consultas inteligentes e analisar as respostas obtidas; Carga de dados desnecessários dentro do DW – Nem todos os dados disponíveis nos sistemas transacionais da organização são necessariamente úteis para o DW. O arquiteto dos dados deve analisar, junto aos usuários, quais os dados que realmente contêm informações necessárias e desprezar aqueles que não fazem parte dos objetivos do DW; Confundir o projeto do banco de dados DW com o projeto de um sistema transacional – Em um processo transacional, o projeto deve fornecer velocidade de acesso e facilidades na atualização de registros. O DW é fundamentalmente diferente. A meta no DW são acessos agregados, ou seja, somas, médias, tendências, entre outros. Outra diferença entre os dois tipos de sistemas é o tipo de usuário. Nos sistemas transacionais um programador desenvolve uma consulta que poderá ser utilizada milhares de vezes. No DW o usuário final desenvolve suas consultas que podem ser utilizadas somente uma vez; Optar por gerente técnico de Data Warehouse – Escolher um gerente para o DW com orientação técnica: O DW é essencialmente uma prestação de serviços e não um serviço de armazenamento de dados, por isso é fundamental que o gerente do DW seja uma pessoa voltada aos interesses dos usuários e, principalmente, que fale a mesma “língua” deles; Grande foco em dados do tipo registros – Muitas vezes os projetos de DW partem do princípio de que as informações necessárias ao bom desempenho do DW estão somente em forma de registros nos arquivos dos sistemas transacionais da organização. Isto pode ser um equívoco, já que muitas informações podem estar armazenadas fora dos sistemas transacionais, em forma de textos, imagens, sons e vídeos; Crer nas promessas de performance, capacidade e escalabilidade dos fornecedores – A informática cresce de uma maneira muito rápida, isto também acontece com o tamanho do DW, portanto é interessante 68 fazer um estudo de crescimento do DW antes de definir a configuração que deve atender, com folga, o banco de dados do DW, pelo menos até a conclusão do projeto inicial. É interessante que o servidor do banco de dados do DW seja fornecido por uma organização idônea e que garanta futuras expansões; e Crer que ao término do projeto e a subida para a produção resolverá todos os problemas – Assim que o DW começar a rodar, os usuários começarão a criar mais consultas e estas consultas necessitarão de novos dados que resultarão em novas consultas. Assim, o projeto do DW precisa ser atualizado continuamente, não só com novos dados, mas também com novas tecnologias. 5.14.3. Recursos Humanos Segundo Inmon (1999) para criar e manter um Data Warehouse é necessário desenvolver uma série de funções. Dependendo do tamanho do projeto e do tipo de tecnologia utilizada podem ser necessárias várias pessoas para realizar as diferentes funções previstas e, ao mesmo tempo, deve-se manter a equipe de Data Warehouse relativamente pequena, para que possa responder de maneira rápida às necessidades de informação em constante mudança em toda organização. A maneira mais eficaz de arquitetar um DW que transforme dados em informação é ter, na equipe, funcionários que já fazem parte da organização, com habilidades de negócios necessárias para executar certas funções. Estas funções podem variar conforme o estágio em que se encontra o DW, bem como podem ser agrupadas para que uma só pessoa realize várias delas ao mesmo tempo. Inmon (1999) sugere o quadro a seguir para o desenvolvimento inicial de um Data Warehouse: Tabela 5 – Quadro de funcionários sugeridos para desenvolvimento inicial de um DW [INMON, 1999] Ftes1 Função Descrição Mínimos Iniciais 1 Full Time Equivalents – Funcionários equivalentes em tempo integral. 69 Administrador de Data Warehouse Gerencia o projeto total, desde incursão na implementação inicial ate 1 manutenção e iterações adicionais. Gerencia as expectativas e Gerente de Mudança percepções da organização quanto ao Organizacional de Data DW Warehouse, suas capacidades, Menos de 1 limitações e o impacto em todos os aspectos da organização Administrador de Banco de Dados Cria e gerencia o(s) banco(s) de dados físicos que compõe(m) todos os 1 níveis e aspectos do Data Warehouse Gerencia metadados de negócios e Gerente de técnicos, Metadados atuais, assegurando precisos e que estejam adequadamente Menos de 1 integrados Analista de necessidades de negócios Identifica e analisa as necessidades de informação de negócios da organização e auxilia no projeto do DW 2 para satisfazer essas necessidades Cria e mantém os modelos de Arquiteto de Data Warehouse dados para todos os níveis do DW. Analisa sistemas de origem para 1 determinar sistema(s) de registro. Projeta aquisição de dados e ambiente técnico Cria Desenvolvedor e mantém programas e de processos que executam a extração, Aquisição de Dados transformação e carga de dados das 1a3 origens até os alvos 70 Cria Desenvolvedor e mantém programas e de processos e “caminhos” predefinidos que Acesso a Dados 1a3 permitem que usuários finais acessem dados do DW Cria Desenvolvedores de Manutenção de DW e mantém programas e processos e procedimentos para executar tarefas de manutenção como 1 arquivamento, recuperação, segurança, monitoração, entre outros. Responsável executivo de Sistema de Informação Analista de Qualidade de Dados Responsável pelo suporte ao 1 (Não é projeto de DW em termos de fornecimento uma tarefa de fundos, recursos e de representação de tempo frente aos seus colegas de alto escalão. integral) Monitora e assegura qualidade de dados no DW que satisfaça as Mais do que 1 necessidades da organização Tabela 6 – Quadro de Funcionários de SI sugerido para Gerenciamento Contínuo de DW[INMON 1999] Função FTEs Adicionais por Iteração Lideres Administrador de Data Warehouse de equipe podem ser requeridos se a funcionalidade do DW crescer a um tamanho que os torne necessários. Gerente de Mudança Organizacional de Possivelmente DW Administrador de Banco de Dados 1 após diversas iterações. Até 1 para cada 2 ou 3 iterações adicionais. 71 Gerente de Metadados Mínimo de 1 após a primeira interação e as seguintes. 2 adicionais após a implementação Analista de necessidades de negócios inicial; até 1 para cada duas ou três iterações seguintes. Arquiteto de Data Warehouse Mínimo de 1 após a primeira iteração e as seguintes. Até 1 para cada uma ou duas novas Desenvolvedor de Aquisição de Dados iterações e para a sua manutenção, dependendo do crescimento da demanda de usuários. Até 1 para cada uma ou duas novas Desenvolvedor de Acesso a Dados iterações e para a sua manutenção, dependendo do crescimento da demanda de usuários. Desenvolvedores de Manutenção de DW 0 a 1 após dependendo da diversas iterações, complexidade das funções de manutenção. Responsável executivo de Sistema de 0 Informação (nenhum recurso adicional necessário) Possivelmente 1 ou mais após a iteração Analista de Qualidade de Dados qualidade inicial, de dependendo dados dos da novos sistemas de registro e da qualidade apresentada por sistemas de registro existentes. A equipe de projeto do Data Warehouse será tipicamente composta de doze a quinze pessoas que serão responsáveis por criar um Data Warehouse na organização. Inmon (1999) sugere que a equipe ideal deve ser composta de 72 projetistas de banco de dados, de pessoas que conheçam bem os sistemas legados por dentro e por fora para a extração dos dados necessários para o Data Warehouse (arqueologistas de dados), programadores de sistemas para assegurar que os dados dos sistemas legados movam-se de forma limpa e repetitiva pelo Data Warehouse, usuários, instrutores e administradores de Data Warehouse, que em geral, são responsáveis pela coordenação de todos os aspectos do projeto de DW e por equilibrar as necessidades e objetivos de todos os interessados. 6. Protótipo – Validação da Pesquisa Baseado na pesquisa realizada foi elaborado um protótipo para aplicação dos conceitos aqui apresentados em uma necessidade real. Este protótipo tem o objetivo de solucionar o problema da falta de um sistema gerencial para análise das informações obtidos a partir da base de dados transacional da Escola Tangran. O desenvolvimento de um Data Mart supre a necessidade da alta gerência da Escola em responder questões gerenciais relacionadas ao desempenho de alunos, professores e da Escola em si, de acordo com os dados obtidos nos sistemas transacionais. A metodologia utilizada para o desenvolvimento deste protótipo segue as fases sugeridas por Barbiere (2001) que foi apresentado anteriormente. Segue adiante o desenvolvimento do protótipo conforme as fases definidas para o projeto de um DW/DM. 6.1. Planejamento O escopo do projeto limita-se análise de questões de ocorrências de professores e alunos, desempenho e como a freqüência dos responsáveis tem influenciado no desempenho destes alunos. Estas questões são detalhadas no tópico seguinte. O Data Mart será desenvolvido utilizando a abordagem evolutiva ou Bottomup e poderá ser integrado, futuramente, a outros Data Marts a fim de formar um Data Warehouse. 73 Os recurso utilizados para a criação deste protótipo foi descrito no item 3.4 do presente trabalho, mas em geral vai contar com: O Sistema Gerenciador de Banco de Dados adotado será o Oracle Database Server 9i, e a ferramenta de ETL será o Oracle Warehouse Builder, montado em uma máquina HP DV4000 com 1 processador Centrino 2 GHz, 1GB de memória RAM, 80 GB de espaço interno; e A ferramenta que será utilizada para apresentação do Front End será o Oracle Discoverer, montada em um segundo equipamento HP DV1000 com 1 processador de 2 GHz, 1GB de memória RAM, 120 GB de espaço em disco. 6.2. Levantamento de Necessidades Existe a necessidade de informações gerenciais automatizadas e mais precisas para fornecimento de um subsidio confiável à tomada de decisão. Foi adotada uma granularidade de dados bimestral devido ao fato de que avaliações marco, tanto sobre a escola quanto sobre alunos, são feitas obedecendo a períodos de dois meses. Nesta etapa serão identificados dois modelos: O modelo dimensional e o modelo fonte dos dados. Durante a fase inicial, foram identificadas algumas necessidades junto a alta diretoria da escola sobre questões que deveriam ser respondidas por meio da implementação do sistema Data Warehouse, listadas a seguir: Nível de ocorrências por professor – No sistema OLTP existem ocorrências sobre diversos fatos relacionados aos alunos. Estas ocorrências são registradas por professores e armazenadas nos sistemas de banco de dados; Desempenho escolar por ano (notas por ano) – As notas a respeito das diversas disciplinas lecionadas na escola são armazenadas nos sistemas transacionais. Deseja-se acompanhar o desempenho da escola em geral por meio das notas dos alunos nestas diversas disciplinas; e Desempenho do aluno na disciplina por professor – As notas a respeito das diversas disciplinas lecionadas na escola são armazenadas 74 nos sistemas transacionais. Deseja-se acompanhar o desempenho dos alunos na disciplina de determinado professor. Com base nestes requisitos e com o que há disponível no sistema transacional e que foi levantado juntamente com os analistas de sistemas OLTP, foi apresentado um modelo dimensional de alto nível, ou seja, com a definição macro geral que o Data Mart Escolar deverá ter. Com base no exposto, o modelo dimensional que atenda os requisitos levantados acima deverá seguir, de forma geral o formato apresentado na figura 12: Figura 12– Modelo mostrando o modelo dimensional macro baseado em informações coletadas. 6.3. Modelagem Dimensional A partir da definição dos requisitos, tem-se base para o começo da construção do modelo dimensional. Esse modelo utiliza duas tabelas de fatos e sete tabelas dimensionais, devido a três necessidades distintas detalhadas a seguir: Registrar a quantidade de ocorrências por professor, o qual este cálculo armazenará a quantidade de ocorrências em determinada disciplina de um 75 determinado aluno por professor. O objetivo deste cálculo é atender o primeiro requisito solicitado ao sistema; Armazenar a média de notas dos alunos para a análise do desempenho por professor e o desempenho da escola em geral. Com base neste cálculo será possível responder questões de desempenho; e Analisar se o comparecimento de pais ou responsáveis influencia no desempenho geral dos alunos. Figura 13 – Modelo de dados dimensional utilizado para no Data Mart Escolar. 6.4. Projeto físico do banco de dados Foi criado um repositório chamado DM_ESCOLAR para armazenar as tabelas dimensionais e fato relacionadas a solução. Abaixo segue descrição física das tabelas dimensionais com a indicação da função de cada campo dentro da solução: TB_DIM_FUNCIONARIO ID_FUNCIONARIO Armazena o ID DW para a dimensão funcionário; 76 MATRICULA_FUNCIONARIO Armazena a matrícula do funcionário; NOME_FUNCIONARIO Armazena o nome do funcionário; DTH_NASCIMENTO Armazena a data de nascimento do funcionário; CARG_FUNCIONARIO Armazena o cargo do funcionário; DTH_ADMISSAO Armazena a data de admissão do funcionário; ESTADO_CIVIL Armazena o estado civil do funcionário; SEXO_FUNCIONARIO Armazena o sexo do funcionário; DTH_INICIO Data de entrada da dimensão no DW; DTH_FIM Data de mudança da dimensão no DW; e FL_CORRENTE Flag que indica se a dimensão é atual. TB_DIM_ALUNO ID_ALUNO Armazena o ID DW para a dimensão aluno; MATR_ALUNO Armazena a matrícula do aluno; NOME_ALUNO Armazena o nome do aluno; DTH_NASCIMENTO Armazena a data de nascimento do aluno; SEXO_ALUNO Armazena o sexo do aluno; DTH_INICIO Data de entrada da dimensão no DW; DTH_FIM Data de mudança da dimensão no DW; e FL_CORRENTE Flag que indica se a dimensão é atual. TB_DIM_OCORRENCIA 77 ID_OCORRENCIA Armazena o ID DW para a dimensão ocorrência; COD_CATEGORIA Armazena o código de categoria de ocorrência; DTH_INICIO Data de entrada da dimensão no DW; DTH_FIM Data de mudança da dimensão no DW; e FL_CORRENTE Flag que indica se a dimensão é atual. TB_DIM_DISCIPLINA ID_DISCIPLINA Armazena o ID DW para a dimensão disciplina; COD_ID_DISCIPLINA Armazena o ID OLTP para disciplina; COD_DISCIPLINA Armazena o código da disciplina; NOME_DISCIPLINA Armazena o nome da disciplina; DTH_INICIO Data de entrada da dimensão no DW; DTH_FIM Data de mudança da dimensão no DW; e FL_CORRENTE Flag que indica se a dimensão é atual. TB_DIM_TEMPO ID_TEMPO Armazena o ID DW para a dimensão tempo; ANO_REF Armazena o ano referente; SEMESTRE Armazena o semestre referente; BIMESTRE Armazena o bimestre referente; MES_REF Armazena o mês referente; MES_NOME Armazena o nome do mês referente; 78 DIA_ANO Armazena o dia do ano; DIA_MES Armazena o dia do mês; DIA_SEMANA Armazena o dia da semana; e DTH_REF Armazena a data. TB_FATO_ESCOLAR ID_FUNCIONARIO Armazena o ID DW do funcionário; ID_ALUNO Armazena o ID DW do aluno; ID_OCORRENCIA Armazena o ID DW de ocorrência; ID_DISCIPLINA Armazena o ID DW da disciplina; ID_TEMPO Armazena o ID DW do tempo; QTD_OCORRENCIA Armazena a quantidade das ocorrências; MDA_NOTA Armazena a média da nota do aluno; e QTD_FALTAS Armazena a quantidade de faltas do aluno. 6.5. Projeto de extração, transformação e carga De acordo com o modelo dimensional, pode-se fazer um projeto dos planos de carga para que os dados dos sistemas transacionais se adéqüem perfeitamente na estrutura do modelo dimensional. Na figura seguinte são mostradas as principais tabelas do sistema OLTP que serão utilizadas como fonte para o sistema DW. 79 Figura 14 – Modelo Físico do Sistema OLTP com as principais tabelas a serem utilizadas no DW.. A princípio não houve grande esforço para a carga das dimensões, pois elas já estavam bem encaixadas nas tabelas do modelo relacional. O plano de carga para as dimensões foi feito da seguinte forma: TB_DIM_FUNCIONARIO ID_FUNCIONARIO Chave primária gerado pelo script PL/SQL; MATRICULA_FUNCIONARIO Retirado do campo co_funcionario da tabela S_FUNCIONARIO. Este campo será utilizado como chave para avaliação de novos registros nesta dimensão; NOME_FUNCIONARIO Retirado do campo ds_funcionario da tabela S_FUNCIONARIO; DTH_NASCIMENTO Retirado do campo dt_nascimento da tabela S_FUNCIONARIO; ESTADO_CIVIL Retirado do campo tp_estado_civil da tabela S_FUNCIONARIO; SEXO_FUNCIONARIO Retirado do campo 80 tp_sexo da tabela S_FUNCIONARIO; DATA_INICIO Campo calculado gerado por PL/SQL indicando a data de entrada do registro de dimensão; DATA_FIM Campo calculado gerado por PL/SQL indicando a data de fim de vigência do registro de dimensão; e FL_CORRENTE Campo calculado gerado por PL/SQL indicando se o registro de dimensão é atual ou não. TB_DIM_ALUNO ID_ALUNO Chave primária gerada pelo script PL/SQL; MATRICULA_ALUNO Retirado do campo co_aluno da tabela S_ALUNO. Este campo será utilizado como chave para avaliação de novos registros nesta dimensão; NOME_ALUNO Retirado do campo ds_aluno da tabela S_ALUNO; DTH_NASCIMENTO Retirado do campo dt_nascimento da tabela S_ALUNO; SEXO_ALUNO Retirado do campo tp_sexo da tabela S_ALUNO; DATA_INICIO Campo calculado gerado por PL/SQL indicando a data de entrada do registro de dimensão; DATA_FIM Campo calculado gerado por PL/SQL indicando a data de fim de vigência do registro de dimensão; e 81 FL_CORRENTE Campo calculado gerado por PL/SQL indicando se o registro de dimensão é atual ou não. TB_DIM_OCORRENCIA ID_OCORRENCIA Chave primária gerado pelo script PL/SQL; CODIGO_OCORRENCIA Retirado do campo id_categoria da tabela S_CATEGORIA. Este campo será utilizado como chave para avaliação de novos registros nesta dimensão; DESCRICAO_OCORRENCIA Retirado do nome_categoria da tabela S_CATEGORIA; DATA_INICIO Campo calculado gerado por PL/SQL indicando a data de entrada do registro de dimensão; DATA_FIM Campo calculado gerado por PL/SQL indicando a data de fim de vigência do registro de dimensão; FL_CORRENTE Campo calculado gerado por PL/SQL indicando se o registro de dimensão é atual ou não. TB_DIM_DISCIPLINA ID_DISCIPLINA Chave primária gerado pelo script PL/SQL; CODIGO_DISCIPLINA Retirado do campo co_disciplina da tabela S_DISCIPLINA. Este campo será utilizado como chave para avaliação de novos registros nesta dimensão; NOME_DISCIPLINA Retirado do campo 82 ds_disciplina da tabela S_DISCIPLINA; DATA_INICIO Campo calculado gerado por PL/SQL indicando a data de entrada do registro de dimensão; DATA_FIM Campo calculado gerado por PL/SQL indicando a data de fim de vigência do registro de dimensão; e FL_CORRENTE Campo calculado gerado por PL/SQL indicando se o registro de dimensão é atual ou não. TB_DIM_TEMPO ID_TEMPO Chave primária gerado pelo script PL/SQL; ANO Campo gerado por script PL/SQL; SEMESTRE Campo gerado por script PL/SQL; BIMESTRE Campo gerado por script PL/SQL; MES Campo gerado por script PL/SQL; MES_NOME Campo gerado por script PL/SQL; DIA_ANO Campo gerado por script PL/SQL; DIA_MES Campo gerado por script PL/SQL; DIA_SEMANA Campo gerado por script PL/SQL; e DATA Campo gerado por script PL/SQL. TB_FATO_ESCOLAR ID_FUNCIONARIO Chave estrangeira que 83 referencia a tabela TB_DIM_FUNCIONARIO; ID_ALUNO Chave estrangeira que referencia a tabela TB_DIM_ALUNO; ID_OCORRENCIA Chave estrangeira que referencia a tabela TB_DIM_OCORRENCIA; ID_DISCIPLINA Chave estrangeira que referencia a tabela TB_DIM_DISCIPLINA; ID_TEMPO Chave estrangeira que referencia a tabela TB_DIM_TEMPO; QTD_OCORRENCIA Campo calculado com base na quantidade de ocorrências cometidas por alunos em determinada disciplina. Campo da tabela S_OCORRENCIA; e MDA_NOTA Retirado do campo nota da tabela NOTA. Para tupla da tabela, deve existir o campo nota com a média do aluno naquela disciplina. Campo da tabela S_ALUNO_DISCIPLINA. 6.6. Desenvolvimento de aplicações Uma vez realizada a carga do Data Mart, será utilizada a ferramenta Oracle Discoverer como ferramenta Front-End para consulta de dados que podem ser acessados via intranet, por meio de um browser Com base nas necessidades levantadas anteriormente pode efetuar várias pesquisas tais como: Nível de ocorrências por professor; Desempenho escolar por ano (notas por ano); Desempenho do aluno na disciplina por professor; e Desempenho escolar do aluno x Assiduidade dos Responsáveis. 84 7. Conclusão Um Data Warehouse é um grande centro de informações, que são constantemente incluídas, mantendo um histórico sobre todas as movimentações consideradas importantes para as companhias que constroem um Data Warehouse. É um processo demorado e de alto custo em alguns casos, desta forma, os objetivos da construção e uso de um Data Warehouse deverão ser muito bem fundamentadas, pois exigem também requisição de vários recursos de hardware, software e pessoal qualificado. No entanto é uma ferramenta cara e de difícil implantação, devido a isso, deve-se analisar bem antes da implantação. Os benefícios da construção de um Data Warehouse variam desde a campanhas para manter o estado atual dos negócios quanto para previsão de possíveis oportunidades para crescimento no mercado. Para se atingir os resultados por ele almejados é preciso saber utilizá-lo e também saber se é realmente necessário. Muitas vezes estas questões básicas são esquecidas e os pensamentos são enfocados apenas no que esta ferramenta pode nos oferecer, esquecendo muitas vezes a nossa própria realidade. Desta forma, deve-se dar a máxima importância para a etapa de coleta de requisitos em um projeto de DW, realizando todas as etapas do ciclo de desenvolvimento definido no projeto a fim de minimizar os erros de especificação e desta maneira, evitar-se o gasto desnecessário com novos levantamentos e atualização de documentação 85 Referência Bibliográfica [BAR01] BARBIERI, Carlos. BI – Business Inteligence – Modelagem & Tecnologia, Rio de Janeiro, Axcel Books, 2001. [DWBRASIL, 2003] DWBrasil – Disponível em <http://www.dwbrasil.com.br> Acessado em 13 de fevereiro de 2008 20h47. [CONGRESSO, 2008], MUSSI, Camilo. DataWarehouse – Da modelagem à implantação, – 2006 Disponível em <http://www.congreso- info.cu/UserFiles/File/Info/Intempres2006/Intempres2004/Sitio/Ponencias/8.pdf> Acesso em 05 de maio de 2008. [BIBLIOTECADIGITAL, 2008] Biblioteca – Digital Disponível em <www.sbc.org.br/bibliotecadigital/download.php?paper=262> Acesso em 05 de maio de 2008. [DATAMINIG, 2008] DataMining – EIS Disponível em <http://www.fieo.br/v2/central_aluno/revista/rev1999/DataMining_EIS.htm#Quem> Acesso em 06 de maio de 2008. [DATABASES, 2008] Databases – Disponível em <http://databases.about.com/od/specificproducts/a/normalization.htm> Acesso em 06 de maio de 2008. [DEVMEDIA, 2008] DevMedia group – asp.net, java, Delphi, SQL e Webdesign. Disponível em <http://www.devmedia.com.br/Imagens/gold/SQL/39/artigo1/image2.jpg> Acesso em 10 de maio de 08. 20h00. [DSPACE,2008] Instituto Superior Técnico – Universidade Técnica de Lisboa. Disponível <https://dspace.ist.utl.pt/bitstream/2295/54644/1/bdSchema.20060321.jpg> em: Acesso em 11 de maio de 2008. [GRA00] GRAEML, Alexandre R.. Sistemas de Informação: o alinhamento da estratégia de TI com a estratégia corporativa. São Paulo, Editora Atlas S.A., 2000. [GRA98] GRAY, Paul & Watson, Hugh J. Decision Support in the Data Warehouse. New Jersey, Prentice Hall PTR, 1998. 86 [INM99] INMON, W.H. – Gerenciando Data Warehouse. Rio de Janeiro, Makron Books, 1999. [INM05] INMON, William H. Building the Data Warehouse. Indianapolis, Indiana, Wiley Publishing, Inc., 2005. [KIM98a] KIMBALL, Ralph, ROSS, Margy. The Data Warehouse Toolkit 2th edition. Indianapolis, Indiana, Wiley Publishing, Inc. 1998. [KIM98b] KIMBALL, Ralph – The Data Warehouse Toolkit. São Paulo: Makron Books, 1998. 388p. [MAC07] MACHADO, Felipe N R. Tecnologia e Projeto de Data Warehouse: uma visão multidimensional. São Paulo, Érica, 2007. [MICROSOFT, 2008] Microsoft – Modelo multidimensional. Disponível em http://www.microsoft.com/brasil/msdn/images/tecnologias/arquitetura/Dados_Multidi mensionais/4_Whitepaper%20%20Modelagem%20de%20Bancos%20de%20Dados%20Multidimensionais_19.jpg> Acesso em 11 de maio de 2008 as 20h15 [OLI02] OLIVEIRA, José W. Data Warehouse. Visual Books, 2002. [ORACLE, 2008]ORACLE – ETL. Disponível em < - http://download.oracle.com/docs/cd/B19306_01/server.102/b14223/ettover.htm> Acesso em 08 de maio de 2008 as 19h30. [SIL99] SILBERSCHATZ, A.; KORTH, H. F.; SUDARSHAN, S. Sistemas de Bancos de Dados. 3. ed. Makron Books, 1999. [SPR91] SPRAGUE, H. e WATSON, J. – Sistema de apoio a decisão: colocando a teoria em prática. Ed. Campus, Rio de Janeiro, 1991. 87 Apêndice A Glossário Ad-Hoc Query ( consulta eventual ) Qualquer consulta que não possa ser determinada antes do momento da consulta ser emitida. Uma consulta que consiste em SQL construído dinamicamente, em geral por ferramentas de consulta residentes na estação de trabalho do usuário final. Agregados Resumos pré - calculados ou pré - armazenados que são mantidos no Data Warehouse para melhorar o desempenho de consulta. Atributo Um campo em uma tabela dimensional. Banco de dados Relacional Um sistema de banco de dados que suporta todos os comandos SQL padrão. Chave estrangeira (Foreign Key) Um campo de um banco de dados relacional cujos valores são obtidos de uma chave primária em outra tabela. Em um esquema star join, os componentes da chave composta de uma tabela de fatos são chaves estrangeiras respectivas a cada uma das tabelas de dimensão. Chave primária (Primary key) Um campo em um banco de dados exclusivos a cada registro da tabela. Cliente/Servidor Abordagem de tecnologia distribuída na qual o processamento é dividido por função. O componente servidor realiza funções compartilhadas - gestão de comunicações, fornecimento de serviços de base de dados etc. O componente cliente realiza funções individuais de usuário – disponibilização de interfaces adaptadas, navegação entre telas, funções de auxilio etc. 88 Consulta (Query) Uma instrução SQL SELECT passada de um aplicativo de front-end (que reside normalmente no cliente do usuário) para DBMS relacional. Data Mining Técnica que utiliza ferramentas de software geralmente orientadas para o usuário que não sabe exatamente o que está pesquisando, mas procura identificar determinados padrões ou tendências. O termo Data Mining (garimpo de Dados) identificação processo de separar grandes quantidades de dados de forma a identificar relacionamentos entre eles. Data Warehouse Uma cópia dos dados de transações, estruturada especificamente para consultas e análises. Drill Modo de exploração de dados detalhados que foram usados na criação de um nível sumarizado de dados. Os níveis de aprofundamento dependem de granularidade dos dados existentes no Data Warehouse. DSS (Decision Support System ou Sistema de Apoio a Decisão) Software que fornece ao usuário informações para a tomada de decisões. Executive Information System - (EIS) Sistema de Informações Executivas Ferramentas programadas para disponibilizar relatórios previamente preparados ou resumos impressos para executivos de alto nível. Elas oferecem poderosas capacidades de construção de relatórios e de detalhamento de informações. Atualmente estas ferramentas possibilitam a submissão de consultas especificas a base de dados multi-dimensionais e a maioria delas oferece aplicações analíticas especificas, como analise de vendas ou financeira. Ferramentas de front-end 89 É uma ferramenta-cliente que recupera ou manipula dados armazenados em um banco de dados relacional. Filtros Conjunto de critérios previamente escolhidos que especificam um subconjunto de informações em um Data Warehouse. Grão Significa um único registro em uma tabela de fatos. A definição da granularidade em uma tabela de fatos é a Segunda das quatro etapas principais envolvidas no projeto de um esquema star join. Metadados Qualquer dado mantido para suportar as operações ou uso de um Data Warehouse. Praticamente todas as ferramentas de Front-End exigem algum metadado próprio na forma de especificações ou status. O metadado é freqüentemente externo ao banco de dados relacional. Não existem padrões coerentes para o metadado. Modelo Dimensional Metodologia de projeto que lista dimensões e fatos relevantes a cada processo de negócio. Modelo Entidade/Relacionamento Modelo para os dados de uma organização que tem como objetivo remover todos os valores repetidos por meio de criação de tabelas adicionais. Normalizar Processo usado para eliminar a redundância de dados separando-os em várias tabelas. OLAP Processamento analítico On-Line. Um termo que contrasta com OLTP. Um conjunto de princípios com definição imprecisa que fornece uma estrutura para suporte a decisão. O termo OLAP também é utilizado para referir-se ao grupo de fornecedores 90 que oferecem produtos proprietários, não relacionais, destinados ao suporte à decisão. OLTP Processamento de transações On-Line. A descrição original de todas as atividades e sistemas associados à inserção de dados de forma confiável em um banco de dados. Embora utilizado freqüentemente com referência a banco de dados, OLTP pode ser usado genericamente para descrever um ambiente de processamento de transações. Repositório Banco de dados de um Data Warehouse. Slice and Dice (Fatiar) A descrição padrão da habilidade de acessar um Data Warehouse por meio de qualquer de suas dimensões de forma igual. Suporte à Decisão Utilização de dados na tomada de decisão em uma organização. Tabela de dimensão Uma tabela em um esquema star join com uma única chave primária. Tabela de Fatos A tabela central de um esquema star join, caracterizada por uma chave composta, em que cada elemento é uma chave externa de uma tabela de dimensão. Transação Um unidade indivisível de trabalho. Um sistema de processamento de transações pode executar somente a transação completa, e não apenas parte dela. 91 Apêndice B SCRIPT DE GERAÇÃO DO BANCO DE DADOS CREATE TABLE tb_dim_aluno (id_aluno NUMBER(8,0) NOT NULL, matricula_aluno VARCHAR2(10), nome_aluno VARCHAR2(200), data_nascimento_aluno DATE, sexo_aluno CHAR(1), data_inicio DATE, data_fim DATE, fl_corrente CHAR(1)) PARALLEL (DEGREE DEFAULT) / GRANT SELECT ON tb_dim_aluno To eul_escolar / GRANT REFERENCES ON tb_dim_aluno To eul_escolar / GRANT SELECT ON tb_dim_aluno TO eul_escolar / GRANT REFERENCES ON tb_dim_aluno TO eul_escolar / ALTER TABLE tb_dim_aluno ADD CONSTRAINT pk_dim_aluno PRIMARY KEY (id_aluno) USING INDEX / CREATE TABLE tb_dim_disciplina (id_disciplina NUMBER(8,0) NOT NULL, codigo_disciplina VARCHAR2(10), nome_disciplina VARCHAR2(50), data_inicio DATE, data_fim DATE, fl_corrente CHAR(1)) PARALLEL (DEGREE DEFAULT) / GRANT SELECT ON tb_dim_disciplina To eul_escolar / GRANT REFERENCES ON tb_dim_disciplina To eul_escolar / GRANT SELECT ON tb_dim_disciplina TO eul_escolar / GRANT REFERENCES ON tb_dim_disciplina TO eul_escolar / ALTER TABLE tb_dim_disciplina ADD CONSTRAINT pk_dim_disciplina PRIMARY KEY (id_disciplina) 92 USING INDEX / CREATE TABLE tb_dim_funcionario (id_funcionario NUMBER(8,0) NOT NULL, matricula_funcionario NUMBER(10,0), nome_funcionario VARCHAR2(200), dth_nascimento DATE, cargo_funcionario VARCHAR2(50), dth_admissao_funcionario DATE, estado_civil_funcionario VARCHAR2(15), sexo_funcionario CHAR(1), data_inicio DATE, data_fim DATE, fl_corrente CHAR(1)) PARALLEL (DEGREE DEFAULT) / GRANT SELECT ON tb_dim_funcionario To eul_escolar / GRANT REFERENCES ON tb_dim_funcionario To eul_escolar / GRANT SELECT ON tb_dim_funcionario TO eul_escolar / GRANT REFERENCES ON tb_dim_funcionario TO eul_escolar / ALTER TABLE tb_dim_funcionario ADD CONSTRAINT pk_dim_funcionario PRIMARY KEY (id_funcionario) USING INDEX / CREATE TABLE tb_dim_ocorrencia (id_ocorrencia NUMBER(8,0) NOT NULL, codigo_ocorrencia NUMBER(4,0), descricao_ocorrencia VARCHAR2(20), data_inicio DATE, data_fim DATE, fl_corrente CHAR(1)) PARALLEL (DEGREE DEFAULT) / ALTER TABLE tb_dim_ocorrencia ADD CONSTRAINT pk_dim_ocorrencia PRIMARY KEY (id_ocorrencia) USING INDEX / CREATE TABLE tb_dim_tempo (data DATE NOT NULL, data_chave DATE, mes VARCHAR2(15), ano NUMBER(4,0), 93 trimestre VARCHAR2(25), semestre VARCHAR2(25), diasemana VARCHAR2(15), semanadomes VARCHAR2(10), atual CHAR(1), mes_chave NUMBER(2,0), diasemana_chave NUMBER(2,0), descricao_mes VARCHAR2(15), bimestre VARCHAR2(25)) PARALLEL (DEGREE DEFAULT) / GRANT SELECT ON tb_dim_tempo To eul_escolar / GRANT REFERENCES ON tb_dim_tempo To eul_escolar / GRANT SELECT ON tb_dim_tempo TO eul_escolar / GRANT REFERENCES ON tb_dim_tempo TO eul_escolar / ALTER TABLE tb_dim_tempo ADD CONSTRAINT pk_tempovenda PRIMARY KEY (data) USING INDEX / CREATE TABLE tb_fato_aluno (id_aluno NUMBER(8,0), id_funcionario NUMBER(8,0), id_disciplina NUMBER(8,0), id_ocorrencia NUMBER(8,0), id_tempo DATE, nota NUMBER(4,2), falta NUMBER(3,0) qtd_ocorrencia NUMBER(3,0)) PARALLEL (DEGREE DEFAULT) / GRANT SELECT ON tb_fato_aluno To eul_escolar / GRANT REFERENCES ON tb_fato_aluno To eul_escolar / GRANT SELECT ON tb_fato_aluno TO eul_escolar / GRANT REFERENCES ON tb_fato_aluno TO eul_escolar / ALTER TABLE tb_fato_aluno ADD CONSTRAINT fk_dim_aluno FOREIGN KEY (id_aluno) REFERENCES tb_dim_aluno (id_aluno) ON DELETE CASCADE / ALTER TABLE tb_fato_aluno ADD CONSTRAINT fk_dim_disciplina FOREIGN KEY (id_disciplina) REFERENCES tb_dim_disciplina (id_disciplina) ON DELETE CASCADE 94 / ALTER TABLE tb_fato_aluno ADD CONSTRAINT fk_dim_funcionario FOREIGN KEY (id_funcionario) REFERENCES tb_dim_funcionario (id_funcionario) ON DELETE CASCADE / ALTER TABLE tb_fato_aluno ADD CONSTRAINT fk_dim_ocorrencia FOREIGN KEY (id_ocorrencia) REFERENCES tb_dim_ocorrencia (id_ocorrencia) ON DELETE CASCADE / ALTER TABLE tb_fato_aluno ADD CONSTRAINT fk_dim_tempo FOREIGN KEY (id_tempo) REFERENCES tb_dim_tempo (data) ON DELETE CASCADE / 95 Apêndice C TELAS DO PROTÓTIPO Figura 15 – Tela do aplicativo SQLPLUS mostrando todas as tabelas DW do esquema “dw_escolar”. Tabelas com prefixo diferente de “TB_” pertencem aos aplicativos core do Oracle Warehouse Builder. 96 Figura 16 – Tela da ferramenta de ETL Oracle Warehouse Builder, mostrando a perspectiva DW e a perspectiva OLTP. Figura 17 – Tela da ferramenta de ETL Oracle Warehouse Builder, mostrando os processos de ETL com prefixo “MAP_”. 97 Figura 18 – Tela da ferramenta de front-end Oracle Discoverer Administrator, mostrando a Business Area Criada para o projeto escolar. Figura 19 – Business Area para a Escola. Tela do Discoverer Administrator mostrando as tabelas do DW. 98 Figura 20 – Business Area para a Escola. Tela do Discoverer Administrator mostrando o detalhamento das tabelas. Perspectiva pronta para a criação de consultas ad hoc. 99