Como organizar um banco de dados moderno e eficiente
Uma metodologia para desenvolvimento de data warehouse
Atualmente, em muitas empresas, o processo manual de produção de informações gerenciais é demorado, dispendioso e cansativo, pois reúne uma grande quantidade de dados que precisam ser coletados de diversas fontes e convertidos em um formato apropriado que possibilite a sua análise. Por isso, criação de um ambiente de data warehouse surge como uma alternativa viável. Seu princípio está na criação de um banco de dados especializado, capaz de manipular grande volume de informações com bom desempenho, melhorando a gerência, o controle e o acesso aos dados. A função do data warehouse é tornar as informações corporativas, obtidas a partir de bancos de dados operacionais e de fontes de dados externas à organização, acessíveis para entendimento e uso das áreas estratégicas.
O projeto de data warehouse é uma tarefa complexa envolvendo um conjunto de conceitos e tecnologias. O sucesso de um projeto de data warehouse está estreitamente relacionado com o entendimento e domínio destes conceitos e tecnologias. A causa principal que resulta em falha e insucesso de um projeto de data warehouse está relacionada à ausência de uma metodologia abrangente capaz de fornecer uma visão geral do processo envolvendo estes conceitos e tecnologias.
O objetivo principal deste estudo é elaborar uma metodologia consistente caracterizada pela sua aplicabilidade prática. Em especial, concentramo-nos na clara identificação e descrição das várias fases do projeto aliada à possibilidade do processo todo ser suportado por uma ferramenta de desenvolvimento.
O Ambiente - o aspecto fundamental na criação de uma data warehouse reside na separação dos dados do ambiente operacional para o ambiente de data warehouse.
Obs: para melhor visualização clique na ilustração.
Metodologia
Embora o desenvolvimento de um data warehouse possua aspectos diferenciados com relação aos sistemas tradicionais, muitas das lições aprendidas no desenvolvimento de sistemas OLTP são de grande valia e devem ser utilizadas no projeto de um sistema de data warehouse. O principal aspecto a ser considerado é a natureza interativa do desenvolvimento, característica que distingue o ciclo de vida de um projeto de data warehouse de outros projetos de desenvolvimento, e que permite rapidamente liberar partes do banco de dados para o usuário, enquanto outra parte pode estar sendo desenvolvida.
Planejamento é fundamental
O componente de gerência tem a responsabilidade de estabelecer o plano geral do projeto. Este plano deve ser conhecido por todos os membros que farão parte da equipe de desenvolvimento. O plano deve estabelecer prazos, recursos disponíveis e principalmente a expectativa dos usuários. O gerente tem a responsabilidade de estabelecer as principais variáveis do projeto, incluindo: 1) funções que o data warehouse irá disponibilizar; 2) alocação de recursos (máquinas, ferramentas, pessoas); 3) qualidade (definição de prazos não realísticos podem levar a equipe a seguir atalhos e comprometer a qualidade do data warehouse).
Na definição são estabelecidos os objetivos maiores com o intuito de prevenir as constantes mudanças durante as fases do ciclo de desenvolvimento à medida que novos requisitos são identificados, tendo, contudo, o desafio de construir um data warehouse flexível e que tenha a habilidade de absorver as futuras expansões. Esta fase inclui também o entendimento dos conceitos e tecnologias relacionados ao ambiente de inserção do data warehouse, sendo recomendado um planejamento prévio para determinar a escolha da arquitetura e infra-estrutura necessária para possibilitar o pleno desenvolvimento do data warehouse.
Um aspecto importante na definição do projeto é a escolha da abordagem de desenvolvimento. A decisão de usar a estratégia botton up ou top down deve ser tomada com cuidado. Como modelo foi adotada a abordagem top down para a fase de definição do projeto e botton up para as demais fases que, juntas, representam a fase de desenvolvimento. Para tanto, foi desenvolvido um sistema automatizado apresentado como alternativa ao sistema atual de geração de dados analíticos, eliminando as atuais dificuldades e limitações apresentadas. Neste caso, sugere-se a utilização de ferramentas de desenvolvimento de data warehouse a fim de auxiliar o projetista nas várias fases do projeto. Estas ferramentas estão divididas nas seguintes categorias: servidor de banco de dados IBM DB2 V7.2; ferramenta de Data warehouse IBM DB2 Warehouse Manager V7.2; ferramenta OLAP IBM DB2 OLAP STARTER KIT V7.2. O IBM DB2 Warehouse Manager também oferece um conjunto de recursos que auxiliam na criação dos metadados ao longo do desenvolvimento do data warehouse.
Fases da metodologia de desenvolvimento de data warehouse.
Modelo dimensional no projeto gráfico
A técnica utilizada para a criação do projeto lógico do data warehouse é a da modelagem dimensional. Esta técnica é caracterizada pela criação do esquema estrela a partir do esquema conceitual criado na fase anterior. Esta fase é inteiramente desenvolvida através da utilização de uma ferramenta que suporta a construção do esquema estrela. O Centro de Data warehouse do IBM DB2 guia o projetista através das várias etapas do projeto lógico. A primeira etapa é a definição de um assunto que, por sua vez, compreende um conjunto de processos relacionados a uma área específica do negócio. O objetivo principal de um assunto é a elaboração de um esquema de data warehouse (esquema estrela). Este esquema é construído gradativamente através dos processos que estão relacionados ao assunto. Um processo tem a finalidade de transformar os dados que estão armazenados nos sistemas fonte, cuja origem dos dados pode derivar de várias bases de dados e podem estar armazenadas em sistemas diferentes.
Um exemplo seria o processo de transformação dos dados de um arquivo texto para uma tabela relacional. A tabela relacional resultante é armazenada no banco de dados do data warehouse e compreende a dimensão tempo do esquema estrela resultante.
Através do uso do centro de data warehouse podemos modelar processos complexos de transformação de dados. Neste caso, não é necessário mostrar as potencialidades e limitações do centro de data warehouse, mas apenas os recursos utilizados na fase de criação. Os passos para a criação da tabela de fatos do esquema estrela é descrito a seguir. A tabela é criada a partir de uma série de processos que são executados em seqüência. O resultado do processo de transformação é a criação de uma tabela que reúne os atributos que compreendem as medidas do fato. Neste exemplo, os atributos compreendem a quantidade de alunos inscritos, classificados, aprovados, não aprovados e suplentes. O processo poderia ser simplificado através de um Join único entre as tabelas de origem. Esta opção foi adotada para exemplificar o uso de vários passos e a possibilidade de uso de tabelas temporárias no processo de transformação dos dados que é bastante comum em ambiente de data warehouse.
Ao final da execução de todos os processos de transformação dos dados fonte, obtemos então o esquema estrela resultante. Este esquema será então utilizado posteriormente por uma ferramenta OLAP, que será utilizada para a construção de aplicações, que serão utilizadas pelos usuários do data warehouse.
O esquema estrela descrito como exemplo compreende as seguintes tabelas: uma tabela de fatos (DW.TB_FATVES) e quatro tabelas dimensionais correspondentes às dimensões Campus (DW.TB_CAM), Regime (DW.TB_REG), Curso (DW.TB_CUR), e Tempo (DW.TB_TIME).
Principais aspectos do projeto físico
Os principais aspectos a serem considerados no projeto físico do data warehouse são: 1) indexação; 2) materialização de visões; 3) particionamento, paralelismo; 4) nível de redundância dos dados; 5) sintonia dos parâmetros do banco de dados. A sintonia do banco de dados é fundamental no ambiente de data warehouse, visto que a natureza da carga é diferente do ambiente transacional. Os ambientes OLTP são configurados para realizar as transações dos vários usuários simultâneos no menor tempo possível. Os parâmetros de configuração ajustados são responsáveis pela melhora do desempenho em 20 a 25%. Os 75% restantes derivam dos ajustes dos comandos (SQL) de consulta. Isso envolve alterações no projeto físico do banco de dados, disponibilidade e características dos índices, replicação e particionamento de tabelas.
Exemplo de data warehouse com arquitetura centralizada
Como demonstrativo, vamos utilizar o banco de dados operacional de uma universidade, limitando-se ao sistema de concurso vestibular. Para implementar o data warehouse vamos utilizar a arquitetura centralizada. Esta solução poderá posteriormente ser expandida através da incorporação de outros módulos.
Na modelagem conceitual de data warehouse não basta apenas realizar o levantamento de requisitos dos usuários. Adicionalmente, as estruturas dos bancos de dados operacionais devem ser consideradas. Os requisitos dos usuários e as estruturas dos bancos de dados possuem influência estática e dinâmica, caracterizadas pelas possíveis alterações nos requisitos dos usuários e pela mudança na estrutura do banco de dados em questão. Existem basicamente duas abordagens para obter os requisitos do data warehouse. A primeira alternativa concentra-se mais diretamente no usuário. A segunda alternativa dá maior ênfase aos dados existentes nos sistemas da organização. A fase de levantamento de requisitos deve ter como base as informações do usuário e os dados existentes nos sistemas operacionais.
Ainda como exemplo, vamos utilizar uma extensão ao modelo E/R para o paradigma multidimensional. Neste caso, vamos incluir novos elementos gráficos para estender o modelo E/R. O objetivo é auxiliar o projetista na construção de modelos de dados para data warehouse, contemplando a já conhecida e amplamente difundida modelagem E/R. Entretanto, essa extensão ainda não foi incluída nas ferramentas e produtos disponíveis no mercado. A partir dos requisitos levantados, para atender o fato vestibular, temos um modelo conceitual composto por seis medidas: 1) vagas oferecidas; 2) candidatos inscritos; 3) número de candidatos classificados no vestibular; 4) número de candidatos aprovados no vestibular; 5) candidatos não aprovados no vestibular; 6) número de candidatos suplentes.
Além da tabela de fatos, o esquema conceitual possui cincos dimensões: 1) a dimensão campus, onde a Universidade oferece curso de graduação em vários campus; 2) a dimensão regime, onde um curso pode pertencer ao regime regular (normal) ou especial (período de férias, meses de janeiro, fevereiro e julho); 3) a dimensão curso, sobre os vários cursos oferecidos a cada vestibular; 4) dimensão tempo, referindo-se aos concursos semestrais de vestibular; 5) dimensão cidade, com o objetivo de realizar a estatística sobre a origem dos candidatos.
Implantação de metadados
Pelo menos três outros aspectos importantes merecem ser considerados num projeto de data warehouse: os metadados, com informações sobre o conteúdo que está armazenado no data warehouse. Eles são elaborados gradativamente ao longo de todo o processo de desenvolvimento. À medida em que cada passo vai sendo criado, os metadados também são elaborados. Ao final do projeto, os metadados podem ser explorados através de uma ferramenta chamada Information Catalog Manager. Esta ferramenta está incluída no Centro de data warehouse do IBM DB2. Ela nos expõe ícones que representam um grupo de informações que podem ser exploradas pelo usuário. Ao clicar no ícone vestibular, por exemplo, a ferramenta abre todos os processos que fazem parte deste assunto. O ícone “fontes relacionais” descreve todas as tabelas fonte que foram utilizadas no processo de criação do data warehouse. Através da exploração dos metadados, os usuários podem encontrar as tabelas que originaram os dados do data warehouse. A granularidade do data warehouse registra em que nível de detalhe os dados estarão disponíveis para a análise do usuário, isto é, determina a sua dimensionalidade, possuindo influência direta no tamanho do banco de dados. A decisão sobre a granularidade dos dados é um dos aspectos mais importantes na construção do data warehouse. A escolha de um nível de granularidade inadequada pode comprometer e até inviabilizar o uso do data warehouse. Neste estudo de caso foi definido o nível de granularidade semestral, ou seja, os dados são agrupados semestralmente através das dimensões Campus, Regime e Curso.
A etapa de atualização de dados deve ser suportada pela ferramenta de desenvolvimento que deve suportar as seguintes atividades: automação do processo de extração, conversão e carga dos dados; definição da periodicidade da atualização e possibilidade de integração com outras ferramentas.
Conclusão
Para concluir, vale dizer que o desenvolvimento de um data warehouse constitui um avanço em relação as metodologias anteriores, pois apresenta uma sistemática mais apropriada baseada na realidade dos sistemas existentes nas empresas. Essa metodologia também valoriza a experiência da equipe no desenvolvimento de sistemas transacionais, pois as fases que a compõem já são largamente utilizadas no desenvolvimento de sistemas OLTP. Também é importante que a metodologia seja suportada por uma ferramenta de desenvolvimento que aumente a produtividade, simplificando e automatizando tarefas complexas no processo de data warehousing. O estudo do caso em questão evidencia algumas questões que merecem uma avaliação mais aprofundada. É o caso da metodologia, considerando diferentes arquiteturas de data warehouse e a exploração detalhada dos níveis conceitual e lógico. Também os aspectos relacionados à implementação física do data warehouse (particionamento, indexação, materialização de visões) devem ser acrescidos à metodologia.
Referências
1. BALLARD C.; HERREMAN D.; SCHAU D.;et al. Data Modeling Techniques for Data Warehousing. IBM – ITSO redbooks, 1998.
2. BOEHNLEIN M.; ENDE A. Deriving Initial Data warehouse Structures from the Conceptual Data Models of the Underlying Operational Information Systems. Ulbrich-vom. Kansas City Mo USA, 1999.
3. GOLFARELLI, Matteo; RIZZI, Steffano. A methodological framework for Data warehouse Design. DOLAP 98 Washington, D.C., USA.
4. HAYES, Scott; GUNNING, Philip. Tunning Up for OLTP and data warehousing. DB2 Magazine.Vol 7 Num 3, 2002.
5. HERDEM, Olaf. A Design Methodology for Data warehouses. Oldemburg Research and Development Institute for Computer Science Tools and Systems (OFFIS). Oldenburg, Germany.
6. IBM DB2 Universal Database. Business Intelligence Tutorial, IBM Corporation. 2000.
7. KELLY, Sean. The Data warehouse Toolkit. Editora John Wiley & Sons Inc., New York, 1997.
8. KIMBALL, Ralph. Data warehouse Toolkit. São Paulo: Ed. Makron Books, 1998.
9. MOODY, Daniel L.; KORTINK, Mark A.R. From Enterprise Models to Dimensional Models: A Methodology for Data warehouse and Data mart Design. (DMDW´2000).
10. PEREIRA, Walter Adel Leite. Trabalho Individual. Disponível em: http://www.inf.pucrs.br. 1999.
11. DILL, Sergio Luis. Uma Metodologia para Desenvolvimento de Data Warehouse e Estudo de Caso, Dissertação de Mestrado, UFSC, Florianópolis, 2002.
12. SAPIA, C.; BLASCHKA, M.; HOFLING, G.; DINTER, B. Extending the E/R Model for the Multidimensional Paradigm. Proc of International Workshop on Data warehouse and Data Mining, November 1998.
13. SINGH, HARRY S. Data warehouse, Conceitos, Tecnologias, Implementação e gerenciamento. Tradução: Mônica Rosemberg. São Paulo, Makron Books, 2001.
(*) Este artigo, de autoria do estudante de Informática - Sistema de Informações - da Universidade de Ijuí (RS), Rodrigo Atkinson, é uma síntese da dissertação submetida à Universidade Federal de Santa Catarina (UFSC), como requisito final para a obtenção do grau de Mestre em Ciência da Computação pelo professor Sérgio Luís Dill.