UNIVERSIDADE ANHEMBI MORUMBI LUIS CARLOS PESSOTO FILHO LUIZ FELIPE FERNANDES GENTILE NAILSON COELHO COSTA SOLUÇÃO DE DATA WAREHOUSE COM ESQUEMAS DINÂMICOS PARA LEVANTAMENTO ESTATÍSTICO DOS DADOS DE OBSERVAÇÃO DO USO DE SERVIÇOS PÚBLICOS São Paulo 2009 LUIS CARLOS PESSOTO FILHO LUIZ FELIPE FERNANDES GENTILE NAILSON COELHO COSTA SOLUÇÃO DE DATA WAREHOUSE COM ESQUEMAS DINÂMICOS PARA LEVANTAMENTO ESTATÍSTICO DOS DADOS DE OBSERVAÇÃO DO USO DE SERVIÇOS PÚBLICOS Trabalho de Conclusão de Curso apresentado como exigência parcial para a obtenção de título de Graduação do Curso de Ciência da Computação na Universidade Anhembi Morumbi. Orientadora: Dra. Judith Virginia Pavón Mendonza. São Paulo 2009 LUIS CARLOS PESSOTO FILHO LUIZ FELIPE FERNANDES GENTILE NAILSON COELHO COSTA SOLUÇÃO DE DATA WAREHOUSE COM ESQUEMAS DINÂMICOS PARA LEVANTAMENTO ESTATÍSTICO DOS DADOS DE OBSERVAÇÃO DO USO DE SERVIÇOS PÚBLICOS Trabalho de Conclusão de Curso apresentado como exigência parcial para a obtenção de título de Graduação do Curso de Ciência da Computação na Universidade Anhembi Morumbi. Aprovado em _____________________________________________________ Profª. Dra. JUDITH VIRGINIA PAVÓN MENDONZA Universidade Anhembi Morumbi _____________________________________________________ Prof. FABIANO DO PRADO MARQUES Universidade Anhembi Morumbi _____________________________________________________ Profª. REGIANE APARECIDA MARUCCI Universidade Anhembi Morumbi AGRADECIMENTOS Agrademos primeiramente a Deus por nos dar força, sabedoria, paciência, amizade, compreensão para que ao longo desse trabalho pudéssemos conviver com muitas pessoas diferentes em muitos aspectos e conseguir trabalhar com todas em harmonia. Agrademos aos nossos familiares e amigos que por muitas vezes tiveram que nos aguentar em momentos difíceis e de muita pressão e que conseguiram com sua verdadeira amizade e compreensão nos ajudar a superar tais momentos. Agradecemos à Prof. Dra. Judith Pavón por ter no orientado com sua paciência e sabedoria ao longo desse trabalho e por nos ter ajudado a alcançar esse objetivo que foi traçado no inicio do ano e que com muito trabalho e esforço de todos foi atingido. Agradecemos à equipe do e-Poupatempo por nos ter ajudado disponibilizando as informações necessárias quando lhes foi solicitado. Agradecemos aos professores que ao longo do curso nos orientaram e nos ensinaram e ao coordenador do curso, o professor Luciano Freire que sempre que foi necessário estava à disposição para nos atender e nos ajudar. E agradecemos a todas as outras pessoas que direta ou indiretamente nos ajudaram em todo esse processo ao longo desse ano. RESUMO Quando se fala em empresas e órgãos governamentais, existe a necessidade de se levar em consideração os avanços tecnológicos, pois, cada vez mais essas instituições estão aproveitando os benefícios dos recursos tecnológicos disponíveis no mercado em suas atividades. Um exemplo disso é o e-Poupatempo, uma iniciativa de governo eletrônico (egov) do estado de São Paulo que visa garantir a rapidez e eficiência dos serviços disponibilizados pelo governo, aliando essa iniciativa com a expansão da inclusão digital. Idealizadores do e-Poupatempo realizam regularmente pesquisas, chamadas de campanhas, nas suas unidades para ter informações sobre usabilidade, tipos de usuário dos serviços, tempo médio de atendimento e dificuldades que enfrentam estes usuários quando utilizam os serviços disponíveis no e-Poupatempo. Estas campanhas geram relatórios, que são utilizados em análises e confecção de laudos, que ajudam nas tomadas de decisões para melhoria dos serviços. O grande problema é que atualmente os gestores do e-Poupatempo dependem da equipe de TI para que a geração desses relatórios seja possível. A equipe do e-Poupatempo possui um Data Warehouse (DW) baseada em apenas uma campanha e que foi desenvolvido por um grupo de alunos que concluíram o curso de Sistemas de Informação no final do ano de 2008. Porém a necessidade atual do e-Poupatempo é ter um DW que possa armazenar informações das diversas campanhas que são aplicadas nas salas e com isso gerar os relatórios necessários para auxiliar nas tomadas de decisões e análises dos dados coletados. Neste trabalho será construído um DW, que permitirá aos usuários confeccionar diferentes tipos de relatórios com base nos dados levantados nas diversas campanhas, tendo assim, maior rapidez nas tomadas de decisões. O diferencial desse trabalho consiste no uso de esquemas dinâmicos de Bancos de Dados (BDs), que permite aos gestores ter uma maior flexibilidade no modelo e na escolha de dimensões. Palavras-chave: Data Warehouse, Esquemas Dinâmicos, Banco de Dados, e-Poupatempo ABSTRACT When it comes to companies and government agencies, we must take into account technological advances, therefore, this institutions are increasingly taking advantage of technological resources available on the market in its activities. One example is ePoupatempo an initiative for electronic government (e-gov) from the state of Sao Paulo which aims to ensure speed and efficiency of services provided by government, combining this effort with the expansion of digital inclusion. E-Poupatempo’s developers regularly created researches, called Campaigns in their units to have a notion on usability, like types of users of the services, average attendance and difficulties faced by these users when they use the services available on e-Poupatempo. These campaigns generate reports, which are used in analysis and production of reports, which helps in decision-making to improve services. The big problem is that currently the managers of ePoupatempo depend on IT staff to produce them. The team of e-Poupatempo has a Data Warehouse (DW) based on a single campaign that was developed by a group of students who completed the course in Information Systems at the end of 2008. But the e-Poupatempo’s actual need is a data warehouse that can store information from the various campaigns that are applied in classrooms and thus generate the necessary reports to assist in decision-making and analysis of data collected. This work will build a data warehouse, which will allow users to build different types of reports based on data collected in different campaigns, and thus greater speed on decision making. The differential of this work is the use of dynamic schemas of Database, which allows managers to have greater flexibility in the model and the choice of dimensions. Key Words: Data Warehouse, Esquemas Dinâmicos, Banco de Dados, e-Poupatempo LISTA DE FIGURAS Figura 1 - Portal do e-Poupatempo...........................................................................................17 Figura 2 - Cubo......................................................................................................................... 21 Figura 3 – Modelo Estrela ........................................................................................................ 25 Figura 4 - Modelo Snowflake................................................................................................... 26 Figura 5 - Constelação de Fatos ............................................................................................... 27 Figura 6 - Planilha de Atendimento Campanha de Fundo........................................................ 32 Figura 7 - Planilha de Atendimento Campanha Especifica...................................................... 33 Figura 8 - Informação sobre as Campanhas Especifica............................................................35 Figura 9 - Tabelas ..................................................................................................................... 35 Figura 10 - Banco de Dados Relacional ................................................................................... 37 Figura 11- Modelagem Data Warehouse.................................................................................. 38 Figura 12 – Criação do Banco de Dados .................................................................................. 40 Figura 13 – Criação do DataSource “BDEPOUPATEMPO” ..................................................41 Figura 14 – Criação do DataSource View “BDEPOUPATEMPO” ......................................... 42 Figura 15 – Visualização do DataSource View ........................................................................ 42 Figura 16 – Selecionando as tabelas Fato................................................................................. 43 Figura 17 – Selecionando as dimensões ................................................................................... 43 Figura 18 – Estrutura do Cubo ................................................................................................. 44 Figura 19 – Editando as medidas.............................................................................................. 45 Figura 20 – Adicionando atributos às dimensões..................................................................... 45 Figura 21 – Tratando a dimensão de tempo .............................................................................46 Figura 22 – Processando o Cubo .............................................................................................. 46 Figura 23 – Analisando os resultados....................................................................................... 47 Figura 24 – Tela inicial do Microsoft Excel.............................................................................48 Figura 25 – Opções do submenu .............................................................................................. 49 Figura 26 – Configuração da Conexão com Analysis Services................................................ 49 Figura 27 – Tela de seleção do BD e do Cubo ......................................................................... 49 Figura 28 – Nomeando o Arquivo de Conexão........................................................................ 50 Figura 29 – Tipos de conexão .................................................................................................. 50 Figura 30 - Total de Atendimentos por Local ..........................................................................51 Figura 31 - Total de Atendimentos por Periodo....................................................................... 51 Figura 32 – Total de Atendimentos por Órgão......................................................................... 51 Figura 33 - Total de Atendimentos por Serviço ....................................................................... 52 Figura 34- Campanhas Especificas........................................................................................... 52 Figura 35 - Total de Ajuda por Serviço.................................................................................... 52 Figura 36 - Tempo Médio por Serviço ..................................................................................... 53 LISTA DE TABELAS Tabela 1 - Nível Operacional x Nível SAD - Fonte: Navarro, 2009 ........................................18 Tabela 2 - Tabela Fato, Dimensão e Medidas – Fonte: O autor (2009) ...................................39 SUMÁRIO 1 INTRODUÇÃO ........................................................................................................ 12 1.1 OBJETIVO.................................................................................................................12 1.2 JUSTIFICATIVA....................................................................................................... 13 1.3 ABRANGÊNCIA....................................................................................................... 13 1.4 ESTRUTURA DO TRABALHO...............................................................................13 2 GOVERNO ELETRÔNICO ................................................................................... 15 2.1 DEFINIÇÃO .............................................................................................................. 15 2.2 TRANSAÇÕES..........................................................................................................15 2.3 PRINCIPAIS FUNÇÕES ...........................................................................................16 2.4 E-POUPATEMPO...................................................................................................... 16 2.4.1 Sobre e-Poupatempo ................................................................................................ 17 3 DATA WAREHOUSE ............................................................................................. 18 3.1 INTRODUÇÃO..........................................................................................................18 3.1.1 Características .......................................................................................................... 19 3.1.2 Conceitos ................................................................................................................... 20 3.1.2.1 Granularidade ............................................................................................................. 20 3.1.2.2 Fatos.......... ................................................................................................................. 20 3.1.2.3 Dimensões.. ............................................................................................................... .20 3.1.2.4 Medidas..... ................................................................................................................. 21 3.2 DATAMARTS ...........................................................................................................22 3.3 METADADOS........................................................................................................... 22 3.4 ETL (EXTRACT, TRANSFORM AND LOAD) ...................................................... 22 3.4.1 Extração .................................................................................................................... 23 3.4.2 Transformação.......................................................................................................... 23 3.4.3 Carga ......................................................................................................................... 24 3.4.4 Ferramentas para ETL ............................................................................................ 24 3.5 MODELOS MULTIDIMENSIONAIS ......................................................................24 3.5.1 Tipos de Modelos Multidimensionais ..................................................................... 25 3.6 ESQUEMAS DINÂMICOS....................................................................................... 27 3.8 TRABALHOS RELACIONADOS ............................................................................ 28 4 APRESENTAÇÃO DO ESTUDO DE CASO........................................................ 31 4.1 CAMPANHAS........................................................................................................... 31 4.1.2 Campanha de Fundo ................................................................................................31 4.1.3 Campanhas Específicas............................................................................................ 33 4.2 EXEMPLO DE UTILIZAÇÃO DE ESQUEMAS DINÂMICOS .............................34 4.3 LEVANTAMENTO DE REQUISITOS ....................................................................36 4.4 MODELO DE DADOS RELACIONAL ................................................................... 36 5 MODELAGEM DO DATA WAREHOUSE.......................................................... 38 6 IMPLEMENTAÇÃO DA SOLUÇÃO.................................................................... 40 7 ANÁLISE DOS RESULTADOS............................................................................. 48 8 CONCLUSÕES E TRABALHOS FUTUROS....................................................... 54 REFERÊNCIAS BIBLIOGRÁFICAS ................................................................... 55 ANEXO I - CARGA DOS DADOS PARA SCHEMA “BDEPOUPATEMPO” 58 12 1 INTRODUÇÃO Para obter um diferencial, empresas procuram novas formas para se destacar no mercado, uma estratégia de sucesso é dispor de informações cruciais para as tomadas de decisão. Isso é possível, se o Gestor ou tomador de decisões consegue acessar as informações relevantes para o negócio a partir de diferentes perspectivas, sem depender dos profissionais da área de TI. Uma dessas formas que possibilita uma análise rápida é o DW, que fornece informações que dão apoio nas tomadas de decisões através de relatórios constantemente atualizados, de acordo com a necessidade do usuário. Além de empresas, órgãos governamentais se utilizam também do DW, não visando à competitividade, mas sim, melhorias para a população em geral e para o estado como um todo. Um exemplo disso é o e-Poupatempo, iniciativa do governo do estado de São Paulo, que substitui muitos dos serviços presencias por serviços on-line. Além de disponibilizar esses serviços para que qualquer pessoa que tenha acesso à internet possa acessá-los, o ePoupatempo dispõe de salas espalhadas pelas unidades do Poupatempo onde o cidadão pode acessar esses serviços e ainda tem a sua disposição monitores que auxiliam na execução dos mesmos. No decorrer do trabalho, será apresentada a implementação e utilização de uma ferramenta de DW na gestão de informações geradas pelas campanhas organizadas pelo ePoupatempo e aplicadas nas diversas salas espalhadas nos postos do Poupatempo e nos postos móveis. Campanhas são tipos de pesquisas realizadas pelos próprios monitores/atendentes e que será explicado com mais detalhes no capitulo 4. 1.1 OBJETIVO Atualmente, em todas as salas do e-Poupatempo são realizadas pesquisas pelos próprios atendentes com a finalidade de coletar informações sobre o perfil do cidadão e suas dificuldades nas realizações dos serviços públicos eletrônicos, visando à melhoria desses serviços. O objetivo desse trabalho é modelar uma aplicação baseada em um DW para permitir que o próprio Gestor possa criar, sem intervenção da área de TI, diversos tipos de relatórios de acordo as necessidades do negócio, e assim, ajudar na tomada de decisões do ePoupatempo. 13 1.2 JUSTIFICATIVA O e-Poupatempo não possui uma ferramenta de auxílio à análise dos dados obtidos através das pesquisas e de visualização desses dados por diferentes critérios e a partir de diferentes perspectivas. Diante desse problema, pretende-se modelar uma solução que atenda essas necessidades, disponibilizando para os gestores do e-Poupatempo, relatórios que servirão para auxiliar na análise dos dados coletados e que possa ser utilizada como uma ferramenta de apoio à decisão. Essa ferramenta será capaz de gerar relatórios a partir de campanhas que poderão ser criadas a qualquer momento pela equipe do e-Poupatempo denominadas Campanhas Específicas. Esse é o ponto principal desse trabalho, que para poder disponibilizar esses relatórios, se utilizará dos conceitos de esquemas dinâmicos de BDs na criação do DW. Ao longo desse trabalho será explicado o que é uma campanha, o que é um esquema dinâmico e como ele será aplicado. 1.3 ABRANGÊNCIA Esse trabalho pretende realizar o levantamento de requisitos e modelar uma aplicação baseada em um DW que sirva de solução para o problema exposto, que permitirá que os gestores do e-Poupatempo analisem os dados obtidos pelas campanhas sob diversas perspectivas, sem que pra isso seja necessária a intervenção da equipe técnica para a criação dos relatórios. Devido à falta de dados, será disponibilizado ao final desse trabalho toda a documentação e uma prévia de como será essa aplicação, pois para que todos os testes sejam realizados com sucesso, existe a necessidade de uma grande massa de dados e a mesma não existe, pois as coletas dos dados tiveram inicio em Outubro de 2009. 1.4 ESTRUTURA DO TRABALHO O trabalho foi estruturado da seguinte forma: No capítulo 2 são abordados os conceitos de Governo Eletrônico, incluindo suas definições, transações e principais funções, inclui também conceitos sobre e-Poupatempo. No capítulo 3 são abordados os conceitos de Data Warehouse, incluindo conceitos básicos, importância, características. No capitulo 4 é apresentado o estudo de caso, incluindo os conceitos de campanha, levantamento de requisitos e modelo de dados relacional. 14 No capítulo 5 é apresentada a modelagem do Data Warehouse. No capítulo 6 é apresentada a implementação do modelo dividida em Extração dos dados, Transformação dos dados, Construção do Cubo e Processamento do Cubo. No capítulo 7 é apresentada a análise dos resultados obtidos. No capítulo 8 é apresentada a conclusão do grupo sobre o trabalho. 15 2 GOVERNO ELETRÔNICO O Governo Eletrônico (e-Gov) é uma tendência mundial e tem como objetivo estabelecer uma melhor relação entre o setor público e seu público-alvo, utilizando a tecnologia de informação como elo. 2.1 DEFINIÇÃO Os aparelhos governamentais, no início dessa década, impulsionados pela evolução dos processos tecnológicos e pela necessidade de reestruturação e modernização das ações governamentais, conceberam a idéia de aperfeiçoar, facilitar e disseminar os serviços prestados pelo setor público utilizando a tecnologia de informação e comunicação (TIC) como ferramenta. Essa idéia foi intitulada “Governo Eletrônico”. (RIBEIRO, 2009) 2.2 TRANSAÇÕES O Governo Eletrônico atua principalmente em três tipos de transações: a) G2G (Government to Government): transações intra ou inter-governos, geralmente feitas em sistemas de gestão interna, criados e mantidos pelo próprio governo para otimizar seus canais de informação. São esses tipos de transações que permitem, por exemplo, que os Cadastros de Pessoa Física (CPF) sejam emitidos em qualquer município do Brasil e mesmo assim, obedeçam a uma numeração única e nacionalmente conhecida. b) G2B (Government to Business): transações entre o Governo e as empresas, é a transação menos comum, mas com grande potencial para crescer. Em alguns países, por exemplo, já é possível cadastrar-se como fornecedor de um produto de interesse do Governo, ou candidatar-se a uma licitação através da Internet. c) G2C (Government to Citizens): transações entre o Governo e os cidadãos, são as transações mais comuns, e são amplamente difundidas nos países com tradição democrática. Um exemplo comum são os sites que o Governo disponibiliza aos cidadãos para execução de serviços que anteriormente só poderiam ser feitos presencialmente, como o Boletim de Ocorrência que hoje pode ser feito pela Internet. 16 2.3 PRINCIPAIS FUNÇÕES O Programa de Governo Eletrônico brasileiro se compromete a transformar as relações entre Governo, Cidadãos e Empresas buscando: a) Aprimorar a qualidade dos serviços prestados b) Promover a interação com empresas e indústrias c) Fortalecer a participação cidadã através do acesso à informação d) Tornar a administração governamental mais eficiente A adesão ao Governo Eletrônico traz diversos benefícios, tanto para o próprio governo, que diminui seus gastos na execução dos serviços e garante transparência em suas ações, como para o cidadão, que não precisa mais se deslocar ao posto de serviço, não enfrenta filas, e na grande maioria dos casos acessa os serviços a qualquer hora e de qualquer lugar. 2.4 E-POUPATEMPO Conforme o relatório técnico sobre a ética na pesquisa com cidadão, a monitoração dos usuários durante a utilização dos serviços públicos eletrônicos foi realizada em salas que receberam o nome de e-poupatempo. “Neste local, cidadãos podem acessar qualquer site governamental ou público de interesse, sendo auxiliados, quando necessário, por pessoal treinado e especializado tanto na utilização de tais serviços quanto no manuseio dos equipamentos” (FILGUEIRAS; FERREIRA, 2006, p. 6). Neste mesmo ambiente foi instalado o Laboratório de Interação Homem-Computador (LabIHC), que tem a responsabilidade de identificar e avaliar barreiras que dificultam ou impedem a utilização dos serviços eletrônicos. O e-Poupatempo é uma iniciativa do Governo do Estado de São Paulo, que busca levar o padrão de qualidade do atendimento do Poupatempo para o meio eletrônico. Atualmente o e-Poupatempo conta com várias salas de atendimento dentro dos postos do e-Poupatempo, e com bases móveis que fazem um revezamento nas cidades onde não existem postos fixos do Poupatempo. Tudo isso serve para aproximar o cidadão dos serviços que ele tem disponível a partir da sua própria casa, bastando ter apenas acesso à internet para realizar os serviços disponíveis no site. Na figura 1 é apresentada a página inicial do e-Poupatempo no site do Poupatempo. 17 Figura 1 - Portal do e-Poupatempo - Fonte: e-Poupatempo (2008) 2.4.1 Sobre e-Poupatempo O projeto e-Poupatempo, além de visar à padronização dos serviços de governo eletrônico existentes na esfera estadual, tornando sua utilização mais fácil, rápida, intuitiva e menos burocrática, têm como objetivo também fornecer os meios para que os cidadãos possam conhecer e utilizar esse tipo de serviço. Com esse propósito, foram criadas as salas de atendimento e-Poupatempo dentro dos Poupatempos espalhados pelo Estado de São Paulo, essas salas além de fornecer acesso à internet e orientação para utilização dos serviços disponíveis em meio eletrônico, ainda permitem que essa utilização seja monitorada e posteriormente avaliada contribuindo para a análise dos serviços existentes atualmente e garantindo um salto na qualidade e eficiência dos serviços já existentes e uma melhor base para a elaboração dos novos serviços a serem disponibilizados. Alguns exemplos de serviços oferecidos pelo e-Poupatempo são: Boletim de Ocorrência, Carteira Nacional de Habilitação, Segunda via de RG, Carteira de Trabalho Profissional, etc. 18 3 DATA WAREHOUSE Os DWs são ambientes desenvolvidos para armazenar grandes quantidades de dados que posteriormente serão utilizados para análises e tomadas de decisões. No decorrer desse capítulo, são apresentados os conceitos, características, tipos de modelos e ferramentas para extração dos dados. São abordados também os conceitos de esquemas dinâmicos de banco de dados. 3.1 INTRODUÇÃO Os sistemas e as bases de dados disponíveis hoje dentro das organizações foram concebidos e implantados para atender as necessidades do setor operacional, onde os dados relevantes são, geralmente, os dados do período atual e a fronteira de sua informação está delimitada pela área de atuação do departamento que utiliza aquele sistema. (NAVARRO, 2009). Na tomada de decisões, o nível gerencial e estratégico da organização precisa conhecer a tendência desses dados ao longo do tempo, e precisa cruzar dados advindos de diversos setores da empresa. A tabela 1 mostra a diferença entre os dois níveis: Tabela 1 - Nível Operacional x Nível SAD - Fonte: Navarro, 2009 Tópico ou Função Conteúdo dos Dados Organização dos Dados Natureza dos Dados Estrutura e Formato dos Dados Possibilidade de Acesso Atualização Aplicação Tempo de Resposta Nível Operacional Nível Suporte à Decisão Valores Correntes Dados históricos, consolidados e trabalhados. Orientada à Aplicação Orientado à Informação Dinâmica, Dados Normalizados. Estática, dados desnormalizados. Simples, desejáveis para análise de negócios. Complexos, desejáveis para computação operacional. Alta Contínua Estruturada, processamento repetitivo. Entre 2 e 30 segundos Moderada a Baixa Periódica Não-estruturada, processamento analítico. Segundos a minutos O processo de tomada de decisão deve considerar a empresa como um todo, desde o nível mais operacional até ao mais alto escalão. Nesse cenário um Sistema de Apoio à decisão 19 (SAD) mostra sua importância, disponibilizando uma visão mais apurada das informações e garantindo maior segurança no processo decisório. Os DWs são criados pelas organizações justamente para atuar nessa realidade, fornecendo informações precisas e confiáveis aos SAD’s e esses fornecendo aos gerentes uma visão global da organização, permitindo uma tomada de decisão mais precisa. (PARIS, 2009). Um DW como a própria tradução do nome diz, é basicamente um ‘Armazém de Dados’. Sua principal função é o armazenamento dos dados de uma empresa, de forma a dar suporte à tomada de decisões da organização. A arquitetura DW é amplamente utilizada em SAD’s para auxiliar o corpo gerencial e estratégico da empresa na tomada de melhores decisões para o rumo das operações e processos da companhia. (MACHADO, 2004). 3.1.1 Características Uma das grandes diferenças de um DW é o seu ciclo de vida. Em um banco de dados operacional, primeiro entende-se a necessidade e somente após esse processo é que se inicia a fase de projeto e desenvolvimento. Em um DW, quase que acontece de maneira inversa, pois uma vez tendo os dados sob controle, é feita a integração, testes para verificar distorções, codificação dos dados, e, somente após todo esse processo é que os resultados obtidos são analisados e finalmente os requisitos do sistema são compreendidos (INMON, 1997). Existem várias características que são pertinentes ao DW, a seguir as quatro principais: a) Orientação por Assunto: As informações armazenadas em um DW são agrupadas por assunto e cada um está relacionado a um processo de interesse da empresa. b) Não Volátil: Os dados são carregados e depois ficam disponíveis para serem acessados. Não existe manipulação dos dados no que diz respeito à alteração, modificação dos mesmos. c) Variação de Tempo: Os dados não podem ser alterados, mas ao longo do tempo, dependendo do momento que o mesmo esteja sendo analisado ele pode variar. Nesse contexto o campo data é o elemento principal para que as análises ou comparações possam ser realizadas. d) Integração: Os dados podem vir de várias fontes e antes de serem carregados, passam por alguns processos que fazem com que sejam filtrados e agregados e isso garante que tudo esteja unificado. 20 3.1.2 Conceitos Abaixo serão apresentados alguns dos principais conceitos básicos de DW, incluindo granularidade, fato, dimensão e medidas. 3.1.2.1 Granularidade A granularidade refere-se ao nível de sumarização dos elementos e de detalhes disponíveis nos dados. Quanto maior foi o nível de detalhamento mais baixo será o nível de granularidade e quanto menor for o nível de detalhamento mais alto será o nível de granularidade e esse é o mais importante aspecto de um projeto de DW. Durante o projeto do DW essa é a questão mais crítica a ser tratada, pois, quanto maior for o volume de dados menor será a performance e isso está diretamente relacionado à questão de maior nível de detalhamento, pois isso implica a necessidade de maior espaço para armazenamento dos dados, em contrapartida, quanto menor for o nível de detalhamento menos espaço será necessário para armazenar os dados, mas em uma eventual análise, menos dados serão analisados e isso pode afetar em uma tomada de decisão. 3.1.2.2 Fatos Utilizado para analisar o processo que envolve um negócio da empresa, o fato é uma coleção de itens de dados e essa coleção é composta de dados de medidas e de contexto. Cada fato ao longo do tempo representará a evolução da organização dia após dia, em uma modelagem podem existir mais de um fato, depende dos processos da empresa. A principal característica de um fato é que ele é representado por valores numéricos, como por exemplo, quantidade de produtos vendidos, e são implementados em tabelas, por esse motivo as mesmas são denominadas tabelas de fato (INMON, 1997). 3.1.2.3 Dimensões Uma aplicação que se baseia em DW tem por finalidade analisar os dados coletados ao longo de um período e a partir daí, ajudar na análise dos mesmos e emitir relatórios para auxiliar nas tomadas de decisões. Em uma empresa de venda de produtos, por exemplo, 21 muitas vezes é necessário avaliar o quando um determinado produto vende por semana, por mês, por ano, e essas visualizações nada mais são que as dimensões, ou seja, representam as possíveis formas de visualização dos dados e conceitualmente são todos os elementos que fazem parte de um fato. Cada dimensão pode ou não conter membros e caso existam, passam a fazer parte de uma hierarquia. Uma hierarquia representa a classificação dos dados dentro de uma dimensão e caso a modelagem não seja bem feita, isso pode inviabilizar uma analise mais global sobre um dado especifico. 3.1.2.4 Medidas São consideradas medidas, todos os atributos numéricos que representam um fato e é determinada pela combinação das dimensões que participam do mesmo. Usando como base o exemplo utilizado na explicação de dimensões, a quantidade de um determinado produto que foi vendido em um determinado mês é chamada de medida, esses valores numéricos são conhecidos como variáveis (KIMBALL, 2007). A Figura 2 é uma representação de um cubo onde o fato corresponde à Venda de Produtos, existem três dimensões, Região, Produto e Mês e as medidas surgem a partir do relacionamento entre as dimensões, por exemplo: Quantidade de Suco. Figura 2 - Cubo - Fonte: Nardi (2009) 22 3.2 DATAMARTS O termo DataMart designa um subconjunto do DW que contém os dados sobre um setor ou departamento específico da empresa. Geralmente os DWs são constituídos de diversos DataMarts, onde cada DataMart é modelado com foco em um departamento ou setor específico da empresa. Em suma, um DataMart possui as mesmas características de um DW, só que possui menor proporção, e é direcionado para um departamento da empresa ou assunto específico. 3.3 METADADOS A idéia mais comum que se tem sobre Metadados é que eles representam “dados sobre dados”. De uma forma um pouco mais completa podemos dizer que o metadado é a “descrição do dado, do ambiente onde ele reside, como ele é manipulado e para onde é distribuído". Outra forma, mais concisa e direta, é definir metadado como "documentação" (TRONCHIN, 1998). Sem metadados, os dados não têm significado, e ações como a de localizar informações contidas em um DW tornam-se uma tarefa muito difícil, semelhante a procurar o telefone de uma pessoa sem a ajuda de uma lista telefônica. 3.4 ETL (EXTRACT, TRANSFORM AND LOAD) A extração, transformação e carga dos dados devem ser feitas com o intuito de garantir a integridade da informação para que, desta forma, seja construída, uma base de dados confiável e com qualidade, que realmente demonstre a realidade dos negócios da empresa. O ETL é importante, pois constituem tarefas criticas para seu funcionamento efetivo e eficiente. O processo de ETL é um processo que envolve: a) a extração dos dados vinda de diversas fontes externas, podendo ser bancos de dados relacionais ou ate arquivos textos; b) a transformação destes arquivos para atender às necessidades de negócios que são solicitadas, isto é, a informação chega de forma bruta e sai com as devidas formatações requeridas pelo usuário. c) a carga destes dados, já modificados e transformados para a forma que o usuário 23 deseja, no DW. Com isso, cada tópico estará explicando de uma forma mais abrangente a definição de cada um dos tópicos de ETL (Extração, Transformação e Carga). 3.4.1 Extração Durante a implementação de um DW, a primeira parte do processo é a extração de dados dos sistemas de origem, este podendo ser feito de diversas fontes como bancos de dados relacionais ou arquivos texto, chamados de flat files. Cada sistema pode também utilizar um formato ou organização de dados diferente. Formatos de dados comuns são bases de dados relacionais e flat files ou em português, arquivos planos, mas podem incluir estruturas de bases de dados não relacionais. A extração converte para um determinado formato para a entrada no processamento da transformação, fazendo com que estes cheguem de forma mais limpa e clara. Os tipos de tratamentos mais comuns no processo de extração são: a) Resolução de conflitos de nomes; b) Conversão de dados para um tipo de unidade de medida comum; c) Padronização no formato de datas. 3.4.2 Transformação A fase de transformação (transform) funciona como um filtro nos dados vindos da extração, aplicando uma série de regras aos dados que serão carregados. Algumas fontes de dados não precisarão de tantas mudanças, pois podem ser que já estejam corretos sendo assim necessitarão de pouca manipulação nos dados. Em caso contrário, pode ser necessário um ou mais de um dos seguintes tipos de transformação: 1 Seleção de apenas determinadas colunas para carregar; 2 Tradução de valores codificados, o que é conhecido como limpeza de dados; 3 Codificação de valores, mapeando, por exemplo, “Masculino”, "1” e “Sr.” para M; 4 Derivação de um novo valor calculado; 5 União de dados extraídos de diversas fontes; 24 6 Resumo de várias linhas de dados; 7 Geração de valores de chaves substitutas; 8 Transformação de múltiplas colunas em múltiplas linhas ou vice-versa (Rotação); 9 Quebra de uma coluna em diversas colunas. 3.4.3 Carga A fase de carga, como o próprio nome já diz, faz a carga do DW, isto é, carrega os dados no ambiente. Dependendo do tipo de necessidade da organização, este processo pode variar. Alguns DWs podem substituir as informações existentes semanalmente, com dados atualizados, ao passo que outro, ou até outras partes do mesmo DW, podem acrescentar dados a cada hora. Essa medida de tempo entre as cargas depende do tempo disponível e das necessidades de negócios. Sistemas mais complexos podem manter um histórico de todas as mudanças sofridas pelos dados. 3.4.4 Ferramentas para ETL Existem no mercado muitas ferramentas para realizar o ETL, cuja função principal é a de extrair os dados de diversas fontes heterogêneas, transformarem esses dados a partir de regras de negócios pré-definidas e a partir daí, realizar a carga em um DW ou Data Mart. A maioria das fontes de onde os dados são extraídos são BDs relacionais, mas existem diversos outros tipos de fontes e as ferramentas de ETL devem ser capazes de ler as informações. As ferramentas mais usadas e mais poderosas existentes no mercado são o PowerCenter da Informática e o DataStage da IBM. Ambas possuem como grande diferencial a questão da portabilidade, não necessitam de um banco de dados especifico para funcionar, pois podem acessar informações de bases heterogêneas. Um diferencial do PowerCenter é que seu processamento pode ser em modo batch ou em tempo real devido sua estrutura. O DataStage tem como principal característica a utilização do processamento em paralelo o que otimiza a extração. 3.5 MODELOS MULTIDIMENSIONAIS São técnicas de modelagem que auxiliam no ganho de performance nas consultas e servem basicamente para consultas analíticas. Essa modelagem é feita a partir do 25 relacionamento entre a tabela fato, ou as tabelas fato, e as tabelas dimensões, possibilitando assim varias combinações e visualizações dependendo das regras aplicadas e do modelo utilizado. Existem basicamente três tipos de modelos multidimensionais, o Estrela, o SnowFlake e o Constelação de Fatos. A seguir iremos explicar melhor cada um dos modelos. 3.5.1 Tipos de Modelos Multidimensionais a) Modelo Estrela: É a estrutura básica da modelagem multidimensional, é constituído de uma entidade que chamamos de fato e vários outros conjuntos de entidade que são chamadas de dimensões. Colocando a entidade fato no centro e todas as entidades dimensão ao redor, teremos um formato de estrela, daí vem à denominação para esse tipo de modelo. Um ponto forte desse modelo é que as dimensões não são normalizadas, pois elas têm ligação entre elas, mas todas se relacionam com o fato. A figura 3 mostra um exemplo de modelo estrela. Figura 3 – Modelo Estrela Fonte: Machado (2000) 26 b) Modelo Snowflake: O modelo snowflake tem sua estrutura muito parecida com a do modelo anterior, o que diferencia é a decomposição de uma ou mais dimensões fazendo com que, além das pontas da estrela, tenhamos também ramificações dessas pontas gerando uma hierarquia entre as dimensões. Dessa forma, podemos observar a existência de dimensões que somente se relacionam entre si, não tendo ligação com o fato e tudo isso ocorre devido esse modelo ser normalizado visando à diminuição do espaço ocupado e também, para não gerar redundância dos dados conforme figura 4. Figura 4 - Modelo Snowflake - Fonte: Rui Santos (2007) c) Constelação de Fatos: Diferentemente dos outros modelos vistos, no modelo constelação de fatos existem vários fatos que compartilham das mesmas dimensões. 27 A figura 5 mostra um exemplo de constelação de fatos. Figura 5 - Constelação de Fatos - Fonte: Alves (2009) 3.6 ESQUEMAS DINÂMICOS A maioria dos BDs quando são criados, possuem uma estrutura definida a partir de regras e levantamentos que são realizados na fase de projeto e, após sua fase de implementação, são poucas as modificações que as estruturas das tabelas sofrem, pois uma vez que seja visualizada a necessidade de modificar um campo em uma determinada tabela, isso pode comprometer o funcionamento do BD. O BD do e-Poupatempo tem um detalhe em particular, ele deve permitir que a qualquer momento a equipe de gestores crie campanhas e que os mesmos possam definir quais serão os campos dessa nova campanha e qual será o tipo de dado que cada coluna deverá receber, isso faz com que exista a necessidade que a estrutura do banco seja flexível para atender essa demanda. Com os dados em mãos, os gestores necessitam de uma ferramenta que possibilite analisar e gerar relatórios dessas campanhas, com isso o DW que será construído utilizará do mesmo conceito de esquemas dinâmicos para possibilitar a geração desses relatórios sem a intervenção da equipe de TI. 28 O esquema dinâmico é uma maneira, um método utilizado na modelagem para criar estruturas/tabelas utilizando o conteúdo de outras tabelas. Quando a equipe do e-Poupatempo decide criar uma nova campanha, é feito um levantamento de quais informações serão necessárias para a criação da mesma e quais os tipos de dados serão levantados durante a aplicação da campanha. Uma vez feito isso, cria-se a campanha, mas ao invés de criar uma estrutura fixa no banco, que só poderá receber um determinado tipo de dado, essas informações são armazenadas em outras tabelas, possibilitando a reutilização dessas informações para a criação de outras campanhas (LOVING, 2008). As campanhas são constituídas de perguntas e cada uma tem algumas opções de respostas, quando uma campanha é criada, cada pergunta gera um registro em uma tabela e cada possibilidade de resposta gera um registro em outra tabela, isso faz com que outras campanhas possam ser criadas utilizando-se novas perguntas ou de perguntas já existentes, basta que uma verificação seja feita na tabela correspondente e caso não haja nenhum registro um novo é inserido e passa a ficar disponível para futuras campanhas que necessitem utilizarse da mesma. No capitulo 4 será definido o que é uma campanha bem como será dado um exemplo de aplicação de esquemas dinâmicos para BDs. 3.8 TRABALHOS RELACIONADOS Muitos trabalhos acadêmicos, relacionados com DW, tratam de problemas de diversos tipos e em vários seguimentos. Abaixo serão apresentados três trabalhos de conclusão de curso que desenvolveram aplicações utilizando tecnologia DW e no final mostra-se o diferencial deste trabalho em relações aos anteriores. 1) ‘Data Warehouse como Instrumento de Suporte à Avaliação Acadêmica’ O objetivo foi o desenvolvimento de uma aplicação para ajudar no gerenciamento dos dados gerados após a criação do Sistema Nacional de Avaliação da Educação Superior (Sinaes). O Sinaes tinha por objetivo avaliar as instituições de ensino superior, os cursos e o desempenho dos alunos que freqüentavam os mesmos. Os dados eram levantados por comissões próprias que faziam sua auto-avaliação e por comissões externas, coordenadas por docentes devidamente matriculados e cadastrados. As informações levantadas alimentavam um banco de dados que possuía toda a estrutura criada para receber os mesmos, mas, a partir desse ponto não existia nada desenvolvido para poder avaliar os dados e poder utilizá-los como base para uma ação efetiva 29 nas tomadas de decisões. O que foi proposto no trabalho foi o desenvolvimento de uma aplicação baseada em um DW para poder analisar e gerar relatórios a partir dos dados obtidos nos levantamentos, mas, devido ao atraso na obtenção dos dados o trabalho ficou como protótipo para futuros grupos que quisessem dar continuidade ao mesmo (FUJIWARA, 2006). 2) ‘Utilização de Ferramenta de Data Warehouse na Gestão de Informações do Governo Eletrônico’ O objetivo foi o desenvolvimento de uma aplicação baseada em um DW para poder disponibilizar aos gestores do e-Poupatempo uma ferramenta que auxiliasse na geração de relatórios e no gerenciamento dos dados levantados em uma campanha, dados esses que alimentavam um banco de dados. Um dos problemas enfrentados pelo grupo foi à grande quantidade de dados duplicados que faziam com que o DW não disponibilizasse informações precisas, com isso, antes de alimentar o DW houve a necessidade de aplicação de regras de negócio para limpeza dos dados para que assim a visualização pudesse ajudar os gestores (OLIVEIRA; BITENCOURT; ANDRADE; CUSTODIO, 2008) 3) ‘Data Warehouse utilizando processamento paralelo em ambiente distribuído’ O objetivo do trabalho foi o de propor uma solução de DW distribuído para implementação de um sistema de CRM para ser utilizado em ambientes bancários para que assim o relacionamento com os clientes possam ser planejados e implementados. Com o uso de uma aplicação distribuída e utilizando programação paralela, o autor conseguiu provar no decorrer do trabalho que utilizando as duas tecnologias o ganho de desempenho e a diminuição nos custos é um fator determinante para tal utilização (RUGGIERO, 2007). Comparando os três trabalhos apresentados com esse trabalho, a grande diferença é a utilização de esquemas dinâmicos de BDs para solucionar o problema do e-Poupatempo. Em todos os trabalhos mencionados, os BD’s que forneciam os dados para alimentar os DWs tinham suas estruturas de tabelas definidas no momento da criação e raramente sofriam modificações, com isso facilitou a modelagem e a construção do DW. Em contrapartida, a equipe do e-Poupatempo necessita de uma estrutura flexível que possibilite a criação de tabelas dinamicamente sem a intervenção da equipe de TI, isso só é possível por causa da utilização de Esquemas Dinâmicos de BDs. 30 Cada campanha criada para atender uma demanda tem uma estrutura diferente das demais, com campos diferentes e durante a criação das novas campanhas, que são constituídas de perguntas e respostas pré-definidas, as informações utilizadas para criação dessas perguntas serão armazenadas na tabela VARIAVEIS e as utilizadas para criação das respostas serão armazenadas na tabela DOMINIO, isso faz com que uma busca seja realizada quando uma nova campanha for criada e caso uma pergunta ou resposta seja igual a uma já utilizada em campanhas anteriores, à mesma não será inserida na tabela e reutilizará o registro existente. Um dos grandes motivos para a elaboração desse trabalho é justamente disponibilizar para a equipe do e-Poupatempo, uma aplicação baseado em DW que consiga disponibilizar os relatórios gerados com base nos dados levantados nas campanhas, criadas a qualquer momento pela equipe do e-Poupatempo, para uma analise e ajuda na tomada de decisões. 31 4 APRESENTAÇÃO DO ESTUDO DE CASO Nesse capitulo será apresentado o que á uma campanha, como elas são criadas, para que criadas, quais os tipos, será apresentado também um exemplo prático da aplicação do conceito de esquemas dinâmicos passando pela parte de levantamento de requisitos e finalizando com a modelagem de dados relacional. 4.1 CAMPANHAS Campanhas são pesquisas criadas pelos gestores do e-Poupatempo, para serem aplicadas pelos monitores nas salas de atendimento com o objetivo de avaliar os serviços que são disponibilizados no portal do e-Poupatempo sejam eles novos ou que já existam e que sofreram alguma modificação. Cada campanha é criada com um foco diferente, a diferença entre as campanhas é basicamente o objetivo. Enquanto uma campanha tem o objetivo de verificar se os descritivos de cada campo dos formulários existentes na execução de determinado serviço são de fácil entendimento para o usuário, outra campanha pode ter por objetivo saber se a disposição dos elementos na tela permite que o usuário execute com facilidade aquele serviço. Sempre que um serviço novo é criado, ou quando se percebe a necessidade de avaliar algum serviço existente, cria-se uma ou mais campanhas buscando absorver de quem usa o serviço, se ele é prático, se confunde o usuário em algum momento, enfim, se ele pode ser melhorado e se está apto a ser utilizado por qualquer pessoa, independente dela estar na sala do e-Poupatempo, em casa, em uma lan-house ou no trabalho. As campanhas sempre têm o objetivo de avaliar os serviços, seja quanto à praticidade, disponibilidade, interatividade, nível de burocracia, etc. Podemos visualizar as campanhas como uma ferramenta que a gestão do e-poupatempo dispõe para melhorar os serviços eletrônicos, lembrando que o objetivo maior é a disseminação do projeto Governo Eletrônico, que num futuro próximo busca garantir que a maioria dos serviços executados pelo estado estejam disponíveis em meio eletrônico. Essas campanhas estão dividas em dois tipos: Campanhas de Fundo e Campanhas Especificas. 4.1.2 Campanha de Fundo É uma campanha padrão, que analisa os atendimentos, orientações e insucessos nos serviços 32 executados. Essas pesquisas são aplicadas em todos os atendimentos feitos no e-Poupatempo. A figura 6 mostra um modelo de planilha usado pelos monitores para a campanha de fundo, essa planilha contém os dados que são coletados sempre que um atendimento é efetuado, esses dados são constituídos das seguintes informações: a) Local: Qual posto está sendo efetuado o atendimento; b) Data: Data do atendimento; c) Atendente: Nome do atendente; d) Orientação: Qual foi o motivo da orientação (inclui se foi bem sucedido ou não o atendimento) e) Retorno: Se é a primeira vez que o usuário está utilizando o e-Poupatempo f) Serviço: Qual o nome do serviço que o cidadão solicitou; g) Hora: Inicio e Fim do atendimento; h) Ajuda: Se o cidadão necessitou de ajuda durante o atendimento Figura 6 - Planilha de Atendimento Campanha de Fundo - Fonte: e-Poupatempo (2009) 33 4.1.3 Campanhas Específicas São campanhas criadas pelos gestores do e-Poupatempo e deferente das campanhas de fundo para cada uma dessas, no momento da criação são definidas as variáveis e filtros que posteriormente poderão ser utilizadas para criação dos relatórios e gráficos desejados. Essas campanhas podem ser criadas para avaliação de um serviço ou perfil de cidadão específico. A figura 7 mostra um modelo de planilha utilizado nas campanhas especificas. Nesse modelo, além das informações que constam na planilha de campanha de fundo, existem varias outras variáveis que podem ser utilizadas dependendo do serviço que está sendo avaliado. Dentre algumas das informações coletadas nessa planilha, estão: a) Se o cidadão é analfabeto; b) Se o cidadão possui experiência computacional; c) Quais foram às dificuldades encontradas; d) Se o usuário acessa a internet com freqüência. Figura 7 - Planilha de Atendimento Campanha Especifica - Fonte: e-Poupatempo (2009) Atualmente, com a informatização dos postos do e-Poupatempo, os atendentes possuem palm top para realizar o levantamento das informações, quando clicam na opção de campanha de fundo as variáveis e domínios são disponibilizados automaticamente e quando 34 existe a necessidade de aplicar uma campanha especifica, os gestores criam a campanha e apenas disponibilizam para aplicação nos postos. 4.2 EXEMPLO DE UTILIZAÇÃO DE ESQUEMAS DINÂMICOS Durante o estudo de caso, foi constatada a necessidade de utilizar-se um conceito diferente dos utilizados na maioria dos DW’s. Esse conceito, denominado ‘Esquemas Dinâmicos’, conforme abordado no capitulo 3, refere-se à construção da estrutura da tabela (colunas) utilizando-se do conteúdo de outras tabelas. No e-Poupatempo, além das campanhas de fundo, que tem suas variáveis e domínios pré-definidos, a equipe também criam campanhas especificas para poder avaliar novos serviços ou serviços já existentes, disponibilizados no site e devido a isso, a cada criação há a necessidade de se criar uma nova estrutura de tabela para poder comportar as variáveis e domínios definidos pela equipe. Nesse conceito, as colunas dessas novas campanhas são linhas na tabela VARIAVEL e com isso, cada vez que uma nova campanha for criada, verifica-se a existência dessas variáveis na tabela correspondente e caso não exista, um novo registro é inserido e a partir daí pode ser reutilizada por outras campanhas. Da mesma maneira, os domínios das variáveis também podem ser reutilizados, pois são linhas na tabela DOMINIO e da mesma forma, quando uma nova campanha for definida, caso os dominós não existam, insere-se na tabela correspondente e a partir daí, podem ser utilizados por outras campanhas. Os dados utilizados para exemplificar o conceito de esquemas dinâmicos foram cedidos pela equipe do e-Poupatempo. A figura 8 mostra as variáveis e domínio de três campanhas especifica que foram aplicadas nas salas do e-Poupatempo sendo elas: 1 – Usabilidade dos Serviços da Policia Civil; 2 – Navegação ACC e 3 – Opinião do Usuário de B.E.O. Pode-se observar que as campanhas 1 e 2 , possuem variáveis e domínios iguais, com isso, utilizando-se o conceito de esquemas dinâmicos, as variáveis e domínios são reutilizados. Definem-se variáveis como sendo as perguntas que serão avaliadas no decorrer da pesquisa, um exemplo é a variável Preenchimento de Campos, para a mesma existem diversos domínios, que no contexto referem-se às possíveis respostas à variável que está sendo aplicada, um exemplo de domínio para a variável mencionada é ‘06 – Não Identificou o Conteúdo Solicitado’. Na figura 9, a relação dinâmica entre as tabelas Campanha, Variáveis e Domínio é 35 mostrada de forma mais clara, observa-se que das campanhas 1 e 2 existem relacionamentos para as mesmas variáveis, no caso A e B. No relacionamento entre as variáveis e seus domínios, todas as variáveis existentes compartilham do mesmo domínio, no caso o 00. Figura 8 - Informação sobre as Campanhas Especifica - Fonte: O Autor (2009) Figura 9 - Tabelas - Fonte: O autor (2009) 36 4.3 LEVANTAMENTO DE REQUISITOS Durante as reuniões com a equipe do e-Poupatempo e utilizando como base os documentos fornecidos pelos mesmos, foram identificadas as seguintes necessidades no que diz respeito à geração de relatórios: Gerar relatórios referentes ao total de: a) Atendimentos por local de atendimento; b) Atendimentos por período; c) Atendimentos por órgão; d) Atendimentos por serviço; e) Ajuda por serviço; f) Tempo médio de atendimento; g) Gerar relatórios referentes às campanhas específicas selecionando as variáveis que forem criadas para as mesmas; Estes requisitos levantados serão a base para construir o DW, e serão validados no final da construção da solução. 4.4 MODELO DE DADOS RELACIONAL O e-Poupatempo já possui uma estrutura de BDs onde são armazenados os dados coletados das campanhas. Utilizamos essa estrutura como base e os requisitos levantados nas reuniões com a equipe do e-Poupatempo, criamos uma nova estrutura simplificada e orientada à construção do DW. Quando é decidida a construção de um DW para auxiliar nas tomadas de decisões e para geração de relatórios existem alguns pontos que devem ser levados em consideração para que nele conste apenas informações relevantes e que irão realmente ajudar a empresa, nem todas as informações contidas em um BD devem ser carregadas em um DW, caso essa etapa não seja muito bem definida, isso pode atrapalhar nos levantamento e isso pode inviabilizar o uso da nova aplicação. A etapa de levantamento de requisitos é muito importante, pois é a partir dela que são levantadas as informações necessárias para a modelagem do BD relacional. A figura 10 mostra o BD relacional que foi modelado a partir do banco que foi fornecido pela equipe do e-Poupatempo. 37 Figura 10 - Banco de Dados Relacional Fonte: O autor (2009) Durante um atendimento realizado nas salas do e-Poupatempo, todos os levantados são armazenados em um palm para que posteriormente sejam carregados no banco de dados para poderem ser analisados e utilizados para tomadas de decisões no que diz respeito à melhoria dos serviços disponibilizados no site e acessados nas salas ou na própria casa do cidadão. Cada atendente enquanto realiza um atendimento, verifica alguns requisitos que fazem parte da campanha de fundo e quando existe a necessidade de se avaliar um determinado tipo de serviço, cria-se uma campanha especifica com variáveis pré-definidas pelos gestores. As campanhas em sua maioria não são aplicadas para um perfil definido, todo usuário que é atendido tem seus êxitos, dificuldades, dúvidas, enfim, todo o atendimento armazenado, mas existem algumas campanhas que necessitam ser aplicadas em um determinado tipo de usuário, com isso ela é direcionada a um tipo de Persona que nada mais é que um perfil prédefinido pelos gestores. Todo atendimento está relacionado a um serviço que por sua vez está relacionado a um órgão, como por exemplo, o DETRAN, IIRGD, SSP, etc., e todo órgão está relacionado diretamente a uma esfera que pode ser Federal, Estadual ou Municipal. 38 5 MODELAGEM DO DATA WAREHOUSE Na modelagem do DW, o principal aspecto foi o de atender as regras de negócio e os requisitos levantados, procurando sempre implementar da melhor maneira possível a solução que o usuário solicitou. Após uma análise preliminar, foi identificado que haveria dois Fatos (Atendimento e Resposta), dessa forma foi adotada uma fusão entre o modelo Estrela (constelação de fatos) e o modelo Snowflake, onde temos dois fatos e suas dimensões ligadas a eles e ligadas entre si, conforme figura 11 visando à diminuição do espaço ocupado e a não geração de redundância nos dados. A tabela 2 contém as informações sobre as tabelas fato, sobre as tabelas dimensões e as medidas, incluindo ao que corresponde cada uma. Figura 11- Modelagem Data Warehouse Fonte: O autor (2009) 39 Tabela 2 - Tabela Fato, Dimensão e Medidas – Fonte: O autor (2009) 40 6 IMPLEMENTAÇÃO DA SOLUÇÃO Para a construção do cubo, foram utilizadas duas ferramentas do SQL SERVER 2008, sendo o SQL Server Management Studio para a criação do banco de dados relacional que dá início ao cubo, e o SQL Server Business Intelligence Development Studio para a efetiva construção do cubo. No SQL Server Management Studio foi criada a estrutura apresentada na figura 11 e após a criação foi feita a carga das informações nessa estrutura utilizando os comandos SQL listados nos Anexo 1. Foi utilizado como Datasource o banco de dados do sistema transacional de colheita de dados do e-Poupatempo previamente populado pelos atendentes do e-poupatempo. A database ‘BDEPOUPATEMPO’ foi criada a partir da modelagem demonstrada na figura 14, e carregada a partir do banco de dados transacional ‘DBSEMEP’ disponibilizado pelo e-Poupatempo Figura 12 – Criação do Banco de Dados – Fonte: O autor (2009) 41 No SQL Server Business Intelligence Development Studio foi criado um projeto intitulado ‘OLAP_BDEPOUPATEMPO’ para possibilitar a construção do cubo. Primeiramente é necessário criar um DataSource, a fim de identificar de onde virão os dados e a estrutura das tabelas que serão utilizadas no cubo. A figura 13 demonstra a criação do DataSource “BDEPOUPATEMPO”, esse DataSource utiliza os dados e a estrutura do banco de dados “BDEPOUPATEMPO” demonstrado na figura 12. Figura 13 – Criação do DataSource “BDEPOUPATEMPO” – Fonte: O autor (2009) O próximo passo é a criação de um DataSource View, onde será possível visualizar a estrutura que será utilizada na construção do cubo e os relacionamentos entre suas tabelas. A figura 14 demonstra a criação do DataSource View “BDEPOUPATEMPO” a partir do DataSource “BDEPOUPATEMPO” 42 Figura 14 – Criação do DataSource View “BDEPOUPATEMPO” – Fonte: O autor (2009) Após criar o Datasource View já é possível visualizar o relacionamento entre as tabelas que formarão o cubo, conforme mostra a figura 15: Figura 15 – Visualização do DataSource View – Fonte: O autor (2009) 43 Nesse ponto, já está definida a estrutura a ser utilizada para construção do cubo, porém, ainda não foram identificadas no schema as tabelas fato, as tabelas dimensão e as medidas. Como todos esses pontos já foram discutidos na modelagem do DW, basta aplicar esses conceitos na construção do cubo. Para criar o cubo é necessário identificar as tabelas fato, onde estarão localizadas as medidas. Obedecendo as regras da modelagem, selecionamos as tabelas “Atendimento” e “Reposta”, como sendo as tabelas fato conforme figura 16. Figura 16 – Selecionando as tabelas Fato – Fonte: O autor (2009) Selecionadas as tabelas fato, devemos agora identificar as tabelas que formarão as dimensões do cubo. A figura 17 demonstra esse procedimento. Figura 17 – Selecionando as dimensões – Fonte: O autor (2009) 44 Após esse procedimento o cubo encontra-se criado e já é possível visualizar as tabelas fato e as dimensões, assim como as três medidas que previmos para esse cubo, conforme mostra a figura 18. Figura 18 – Estrutura do Cubo – Fonte: O autor (2009) As medidas “QtdRespostas”, “QtdAtendimento” e “TmpMedioAtend” foram identificadas mas, ainda é necessário identificar a lógica utilizada para que essas medidas tragam os resultados esperados, que nesse caso é mostrar a quantidade de registros nas tabelas fato que estão relacionados com as dimensões do cubo ou a média de tempo gasto em cada atendimento, para isso, é preciso selecionar a opção “Count of rows” no parâmetro “Usage” para as medidas que utilizam a quantidade de registros como parâmetro e a opção “Average over Time” para as medidas que utilizam a média de tempo. A figura 19 demonstra essa intervenção na medida “QtdResposta”, mas, vale lembrar que o mesmo procedimento foi feito nas três medidas. 45 Figura 19 – Editando as medidas – Fonte: O autor (2009) As dimensões criadas pela ferramenta também precisam ser tratadas, pois o atributo identificador das dimensões inicialmente é a chave das tabelas que deram origem a elas, mas, no momento de analisar os resultados gerados pelo cubo será necessário utilizar atributos conhecidos pelos usuários. A figura 20 demonstra esse tratamento na dimensão “Domínio” (tratamento posteriormente feito em todas as outras dimensões), onde selecionamos o atributo “DominioDesc” para compor a lista de atributos dessa dimensão. Após o cubo ter sido processado será possível utilizar esse atributo para analisar os resultados. Figura 20 – Adicionando atributos às dimensões – Fonte: O autor (2009) 46 A dimensão “Tempo” foi criada para guardar a informação de dia, mês, ano e tempo médio de atendimento, então, esses atributos precisam ser identificados para que o processamento do cubo consiga identificar a dimensão de tempo utilizada no DW conforme figura 21. Figura 21 – Tratando a dimensão de tempo – Fonte: O autor (2009) Nesse ponto já podemos processar o cubo, como mostra a figura 22. Figura 22 – Processando o Cubo – Fonte: O autor (2009) 47 Após o processamento, o próprio SQL Server Business Intelligence Development Studio disponibiliza uma opção denominada Browser para visualização dos resultados do processo, porém, como essa opção é bastante limitada em relação aos objetivos dessa modelagem, a figura 23 apenas demonstra uma possibilidade de análise de resultado, onde foi selecionada a dimensão “Atendente” e associamos a essa dimensão a medida “QtdAtendimento”, para que fosse possível visualizar o total de atendimentos por atendente cadastrado no sistema. Figura 23 – Analisando os resultados – Fonte: O autor (2009) 48 7 ANÁLISE DOS RESULTADOS Todas as atividades desenvolvidas na implementação do DW tinham como objetivo principal disponibilizar uma ferramenta onde os próprios usuários pudessem construir seus relatórios. Através do modelo construído isto foi possível. Conforme o levantamento dos requisitos realizado com os usuários, ao final do desenvolvimento deveriam ser gerados alguns relatórios. Para isto, foi utilizada a conexão entre o Microsoft EXCELL e o Analysis Services. A figura 24 mostra uma visão da interface do Excel onde é iniciada a configuração da conexão selecionando o menu ‘Data’ e depois o submenu “From Other Sources”, após a seleção do submenu uma lista de configurações é apresentada conforme a figura 25 e a opção escolhida foi “From Analysis Services”. Após a seleção, uma nova janela se abre e nela configuramos a conexão conforme figura 26. No campo Server Name foi colocado o nome da conexão que foi criada no Analysis Services denominada LUIZ-8AE37A3E9B. Após clicar em Next uma nova janela se abre, conforme figura 27, onde são apresentadas as opções de escolha do BD que será utilizado e do Cubo que foi gerado. Na janela seguinte é apresentada a opção para nomear o arquivo de conexão que será criado, conforme figura 28. Após criar o arquivo, uma nova janela aparece para que seja selecionada a opção de relatórios conforme figura 29 e que são dividas em três tipos: Relatórios, Relatórios e Gráficos e Criar apenas conexão com o DB. Para os requisitos levantados durante as reuniões com a equipe do e-Poupatempo foi verificado que deveriam ser disponibilizados para o usuário final os relatórios e os gráficos. Figura 24 – Tela inicial do Microsoft Excel – Fonte: O Autor (2009) 49 Figura 25 – Opções do submenu – Fonte: O Autor (2009) Figura 26 – Configuração da Conexão com Analysis Services – Fonte: O Autor (2009) Figura 27 – Tela de seleção do BD e do Cubo – Fonte: O Autor (2009) 50 Figura 28 – Nomeando o Arquivo de Conexão – Fonte: O Autor (2009) Figura 29 – Tipos de conexão – Fonte: O Autor (2009) A seguir, das figuras 30 a 36, são exibidos os resultados das consultas que foram disponibilizadas após a criação da conexão e conforme os requisitos levantados nas reuniões com a equipe do e-Poupatempo. 51 a) Gerar relatórios referentes ao total de atendimentos por atendimento Figura 30 - Total de Atendimentos por Local – Fonte: O Autor (2009) b) Gerar relatórios referentes ao total de atendimentos por período Figura 31 - Total de Atendimentos por Periodo – Fonte: O Autor (2009) c) Gerar relatórios referentes ao total de atendimentos por órgão Figura 32 – Total de Atendimentos por Órgão – Fonte: O Autor (2009) local de 52 d) Gerar relatórios referentes ao total de atendimentos por serviço Figura 33 - Total de Atendimentos por Serviço – Fonte: O Autor (2009) e) Gerar relatórios referentes às campanhas específicas selecionando as variáveis que forem criadas para as mesmas Figura 34- Campanhas Especificas – Fonte: O Autor (2009) f) Gerar relatórios referentes ao total de ajuda por serviço Figura 35 - Total de Ajuda por Serviço – Fonte: O Autor (2009) 53 g) Gerar relatórios por tempo médio de atendimento por serviço Figura 36 - Tempo Médio por Serviço – Fonte: O Autor (2009) 54 8 CONCLUSÕES E TRABALHOS FUTUROS Trabalhos relacionados à assuntos como Governo Eletrônico ou Data Warehouse serviram de referência para esse estudo, porém, com o desafio de trabalhar com algo diferente. Aliar esses dois temas com a utilização de esquemas dinâmicos de banco de dados proporcionou um aprendizado deveras interessante. Além das preocupações em entender temas já conhecidos e amplamente estudados, foi necessário conhecer a fundo os esquemas dinâmicos para que posteriormente fosse possível utilizar esse novo conceito de modelagem, ainda pouco utilizado pelo mercado em relação aos demais tópicos que fizeram parte do trabalho. Passou-se por todas as etapas do desenvolvimento do projeto sempre com a obrigação de pensar como aquilo tudo se encaixaria com a modelagem dinâmica. Por um lado estavam os requisitos que influenciam a utilizar esse tipo de modelagem, e de outro, estava toda a fundamentação teórica de construção de data warehouse, onde jamais encontrou-se qualquer referência quanto a junção do projeto comum de construção de um DW com a necessidade de utilização de esquemas dinâmicos. Concluí-se que é possível aliar uma modelagem robusta e inteligente com uma modelagem flexível e suscetível a mudanças, criando um ambiente onde será possível minimizar as intervenções da área de TI na utilização da ferramenta, mesmo quando a exigência no negócio passar por alterações e os resultados sejam diferentes dos inicialmente propostos. A utilização do Excel na visualização dos dados do cubo torna essa ferramenta altamente utilizável por pessoas com pouco conhecimento técnico, já que não é necessário ter contato com a estrutura em baixo nível do cubo para geração dos relatórios. A utilização do Excel ainda permite maior nível de entendimento dos dados analisados, já que torna-se possível a geração de um gráfico para cada relatório. Sugere-se como trabalhos futuros o estudo de viabilidade da mineração de dados (Data Mining) em estruturas de DW. Interessante também seria estudar a implementar uma ferramenta ETL que fosse tão flexível quanto a estrutura do DW, para que fosse possível carregar dados com qualidade, sem que seja necessário alterar nenhuma etapa do processo de ETL. 55 REFERÊNCIAS BIBLIOGRÁFICAS ALVES, Marcos. Modelagem Multidimensional. 2007. Disponível em: <http://servidor3.fes.br/disciplinas/tpd/tabd/Modelagem_Multidimensional.pdf>. Acesso em: 15 jun. 2009. CONHEÇA o Gov.br Disponível em: <http://www.governoeletronico.gov.br/o-gov.br>. Acesso em: 04 maio 2009. CÔRTES, Sérgio; AZEVEDO, Hugo Leonardo C.. Data Mining - Conceitos, Técnicas, Ferramentas e Aplicações. 2009. Disponível em: <http://www.cce.puc- rio.br/informatica/dataminingcentro.htm>. Acesso em: 19 abr. 2009. DAVIS JUNIOR, Clodoveu A.; LAENDER, Alderto H. F.. Extensões ao Modelo OMT-G para Produção de Esquemas Dinâmicos e de Apresentação. 2000. Disponível em: <http://www.dpi.inpe.br/geopro/referencias/davis_geoinfo.pdf>. Acesso em: 20 jun. 2009. E-POUPATEMPO, Portal. Portal e-Poupatempo. 2006. Disponível em: <http://www.poupatempo.sp.gov.br/e-poupatempo/>. Acesso em: 01 jun. 2009. FUJIWARA, Daniel Kenji. Data Warehouse como Instrumento de Suporte à Avaliação Acadêmica. Brasília, 2006. Disponível <http://monografias.cic.unb.br/dspace/bitstream/123456789/41/1/Monografia.pdf>. em: Acesso em: 03 nov. 2009. GALANTE, Renata de Matos. Gerenciamento Dinâmico de Evolução de Esquemas usando o TVM. 2002. Disponível em: <http://www.lbd.dcc.ufmg.br:8080/colecoes/wtdbd/2002/003.pdf>. Acesso em: 29 set. 2009. GONÇALVES, Marcio. Extração De Dados Para Data Warehouse. São Paulo: Axcel Books Editora, 2007. 160 p. KIMBALL, Ralph. The Data Warehouse Toolkit. s.l. : John Wiley & Sons, 2000. INMON, W. H.; Managing the Data Warehouse. Jonh Wiley & Sons, 1997. 56 LOVING, Linwood Earl; SCHAEFER, Donald Eugene. Dynamic Data Discovery of a Source Data Schema and Mapping to a Target Data Schema. 2008. Disponível em: <http://www.faqs.org/patents/app/20080320012>. Acesso em: 01 set. 2009. MACHADO, Felipe Nery Rodrigues. Tecnologia E Projeto De Data Warehouse. 4. ed. São Paulo: Érica Lmtd, 2008. 318 p. MUNIZ, Vander Emiro. ETL: Quais as ferramentas mais poderosas do mercado? 2007. Disponível em: <http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=6727>. Acesso em: 02 jun. 2009. NARDI, Alexandre Ricardo. Fundamentos e Modelagem de Bancos de Dados Multidimensionais. 2007. Disponível em: <http://msdn.microsoft.com/pt- br/library/cc518031.aspx>. Acesso em: 25 maio 2009. NAVARRO, Maria Cristina de Araújo. O que é DW? 1996. Disponível em: <http://www.serpro.gov.br/imprensa/publicacoes/tematec/1996/ttec27>. Acesso em: 16 abr. 2009. OLIVEIRA, André Luiz de; BITENCOURT, Anderson; ANDRADE, Marcio C. B.; CUSTODIO, Riberton Nicolau. Utilização de Ferramenta de Data Warehouse na Gestão de Informações do Governo Eletrônico. 2008. Trabalho de Conclusão de Curso (Graduação em Sistema de Informação) - Uniersidade Anhembi Morumbi, São Paulo, 2008. ÖZSU, M. Tamer. Axiomatization of dynamic schema evolution in object bases. 1995. Disponível em: <http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=380397>. Acesso em: 01 set. 2009. PARIS, Riliane Alpoim. A Tecnologia de DW nas Organizações. 2007. Disponível em: <http://www.devmedia.com.br/articles/viewcomp.asp?comp=5939>. Acesso em: 18 abr. 2009. RIBEIRO, Sheila Maria Reis. Governo eletrônico : um novo paradigma de gestão das políticas públicas. 2000. Disponível em: 57 <www.iij.derecho.ucr.ac.cr/archivos/documentacion/inv%20otras%20entidades/CLAD/CLA D%20VI/documentos/ribeishe.doc>. Acesso em: 02 maio 2009. RUGGIERO JúNIOR, Waldemar. Data Warehouse utilizando processamento paralelo em ambiente distribuído. 2007. Disponível em: <http://www.teses.usp.br/teses/disponiveis/3/3141/tde-09012008-093830/>. Acesso em: 12 nov. 2009. SANTOS, Rui. Modelos Dimensionais. 2007. Disponível em: <http://siadmoments.blogspot.com/2007/09/modelos-dimensionais.html>. Acesso em: 13 jun. 2009. TRONCHIN, Valsoir. Análise, Modelagem e Implementação de DW’s – São Paulo: Fenasoft/98 em 20/07/98 WIRTHMANN. Extração, Transformação e Carga. Disponível em: <http://www.infobras.com.br/portugues/produtos_conceito_etl.asp>. Acesso em: 18 abr. 2009. 58 ANEXO I - CARGA DOS DADOS PARA O SCHEMA “BDEPOUPATEMPO” Carga de dados da tabela “Esfera”: insert into [bdepoupatempo].[dbo].esfera (idesfera, esferanome, esferadesc) select intEsferaId , strEsferaNome , strEsferaDescricao from [DBSEMEP].[dbo].tblEsfera Carga de dados da tabela “Orgao”: insert into [bdepoupatempo].[dbo].orgao (idorgao, idesfera, orgaoNome) select intOrgaoId , intEsferaId, strNomeCompleto from [DBSEMEP].[dbo].tblOrgao Carga de dados da tabela “Servico”: insert into [bdepoupatempo].[dbo].servico (idservico, idorgao, serviconome) select intServicoId , intOrgaoId , strServicoNome from [DBSEMEP].[dbo].tblServico Carga de dados da tabela “Tempo”: insert into [bdepoupatempo].[dbo].tempo (idTempo, Ano, Mes, Dia, TmpMedio) select idAtendimento, DATEPART(YEAR,DataHoraIni) Ano, DATEPART(MONTH,DataHoraIni) Mes, DATEPART(DAY,DataHoraIni) Dia, DATEDIFF(minute,datahoraini,datahorafim) TmpMedio from [BDEPOUPATEMPO].[dbo].[Atendimento] Carga de dados da tabela “Atendente”: insert into [bdepoupatempo].[dbo].atendente (idatendente, NomeAtend, Email, tipousuario) select intUsuarioId , strNomeUsuario , strEmail , strTipoUsuarioNome from [DBSEMEP].[dbo].tblUsuario usu, [DBSEMEP].[dbo].tblTipoUsuario tipo where usu.intTipoUsuarioId = tipo.intTipoUsuarioId Carga de dados da tabela “Posto”: insert into [bdepoupatempo].[dbo].posto (idposto, postonome, postolocal) select intPostoId , strPostoNome , strCidadeNome from [DBSEMEP].[dbo].tblPosto posto, [DBSEMEP].[dbo].tblLocalizacao loca, [DBSEMEP].[dbo].tblCidade cida where posto.intLocalizacaoId = loca.intLocalizacaoId and cida.intCidadeId = loca.intCidadeId Carga de dados da tabela “Variavel”: insert into [bdepoupatempo].[dbo].variavel (idVariavel, VariavelNome, TipoResposta) select intVariavelId, strLabelVariavel, strTipoResposta from [DBSEMEP].[dbo].tblVariavel vari Carga de dados da tabela “Campanha”: insert into [bdepoupatempo].[dbo].Campanha (idCampanha, CampanhaNome, CampanhaDesc, CampanhaStatus, DataIni, DataFim) select intCampanhaId, strCampanhaNome, strCampanhaDescricao, strStatus, datDataInicio, datDataFim from [DBSEMEP].[dbo].tblCampanha Carga de dados da tabela “Dominio”: insert into [bdepoupatempo].[dbo].Dominio (idDominio, Sequencia, DominioDesc) select intDominioId, intSequenciaDominio, strLabelDominio from [DBSEMEP].[dbo].tblDominio 59 Carga de dados da tabela “Resposta”: insert into [bdepoupatempo].[dbo].resposta (idResposta, idatendimento, idcampanha, iddominio, idvariavel) select intRespostaId , intAtendimentoId , intCampanhaId , intDominioId , intVariavelId from [DBSEMEP].[dbo].tblResposta where intAtendimentoId is not null and intDominioId is not null Carga de dados da tabela “Atendimento”: insert into [BDEPOUPATEMPO].[dbo].atendimento(idatendimento, idservico, idatendente, idposto, idtempo, datahoraini, datahorafim) select atend.intAtendimentoId , atend.intServicoId , atend.intUsuarioId , posto.intPostoId, atend.intAtendimentoId, atend.datHoraInicio , atend.datHoraFim from [DBSEMEP].[dbo].tblatendimento atend, [DBSEMEP].[dbo].tblUsuario usu, [DBSEMEP].[dbo].tblLocal loca, [DBSEMEP].[dbo].tblPosto posto where atend.intUsuarioId = usu.intUsuarioId and usu.intLocalId = loca.intLocalId and isnull(loca.intPostoId, loca.intMovelId ) = posto.intPostoId