SlideShare una empresa de Scribd logo
1 de 61
Descargar para leer sin conexión
Luis Fernando Panegassi

     R.A. 0305057




DATA WAREHOUSE




      Jaguariúna

         2006
Luis Fernando Panegassi

     R.A. 0305057




DATA WAREHOUSE




                Monografia apresentada à disciplina
                Trabalho de Conclusão de Curso, do
                Curso de Ciência da Computação da
                Faculdade de Jaguariúna, sob a orientação
                do Prof. Odair Jacinto da Silva, como
                exigência parcial para conclusão do curso
                de graduação.




      Jaguariúna

         2006
Panegassi, Luis Fernando. Data Warehouse. Monografia defendida e aprovada na FAJ em 11
de dezembro de 2006 pela banca examinadora constituída pelos professores:




______________________________________________________________________
Prof. Odair Jacinto da Silva
FAJ – Orientador




______________________________________________________________________
Prof. Silvio Petroli Neto
FAJ – Prof. Convidado




______________________________________________________________________
Livio
FAJ - Convidado
DEDICATÓRIA


Às minhas filhas Audrey Carolina Panegassi e Adrielly Fernanda Panegassi
Pelos momentos compartilhados juntos e pela alegria que me proporcionam. A vida se torna
muito mais adorável quando temos “inspiração” para vivê-la.
AGRADECIMENTOS


        Ao Prof. Odair Jacinto da Silva pela orientação dedicada em todas as fases da
realização deste trabalho.
        A todos os professores do curso de Ciência da Computação da Faculdade de
Jaguariúna que também contribuíram para o meu crescimento pessoal e profissional.
EPÍGRAFE

"O valor das coisas não está no tempo em que elas duram, mas na intensidade com que
acontecem. Por isso existem momentos inesquecíveis, coisas inexplicáveis e pessoas
incomparáveis".


                                                                  (Fernando Pessoa)
Lista de Siglas


DSS –       Decision Support Systems
DASD –      Direct Access Storage Device
EIS –       Executive Information Systems
E/S –       Entradas/Saídas
ER –        Entidade/Relacionamentos
ETL –       Extract, Transform and Load
IDC –       International Data Corporation
I/O –       Imput/Output
ID –        Identification
KDD –       Knowledge Discovery in Databases
L4Gs –      Linguagens de quarta geração
MIS –       Management information systems
MIT –       Massachusetts Institute of Technology
MOLAP –     Multidimensional On-Line Analytical Processing
MPP –       Matching Pursuit Projection
OLAP –      On-Line Analytical Processing
OLTP –      On-line Transaction Processing
PCs –       Personal Communications Services
ROLAP –     Relational On-Line Analytical Processing
SGBD –      Sistema de gerenciamento de banco de dados
SAD –       Sistemas de Apoio à Decisão
SQL –       Structured Query Language
SMP –       Symmetric Multi-Processing
TI –        Tecnologia da Informação
Lista de Figuras


Figura 1 –    Os tipos de consulta
Figura 2 –    Comparação entre Banco de Dados Operacionais e Data Warehouse
Figura 3 –    Níveis de granularidade
Figura 4 –    Arquitetura genérica do Data Warehouse
Figura 6 –    Arquitetura de três camadas.
Figura 5 –    Arquitetura de duas camadas.
Figura 7 –    Modelo Estrela
Figura 8 –    A dimensão do produto normalizada.
Figura 9 –    Relacional versus Bidimensional
Figura 10 –   Remoção dos dados puramente operacionais.
Figura 11 –   Adição de um elemento de tempo.
Figura 12 –   Introdução de dados derivados
Figura 13 –   Relacionamento entre tabelas no modelo E-R.
Figura 14 –   Inclusão de artefatos no data warehouse.
Figura 15 –   Alteração do nível de granularidade.
Figura 16 –   União dos dados de diferentes tabelas
Figura 17 –   Modelo corporativo
Figura 18 –   Selecionando os dados a serem varridos.
Figura 19 –   Introdução intencional de dados redundantes.
Figura 20 –   A tabela de fatos e suas dimensões.
INMON, William H.. Como construir o Data warehouse. 2ª ed. New York: Editora Campus,
1997.



RESUMO

       O ambiente de dados para suporte aos processos de gerência e tomada de decisão é
fundamentalmente diferente do ambiente convencional de processamento de transações. No
coração deste ambiente está a idéia do Data Warehouse, integrando e consolidando dados
disponíveis em diferentes acervos para fins de exploração e análise, ampliando o conteúdo
informacional destes acervos para atender às expectativas e necessidades de nível estratégico
na empresa. Esta monografia tem por objetivo apresentar o estado da arte da tecnologia de
Data Warehouse, introduzindo os principais conceitos na área e discutindo as diferenças deste
ambiente para os ambientes e ferramentas usuais de gerenciamento e tratamento de
informações, alem de mostrar duas formas de extração de seus dados: a OLAP e o Data
Mining, cada uma com suas características, podendo ser usadas separadamente ou em
conjunto para um melhor resultado.

Palavras-chave: tomada de decisão, integrando e consolidando dados, tratamento de
informações.
SUMÁRIO


INTRODUÇÃO........................................................................................................................12
CAP. 1 - EVOLUÇÃO DOS SISTEMAS DE APOIO À DECISÃO ......................................13
  1.1 – Histórico ....................................................................................................................13
  1.2 – O Ambiente projetado ...............................................................................................14
CAP. 2 – O QUE É DATA WAREHOUSE.............................................................................16
  2.1 – Histórico ......................................................................................................................16
     2.1.1 – Origem ..................................................................................................................16
  2.2 – Definições....................................................................................................................17
  2.3 - Características de um Data Warehouse........................................................................17
     2.3.1 - Orientado para áreas de interesse ..........................................................................19
  2.4 – Integrado......................................................................................................................19
  2.5 - Variante no tempo ........................................................................................................19
  2.6 - Não volátil ....................................................................................................................20
  2.7 – Granularidade ..............................................................................................................20
     2.7.1 – Níveis duais de granularidade ..............................................................................21
  2.8 – Metadados....................................................................................................................22
CAP. 3 – ARQUITETURA DO DATA WAREHOUSE.........................................................23
  3.1 – Arquitetura genérica do Data Warehouse....................................................................23
  3.2 – Outras arquiteturas.......................................................................................................25
     3.2.1 – Arquitetura de duas camadas................................................................................25
     3.2.2 – Arquitetura de três camadas .................................................................................26
CAP. 4 – MODELO DE DADOS DO DATA WAREHOUSE ...............................................28
  4.1 - A Questão das Dimensões............................................................................................28
  4.2 - Esquemas do tipo Estrela e Floco de Neve ..................................................................29
     4.2.1 – Vantagens do modelo estrela................................................................................31
     4.2.2 - Bancos de Dados Multidimensionais ....................................................................32
  4.3 – Conversão do modelo E-R para o modelo do Data Warehouse ..................................32
     4.3.1 - Remoção dos dados puramente operacionais........................................................33
     4.3.2 - Adição de um elemento de tempo na estrutura da chave ......................................33
     4.3.3 - Introdução de dados derivados..............................................................................34
     4.3.4 - Transformação de Relacionamentos entre dados em artefatos dos dados ............34
     4.3.5 - Acomodação dos diferentes níveis de granularidade ............................................36
     4.3.6 - União dos dados comuns de diferentes tabelas .....................................................36
     4.3.7 - Criação de arrays de dados....................................................................................37
  4.4 Data Marts ......................................................................................................................38
CAP. 5 – DESENVOLVIMENTO DO DATA WAREHOUSE..............................................39
  5.1 - Estratégia Evolucionária ..............................................................................................40
  5.2 - Aspectos de Modelagem ..............................................................................................40
  5.3 – Técnicas de gerenciamento da quantidade de dados operacionais pesquisados..........41
  5.4 – Técnicas para incrementar a performance ...................................................................43
  5.5 - Etapas do Desenvolvimento de um Data Warehouse ..................................................46
  5.6 – Relacional versus multidimensional............................................................................47
     5.6.1 - Um ou mais bancos ...............................................................................................48
CAP. 6 – CARREGANDO O DATA WAREHOUSE ............................................................50
  6.1 – Extração .......................................................................................................................50
  6.2 – Transformação e filtros................................................................................................51
  6.3 - Derivação e Sumarização .............................................................................................52
CAP. 7 – EXTRAINDO INFORMAÇÕES DO DATA WAREHOUSE ................................53
  7.1 - Ferramentas OLAP.......................................................................................................53
     7.1.1 - MOLAP x ROLAP................................................................................................55
  7.2 - Ferramentas Data Mining.............................................................................................57
CONCLUSÃO..........................................................................................................................59
BIBLIOGRAFIA ......................................................................................................................61
INTRODUÇÃO


       Hoje em dia uma organização precisa utilizar toda informação disponível para criar e
manter vantagem competitiva. Sai na frente à organização que consegue tomar decisões
corretas e rápidas.
       Com esta importante tarefa nas mãos, profissionais tomadores de decisão tais como
executivos, gerentes e analistas, exigem dos sistemas de suporte à decisão DSS (Decision
Support Systems) mais recursos para análise, front-ends que suportem consultas ad hoc,
interfaces gráficas apropriadas, etc.
       A idéia de Data Warehouse é integrar os dados internos e externos de uma
organização em uma estrutura única permitindo uma melhor utilização dos dados pelos
analistas, gerentes e executivos.
       Uma vez obtida a integração, sistemas como OLAP (On-Line Analytical Processing) e
Data Mining fornecem mecanismos sofisticados para análise dos dados.
       Estudar e conhecer a tecnologia de Data Warehouse pode ajudar os empresários a
descobrir novas formas de competir em uma economia globalizada, trazendo melhores
produtos ou serviços para o mercado, mais rápido do que os concorrentes, sem aumentar o
custo do produto ou do serviço. Não existem ainda metodologias formais para implementação
de um Data Warehouse, ela deve ser adaptada às características e às expectativas de cada
empresa, mas o principal objetivo em todas elas é o de descobrir maneiras diferentes de atuar
no mercado e quais as mudanças internas que devem ocorrer para atender as novas realidades.
       Este trabalho tem como objetivo fazer um estudo dos principais conceitos necessários
para o desenvolvimento de um ambiente de Data Warehouse. No capítulo I é apresentada a
evolução dos sistemas de apoio à decisão e o motivo do surgimento da necessidade do Data
Warehouse. No capítulo II iniciam-se os conceitos sobre o Data Warehouse, mostrando suas
características básicas. O capítulo III mostra as arquiteturas disponíveis para construção de
Data Warehouses, e no capítulo IV os modelos de dados. O capítulo V mostra alguns detalhes
do desenvolvimento propriamente dito do Data Warehouse. O capítulo VI mostra as técnicas
para extrair as informações dos sistemas existentes e transforma-las adequadamente para o
Data Warehouse. E finalmente no capítulo VII são apresentadas as técnicas para extração e
analise dos dados de um Data Warehouse que são: OLAP e Data Mining.
CAP. 1 - EVOLUÇÃO DOS SISTEMAS DE APOIO À DECISÃO


1.1 – Histórico

       A evolução dos sistemas de apoio à decisão pode ser dividida em cinco fases entre
1960 e 1980. No início da década de 1960 o mundo da computação consistia na criação de
aplicações individuais que eram executadas sobre arquivos mestres, caracterizadas por
programas e relatórios.
       Aproximadamente em 1965 o crescimento dos arquivos mestres e das fitas magnéticas
explodiu, surgindo problemas como: a complexidade de manutenção dos programas; a
complexidade do desenvolvimento de novos programas; a quantidade de hardware para
manter todos os arquivos mestres e a necessidade de sincronizarem dados a serem atualizados.
       Por volta de 1970, surgiu a tecnologia DASD (Direct Access Storage Device),
substituindo as fitas magnéticas pelo armazenamento em disco. Com o DASD surgiu um novo
tipo de software conhecido como SGBD (Sistema de Gerenciamento de Banco de Dados), que
tinha o objetivo de tornar o armazenamento e o acesso a dados no DASD mais fáceis para o
programador. E com o SGBD surgiu a idéia de um “banco de dados” que foi definido como:
uma única fonte de dados para todo o processamento.
       Aproximadamente em 1975 surgiu o processamento de transações on-line. Com o
processamento de transações on-line de alta performance, o computador pôde ser usado para
tarefas que antes não eram viáveis como controlar sistemas de reservas, sistemas de caixas
bancários, sistemas de controle de produção e outros.
       Até o início da década de 1980, novas tecnologias, como os PCs (Personal
Communications Services) e as L4Gs (Linguagens de Quarta Geração), começaram a
aparecer. O usuário final passou a controlar diretamente os sistemas e os dados, descobrindo
que era possível utilizar os dados para outros objetivos além de atender ao processamento de
transações on-line de alta performance. Foi nesse período também que se tornou viável a
construção dos MIS (Management Information Systems), hoje conhecidos como SAD
(Sistemas de Apoio à Decisão) eles consistiam em processamento utilizado para direcionar
decisões gerenciais [INM97].
1.2 – O Ambiente projetado

       A arquitetura de desenvolvimento espontâneo não era suficiente para atender as
necessidades do futuro das empresas, fazendo-se necessário uma mudança de arquitetura,
surgindo o ambiente projetado de Data Warehouse.
       Neste ambiente há duas espécies de dados – dados primitivos e dados derivados. Há
quatro níveis no ambiente projetado – o operacional, a atômico ou Data Warehouse, o
departamental e o individual. O nível operacional de dados contém apenas dados primitivos e
atende à comunidade de processamento de transações de alta performance. O Data
Warehouse contém dados primitivos que não são atualizados e dados derivados. O nível
departamental de dados praticamente só contém dados derivados. E o nível individual de
dados é onde a maior parte das análises heurísticas é feito [INM97].
       A Figura 1 mostra os tipos de consulta para os quais os diferentes níveis de dados
podem ser usados.




Figura 1 – Os tipos de consulta.


Nos tipos de consultas as informações ficam à disposição com as seguintes características:
   •   Dados primitivos: baseados em aplicações, detalhados, podem ser atualizados, exatos
       em relação ao momento do acesso e são processados repetitivamente.
•   Dados derivados: baseados em assuntos ou negócios, resumidos, ou refinados, não são
    atualizados, representam valores de momentos já decorridos ou instantâneos e são
    processados de forma heurística.
CAP. 2 – O QUE É DATA WAREHOUSE


2.1 – Histórico

       O Data Warehouse é um banco de dados contendo dados extraídos do ambiente de
produção da empresa, que foram selecionados e depurados, tendo sido otimizados para
processamento de consulta e não para processamento de transações. Em geral, um Data
Warehouse requer a consolidação de outros recursos de dados além dos armazenados em
banco de dados relacionais, incluindo informações provenientes de planilhas eletrônicas,
documentos textuais, etc.

       A função do Data Warehouse é tornar as informações corporativas acessíveis para o
seu entendimento, gerenciamento e uso. Como o Data Warehouse está separado dos Bancos
de Dados operacionais, as consultas dos usuários não impactam nestes sistemas, que ficam
resguardados de alterações indevidas ou perdas de dados. O Data Warehouse não como um
software, que pode ser comprado e instalado em todos os computadores da empresa em
algumas horas. Na realidade, sua implantação exige a integração de vários produtos e
processos.
       Nos últimos anos o Data Warehouse vem oferecendo às organizações uma maneira
flexível e eficiente de obter as informações que os gestores necessitam, nos processos
decisórios e de caracteriza como uma função de apoio à decisão.



2.1.1 – Origem

       Segundo Haisten (1999), a origem do Data Warehouse vem dos estudos do MIT
(Massachusetts Institute of Technology) nos anos 70 que focavam o desenvolvimento de uma
arquitetura técnica mais eficiente para sistemas de informações. Pela primeira vez foi feita
uma distinção entre sistemas operacionais e aplicações analíticas e surgiu o princípio de
separar esse dois tipos de processamentos em projetos e armazéns de dados diferentes.
       Para Ballard & Herreman (1998) e Teresko (1999), o conceito de Data Warehouse
surgiu no inicio dos anos 80 quando os sistemas gerenciais de banco de dados (SGBD)
emergiram como produtos comerciais com facilidades para a computação de apoio a decisão
(SAD). Teresko (1999) comenta que Bill Inmon, observou que estes repositórios de
informações poderiam ser organizados em um bem corporativo que ele chamou de Data
Warehouse e por causa disso Inmon é considerado o “pai do Data Warehouse”. No inicio, o
Data Warehouse consistia de instantâneos, ou subconjuntos dos dados operacionais que eram
carregados em banco de dados de apoio a decisão em períodos regulares que costumavam ser
semanais ou mensais (Ballard & Herreman, 1998).



2.2 – Definições

          A definição clássica de Data Warehouse criada por Inmon (1997) é a seguinte:
“Data Warehouse é uma coleção de dados orientada por assuntos, integrada, variante no
tempo, e não volátil que tem por objetivo dar suporte aos processos de tomada de decisão.”
          Knowles (1996) utiliza um lógica interessante para dizer como o Data Warehouse é
importante para a empresa: “Poder faz dinheiro. Conhecimento é poder. Data Warehouse
aumenta o conhecimento. Portanto, Data Warehouse faz dinheiro.”.
          Gurovitz (1999) cita um estudo do IDC (International Data Corporation) que coloca o
Data Warehouse como a melhor chance para a TI (Tecnologia da Informação) mostrar ao que
veio gerando ganhos de tempo e dinheiro com informações acessíveis aos executivos quando
e como eles quiserem.
          Segundo Ralph Kimball (1998), uma autoridade nesse assunto, Data Warehouse “é o
lugar onde as pessoas podem acessar seus dados.” Já Wang (1998) tem uma definição um
pouco mais elaborada quando diz que Data Warehouse “é o processo pelo qual os dados
relacionados de vários sistemas operacionais são fundidos para proporcionar uma única e
integrada visão de informação de negócios que abrange todas as divisões de empresa.”.



2.3 - Características de um Data Warehouse

          Herdlein (1996) coloca que construir um Data Warehouse provavelmente envolverá
mais recurso humanos e de capital que qualquer outro projeto de TI que a organização já
possui.
          Nessas proporções, as chances de falhas não são pequenas. Muitos projetos de Data
Warehouse param por causa de infra-estrutura técnica ineficiente, falta de suporte executivo,
inexperiência das equipes de projeto e longo prazo para apresentação de resultados.
          Conforme Singh (1997), o Data Warehouse, não é simplesmente um produto ou
processo, mas uma estratégia que reconhece a necessidade de consolidar os dados
armazenados em sistemas de informações dedicados a ajudar os profissionais de negócio a
tomarem decisões mais rápidas e efetivas.
       Para entender melhor o que é um Data Warehouse vamos fazer uma comparação entre
ele e os bancos de dados operacionais [DAL99].




Figura 2 – Comparação entre Banco de Dados Operacionais e Data Warehouse.


       O Data Warehouse é um banco de dados contendo dados extraídos do ambiente de
produção da empresa, que foram selecionados e depurados, tendo sido otimizados para
processamento de consulta e não para processamento de transações. Em geral, um Data
Warehouse requer a consolidação de outros recursos de dados além dos armazenados em
banco de dados relacionais, incluindo informações provenientes de planilhas eletrônicas,
documentos textuais, etc.
       É importante considerar, no entanto, que um Data Warehouse não contém apenas
dados resumidos, podendo conter também dados primitivos. É desejável prover ao usuário a
capacidade de aprofundar se num determinado tópico, investigando níveis de agregação
menores ou mesmo o data primitivo, permitindo também a geração de novas agregações ou
correlações com outras variáveis. Além do mais, é extremamente difícil prever todos os
possíveis dados resumidos que serão necessários:
limitar o conteúdo de um Data Warehouse apenas a dados resumidos significa limitar os
usuários apenas às consultas e análises que eles puderem antecipar frente a seus requisitos
atuais, não deixando qualquer flexibilidade para novas necessidades.

2.3.1 - Orientado para áreas de interesse

        Refere-se ao fato do Data Warehouse armazenar informações sobre temas específicos
importantes para o negócio da empresa. Exemplos típicos de temas são: produtos, atividades,
contas, clientes, etc.
        Em contrapartida, o ambiente operacional é organizado por aplicações funcionais. Por
exemplo, em uma organização bancária, estas aplicações incluem empréstimos, investimentos
e seguros.
        A principal área de interesse termina sendo fisicamente implementada como uma série
de tabelas relacionadas inseridas no Data Warehouse. Por exemplo: vendas, compras,
produção, marketing, clientes e produtos.



2.4 – Integrado

        Refere-se à consistência de nomes, das unidades das variáveis, etc., no sentido de que
os dados foram transformados até um estado uniforme. Por exemplo, considere-se sexo como
um elemento de dado. Uma aplicação pode codificar sexo como M/F, outra como 1/0 e uma
terceira como H/M.
        Conforme os dados são trazidos para o Data Warehouse, eles são convertidos para um
estado uniforme, ou seja, sexo é codificado apenas de uma forma. Da mesma maneira, se um
elemento de dado é medido em centímetros em uma aplicação, em polegadas em outra, ele
será convertido para uma representação única ao ser colocado no Data Warehouse.



2.5 - Variante no tempo

        Refere-se ao fato do dado em um Data Warehouse referir-se a algum momento
específico, significando que ele não é atualizável, enquanto que o dado de produção é
atualizado de acordo com mudanças de estado do objeto em questão, refletindo, em geral, o
estado do objeto no momento do acesso. Em um Data Warehouse, a cada ocorrência de uma
mudança, uma nova entrada é criada, para marcar esta mudança.
O tratamento de séries temporais apresenta características específicas, que adicionam
complexidade ao ambiente do Data Warehouse. Processamentos mensais ou anuais são
simples, mas dias e meses oferecem dificuldades pelas variações encontradas no número de
dias em um mês ou em um ano, ou ainda no início das semanas dentro de um mês. Além
disso, deve-se considerar que não apenas os dados têm uma característica temporal, mas
também os metadados, que incluem definições dos itens de dados, rotinas de validação,
algoritmos de derivação, etc. Sem a manutenção do histórico dos metadados, as mudanças das
regras de negócio que afetam os dados no Data Warehouse são perdidas, invalidando dados
históricos.



2.6 - Não volátil

       Significa que o Data Warehouse permite apenas a carga inicial dos dados e consultas a
estes dados. Após serem integrados e transformados, os dados são carregados em bloco para o
Data Warehouse, para que estejam disponíveis aos usuários para acesso. No ambiente
operacional, ao contrário, os dados são, em geral, atualizados registro a registro, em múltiplas
transações. Esta volatilidade requer um trabalho considerável para assegurar integridade e
consistência através de atividades de rollback, recuperação de falhas, commits e bloqueios.
        Um Data Warehouse não requer este grau de controle típico dos sistemas orientados a
transações.



2.7 – Granularidade

       Granularidade diz respeito ao nível de detalhe ou de resumo contido nas unidades de
dados existentes no Data Warehouse. Quanto maior o nível de detalhes, menor o nível de
granularidade. O nível de granularidade afeta diretamente o volume de dados armazenado no
Data Warehouse e ao mesmo tempo o tipo de consulta que pode ser respondida.
       Quando se tem um nível de granularidade muito alto o espaço em disco e o número de
índices necessários se tornam bem menores, porém há uma correspondente diminuição da
possibilidade de utilização dos dados para atender a consultas detalhadas [DAL99].
       Há, portanto, um bom motivo para a compactação de dados em um Data Warehouse.
Quando os dados são compactados ocorre uma economia incomum sobre o total de DASD
utilizado, o número de índices necessários e os recursos de processador necessários para o
tratamento dos dados.
         No entanto, há um outro aspecto da compactação de dados que ocorre à medida que o
nível de granularidade é elevado. À medida que o nível de granularidade se eleva, há uma
correspondente diminuição da possibilidade de utilização dos dados para atender a consultas.
Já com um nível mais baixo de granularidade é possível responder a qualquer consulta
[INM97].
         Devemos lembrar, porém que em um ambiente de Data Warehouse, dificilmente um
evento isolado é examinado. É mais comum ocorrer a utilização de uma visão de conjunto dos
dados.



2.7.1 – Níveis duais de granularidade

         O chamado nível duplo de granularidade, ilustrado na Figura 3, se enquadra nos
requisitos da maioria das empresas. Na camada de dados levemente resumidos ficam os dados
que fluem do armazenamento operacional e são resumidos na forma de campos apropriados
para a utilização de analistas e gerentes. Na segunda camada, ou nível de dados históricos,
ficam todos os detalhes vindos do ambiente operacional, como há uma verdadeira montanha
de dados neste nível, fazem sentido armazenar os dados em um meio alternativo como fitas
magnéticas.
         Com a criação de dois níveis de granularidade no nível detalhado do Data Warehouse,
é possível atender a todos os tipos de consultas, pois a maior parte do processamento analítico
dirige-se aos dados levemente resumidos que são compactos e de fácil acesso e para ocasiões
em que um maior nível de detalhe deve ser investigado existe o nível de dados históricos. O
acesso aos dados do nível histórico de granularidade é caro, incômodo e complexo, mas caso
haja necessidade de alcançar esse nível de detalhe, lá estará ele.

    Alto nível de detalhe                 Baixo nível de detalhe

                           Diário                                    Mensal




     Baixa granularidade                    Alta granularidade
Figura 3 – Níveis de granularidade.

2.8 – Metadados

       Os metadados são de grande importância para o processo de controle das operações
em um Data Warehouse. Os metadados são dados acerca dos dados constantes no Data
Warehouse. Durante todas as fases do projeto de um Data Warehouse, e também após o início
de sua operacionalização, metadados devem ser armazenados. Existem no mercado
ferramentas próprias para armazenar e gerenciar metadados, dos quais o Sybase Warehouse
Control Center e o Prism Warehouse Directory são exemplos.
       Segundo Inmon (1997), os metadados são informações sobre “o que está aonde” no
Data Warehouse. Os aspectos sobre os quais os metadados mantém informações são:
•   “A estrutura dos dados, segundo a visão do programador;
•   A estrutura dos dados segundo a visão dos analistas de sistemas de apoio à decisão;
•   A fonte de dados que alimenta o Data Warehouse;
•   A transformação sofrida pelos dados no momento de sua migração para o Data
    Warehouse;
•   O modelo de dados;
•   O relacionamento entre o modelo de dados e o Data Warehouse;
•   O histórico das extrações de dados.”
CAP. 3 – ARQUITETURA DO DATA WAREHOUSE

       Para ser útil o Data Warehouse deve ser capaz de responder a consultas avançadas de
maneira rápida, sem deixar de mostrar detalhes relevantes à resposta. Para isso ele deve
possuir uma arquitetura que lhe permita coletar, manipular e apresentar os dados de forma
eficiente e rápida. Mas construir um Data Warehouse eficiente, que servirá de suporte a
decisões para a empresa, exige mais do que simplesmente descarregar ou copiar os dados dos
sistemas atuais para um banco de dados maior. Deve-se considerar que os dados provenientes
de vários sistemas podem conter redundâncias e diferenças, então antes de passá-los para o
Data Warehouse é necessário aplicar filtros sobre eles.
       O estudo de uma arquitetura permite compreender como o Data Warehouse faz para
armazenar, integrar, comunicar, processar e apresentar os dados que os usuários utilizarão em
suas decisões. Um Data Warehouse pode variar sua arquitetura conforme o tipo de assunto
abordado, pois as necessidades também variam de empresa para empresa. É possível definir
uma arquitetura genérica onde praticamente todas as camadas necessárias são apresentadas,
conforme a arquitetura genérica vista a seguir, ou arquiteturas que utilizam somente algumas
das camadas definidas, como as arquiteturas em duas e três camadas.



3.1 – Arquitetura genérica do Data Warehouse

       A seguir é descrita uma arquitetura genérica proposta por [DAL99] e ilustrada na
Figura 4. Esta descrição genérica procura apenas sistematizar papéis no ambiente de Data
Warehouse, permitindo que as diferentes abordagens encontradas no mercado atualmente
possam ser adaptadas a ela devesse considerar que esta arquitetura tem o objetivo de
representar a funcionalidade de um Data Warehouse sendo que várias camadas propostas
podem ser atendidas por um único componente de software.
       Esta arquitetura é composta pela camada dos dados operacionais e outras fontes de
dados que são acessados pela camada de acesso aos dados. As camadas de gerenciamento de
processos, transporte e Data Warehouse formam o centro da arquitetura e são elas as
responsáveis por manter e distribuir os dados. A camada de acesso à informação é formada
por ferramentas que possibilitam os usuários extrair informações do Data Warehouse. Todas
as camadas desta arquitetura interagem com o dicionário de dados (metadados) e com o
gerenciador de processos:
•   Camadas de bancos de dados operacionais e fontes externas: É composto pelos dados
    dos sistemas operacionais das empresas e informações provenientes de fontes externas
    que serão integradas para compor o Data Warehouse;
•   Camada de acesso à informação: Envolve o hardware e o software utilizado para
    obtenção de relatórios, planilhas, gráficos e consultas. É nesta camada que os usuários
    finais interagem com o Data Warehouse, utilizando ferramentas de manipulação,
    análise e apresentação dos dados, incluindo-se as ferramentas de Data Mining e
    visualização;
•   Camada de acesso aos dados: Esta camada faz a ligação entre as ferramentas de acesso
    à informação e os bancos de dados operacionais. Esta camada se comunica com
    diferentes sistemas de bancos de dados, sistemas de arquivos e fontes sob diferentes
    protocolos de comunicação, o que se chama acesso universal de dados;
•   Camada de metadados (Dicionário de dados): Metadados são as informações que
    descrevem os dados utilizados pela empresa, isto envolve informações como
    descrições      de   registros,   comandos   de   criação   de    tabelas,   diagramas
    Entidade/Relacionamentos (ER), dados de um dicionário de dados, etc. É necessário
    que exista uma grande variedade de metadados no ambiente de Data Warehouse para
    que ele mantenha sua funcionalidade e os usuários não precisem se preocupar onde
    residem os dados ou a forma com que estão armazenados;
•   Camada de gerenciamento de processos: É a camada responsável pelo gerenciamento
    dos processos que contribuem para manter o Data Warehouse atualizado e consistente.
    Está envolvida com o controle das várias tarefas que devem ser realizadas para
    construir e manter as informações do dicionário de dados e do Data Warehouse;
•   Camada de transporte: Esta camada gerencia o transporte de informações pelo
    ambiente de rede. Inclui a coleta de mensagens e transações e se encarrega da entrega
    em locais e tempos determinados. Também é usada para isolar aplicações operacionais
    ou informacionais, do formato real dos dados nas duas extremidades;
•   Camada do Data Warehouse: É o Data Warehouse propriamente dito, corresponde aos
    dados utilizados para obter informações. Às vezes o Data Warehouse pode ser
    simplesmente uma visão lógica ou virtual dos dados, podendo não envolver o
    armazenamento dos mesmos ou armazenar dados operacionais e externos para facilitar
    seu acesso e manuseio.
Figura 4 – Arquitetura genérica do Data Warehouse.



3.2 – Outras arquiteturas

3.2.1 – Arquitetura de duas camadas

       Uma opção de arquitetura para o Data Warehouse é utilizar um computador de alta
capacidade como servidor. Isto é uma incorporação das aplicações utilizadas pelos usuários
(front end) com os componentes do servidor (back end). Aplicações front end construídas
com ferramentas cliente/servidor fornecem uma interface gráfica amigável, suportam funções
específicas da empresa, possibilitam o acesso transparente aos dados dos sistemas já
existentes e escondem a complexidade e a falta de consistência dos bancos de dados atuais
além de facilitar a utilização e a visualização dos resultados. Os sistemas operacionais de uma
empresa podem estar em uso por 15 ou 20 anos e podem ter altas taxas de redundância. A
redundância e a falta de consistência dos dados podem dificultar a administração da empresa e
o acesso aos dados e impede o desenvolvimento de novas aplicações front end. Uma das
maneiras de tratar com esta situação é partir de um só sistema e construir uma espécie de
"sistema guarda-chuva" que tenha facilidade de acesso aos dados do servidor principal.
Figura 5 - Arquitetura de duas camadas.


       A arquitetura ilustrada na Figura 4 pode ser usada para construir um Data Warehouse
em duas camadas que consiste de componentes dos clientes (front end) e componentes do
servidor (back end). Esta arquitetura é atrativa porque ela utiliza os sistemas existentes bem
como os servidores de bancos de dados existentes e requer um investimento mínimo em
hardware e software. Entretanto, a arquitetura em duas camadas não é escalonável e não
suporta um grande número de usuários simultaneamente. Isto estimula o desenvolvimento de
estações clientes muito pesadas, pois muito processamento é alocado para processar nestas
estações [DAL99].



3.2.2 – Arquitetura de três camadas

       Uma alternativa é utilizar a arquitetura de informação em múltiplas camadas, como
mostrado na Figura 5. Esta arquitetura flexível suporta um grande número de serviços
integrados, na qual a interface do usuário, as funções de processamento do negócio e as
funções de gerenciamento do banco de dados são separadas em processos que podem ser
distribuídos através da arquitetura de informação.
       A arquitetura em três camadas é amplamente utilizada para Data Warehouse. Na
terceira camada ficam as fontes de dados. Dados e regras de negócio podem ser
compartilhados pela organização, assim como os bancos de dados para o Data Warehouse,
ficam armazenados em servidores de alta velocidade na segunda camada. Na primeira camada
ficam as aplicações de interface com os usuários que devem ser gráficas e baseadas em rede.
       No ambiente do Data Warehouse, os servidores de banco de dados e os servidores de
aplicações da segunda camada fornecem um acesso eficiente e veloz aos dados
compartilhados. Os dados de um Data Warehouse são tipicamente estáticos, por exemplo, não
variam com o tempo e devem ser integrados, de natureza histórica e sumarizados ou
agregados para que sejam significantes para os analistas de negócios. Como mostrado na
Figura 5, dados operacionais e bancos de dados para o Data Warehouse são freqüentemente
armazenados em servidores fisicamente separados. Bancos de dados operacionais são
otimizados para ter alto desempenho no processamento de transações on-line, em inglês
conhecido como On-line Transaction Processing (OLTP). Bancos de dados para Data
Warehouse são otimizados para ter alto desempenho em consultas e análises, em inglês
conhecido como On-line Analytical Processing (OLAP).




Figura 6 – Arquitetura de três camadas.


       É importante reconhecer que não existe uma arquitetura "correta" para Data
Warehouse. Para algumas organizações pode ser atrativo utilizar a arquitetura em duas
camadas, por que ela minimiza o custo e a complexidade de construção do Data Warehouse.
Para outras que requerem grande performance e escalabilidade, a arquitetura em três camadas
pode ser mais apropriada. No planejamento do Data Warehouse, as organizações devem
examinar as alternativas disponíveis de arquiteturas e selecionar aquela que satisfaça os seu
requisitos estratégicos e organizacionais [DAL99].
CAP. 4 – MODELO DE DADOS DO DATA WAREHOUSE

       O modelo de dados tem um papel fundamental para o desenvolvimento interativo do
Data Warehouse. Quando os esforços de desenvolvimentos são baseados em um único
modelo de dados sempre que for necessário unir estes esforços os níveis de sobreposição de
trabalho e desenvolvimento desconexo serão muito baixos, pois todos os componentes do
sistema estarão utilizando a mesma estrutura de dados.
       Existe um grande número de enfoques sobre modelagem de dados já desenvolvidos
por vários autores, a maioria deles pode ser usada para construir um Data Warehouse. Dentre
estes modelos apenas o multidimensional será apresentado neste trabalho.



4.1 - A Questão das Dimensões

       Obter respostas a questões típicas de análise dos negócios de uma empresa geralmente
requer a visualização dos dados segundo diferentes perspectivas. Como exemplo, imagine-se
uma agência de automóveis que esteja querendo melhorar o desempenho de seu negócio, Para
isso, necessita examinar os dados sobre as vendas disponíveis na empresa. Uma avaliação
deste tipo requer uma visão histórica do volume de vendas sob múltiplas perspectivas, como
por exemplo: volume de vendas por modelo, volume de vendas por cor, volume de vendas por
fabricante, volume de vendas por período de tempo. Uma análise do volume de vendas
utilizando uma ou mais destas perspectivas, permitiria responder questões do tipo: Qual a
tendência em termos de volume de vendas para o mês de dezembro para modelos Volvo
Sedan preto?
A capacidade de responder a este tipo de questão em tempo hábil é o que permite aos gerentes
e altos executivos das empresas formular estratégias efetivas, identificar tendências e
melhorar sua habilidade de tomar decisões de negócio. O ambiente tradicional de bancos de
dados relacional certamente pode atender a este tipo de consulta. No entanto, usuários finais
que necessitam de consultas deste tipo via acesso interativo aos bancos de dados, mostram-se
seguidamente frustrados por tempos de resposta ruins e pela falta de flexibilidade oferecida
por ferramentas de consulta baseadas no SQL (Structured Query Language). Daí a
necessidade de utilizar abordagens específicas para atender a estas consultas.
       Para compreender melhor os conceitos envolvidos, examinemos em maior detalhe o
exemplo acima.
Chamaremos de dimensões as diferentes perspectivas envolvidas, no caso, modelo,
loja, fabricante, mês. Estas “dimensões” usualmente correspondem a campos não numéricos
em um banco de dados.
       Consideremos também um conjunto de “medidas”, tal como vendas ou despesas com
promoção.
       Estas medidas correspondem geralmente a campos numéricos em um banco de dados.
A seguir, avaliam-se agregações destas medidas segundo às diversas dimensões e as
armazenamos para acesso futuro. Por exemplo, calcula-se a média de todas as vendas por
todos os meses por loja. A forma como estas agregações são armazenadas pode ser vista em
termos de dimensões e coordenadas, dando origem ao termo multidimensional.
       Intuitivamente, cada eixo no espaço multidimensional é um campo/coluna de uma
tabela relacional e cada ponto um valor correspondente à interseção das colunas. Assim, o
valor para o campo vendas, correspondente a mês igual a maio e loja igual a Iguatemi é um
ponto com coordenada [maio, Iguatemi]. Neste caso, mês e loja são duas dimensões e vendas
é uma medida.
       Teoricamente,    quaisquer    dados    podem    ser   considerados    multidimensionais.
Entretanto, o termo normalmente se refere a dados representando objetos ou eventos que
podem ser descritos, e, portanto, classificados por dois ou mais de seus atributos.
       Estruturas relacionais podem ser usadas para a representação e o armazenamento de
dados multidimensionais. Neste caso, as abordagens encontradas incluem desde a adoção de
formas específicas de modelagem (os chamados esquemas estrela e floco de neve) até
mecanismos sofisticados de indexação.



4.2 - Esquemas do tipo Estrela e Floco de Neve

       Em um esquema do tipo estrela ou "star" as instâncias são armazenadas em uma tabela
contendo o identificador de instância, valores das dimensões descritivas para cada instância, e
valores dos fatos, ou medidas, para aquela instância (tabela de fatos). Além disso, pelo menos
uma tabela é usada, para cada dimensão, para armazenar dados sobre a dimensão (tabela de
dimensão). No caso mais simples, a tabela de dimensão tem uma linha para cada valor válido
da dimensão. Esses valores correspondem a valores encontrados na coluna referente àquela
dimensão na tabela de fatos.
Este esquema é chamado de estrela, por apresentar a tabela de fatos "dominante" no
centro do esquema e as tabelas de dimensões nas extremidades. A tabela de fatos é ligada às
demais tabelas por múltiplas junções, enquanto as tabelas de dimensões se ligam apenas à
tabela central por uma única junção. A Figura 7 mostra um exemplo de um modelo tipo
estrela.




Figura 7 – Modelo Estrela.


           A tabela de fatos é onde as medidas numéricas do fato representado estão
armazenadas. Cada uma destas medidas é tomada segundo a interseção de todas as
dimensões.       No caso do exemplo, uma consulta típica selecionaria fatos da figura
FATOSVENDAS a partir de valores fornecidos relativos a cada dimensão.
           Outro tipo de estrutura bastante comum é o esquema do tipo floco de neve ou
"snowflake", que consiste em uma extensão do esquema estrela onde cada uma das "pontas"
da estrela passa a ser o centro de outras estrelas. Isto porque cada tabela de dimensão seria
normalizada, "quebrando-se" a tabela original ao longo de hierarquias existentes em seus
atributos. No caso do exemplo, a dimensão produto possui uma hierarquia definida onde
categoria se divide em marca e marca se divide em produtos (Figura 8). Da mesma forma, a
dimensão tempo inclui ano que contem mês e mês que contem dia do mês. Cada um destes
relacionamentos geraria uma nova tabela em um esquema floco de neve.
Figura 8 – A dimensão do produto normalizada.

4.2.1 – Vantagens do modelo estrela

         •   O modelo Estrela tem uma arquitetura padrão e previsível. As ferramentas de
             consulta e interfaces do usuário podem se valer disso para fazer suas interfaces
             mais amigáveis e fazer um processamento mais eficiente;
         •   Todas as dimensões do modelo são equivalentes, ou seja, podem ser vistas
             como pontos de entrada simétricos para a tabela de fatos. As interfaces do
             usuário são simétricas, as estratégias de consulta são simétricas, e o SQL
             gerado, baseado no modelo, é simétrico;
         •   O modelo dimensional é totalmente flexível para suportar a inclusão de novos
             elementos de dados, bem como mudanças que ocorram no projeto. Essa
             flexibilidade se expressa de várias formas, dentre as quais temos:
         •   Todas as tabelas de fato e dimensões podem ser alteradas simplesmente
             acrescentando novas colunas a tabelas;
         •   Nenhuma ferramenta de consulta ou relatório precisa ser alterada de forma a
             acomodar as mudanças;
         •   Todas as aplicações que existiam antes das mudanças continuam rodando sem
             problemas;
         •   Existe um conjunto de abordagens padrões para tratamento de situações
             comuns no mundo dos negócios. Cada uma destas tem um conjunto bem
             definido de alternativas que podem então ser especificamente programadas em
             geradores de relatórios, ferramentas de consulta e outras interfaces do usuário.
             Dentre estas situações temos:
         •   Mudanças lentas das dimensões: ocorre quando uma determinada dimensão
             evolui de forma lenta e assíncrona;
         •   Produtos heterogêneos: quando um negócio, tal como um banco, precisa
             controlar diferentes linhas de negócio juntas, dentro de um conjunto comum de
atributos e fatos, mas ao mesmo tempo esta precisa descrever e medir as linhas
                individuais de negócio usando medidas incompatíveis;
            •   Outra vantagem é o fato de um número cada vez maior de utilitários
                administrativos e processo de software serem capazes de gerenciar e usar
                agregados, que são de suma importância para a boa performance de respostas
                em um Data Warehouse [DAL99].

4.2.2 - Bancos de Dados Multidimensionais

       Embora seja viável utilizar estruturas relacionais na representação de dados
multidimensionais, a solução não é ideal. Na Figura 9, é fácil verificar como uma matriz
bidimensional representa mais claramente os dados armazenados na forma relacional
tradicional. Na matriz, os valores de vendas estão localizados nas interseções dos eixos X e Y
da matriz 3x3. Cada eixo corresponde a uma dimensão, e cada elemento dentro de uma
dimensão corresponde a uma posição. Um array agrupa informações semelhantes em colunas
e linhas.




Figura 9 – Relacional versus Bidimensional.


       Além disso, na representação multidimensional, totais consolidados são facilmente
obtidos e armazenados, bastando simplesmente adicionar totais de colunas e fileiras.



4.3 – Conversão do modelo E-R para o modelo do Data Warehouse

       Para tal, W. H. Inmon fornece então alguns passos que podem ser seguidos, não se
esquecendo de que o fundamental é que as decisões de transformação devem ser tomadas
levando-se em consideração os requisitos específicos da empresa. Os passos básicos são:
4.3.1 - Remoção dos dados puramente operacionais

       A primeira ação consiste em remover os dados que são usados apenas no ambiente
operacional, como vemos no exemplo da Figura 10. Neste, atributos tais como mensagem,
descrição e status são retirados, pois é muito pouco provável que estes sejam utilizados no
processo de tomada de decisão.
       Neste momento, pode ser que se pense em manter todos os atributos, pois talvez algum
destes seja necessário para alguma decisão específica. Entretanto, deve-se levar em conta o
custo para gerenciar grandes volumes de dados [DAL99].




Figura 10 – Remoção dos dados puramente operacionais.



4.3.2 - Adição de um elemento de tempo na estrutura da chave

       A segunda modificação a ser feita no modelo corporativo é adicionar um elemento de
tempo a chave das tabelas, se estas já não o tiverem.
       No exemplo da Figura 11, o campo Data Snapshot foi adicionado como parte da
chave. Enquanto no modelo corporativo a chave é apenas a identificação do consumidor, no
modelo do Data Warehouse a data do instantâneo deve fazer parte da chave, já que com o
passar do tempo os dados do consumidor podem se alterar. Esta técnica é apenas uma forma
de tirar instantâneos dos dados.
       Outra forma de fazê-lo é adicionar dois campos do tipo data, um marcando o início e
outro o fim de um determinado intervalo de tempo. Esta técnica é melhor por representar
faixas contínuas de tempo ao invés de pontos ou datas específicas [DAL99].
Figura 11 – Adição de um elemento de tempo.

4.3.3 - Introdução de dados derivados

       O próximo passo é adicionar dados derivados ao modelo, como mostrado na Figura
12, já que por regra geral estes não existem no modelo corporativo. Devem ser adicionados os
dados derivados que serão usados habitualmente de forma que estes sejam calculados apenas
uma vez. Dessa forma, haverá uma redução no processamento que deve ser feito para acessar
os dados derivados ou sumarizados.
       Outra razão para o armazenamento de dados derivados é que uma vez calculados e
armazenados, a integridade destes aumenta, uma vez que se torna impossível a utilização de
diferentes algoritmos para o cálculo destes derivados [DAL99].




Figura 12 – Introdução de dados derivados.



4.3.4 - Transformação de Relacionamentos entre dados em artefatos dos dados

       Os relacionamentos encontrados nas modelagens de dados clássicas assumem que há
um e somente um valor de negócio no relacionamento. Levando-se em consideração que nos
sistemas operacionais o dado estar integro no momento da transação, esta abordagem é
correta. Entretanto, o Data Warehouse por sua característica de armazenar dados históricos,
tem muitos valores para um dado relacionamento entre duas tabelas. Dessa forma a melhor
maneira de representar o relacionamento entre duas tabelas no Data Warehouse é através da
criação de artefatos.
       Um artefato de um relacionamento é somente a parte do relacionamento que é óbvia e
tangível no momento do instantâneo. Em outras palavras, quando o instantâneo é feito os
dados associados com o relacionamento que são úteis e óbvios serão colocados no Data
Warehouse.
       O artefato pode incluir chaves estrangeiras e outros dados relevantes, tais como
colunas de tabelas associadas, ou este pode incluir somente os dados relevantes, sem incluir as
chaves estrangeiras.
       Como exemplo, consideremos as tabelas e o relacionamento entre estas na Figura 13.
Nesta existe um relacionamento entre produto e fornecedor, onde cada produto tem um
fornecedor principal. Se fossemos fazer então um instantâneo deste relacionamento, teríamos
que considerar a informação do fornecedor principal que está relacionado ao produto. Além
disso, outras informações de artefato relacionadas com o fornecedor deveriam então ser
capturadas. A tabela de produtos no modelo do Data Warehouse ficaria então como a
mostrada na Figura 14 [DAL99].




Figura 13 – Relacionamento entre tabelas no modelo E-R.




Figura 14 – Inclusão de artefatos no Data Warehouse.
4.3.5 - Acomodação dos diferentes níveis de granularidade

       Dependendo do caso, o nível de granularidade do sistema transacional pode ser o
mesmo do Data Warehouse ou não. Quando o nível de granularidade se altera, o modelo do
Data Warehouse deve representar esta mudança, como no exemplo da Figura 15.
       No exemplo, o modelo de dados corporativo mostra dados da atividade de envio de
um determinado produto que são armazenadas toda vez que uma entrega é feita. Quando este
é passado para o Data Warehouse, duas agregações são feitas, alterando então a
granularidade. Na primeira, o total de entregas é agregado mensalmente, fazendo com que a
granularidade seja o mês, já na segunda, existe uma agregação das entregas feitas por mês e
local de origem, fazendo então com que a granularidade seja o mês associado ao fornecedor
[DAL99].




Figura 15 – Alteração do nível de granularidade.



4.3.6 - União dos dados comuns de diferentes tabelas

       Nesta fase, deve-se considerar a possibilidade de combinar duas ou mais tabelas do
modelo corporativo em uma única tabela do modelo do Data Warehouse. Para que esta
junção possa ser feita, as seguintes condições devem ser verdadeiras:
           •   As tabelas compartilham uma chave comum (ou chave parcial);
           •   Os dados das diferentes tabelas geralmente são usados juntos;
           •   Padrão de inserção nas tabelas é o mesmo.
Como exemplo, consideremos a Figura 16, onde temos as tabelas NOTAS e ITENS
DAS NOTAS.
       Quando estas são colocadas no modelo do Data Warehouse, estas vão para uma
mesma tabela. Dessa forma, a junção entre estas tabelas passa a não ser mais necessária
quando uma consulta for feita.
       Neste caso, podemos ver que as três condições são atendidas: as tabelas compartilham
parte da chave, ID da Nota; estas duas tabelas geralmente são usadas juntas; e o padrão de
inserção é o mesmo, ou seja, sempre que uma nota é inserida seus itens também o são
[DAL99].




Figura 16 – União dos dados de diferentes tabelas.



4.3.7 - Criação de arrays de dados

       Os dados no modelo corporativo geralmente estão normalizados, onde a existência de
grupos repetitivos não é permitida. Entretanto, em algumas situações no ambiente de Data
Warehouse pode haver grupos repetitivos de dados. As condições para existência destes são:
           •   Quando o número de ocorrências do dado é previsível;
           •   Quando a ocorrência do dado é relativamente pequena (em termos de tamanho
               físico);
           •   Quando as ocorrências do dado geralmente são usadas juntas;
           •   Quando o padrão de inserção e remoção dos dados é estável;
A Figura 17 mostra uma tabela no modelo corporativo com as previsões de gasto
mensais. Quando esta é colocada no modelo do Data Warehouse, os dados são armazenados
de forma que cada mês do ano é uma ocorrência no array [DAL99].




Figura 17 - Modelo corporativo.



4.4 Data Marts

       Da mesma forma que o Data Warehouse, o Data Mart ainda não possui uma definição
universalmente aceita e também esta em fase de aperfeiçoamento. Os Data Marts são
subconjuntos de dados, dentro de um Data Warehouse, projetados para dar suporte a negócios
de unidade organizacionais especificas (NIMER, 1998).
       Segundo o autor, os Data Marts são muito interessantes para resolver certos
problemas, mas não são necessariamente substitutos de um projeto de Data Warehouse. Um
Data Mart não deve ser um pequeno Data Warehouse, com a finalidade de ser rápido ou
possuir dados ainda não suportados para o Data Warehouse (KIMBALL, 1997).
       Os projetos de Data Marts se justificam em poucos casos, basicamente naqueles onde
a alta gerência ainda não esta convencida quanto a viabilidade e vantagens que a tecnologia
do Data Warehouse pode prover as organizações. Neste caso, os Data Marts são viáveis, por
apresentarem resultados mais rápidos, demoram entre 4 a 12 meses para serem
implementados e, em conseqüência, começam a dar resultados mais rápidos. Os Data
Warehouses têm prazos que variam entre 1 a 5 anos para implementação completa.
CAP. 5 – DESENVOLVIMENTO DO DATA WAREHOUSE

       O sucesso do desenvolvimento de um Data Warehouse depende fundamentalmente de
uma escolha correta da estratégia a ser adotada, de forma que seja adequada às características
e necessidades específicas do ambiente onde será implementado. Existe uma variedade de
abordagens para o desenvolvimento de Data Warehouses, devendo-se fazer uma escolha
fundamentada em pelo menos três dimensões: escopo do Data Warehouse (departamental,
empresarial, etc.), grau de redundância de dados, tipo de usuário alvo.
       O escopo de um Data Warehouse pode ser tão amplo quanto aquele que inclui todo o
conjunto de informações de uma empresa ou tão restrito quanto um Data Warehouse pessoal
de um único gerente.
       Quanto maior o escopo, mais valor o Data Warehouse tem para a empresa e mais cara
e trabalhosa sua criação e manutenção. Por isso, muitas empresas tendem a começar com um
ambiente departamental e só após obter um retorno de seus usuários expandir seu escopo.
       Quanto à redundância de dados, há essencialmente três níveis de redundância: o Data
Warehouse virtual, o Data Warehouse centralizado e o Data Warehouse distribuído.
           •    O Data Warehouse virtual consiste em simplesmente prover os usuários finais
                com facilidades adequadas para extração das informações diretamente dos
                bancos de produção, não havendo assim redundância, mas podendo
                sobrecarregar o ambiente operacional.
           •    O Data Warehouse central constitui-se em um único banco de dados físico
                contendo todos os dados para uma área funcional específica, um departamento
                ou uma empresa, sendo usados onde existe uma necessidade comum de
                informações. Um Data Warehouse central normalmente contém dados
                oriundos de diversos bancos operacionais, devendo ser carregado e mantido em
                intervalos regulares.
           •    O Data Warehouse distribuído, como o nome indica, possui seus componentes
                distribuídos por diferentes bancos de dados físicos, normalmente possuindo
                uma grau de redundância alto e por conseqüência, procedimentos mais
                complexos de carga e manutenção.
       Os padrões de uso de um Data Warehouse também constituem um fator importante na
escolha de alternativas para o ambiente. Relatórios e consultas pré-estruturadas podem
satisfazer o usuário final,
e geram pouca demanda sobre o SGBD e sobre o ambiente servidor. Análises complexas, por
sua vez, típicas de ambientes de suporte à decisão, exigem mais de todo o ambiente.
Ambientes dinâmicos, com necessidades em constante mudança, são mais bem atendidos por
uma arquitetura simples e de fácil alteração, ao invés de uma estrutura mais complexa que
necessite de reconstrução a cada mudança. A freqüência da necessidade de atualização
também é determinante: grandes volumes de dados que são atualizados em intervalos
regulares favorecem uma arquitetura centralizada.



5.1 - Estratégia Evolucionária

        Data Warehouses, em geral, são projetados e carregados passo a passo, seguindo,
portanto uma abordagem evolucionária. Os custos de uma implementação "por inteiro", em
termos de recursos consumidos e impactos no ambiente operacional da empresa justificam
esta estratégia.
        Muitas empresas iniciam o processo a partir de uma área específica da empresa, que
normalmente é uma área carente de informação e cujo trabalho seja relevante para os
negócios da empresa, criando os chamados Data Marts (um Data Warehouse departamental),
para depois ir crescendo aos poucos, seguindo uma estratégia "botton-up" ou assunto-por-
assunto.
        Outra alternativa é selecionar um grupo de usuários, prover ferramentas adequadas,
construir um protótipo do Data Warehouse, deixando que os usuários experimentem com
pequenas amostras de dados. Somente após a concordância do grupo quanto aos requisitos e
funcionamento, é que o Data Warehouse será de fato carregado com dados dos sistemas
operacionais na empresa e dados externos.
        Data marts também podem ser criados como subconjunto de um Data Warehouse
maior, em busca de autonomia, melhor desempenho e simplicidade de compreensão.



5.2 - Aspectos de Modelagem

        A especificação de requisitos do ambiente de suporte à decisão associado a um Data
Warehouse é fundamentalmente diferente da especificação de requisitos dos sistemas que
sustentam os processos usuais do ambiente operacional de uma empresa.
Os requisitos dos sistemas do ambiente operacional são claramente identificáveis a
partir das funções a serem executadas pelo sistema. Requisitos de sistemas de suporte à
decisão são, por sua vez, indeterminados. O objetivo por trás de um Data Warehouse é prover
dados com qualidade; os requisitos dependem das necessidades de informação individuais de
seus usuários. Ao mesmo tempo, os requisitos dos sistemas do ambiente operacional são
relativamente estáveis ao longo do tempo, enquanto que os dos sistemas de suporte à decisão
são instáveis: dependem das variações das necessidades de informações daqueles
responsáveis pelas tomadas de decisões dentro da empresa.
       No entanto, embora as necessidades por informações específicas mudem com
freqüência, os dados associados não mudam. Imaginando-se que os processos de negócio de
uma empresa permaneçam relativamente constantes, existe apenas um número finito de
objetos e eventos com as quais uma organização está envolvida. Por esta razão, um modelo de
dados é uma base sólida para identificar requisitos para um Data Warehouse.
       De qualquer forma, é um erro pensar que técnicas de projeto que servem para sistemas
convencionais serão adequadas para a construção de um Data Warehouse. Os requisitos para
um Data Warehouse não podem ser conhecidos até que ele esteja parcialmente carregado e já
em uso.

       Outra questão interessante é a adequação do modelo Entidade-Relacionamento ao tipo
de transação de sistemas OLTP (On-line Transaction Processing). O principal objetivo da
modelagem, neste caso, é eliminar ao máximo, a redundância, de tal forma que uma transação
que promova mudanças no estado do banco de dados, atue o mais pontualmente possível.
Com isso, nas metodologias de projeto usuais, os dados são "fragmentados" por diversas
tabelas, o que traz uma considerável complexidade à formulação de uma consulta por um
usuário final. Por isso, esta abordagem não parece ser a mais adequada para o projeto de um
Data Warehouse, onde estruturas mais simples, com menor grau de normalização devem ser
buscadas.



5.3 – Técnicas de gerenciamento da quantidade de dados operacionais
pesquisados
Existem algumas técnicas que podem ser usadas para limitar a quantidade de dados
pesquisados, conforme demonstrado na Figura 18, as técnicas expostas a seguir devem ser
analisadas e deve-se escolher a que melhor represente as necessidades da empresa. [DAL99].




Figura 18 – Selecionando os dados a serem varridos.


         A primeira técnica consiste em pesquisar dados que apresentem marcas de tempo. Para
isso é necessário que as aplicações registrem o momento da última alteração ou atualização
em um registro para que ao ser executada a varredura para o Data Warehouse só sejam
examinados os registros que tenham a data de atualização igual ou maior do que a data da
última pesquisa.
         A segunda técnica utiliza um arquivo de registros de alterações efetuadas. Este
arquivo, também chamado arquivo “delta”. É criado por uma aplicação e contém apenas as
alterações efetuadas por esta nos dados operacionais. Quando é possível contar com um
arquivo delta o processo de varredura se torna muito eficiente uma vez que os dados que não
sofreram alterações não serão acessados. O problema é que poucas aplicações geram arquivos
delta.
         A terceira técnica consiste em varrer um arquivo de auditoria ou de log. Basicamente o
arquivo de log possui os mesmos dados de um arquivo delta, todavia, há algumas diferenças
significativas. Uma delas é que por ser o arquivo utilizado para a recuperação dos dados do
banco de dados operacional em uma eventual falha não é interessante que se utilize este
arquivo com outros propósitos. Outra diferença é que os arquivos de log normalmente
possuem uma estrutura interna voltada aos objetivos de um sistema e não estão
completamente preparados para a recuperação de dados por um Data Warehouse.
       A quarta técnica empregada no gerenciamento da quantidade de dados pesquisados
durante a extração para o Data Warehouse consiste em modificar o código da aplicação
operacional. Essa pode ser a pior escolha, sobretudo quando o código da aplicação é antigo ou
complexo.
       A última opção consiste em moldar um arquivo de imagem "anterior" e "posterior".
Segundo esta opção, uma cópia do banco de dados é tirada no momento da extração e quando
for realizada outra extração, outra cópia será tirada. As duas cópias serão comparadas
serialmente entre si para que seja detectada a atividade transcorrida neste período e então
resgatadas às diferenças entre as duas copias.
       Esse método é pesado, complexo e demanda uma quantidade excessiva de recursos.



5.4 – Técnicas para incrementar a performance

       O grande desafio de um sistema de apoio a decisão é que ele possua uma interface
amigável e tempo de resposta satisfatório. Existem algumas técnicas que podem ser aplicadas
no desenvolvimento de um Data Warehouse para incrementar sua performance. Essas
tecnologias podem ser divididas em duas áreas: aquelas que propõem soluções baseadas em
hardware e outras baseadas em software.
       Algumas destas técnicas baseadas em software são amplamente utilizadas no ambiente
operacional e outras são específicas do ambiente de Data Warehouse, algumas técnicas são
citadas a seguir, conforme [DAL99] e [PER99].
       Uma proposta ao nível de hardware seria dividir o trabalho entre vários processadores.
Porém, o sistema gerenciador de banco de dados deve ser capaz de dividir seu processamento
entre esses processadores. Com o processamento paralelo, a percepção de melhora no
desempenho é imediata, mas a tendência, ao longo do tempo, é voltarmos ao mesmo ponto,
devido ao crescimento constante do Data Warehouse, atrelado às grandes mudanças que
ocorrem freqüentemente no mundo dos negócios.
       A distribuição do Data Warehouse, por vezes, é similar à abordagem do
processamento paralelo: dividir a base de dados em subconjuntos de dados e coloca-los em
unidades de processamento separadas. A análise a respeito desse conceito vem novamente ao
encontro de mesma atribuída ao processamento paralelo: dividir o trabalho. Portanto,
podemos chegar à mesma conclusão, em termos de desvantagem, apresentada no
processamento paralelo, ou seja, à medida que o número de dados aumentar, teremos sempre
de buscar maneiras de subdividir o conjunto de dados.
       Data marts são outra forma de distribuir os dados contidos no Data Warehouse. Os
data marts, geralmente, contêm dados específicos de uma determinada área ou departamento.
Dessa forma, podemos dizer que os data marts são “mini” Data Warehouses, armazenados
provavelmente em plataformas diferentes. O processo de particionamento melhora o
desempenho no resgate de informações, fazendo uso da segmentação dos dados em áreas
lógicas diferentes.
       Recursos sofisticados de indexação são a maneira mais eficiente de redução de I/O de
disco, necessária para resgatar um subconjunto de dados. Com técnicas avançadas de
indexação, a seleção de registros por qualquer critério é executada usando-se poucas leituras
do disco. Dessa forma, obtemos, em segundos, seleções complexas em enormes bases de
dados. Existem várias formas de indexação. Há índices nativos da estrutura de banco de dados
relacionais: primários, B-tree (árvore B) e hash/hashing. Há também índices especializados,
independentes da estrutura dos bancos de dados relacionais: invertidos, bitmap, combinados,
R-tree (árvores R) e alguns outros específicos para determinadas aplicações.
       Uma técnica relativa a estrutura do Data Warehouse que pode ser utilizada é a
intercalação de tabelas onde o projetista deve procurar intercalar as tabelas afins em um
mesmo local físico, diminuindo assim a quantidade de E/S (entradas/saídas), tanto em termos
de acesso aos dados, como em termos de acessos aos índices para a localização dos dados. A
melhor estratégia de intercalação de tabelas deve ser defina com base nos tipos de dados e
possíveis consultas que podem ser realizadas.
       Outra técnica importante aplicada especialmente no ambiente de Data Warehouse
consiste na introdução intencional de dados redundantes. A Figura 19 mostra um exemplo no
qual a introdução deliberada de dados redundantes proporciona um excelente retorno. Na
parte superior da Figura 19 o campo – descrição – está normalizado e não apresenta
redundância. Dessa maneira todos os processos que precisam ver a descrição precisam acessar
a tabela básica. Na parte inferior da Figura 19 o campo – descrição – foi intencionalmente
colocado nas diversas tabelas em que ele precisa ser usado. O problema da replicação de
dados é somente o aumento do volume do Data Warehouse, já que praticamente não existe a
preocupação com atualizações neste ambiente.
Figura 19 – Introdução intencional de dados redundantes.


       A terceira técnica que pode ser utilizada para aumentar a velocidade de acesso aos
dados é chamada de "separação de dados" que consiste em transformar uma tabela
normalizada e que apresente probabilidades de acesso muito diferentes em duas tabelas
separadas.
       Para a construção de um Data Warehouse pode ser usada também uma técnica
chamada de “índice criativo”. Um índice criativo é gerado quando os dados passam do
ambiente operacional para o ambiente de Data Warehouse. O índice criativo gera um perfil de
dados de interesse do usuário final, como informações sobre os produtos mais vendidos,
clientes inativos e outras informações que possam antecipar os interesses da gerencia, como
esta antecipação nem sempre é possível é necessário avaliar com cautela sobre quais os dados
em que será aplicada esta técnica.
       Por último deve-se esclarecer que a tentativa de reproduzir a integridade referencial no
Data Warehouse constitui uma abordagem incorreta pois os dados em um Data Warehouse
não são atualizados e representam informações ao longo do tempo, com isso os
relacionamentos não permanecem iguais impossibilitando a criação de relacionamentos.
5.5 - Etapas do Desenvolvimento de um Data Warehouse

       Na verdade, é difícil apontar no momento, uma metodologia consolidada e
amplamente aceita para o desenvolvimento de Data Warehouses. O que se vê na literatura e
nas histórias de sucesso de implementações em empresas, são propostas no sentido de
construir um modelo dimensional a partir do modelo de dados corporativo ou departamental
(base dos bancos de dados operacionais da empresa), de forma incremental. De fato, um Data
Warehouse é construído de uma maneira "heurística", confirmando a estratégia evolucionária
discutida no item anterior.
       De qualquer forma, a metodologia a ser adotada é ainda bastante dependente da
abordagem escolhida, em termos de ambiente, distribuição, etc. A seguir, apresentamos, a
título de exemplo, as etapas sugeridas para um desenvolvimento do tipo estrela.
       Desenvolver um Data Warehouse é uma questão de casar as necessidades dos seus
usuários com a realidade dos dados disponíveis. Abaixo podemos analisar um conjunto de
nove pontos fundamentais no projeto da estrutura de um Data Warehouse. São os seguintes os
chamados pontos de decisão, que constituem definições a serem feitas e correspondem, de
fato, a etapas do projeto:
           •   Os processos, e por conseqüência, a identidade das tabelas de fatos;
           •   A granularidade de cada tabela de fatos;
           •   As dimensões de cada tabela de fatos;
           •   Aos fatos, incluindo fatos pré-calculados;
           •   Os atributos das dimensões;
           •   Como acompanhar mudanças graduais em dimensões;
           •   As agregações, dimensões heterogêneas, minidimensões e outras decisões de
               projeto físico;
           •   Duração histórica do banco de dados;
           •   A urgência com que se dá a extração e carga para o Data Warehouse.
       Recomenda-se que estas definições se façam na ordem acima. Esta metodologia segue
a linha topdown, pois começa identificando os grandes processos da empresa.
       Como exemplo, temos os processos de uma empresa revendedora de produtos: planos
de estoque, ordens de compra, inventário, pedidos de clientes, expedição de pedidos, créditos,
etc. Quando os processos estiverem identificados, cria-se uma ou mais tabelas de fatos a partir
de cada um deles.
Neste ponto é necessário então decidir o a um fato individual naquela tabela (esta é a
granularidade da tabela). Exemplos de granularidade são: uma linha sobre um produto, um
perfil de venda diário do produto, ou um perfil de venda mensal do produto. Após definir a
granularidade da tabela de fatos, o próximo passo é definir as dimensões e suas
granularidades. Neste exemplo, considera-se a tabela de fatos vendas acumuladas do produto.
Uma vez definida a granularidade, as dimensões e suas respectivas granularidades podem ser
identificadas. Assim, as dimensões tempo, produto e vendedor são criadas, além de outras
dimensões descritivas como local-de-expedição, local-derecebimento, modo-de-envio. A
adição destas dimensões descritivas não altera o número de instâncias na tabela de fatos.
        A Figura 20 mostra a tabela de fatos com as dimensões identificadas.
       Cada dimensão pode ser vista como um ponto de entrada para a tabela de fatos. A
escolha das dimensões é o ponto chave no projeto. O passo seguinte consiste em detalhar
todos as medidas que constarão da tabela de fatos e finalmente completar as tabelas de
dimensões. Neste instante, tem-se a estrutura do projeto lógico completa.
       A partir de então, passa-se a trabalhar questões relativas ao projeto físico, avaliando
mudanças graduais em dimensões e discutindo-se a inclusão de agregações, minidimensões e
dimensões heterogêneas.




Figura 20 - A tabela de fatos e suas dimensões.



5.6 – Relacional versus multidimensional

       Bancos de dados relacionais encontram em sua flexibilidade e potencial para consultas
ad-hoc, um de seus pontos fortes. Bancos de dados relacionais são sabidamente mais flexíveis
quando são usados com uma estrutura de dados normalizada. Uma típica consulta OLAP, no
entanto, "atravessa" diversas relações e requer diversas operações de junção para reunir estes
dados. O desempenho dos sistemas de banco de dados relacionais tradicionais é melhor para
consultas baseadas em chaves do que consultas baseadas em conteúdo.
       Para atender os requisitos deste tipo de transações, fornecedores de SGBDs relacionais
têm adicionado funcionalidades a seus produtos. Estas funcionalidades incluem extensões às
estruturas de armazenamento e aos operadores relacionais e esquemas de indexação
especializados. Estas técnicas podem melhorar o desempenho para recuperações por conteúdo
através da pré-junção de tabelas usando índices ou pelo uso de listas de índices totalmente
invertidas.
       A maioria das ferramentas de acesso a Data Warehouses explora a natureza
multidimensional dos dados. Por isso, estruturar os dados em bancos de dados relacionais
tradicionais em esquemas do tipo estrela ou floco de neve tornou-se uma abordagem bastante
comum. Estes esquemas podem usar múltiplas tabelas e ponteiros para simular uma estrutura
multidimensional. Também é possível usar algum outro mecanismo não relacional para
armazenar     algumas   das   agregações   pré-calculadas   enquanto   outras   são   obtidas
dinamicamente. Esta abordagem goza dos benefícios de um mecanismo
relacional, tirando vantagem do cálculo prévio de algumas agregações. Normalmente a tabela
central de fatos é bem grande enquanto as das demais dimensões são bem menores.
       Por sua vez, bancos de dados multidimensionais permitem manipular diretamente
objetos multidimensionais. As dimensões são identificadas ao criar a estrutura do banco, de
forma que adicionar uma nova dimensão pode ser trabalhoso. Alguns bancos
multidimensionais requerem uma completa recarga do banco quando uma reestruturação
ocorre. Portanto, são mais recomendados para ambientes mais estáveis onde os requisitos
sobre os dados não estejam em constante mudança.



5.6.1 - Um ou mais bancos

       Embora se discuta o banco de dados de um Data Warehouse como se fosse um único
repositório de dados, em grande parte dos casos isto não acontece. Na verdade, os dados
podem estar distribuídos por múltiplos bancos de dados, inclusive sob diferentes sistemas de
gerenciamento de banco de dados. Bancos de dados multidimensionais fornecem uma visão
específica dos dados da empresa.
       Cada área pode, no entanto, requerer que a organização dos dados segundo um array
multidimensional seja ditada pela sua visão do negócio, atendendo a suas necessidades. É
muito pouco provável que o mesmo projeto de banco de dados multidimensional atenda
igualmente bem a questões de tomada de decisão das diversas áreas da empresa. Neste caso,
um sistema de banco de dados relacional é usualmente mais adequado para gerenciar um
banco de dados integrado, provendo uma estrutura mais neutra com relação às necessidades
de cada área.
       Uma solução freqüentemente encontrada é a separação do gerenciamento dos dados
entre o Data Warehouse relacional integrado da empresa e os seus data marts satélites
multidimensionais. Esta alternativa introduz a necessidade de uma estratégia de distribuição
de dados que coordene a alimentação de novos dados aos bancos multidimensionais. Uma
solução semelhante é adotada no caso em que o Data Warehouse possui diferentes níveis de
detalhe: a camada atômica, de maior nível de detalhe, é mantida em formato relacional,
enquanto a camada contendo dados resumidos, pode ser mantida em formato
multidimensional.
CAP. 6 – CARREGANDO O DATA WAREHOUSE

       A extração, limpeza, transformação e migração de dados dos sistemas existentes na
empresa para o Data Warehouse constituem tarefas críticas para o seu funcionamento efetivo
e eficiente. Diversas técnicas e abordagens têm sido propostas, algumas bastante genéricas e
outras especialmente voltadas para a manutenção de integridade dos dados num ambiente
caracterizado pela derivação e replicação de informações.
       Os produtos oferecidos no mercado procuram automatizar processos que teriam de ser
feitos manualmente ou utilizando ambientes de programação de mais baixo nível. De fato,
não existe uma ferramenta única capaz de oferecer suporte aos processos de extração,
limpeza, transformação e migração dos dados: diferentes ferramentas especializam-se em
questões específicas.
       O grande desafio por trás da alimentação de dados das fontes para o Data Warehouse
não é técnico, mas gerencial. Muitos dos processos envolvidos - como mapeamento,
integração e avaliação de qualidade - ocorrem de fato durante a fase de análise e projeto do
Data Warehouse. Especialistas afirmam que identificar fontes, definir regras de
transformação e detectar e resolver questões de qualidade e integração consomem cerca de 80
% do tempo de projeto. Infelizmente, não é fácil automatizar estas tarefas. Embora algumas
ferramentas possam ajudar a detectar problemas na qualidade dos dados e gerar programas de
extração, a maioria das informações necessária para desenvolver regras de mapeamento e
transformação existe apenas na cabeça dos analistas e usuários.
       Fatores que certamente influem na estimativa de tempo para estas tarefas são o
número de fontes e a qualidade dos metadados mantidos sobre estas fontes. As regras de
negócio associadas a cada fonte - tais como validação de domínios, regras de derivação e
dependências entre elementos de dados – são outra fonte de preocupações. Se estas regras
tiverem de ser extraídas do código fonte das aplicações, o tempo para mapeamento e
integração pode dobrar.



6.1 – Extração

       As várias alternativas para extração permitem balancear desempenho, restrições de
tempo e de armazenamento. Por exemplo, se a fonte for um banco de dados on-line, pode-se
submeter uma consulta diretamente ao banco para criar os arquivos de extração. O
desempenho das aplicações ligadas às fontes pode cair consideravelmente se transações on-
line e as consultas para extração competirem entre si. Uma solução alternativa é criar uma
cópia corrente dos dados das fontes a partir da qual se fará então a extração. Como
desvantagem desta solução, podemos citar o espaço adicional de disco necessário para
armazenar a cópia.
       Outra alternativa é examinar o ciclo de processamento de algumas transações off-line
que atuem nas fontes. Os programas que criam os arquivos de extração para a carga do Data
Warehouse podem ser incorporados a um ponto apropriado deste esquema de processamento.
       As rotinas de extração devem ser capazes de isolar somente aqueles dados que foram
inseridos e atualizados desde a última extração, este processo é conhecido como refresh. A
melhor política de refresh deve ser avaliada pelo administrador do Data Warehouse, que deve
levar em conta características como as necessidades dos usuários finais, tráfego na rede e
períodos de menor sobrecarga, tanto das origens dos dados quanto do Data Warehouse, deve-
se considerar que os períodos de sobrecarga podem variar para cada origem de dados
[DAL99].



6.2 – Transformação e filtros

       Uma vez que os dados são extraídos e colocados na área de trabalho temporária, estes
devem passar por uma série de tratamentos. O primeiro destes tratamentos refere-se a limpeza
ou filtragem dos dados onde o objetivo é garantir a integridade dos dados através de
programas ou rotinas especiais que tentam identificar anomalias e resolvê-las, deixando os
dados em um estado consistente antes de serem instalados no Data Warehouse. A correção de
erros de digitação, a descoberta de violações de integridade, a substituição de caracteres
desconhecidos, a padronização de abreviações, podem ser exemplos de limpeza de dados.
       O segundo passo é colocar os dados em uma forma homogênea aplicando uma
metodologia de comparação de representações, que inclua os critérios a serem utilizados na
identificação de semelhanças e conflitos de modelagem. Conflitos de modelagem podem ser
divididos em: semânticos e estruturais. Conflitos semânticos são todos aqueles envolvendo o
nome ou palavra associado às estruturas de modelagem, por exemplo, mesmo nome para
diferentes entidades ou diferentes nomes para a mesma entidade. Conflitos estruturais
englobam os conflitos relativos às estruturas de modelagem escolhidas, tanto no nível de
estrutura propriamente dito como no nível de domínios. Os principais tipos de conflitos
estruturais são os conflitos de domínio de atributo que se caracterizam pelo uso de diferentes
tipos de dados para os mesmos campos. Conflitos típicos de domínio de atributo são:
   •   Diferenças de unidades: quando as unidades utilizadas diferem, embora forneçam a
       mesma informação (como distância em metros ou quilômetros);
   •   Diferenças de precisão: quando a precisão escolhida varia de um ambiente para outro
       (como quando o custo do produto é armazenado com duas posições ou com seis
       posições decimais);
   •   Diferenças em códigos ou expressões: quando o código utilizado difere um do outro
       (como no caso de sexo representado por M ou F e por 1 e 2);
   •   Diferenças de granularidade: quando os critérios associados a uma informação,
       embora utilizando uma mesma unidade, são distintos (como quando horas trabalhadas)
       correspondem às horas trabalhadas na semana ou às horas trabalhadas no mês;
   •   Diferenças de abstração: quando a forma de estruturar uma mesma informação segue
       critérios diferentes (como com endereço armazenado em um atributo único, ou
       subdividido em rua e complemento).
       Depois de identificados os conflitos de modelagem, deve-se criar as regras de
mapeamento de representações equivalentes e de conversão para os padrões estabelecidos
pelo Data Warehouse [DAL99].



6.3 - Derivação e Sumarização

       Diferentes alternativas também existem para prover suporte a dados. Uma abordagem
é derivar os dados durante o processo de carga e armazená-los no ambiente relacional
corporativo. Uma alternativa é fazer a derivação quando o servidor de replicação distribui os
dados para os Data Warehouses. Ou então, derivar os dados "on-the-fly" quando o usuário
submeter uma consulta ou lançar uma simulação.
CAP. 7 – EXTRAINDO INFORMAÇÕES DO DATA WAREHOUSE

       Existem várias maneiras de recuperar informações de um Data Warehouse, as formas
de extração mais comuns no mercado hoje são:
           •   Ferramentas de consulta e emissão de relatórios;
           •   EIS (Executive Information Systems);
           •   Ferramentas OLAP;
           •   Ferramentas Data Mining.
       A nova tendência dessas soluções é a integração com o ambiente Web, permitindo
maior agilidade em consultas estáticas e dinâmicas.
Nesta monografia veremos de forma básica e separadamente os conceitos das tecnologias
OLAP e Data Mining. A diferença básica entre ferramentas OLAP e Data Mining está na
maneira como a exploração dos dados é abordada. Com ferramentas OLAP a exploração é
feita na base da verificação, isto é, o analista conhece a questão, elabora uma hipótese e utiliza
a ferramenta para confirmá-la. Com Data Mining, a questão é total ou parcialmente
desconhecida e a ferramenta é utilizada para a busca de conhecimento.



7.1 - Ferramentas OLAP

       OLAP (On-Line Analytical Processing) representa um conjunto de tecnologias
projetadas para suportar análise e consultas ad hoc. Sistemas OLAP ajudam analistas e
executivos a sintetizarem informações sobre a empresa, através de comparações, visões
personalizadas, análise histórica e projeção de dados em vários cenários de "e se...". Sistemas
OLAP são implementados para ambientes multi-usuário, arquitetura cliente-servidor e
oferecem respostas rápidas e consistentes às consultas iterativas executadas pelos analistas,
independente do tamanho e complexidade do banco de dados.
       A característica principal dos sistemas OLAP é permitir uma visão conceitual multi-
dimensional dos dados de uma empresa. A visão multi-dimensional é muito mais útil para os
analistas do que a tradicional visão tabular utilizada nos sistemas de processamento de
transação. Ela é mais natural, fácil e intuitiva, permitindo a visão em diferentes perspectivas
dos negócios da empresa e desta maneira tornando o analista um explorador da informação
[BIS99]. A modelagem dimensional é a técnica utilizada para se ter uma visão multi-
dimensional dos dados.
Nesta técnica os dados são modelados em uma estrutura dimensional conhecida por
cubo. As dimensões do cubo representam os componentes dos negócios da empresa tais como
"cliente", "produto", "fornecedor" e "tempo". A célula resultante da interseção das dimensões
é chamada de medida e geralmente representa dados numéricos tais como "unidades
vendidas", "lucro" e "total de venda". Além dos componentes dimensão e medida outro
importante aspecto do modelo multidimensional é a consolidação dos dados uma vez que para
a tarefa de análise são mais úteis e significativas as agregações (ou sumarização) dos valores
indicativas dos negócios.
       A expressão Decision Cube refere-se a um conjunto de componentes de suporte à
decisão, que podem ser utilizados para cruzar tabelas de um banco de dados, gerando diversas
visões através de planilhas ou gráficos. Envolve o cálculo, quando da carga do Data
Warehouse, de dados que o usuário virá a solicitar, mas que podem ser derivados de outros
dados. Quando o usuário solicita os dados, estes já estão devidamente calculados, agregados
em um Cubo de Decisões [DAL99].
       Além da visão multi-dimensional dos dados da empresa, outras importantes
características dos sistemas OLAP são:
           •   Análise de tendências. A tecnologia OLAP é mais do que uma forma de
               visualizar a história dos dados. Deve, também, ajudar os usuários a tomar
               decisões sobre o futuro, permitindo a construção de cenários ("e se...") a partir
               de suposições e fórmulas aplicadas, pelos analistas, aos dados históricos
               disponíveis;
           •   Busca automática (reach-through) de dados mais detalhados que não estão
               disponíveis no servidor OLAP. Detalhes não são normalmente importantes na
               tarefa de análise, mas quando necessários, o servidor OLAP deve ser capaz de
               buscá-los;
           •   Dimensionalidade genérica;
           •   Operação trans-dimensional. Possibilidade de fazer cálculos e manipulação de
               dados através diferentes dimensões;
           •   Possibilidade de ver os dados de diferentes pontos de vista (slice and dice),
               mediante a rotação (pivoting) do cubo e a navegação (drill-up/drill-down)
               entre os níveis de agregação;
           •   Conjunto de funções de análise e cálculos não triviais com os dados.
Existe também um conjunto de 12 regras que servem para avaliar as ferramentas
OLAP conforme [BIS99]:
1. Visão conceitual multidimensional
2. Transparência
3. Acessibilidade
4. Desempenho consistente de fornecimento de informações
5. Arquitetura cliente/servidor
6. Dimensionalidade genérica
7. Manipulação dinâmica da matriz esparsa
8. Suporte multiusuário
9. Operações irrestritas com dimensões cruzadas
10. Manipulação intuitiva dos dados
11. Relatórios flexíveis
12. Dimensões e níveis de agregação ilimitados
       Uma arquitetura OLAP possui três componentes principais: um modelo de negócios
para análises interativas, implementado numa linguagem gráfica que permita diversas visões e
níveis de detalhes dos dados; um motor OLAP para processar consultas multidimensionais
contra o dado-alvo; e um mecanismo para armazenar os dados a serem analisados. A base de
dados usada define se o pacote é um ROLAP, que interfaceia com um banco de dados
relacional de mercado, ou um MOLAP, que se liga a um servidor OLAP, através de um banco
de dados multidimensional e dedicado [DAL99].



7.1.1 - MOLAP x ROLAP

       Multidimensional OLAP (MOLAP) é uma classe de sistemas que permite a execução
de análises sofisticadas usando como gerenciador de dados um banco de dados
multidimensional. Em um banco de dados MOLAP os dados são mantidos em arranjos e
indexados de maneira a prover uma ótima performance no acesso a qualquer elemento. O
indexamento, a antecipação da maneira como os dados serão acessados e o alto grau de
agregação dos dados fazem com que sistemas MOLAP tenham uma excelente performance.
Além de serem rápidos, outra grande vantagem destes sistemas é o rico e complexo conjunto
de funções de análise que oferecem.
A maneira de se implementar os arranjos de dados pode variar entre fornecedores de
soluções MOLAP. Existem as arquiteturas hiper-cubos e multi-cubos. Na arquitetura hiper-
cubo existe um único cubo onde cada medida é referenciada por todas as outras dimensões.
Por exemplo, um cubo onde a medida "vendas" é referenciada pelas dimensões "produto",
"ano", "mês", "estado" e "cidade". Além da dificuldade em visualizar tal "cubo" (com cinco
dimensões!). Outros problemas desta abordagem são a maior necessidade de espaço em disco
e a existência de um mecanismo para controlar a esparsidade dos dados que ocorre quando
não existe uma medida na interseção das dimensões. Por exemplo, quando um produto não é
vendido em determinado estado. A grande vantagem é a consistência no tempo de resposta
que é independente do número de dimensões envolvidas na consulta.
       Na arquitetura multi-cubos uma medida é referenciada por dimensões selecionadas.
Em um cubo, a medida "vendas" é referenciada pelas dimensões "semestre", "estado" e
"produto" e em outro cubo, a medida "custo" é referenciada pelas dimensões "mês" e
"departamento". Esta arquitetura é escalável e utiliza menos espaço em disco. A performance
é melhor em cada cubo individualmente, no entanto, consultas que requerem acesso a mais de
um cubo podem exigir processamentos complexos para garantir a consistência do tempo de
resposta.
       Sistemas ROLAP fornecem análise multidimensional de dados armazenados em uma
base de dados relacional. Atualmente existem duas maneiras de se fazer este trabalho: fazer
todo o processamento dos dados no servidor da base de dados. O servidor OLAP gera os
comandos SQL em múltiplos passos e as tabelas temporárias necessárias para o
processamento das consultas; ou executar comandos SQL para recuperar os dados, mas fazer
todo o processamento (incluindo joins e agregações) no servidor OLAP.
Além das características básicas de sistemas OLAP, servidores ROLAP devem também:
utilizar metadados para descrever o modelo dos dados e para auxiliar na construção das
consultas. Desta maneira um analista pode executar suas análises utilizando seus próprios
termos; e criar comandos SQL otimizados para os bancos de dados com o qual trabalha.
       A principal vantagem de se adotar uma solução ROLAP reside na utilização de uma
tecnologia estabelecida, de arquitetura aberta e padronizada como é a relacional,
beneficiando-se da diversidade de plataformas, escalabilidade e paralelismo de hardware
(SMP e MPP).
38664419 artigo-data warehouse
38664419 artigo-data warehouse
38664419 artigo-data warehouse
38664419 artigo-data warehouse
38664419 artigo-data warehouse

Más contenido relacionado

La actualidad más candente (20)

Data Warehouse
Data WarehouseData Warehouse
Data Warehouse
 
Dawarehouse e OLAP
Dawarehouse e OLAPDawarehouse e OLAP
Dawarehouse e OLAP
 
OLAP
OLAPOLAP
OLAP
 
OLAP, BI, EIS
OLAP, BI, EISOLAP, BI, EIS
OLAP, BI, EIS
 
Data Mart e Data Warehouse
Data Mart e Data WarehouseData Mart e Data Warehouse
Data Mart e Data Warehouse
 
Data warehouse & Data mining
Data warehouse & Data miningData warehouse & Data mining
Data warehouse & Data mining
 
Data warehouse & data mining
Data warehouse & data miningData warehouse & data mining
Data warehouse & data mining
 
Banco de Dados - Conceitos Básicos
Banco de Dados - Conceitos BásicosBanco de Dados - Conceitos Básicos
Banco de Dados - Conceitos Básicos
 
Data Warehouse - Modelagem
Data Warehouse - ModelagemData Warehouse - Modelagem
Data Warehouse - Modelagem
 
Banco de Dados Conceitos
Banco de Dados ConceitosBanco de Dados Conceitos
Banco de Dados Conceitos
 
Introdução a Bancos de Dados
Introdução a Bancos de DadosIntrodução a Bancos de Dados
Introdução a Bancos de Dados
 
Aula 1 introdução a base de dados
Aula 1   introdução a base de dadosAula 1   introdução a base de dados
Aula 1 introdução a base de dados
 
Modelos de Banco de dados e SGBDS
Modelos de Banco de dados e SGBDSModelos de Banco de dados e SGBDS
Modelos de Banco de dados e SGBDS
 
Curso Gratuito Online Desmistificando BI (Business Intelligence) Open Source ...
Curso Gratuito Online Desmistificando BI (Business Intelligence) Open Source ...Curso Gratuito Online Desmistificando BI (Business Intelligence) Open Source ...
Curso Gratuito Online Desmistificando BI (Business Intelligence) Open Source ...
 
Banco de Dados
Banco de DadosBanco de Dados
Banco de Dados
 
1º trabalho base dados
1º trabalho base dados1º trabalho base dados
1º trabalho base dados
 
BANCO DE DADOS RELACIONAIS
BANCO DE DADOS RELACIONAIS BANCO DE DADOS RELACIONAIS
BANCO DE DADOS RELACIONAIS
 
eduardo teste ubc
eduardo teste ubceduardo teste ubc
eduardo teste ubc
 
Matéria de apoio (Base de dados)
Matéria de apoio  (Base de dados)Matéria de apoio  (Base de dados)
Matéria de apoio (Base de dados)
 
SIG - 4
SIG - 4SIG - 4
SIG - 4
 

Similar a 38664419 artigo-data warehouse

Identificando e corrigindo problemas de performance em banco de dados (2)
Identificando e corrigindo problemas de performance em banco de dados (2)Identificando e corrigindo problemas de performance em banco de dados (2)
Identificando e corrigindo problemas de performance em banco de dados (2)Vinicius Pires
 
Avaliação NOSQL para indexação do Twitter
Avaliação NOSQL para indexação do TwitterAvaliação NOSQL para indexação do Twitter
Avaliação NOSQL para indexação do TwitterCaliel Costa
 
Quadrante de dados
Quadrante de dadosQuadrante de dados
Quadrante de dadosVinny
 
Data mining: Auxiliando as empresas na tomada de decisão
Data mining: Auxiliando as empresas na tomada de decisãoData mining: Auxiliando as empresas na tomada de decisão
Data mining: Auxiliando as empresas na tomada de decisãoAntonioEE256
 
Dissertação google inc act on general strike suzart Attain to cpf 051 812 95...
Dissertação  google inc act on general strike suzart Attain to cpf 051 812 95...Dissertação  google inc act on general strike suzart Attain to cpf 051 812 95...
Dissertação google inc act on general strike suzart Attain to cpf 051 812 95...Sandro Santana
 
Caderno de info(banco de dados).
Caderno de info(banco de dados).Caderno de info(banco de dados).
Caderno de info(banco de dados).Ajudar Pessoas
 
SIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de AtividadeSIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de AtividadeUNIEURO
 
LIVRO PROPRIETÁRIO - MODELAGEM DE DADOS
LIVRO PROPRIETÁRIO - MODELAGEM DE DADOSLIVRO PROPRIETÁRIO - MODELAGEM DE DADOS
LIVRO PROPRIETÁRIO - MODELAGEM DE DADOSOs Fantasmas !
 
Trabalho banco de dados orientado a objetos
Trabalho banco de dados orientado a objetosTrabalho banco de dados orientado a objetos
Trabalho banco de dados orientado a objetoseneck
 
Erp Metodologia Implantacao Alisson Ferreira Adm Uem 2006
Erp Metodologia Implantacao Alisson Ferreira Adm Uem 2006Erp Metodologia Implantacao Alisson Ferreira Adm Uem 2006
Erp Metodologia Implantacao Alisson Ferreira Adm Uem 2006Alisson Gonçalves Ferreira
 
Mineração de Dados: Conceitos e Aplicações
Mineração de Dados: Conceitos e AplicaçõesMineração de Dados: Conceitos e Aplicações
Mineração de Dados: Conceitos e AplicaçõesBruno Alisson
 
Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014
Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014 Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014
Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014 Marcos Vinicius Fidelis
 
Relatorio de estagio tecnico em informatica
Relatorio de estagio tecnico em informaticaRelatorio de estagio tecnico em informatica
Relatorio de estagio tecnico em informaticaLucianaFerreira163
 
Integração de ferramentas de código aberto (java, pentaho e android) e mapas,...
Integração de ferramentas de código aberto (java, pentaho e android) e mapas,...Integração de ferramentas de código aberto (java, pentaho e android) e mapas,...
Integração de ferramentas de código aberto (java, pentaho e android) e mapas,...Caio Moreno
 
Gerenciamento Estratégico de Sistemas
Gerenciamento Estratégico de SistemasGerenciamento Estratégico de Sistemas
Gerenciamento Estratégico de SistemasJosé Passos
 
ESTUDO DE MAPEAMENTO OBJETO-RELACIONAL COM FRAMEWORK HIBERNATE
ESTUDO DE MAPEAMENTO OBJETO-RELACIONAL COM FRAMEWORK HIBERNATEESTUDO DE MAPEAMENTO OBJETO-RELACIONAL COM FRAMEWORK HIBERNATE
ESTUDO DE MAPEAMENTO OBJETO-RELACIONAL COM FRAMEWORK HIBERNATEFernando A. Barbeiro Campos
 

Similar a 38664419 artigo-data warehouse (20)

Identificando e corrigindo problemas de performance em banco de dados (2)
Identificando e corrigindo problemas de performance em banco de dados (2)Identificando e corrigindo problemas de performance em banco de dados (2)
Identificando e corrigindo problemas de performance em banco de dados (2)
 
Avaliação NOSQL para indexação do Twitter
Avaliação NOSQL para indexação do TwitterAvaliação NOSQL para indexação do Twitter
Avaliação NOSQL para indexação do Twitter
 
Quadrante de dados
Quadrante de dadosQuadrante de dados
Quadrante de dados
 
Data mining: Auxiliando as empresas na tomada de decisão
Data mining: Auxiliando as empresas na tomada de decisãoData mining: Auxiliando as empresas na tomada de decisão
Data mining: Auxiliando as empresas na tomada de decisão
 
Dissertação google inc act on general strike suzart Attain to cpf 051 812 95...
Dissertação  google inc act on general strike suzart Attain to cpf 051 812 95...Dissertação  google inc act on general strike suzart Attain to cpf 051 812 95...
Dissertação google inc act on general strike suzart Attain to cpf 051 812 95...
 
Caderno de info(banco de dados).
Caderno de info(banco de dados).Caderno de info(banco de dados).
Caderno de info(banco de dados).
 
PETIC Casa Civil 2009-2010
PETIC Casa Civil 2009-2010PETIC Casa Civil 2009-2010
PETIC Casa Civil 2009-2010
 
Bi ferramentas olap 1
Bi   ferramentas olap 1Bi   ferramentas olap 1
Bi ferramentas olap 1
 
SIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de AtividadeSIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de Atividade
 
LIVRO PROPRIETÁRIO - MODELAGEM DE DADOS
LIVRO PROPRIETÁRIO - MODELAGEM DE DADOSLIVRO PROPRIETÁRIO - MODELAGEM DE DADOS
LIVRO PROPRIETÁRIO - MODELAGEM DE DADOS
 
Trabalho banco de dados orientado a objetos
Trabalho banco de dados orientado a objetosTrabalho banco de dados orientado a objetos
Trabalho banco de dados orientado a objetos
 
Erp Metodologia Implantacao Alisson Ferreira Adm Uem 2006
Erp Metodologia Implantacao Alisson Ferreira Adm Uem 2006Erp Metodologia Implantacao Alisson Ferreira Adm Uem 2006
Erp Metodologia Implantacao Alisson Ferreira Adm Uem 2006
 
Mineração de Dados: Conceitos e Aplicações
Mineração de Dados: Conceitos e AplicaçõesMineração de Dados: Conceitos e Aplicações
Mineração de Dados: Conceitos e Aplicações
 
Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014
Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014 Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014
Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014
 
Relatorio de estagio tecnico em informatica
Relatorio de estagio tecnico em informaticaRelatorio de estagio tecnico em informatica
Relatorio de estagio tecnico em informatica
 
Trabalho Business Intelligence
Trabalho Business IntelligenceTrabalho Business Intelligence
Trabalho Business Intelligence
 
Integração de ferramentas de código aberto (java, pentaho e android) e mapas,...
Integração de ferramentas de código aberto (java, pentaho e android) e mapas,...Integração de ferramentas de código aberto (java, pentaho e android) e mapas,...
Integração de ferramentas de código aberto (java, pentaho e android) e mapas,...
 
Gerenciamento Estratégico de Sistemas
Gerenciamento Estratégico de SistemasGerenciamento Estratégico de Sistemas
Gerenciamento Estratégico de Sistemas
 
ESTUDO DE MAPEAMENTO OBJETO-RELACIONAL COM FRAMEWORK HIBERNATE
ESTUDO DE MAPEAMENTO OBJETO-RELACIONAL COM FRAMEWORK HIBERNATEESTUDO DE MAPEAMENTO OBJETO-RELACIONAL COM FRAMEWORK HIBERNATE
ESTUDO DE MAPEAMENTO OBJETO-RELACIONAL COM FRAMEWORK HIBERNATE
 
Data mesh-pt
Data mesh-ptData mesh-pt
Data mesh-pt
 

38664419 artigo-data warehouse

  • 1. Luis Fernando Panegassi R.A. 0305057 DATA WAREHOUSE Jaguariúna 2006
  • 2. Luis Fernando Panegassi R.A. 0305057 DATA WAREHOUSE Monografia apresentada à disciplina Trabalho de Conclusão de Curso, do Curso de Ciência da Computação da Faculdade de Jaguariúna, sob a orientação do Prof. Odair Jacinto da Silva, como exigência parcial para conclusão do curso de graduação. Jaguariúna 2006
  • 3. Panegassi, Luis Fernando. Data Warehouse. Monografia defendida e aprovada na FAJ em 11 de dezembro de 2006 pela banca examinadora constituída pelos professores: ______________________________________________________________________ Prof. Odair Jacinto da Silva FAJ – Orientador ______________________________________________________________________ Prof. Silvio Petroli Neto FAJ – Prof. Convidado ______________________________________________________________________ Livio FAJ - Convidado
  • 4. DEDICATÓRIA Às minhas filhas Audrey Carolina Panegassi e Adrielly Fernanda Panegassi Pelos momentos compartilhados juntos e pela alegria que me proporcionam. A vida se torna muito mais adorável quando temos “inspiração” para vivê-la.
  • 5. AGRADECIMENTOS Ao Prof. Odair Jacinto da Silva pela orientação dedicada em todas as fases da realização deste trabalho. A todos os professores do curso de Ciência da Computação da Faculdade de Jaguariúna que também contribuíram para o meu crescimento pessoal e profissional.
  • 6. EPÍGRAFE "O valor das coisas não está no tempo em que elas duram, mas na intensidade com que acontecem. Por isso existem momentos inesquecíveis, coisas inexplicáveis e pessoas incomparáveis". (Fernando Pessoa)
  • 7. Lista de Siglas DSS – Decision Support Systems DASD – Direct Access Storage Device EIS – Executive Information Systems E/S – Entradas/Saídas ER – Entidade/Relacionamentos ETL – Extract, Transform and Load IDC – International Data Corporation I/O – Imput/Output ID – Identification KDD – Knowledge Discovery in Databases L4Gs – Linguagens de quarta geração MIS – Management information systems MIT – Massachusetts Institute of Technology MOLAP – Multidimensional On-Line Analytical Processing MPP – Matching Pursuit Projection OLAP – On-Line Analytical Processing OLTP – On-line Transaction Processing PCs – Personal Communications Services ROLAP – Relational On-Line Analytical Processing SGBD – Sistema de gerenciamento de banco de dados SAD – Sistemas de Apoio à Decisão SQL – Structured Query Language SMP – Symmetric Multi-Processing TI – Tecnologia da Informação
  • 8. Lista de Figuras Figura 1 – Os tipos de consulta Figura 2 – Comparação entre Banco de Dados Operacionais e Data Warehouse Figura 3 – Níveis de granularidade Figura 4 – Arquitetura genérica do Data Warehouse Figura 6 – Arquitetura de três camadas. Figura 5 – Arquitetura de duas camadas. Figura 7 – Modelo Estrela Figura 8 – A dimensão do produto normalizada. Figura 9 – Relacional versus Bidimensional Figura 10 – Remoção dos dados puramente operacionais. Figura 11 – Adição de um elemento de tempo. Figura 12 – Introdução de dados derivados Figura 13 – Relacionamento entre tabelas no modelo E-R. Figura 14 – Inclusão de artefatos no data warehouse. Figura 15 – Alteração do nível de granularidade. Figura 16 – União dos dados de diferentes tabelas Figura 17 – Modelo corporativo Figura 18 – Selecionando os dados a serem varridos. Figura 19 – Introdução intencional de dados redundantes. Figura 20 – A tabela de fatos e suas dimensões.
  • 9. INMON, William H.. Como construir o Data warehouse. 2ª ed. New York: Editora Campus, 1997. RESUMO O ambiente de dados para suporte aos processos de gerência e tomada de decisão é fundamentalmente diferente do ambiente convencional de processamento de transações. No coração deste ambiente está a idéia do Data Warehouse, integrando e consolidando dados disponíveis em diferentes acervos para fins de exploração e análise, ampliando o conteúdo informacional destes acervos para atender às expectativas e necessidades de nível estratégico na empresa. Esta monografia tem por objetivo apresentar o estado da arte da tecnologia de Data Warehouse, introduzindo os principais conceitos na área e discutindo as diferenças deste ambiente para os ambientes e ferramentas usuais de gerenciamento e tratamento de informações, alem de mostrar duas formas de extração de seus dados: a OLAP e o Data Mining, cada uma com suas características, podendo ser usadas separadamente ou em conjunto para um melhor resultado. Palavras-chave: tomada de decisão, integrando e consolidando dados, tratamento de informações.
  • 10. SUMÁRIO INTRODUÇÃO........................................................................................................................12 CAP. 1 - EVOLUÇÃO DOS SISTEMAS DE APOIO À DECISÃO ......................................13 1.1 – Histórico ....................................................................................................................13 1.2 – O Ambiente projetado ...............................................................................................14 CAP. 2 – O QUE É DATA WAREHOUSE.............................................................................16 2.1 – Histórico ......................................................................................................................16 2.1.1 – Origem ..................................................................................................................16 2.2 – Definições....................................................................................................................17 2.3 - Características de um Data Warehouse........................................................................17 2.3.1 - Orientado para áreas de interesse ..........................................................................19 2.4 – Integrado......................................................................................................................19 2.5 - Variante no tempo ........................................................................................................19 2.6 - Não volátil ....................................................................................................................20 2.7 – Granularidade ..............................................................................................................20 2.7.1 – Níveis duais de granularidade ..............................................................................21 2.8 – Metadados....................................................................................................................22 CAP. 3 – ARQUITETURA DO DATA WAREHOUSE.........................................................23 3.1 – Arquitetura genérica do Data Warehouse....................................................................23 3.2 – Outras arquiteturas.......................................................................................................25 3.2.1 – Arquitetura de duas camadas................................................................................25 3.2.2 – Arquitetura de três camadas .................................................................................26 CAP. 4 – MODELO DE DADOS DO DATA WAREHOUSE ...............................................28 4.1 - A Questão das Dimensões............................................................................................28 4.2 - Esquemas do tipo Estrela e Floco de Neve ..................................................................29 4.2.1 – Vantagens do modelo estrela................................................................................31 4.2.2 - Bancos de Dados Multidimensionais ....................................................................32 4.3 – Conversão do modelo E-R para o modelo do Data Warehouse ..................................32 4.3.1 - Remoção dos dados puramente operacionais........................................................33 4.3.2 - Adição de um elemento de tempo na estrutura da chave ......................................33 4.3.3 - Introdução de dados derivados..............................................................................34 4.3.4 - Transformação de Relacionamentos entre dados em artefatos dos dados ............34 4.3.5 - Acomodação dos diferentes níveis de granularidade ............................................36 4.3.6 - União dos dados comuns de diferentes tabelas .....................................................36 4.3.7 - Criação de arrays de dados....................................................................................37 4.4 Data Marts ......................................................................................................................38 CAP. 5 – DESENVOLVIMENTO DO DATA WAREHOUSE..............................................39 5.1 - Estratégia Evolucionária ..............................................................................................40 5.2 - Aspectos de Modelagem ..............................................................................................40 5.3 – Técnicas de gerenciamento da quantidade de dados operacionais pesquisados..........41 5.4 – Técnicas para incrementar a performance ...................................................................43 5.5 - Etapas do Desenvolvimento de um Data Warehouse ..................................................46 5.6 – Relacional versus multidimensional............................................................................47 5.6.1 - Um ou mais bancos ...............................................................................................48 CAP. 6 – CARREGANDO O DATA WAREHOUSE ............................................................50 6.1 – Extração .......................................................................................................................50 6.2 – Transformação e filtros................................................................................................51 6.3 - Derivação e Sumarização .............................................................................................52
  • 11. CAP. 7 – EXTRAINDO INFORMAÇÕES DO DATA WAREHOUSE ................................53 7.1 - Ferramentas OLAP.......................................................................................................53 7.1.1 - MOLAP x ROLAP................................................................................................55 7.2 - Ferramentas Data Mining.............................................................................................57 CONCLUSÃO..........................................................................................................................59 BIBLIOGRAFIA ......................................................................................................................61
  • 12. INTRODUÇÃO Hoje em dia uma organização precisa utilizar toda informação disponível para criar e manter vantagem competitiva. Sai na frente à organização que consegue tomar decisões corretas e rápidas. Com esta importante tarefa nas mãos, profissionais tomadores de decisão tais como executivos, gerentes e analistas, exigem dos sistemas de suporte à decisão DSS (Decision Support Systems) mais recursos para análise, front-ends que suportem consultas ad hoc, interfaces gráficas apropriadas, etc. A idéia de Data Warehouse é integrar os dados internos e externos de uma organização em uma estrutura única permitindo uma melhor utilização dos dados pelos analistas, gerentes e executivos. Uma vez obtida a integração, sistemas como OLAP (On-Line Analytical Processing) e Data Mining fornecem mecanismos sofisticados para análise dos dados. Estudar e conhecer a tecnologia de Data Warehouse pode ajudar os empresários a descobrir novas formas de competir em uma economia globalizada, trazendo melhores produtos ou serviços para o mercado, mais rápido do que os concorrentes, sem aumentar o custo do produto ou do serviço. Não existem ainda metodologias formais para implementação de um Data Warehouse, ela deve ser adaptada às características e às expectativas de cada empresa, mas o principal objetivo em todas elas é o de descobrir maneiras diferentes de atuar no mercado e quais as mudanças internas que devem ocorrer para atender as novas realidades. Este trabalho tem como objetivo fazer um estudo dos principais conceitos necessários para o desenvolvimento de um ambiente de Data Warehouse. No capítulo I é apresentada a evolução dos sistemas de apoio à decisão e o motivo do surgimento da necessidade do Data Warehouse. No capítulo II iniciam-se os conceitos sobre o Data Warehouse, mostrando suas características básicas. O capítulo III mostra as arquiteturas disponíveis para construção de Data Warehouses, e no capítulo IV os modelos de dados. O capítulo V mostra alguns detalhes do desenvolvimento propriamente dito do Data Warehouse. O capítulo VI mostra as técnicas para extrair as informações dos sistemas existentes e transforma-las adequadamente para o Data Warehouse. E finalmente no capítulo VII são apresentadas as técnicas para extração e analise dos dados de um Data Warehouse que são: OLAP e Data Mining.
  • 13. CAP. 1 - EVOLUÇÃO DOS SISTEMAS DE APOIO À DECISÃO 1.1 – Histórico A evolução dos sistemas de apoio à decisão pode ser dividida em cinco fases entre 1960 e 1980. No início da década de 1960 o mundo da computação consistia na criação de aplicações individuais que eram executadas sobre arquivos mestres, caracterizadas por programas e relatórios. Aproximadamente em 1965 o crescimento dos arquivos mestres e das fitas magnéticas explodiu, surgindo problemas como: a complexidade de manutenção dos programas; a complexidade do desenvolvimento de novos programas; a quantidade de hardware para manter todos os arquivos mestres e a necessidade de sincronizarem dados a serem atualizados. Por volta de 1970, surgiu a tecnologia DASD (Direct Access Storage Device), substituindo as fitas magnéticas pelo armazenamento em disco. Com o DASD surgiu um novo tipo de software conhecido como SGBD (Sistema de Gerenciamento de Banco de Dados), que tinha o objetivo de tornar o armazenamento e o acesso a dados no DASD mais fáceis para o programador. E com o SGBD surgiu a idéia de um “banco de dados” que foi definido como: uma única fonte de dados para todo o processamento. Aproximadamente em 1975 surgiu o processamento de transações on-line. Com o processamento de transações on-line de alta performance, o computador pôde ser usado para tarefas que antes não eram viáveis como controlar sistemas de reservas, sistemas de caixas bancários, sistemas de controle de produção e outros. Até o início da década de 1980, novas tecnologias, como os PCs (Personal Communications Services) e as L4Gs (Linguagens de Quarta Geração), começaram a aparecer. O usuário final passou a controlar diretamente os sistemas e os dados, descobrindo que era possível utilizar os dados para outros objetivos além de atender ao processamento de transações on-line de alta performance. Foi nesse período também que se tornou viável a construção dos MIS (Management Information Systems), hoje conhecidos como SAD (Sistemas de Apoio à Decisão) eles consistiam em processamento utilizado para direcionar decisões gerenciais [INM97].
  • 14. 1.2 – O Ambiente projetado A arquitetura de desenvolvimento espontâneo não era suficiente para atender as necessidades do futuro das empresas, fazendo-se necessário uma mudança de arquitetura, surgindo o ambiente projetado de Data Warehouse. Neste ambiente há duas espécies de dados – dados primitivos e dados derivados. Há quatro níveis no ambiente projetado – o operacional, a atômico ou Data Warehouse, o departamental e o individual. O nível operacional de dados contém apenas dados primitivos e atende à comunidade de processamento de transações de alta performance. O Data Warehouse contém dados primitivos que não são atualizados e dados derivados. O nível departamental de dados praticamente só contém dados derivados. E o nível individual de dados é onde a maior parte das análises heurísticas é feito [INM97]. A Figura 1 mostra os tipos de consulta para os quais os diferentes níveis de dados podem ser usados. Figura 1 – Os tipos de consulta. Nos tipos de consultas as informações ficam à disposição com as seguintes características: • Dados primitivos: baseados em aplicações, detalhados, podem ser atualizados, exatos em relação ao momento do acesso e são processados repetitivamente.
  • 15. Dados derivados: baseados em assuntos ou negócios, resumidos, ou refinados, não são atualizados, representam valores de momentos já decorridos ou instantâneos e são processados de forma heurística.
  • 16. CAP. 2 – O QUE É DATA WAREHOUSE 2.1 – Histórico O Data Warehouse é um banco de dados contendo dados extraídos do ambiente de produção da empresa, que foram selecionados e depurados, tendo sido otimizados para processamento de consulta e não para processamento de transações. Em geral, um Data Warehouse requer a consolidação de outros recursos de dados além dos armazenados em banco de dados relacionais, incluindo informações provenientes de planilhas eletrônicas, documentos textuais, etc. A função do Data Warehouse é tornar as informações corporativas acessíveis para o seu entendimento, gerenciamento e uso. Como o Data Warehouse está separado dos Bancos de Dados operacionais, as consultas dos usuários não impactam nestes sistemas, que ficam resguardados de alterações indevidas ou perdas de dados. O Data Warehouse não como um software, que pode ser comprado e instalado em todos os computadores da empresa em algumas horas. Na realidade, sua implantação exige a integração de vários produtos e processos. Nos últimos anos o Data Warehouse vem oferecendo às organizações uma maneira flexível e eficiente de obter as informações que os gestores necessitam, nos processos decisórios e de caracteriza como uma função de apoio à decisão. 2.1.1 – Origem Segundo Haisten (1999), a origem do Data Warehouse vem dos estudos do MIT (Massachusetts Institute of Technology) nos anos 70 que focavam o desenvolvimento de uma arquitetura técnica mais eficiente para sistemas de informações. Pela primeira vez foi feita uma distinção entre sistemas operacionais e aplicações analíticas e surgiu o princípio de separar esse dois tipos de processamentos em projetos e armazéns de dados diferentes. Para Ballard & Herreman (1998) e Teresko (1999), o conceito de Data Warehouse surgiu no inicio dos anos 80 quando os sistemas gerenciais de banco de dados (SGBD) emergiram como produtos comerciais com facilidades para a computação de apoio a decisão (SAD). Teresko (1999) comenta que Bill Inmon, observou que estes repositórios de informações poderiam ser organizados em um bem corporativo que ele chamou de Data
  • 17. Warehouse e por causa disso Inmon é considerado o “pai do Data Warehouse”. No inicio, o Data Warehouse consistia de instantâneos, ou subconjuntos dos dados operacionais que eram carregados em banco de dados de apoio a decisão em períodos regulares que costumavam ser semanais ou mensais (Ballard & Herreman, 1998). 2.2 – Definições A definição clássica de Data Warehouse criada por Inmon (1997) é a seguinte: “Data Warehouse é uma coleção de dados orientada por assuntos, integrada, variante no tempo, e não volátil que tem por objetivo dar suporte aos processos de tomada de decisão.” Knowles (1996) utiliza um lógica interessante para dizer como o Data Warehouse é importante para a empresa: “Poder faz dinheiro. Conhecimento é poder. Data Warehouse aumenta o conhecimento. Portanto, Data Warehouse faz dinheiro.”. Gurovitz (1999) cita um estudo do IDC (International Data Corporation) que coloca o Data Warehouse como a melhor chance para a TI (Tecnologia da Informação) mostrar ao que veio gerando ganhos de tempo e dinheiro com informações acessíveis aos executivos quando e como eles quiserem. Segundo Ralph Kimball (1998), uma autoridade nesse assunto, Data Warehouse “é o lugar onde as pessoas podem acessar seus dados.” Já Wang (1998) tem uma definição um pouco mais elaborada quando diz que Data Warehouse “é o processo pelo qual os dados relacionados de vários sistemas operacionais são fundidos para proporcionar uma única e integrada visão de informação de negócios que abrange todas as divisões de empresa.”. 2.3 - Características de um Data Warehouse Herdlein (1996) coloca que construir um Data Warehouse provavelmente envolverá mais recurso humanos e de capital que qualquer outro projeto de TI que a organização já possui. Nessas proporções, as chances de falhas não são pequenas. Muitos projetos de Data Warehouse param por causa de infra-estrutura técnica ineficiente, falta de suporte executivo, inexperiência das equipes de projeto e longo prazo para apresentação de resultados. Conforme Singh (1997), o Data Warehouse, não é simplesmente um produto ou processo, mas uma estratégia que reconhece a necessidade de consolidar os dados
  • 18. armazenados em sistemas de informações dedicados a ajudar os profissionais de negócio a tomarem decisões mais rápidas e efetivas. Para entender melhor o que é um Data Warehouse vamos fazer uma comparação entre ele e os bancos de dados operacionais [DAL99]. Figura 2 – Comparação entre Banco de Dados Operacionais e Data Warehouse. O Data Warehouse é um banco de dados contendo dados extraídos do ambiente de produção da empresa, que foram selecionados e depurados, tendo sido otimizados para processamento de consulta e não para processamento de transações. Em geral, um Data Warehouse requer a consolidação de outros recursos de dados além dos armazenados em banco de dados relacionais, incluindo informações provenientes de planilhas eletrônicas, documentos textuais, etc. É importante considerar, no entanto, que um Data Warehouse não contém apenas dados resumidos, podendo conter também dados primitivos. É desejável prover ao usuário a capacidade de aprofundar se num determinado tópico, investigando níveis de agregação menores ou mesmo o data primitivo, permitindo também a geração de novas agregações ou correlações com outras variáveis. Além do mais, é extremamente difícil prever todos os possíveis dados resumidos que serão necessários:
  • 19. limitar o conteúdo de um Data Warehouse apenas a dados resumidos significa limitar os usuários apenas às consultas e análises que eles puderem antecipar frente a seus requisitos atuais, não deixando qualquer flexibilidade para novas necessidades. 2.3.1 - Orientado para áreas de interesse Refere-se ao fato do Data Warehouse armazenar informações sobre temas específicos importantes para o negócio da empresa. Exemplos típicos de temas são: produtos, atividades, contas, clientes, etc. Em contrapartida, o ambiente operacional é organizado por aplicações funcionais. Por exemplo, em uma organização bancária, estas aplicações incluem empréstimos, investimentos e seguros. A principal área de interesse termina sendo fisicamente implementada como uma série de tabelas relacionadas inseridas no Data Warehouse. Por exemplo: vendas, compras, produção, marketing, clientes e produtos. 2.4 – Integrado Refere-se à consistência de nomes, das unidades das variáveis, etc., no sentido de que os dados foram transformados até um estado uniforme. Por exemplo, considere-se sexo como um elemento de dado. Uma aplicação pode codificar sexo como M/F, outra como 1/0 e uma terceira como H/M. Conforme os dados são trazidos para o Data Warehouse, eles são convertidos para um estado uniforme, ou seja, sexo é codificado apenas de uma forma. Da mesma maneira, se um elemento de dado é medido em centímetros em uma aplicação, em polegadas em outra, ele será convertido para uma representação única ao ser colocado no Data Warehouse. 2.5 - Variante no tempo Refere-se ao fato do dado em um Data Warehouse referir-se a algum momento específico, significando que ele não é atualizável, enquanto que o dado de produção é atualizado de acordo com mudanças de estado do objeto em questão, refletindo, em geral, o estado do objeto no momento do acesso. Em um Data Warehouse, a cada ocorrência de uma mudança, uma nova entrada é criada, para marcar esta mudança.
  • 20. O tratamento de séries temporais apresenta características específicas, que adicionam complexidade ao ambiente do Data Warehouse. Processamentos mensais ou anuais são simples, mas dias e meses oferecem dificuldades pelas variações encontradas no número de dias em um mês ou em um ano, ou ainda no início das semanas dentro de um mês. Além disso, deve-se considerar que não apenas os dados têm uma característica temporal, mas também os metadados, que incluem definições dos itens de dados, rotinas de validação, algoritmos de derivação, etc. Sem a manutenção do histórico dos metadados, as mudanças das regras de negócio que afetam os dados no Data Warehouse são perdidas, invalidando dados históricos. 2.6 - Não volátil Significa que o Data Warehouse permite apenas a carga inicial dos dados e consultas a estes dados. Após serem integrados e transformados, os dados são carregados em bloco para o Data Warehouse, para que estejam disponíveis aos usuários para acesso. No ambiente operacional, ao contrário, os dados são, em geral, atualizados registro a registro, em múltiplas transações. Esta volatilidade requer um trabalho considerável para assegurar integridade e consistência através de atividades de rollback, recuperação de falhas, commits e bloqueios. Um Data Warehouse não requer este grau de controle típico dos sistemas orientados a transações. 2.7 – Granularidade Granularidade diz respeito ao nível de detalhe ou de resumo contido nas unidades de dados existentes no Data Warehouse. Quanto maior o nível de detalhes, menor o nível de granularidade. O nível de granularidade afeta diretamente o volume de dados armazenado no Data Warehouse e ao mesmo tempo o tipo de consulta que pode ser respondida. Quando se tem um nível de granularidade muito alto o espaço em disco e o número de índices necessários se tornam bem menores, porém há uma correspondente diminuição da possibilidade de utilização dos dados para atender a consultas detalhadas [DAL99]. Há, portanto, um bom motivo para a compactação de dados em um Data Warehouse. Quando os dados são compactados ocorre uma economia incomum sobre o total de DASD
  • 21. utilizado, o número de índices necessários e os recursos de processador necessários para o tratamento dos dados. No entanto, há um outro aspecto da compactação de dados que ocorre à medida que o nível de granularidade é elevado. À medida que o nível de granularidade se eleva, há uma correspondente diminuição da possibilidade de utilização dos dados para atender a consultas. Já com um nível mais baixo de granularidade é possível responder a qualquer consulta [INM97]. Devemos lembrar, porém que em um ambiente de Data Warehouse, dificilmente um evento isolado é examinado. É mais comum ocorrer a utilização de uma visão de conjunto dos dados. 2.7.1 – Níveis duais de granularidade O chamado nível duplo de granularidade, ilustrado na Figura 3, se enquadra nos requisitos da maioria das empresas. Na camada de dados levemente resumidos ficam os dados que fluem do armazenamento operacional e são resumidos na forma de campos apropriados para a utilização de analistas e gerentes. Na segunda camada, ou nível de dados históricos, ficam todos os detalhes vindos do ambiente operacional, como há uma verdadeira montanha de dados neste nível, fazem sentido armazenar os dados em um meio alternativo como fitas magnéticas. Com a criação de dois níveis de granularidade no nível detalhado do Data Warehouse, é possível atender a todos os tipos de consultas, pois a maior parte do processamento analítico dirige-se aos dados levemente resumidos que são compactos e de fácil acesso e para ocasiões em que um maior nível de detalhe deve ser investigado existe o nível de dados históricos. O acesso aos dados do nível histórico de granularidade é caro, incômodo e complexo, mas caso haja necessidade de alcançar esse nível de detalhe, lá estará ele. Alto nível de detalhe Baixo nível de detalhe Diário Mensal Baixa granularidade Alta granularidade
  • 22. Figura 3 – Níveis de granularidade. 2.8 – Metadados Os metadados são de grande importância para o processo de controle das operações em um Data Warehouse. Os metadados são dados acerca dos dados constantes no Data Warehouse. Durante todas as fases do projeto de um Data Warehouse, e também após o início de sua operacionalização, metadados devem ser armazenados. Existem no mercado ferramentas próprias para armazenar e gerenciar metadados, dos quais o Sybase Warehouse Control Center e o Prism Warehouse Directory são exemplos. Segundo Inmon (1997), os metadados são informações sobre “o que está aonde” no Data Warehouse. Os aspectos sobre os quais os metadados mantém informações são: • “A estrutura dos dados, segundo a visão do programador; • A estrutura dos dados segundo a visão dos analistas de sistemas de apoio à decisão; • A fonte de dados que alimenta o Data Warehouse; • A transformação sofrida pelos dados no momento de sua migração para o Data Warehouse; • O modelo de dados; • O relacionamento entre o modelo de dados e o Data Warehouse; • O histórico das extrações de dados.”
  • 23. CAP. 3 – ARQUITETURA DO DATA WAREHOUSE Para ser útil o Data Warehouse deve ser capaz de responder a consultas avançadas de maneira rápida, sem deixar de mostrar detalhes relevantes à resposta. Para isso ele deve possuir uma arquitetura que lhe permita coletar, manipular e apresentar os dados de forma eficiente e rápida. Mas construir um Data Warehouse eficiente, que servirá de suporte a decisões para a empresa, exige mais do que simplesmente descarregar ou copiar os dados dos sistemas atuais para um banco de dados maior. Deve-se considerar que os dados provenientes de vários sistemas podem conter redundâncias e diferenças, então antes de passá-los para o Data Warehouse é necessário aplicar filtros sobre eles. O estudo de uma arquitetura permite compreender como o Data Warehouse faz para armazenar, integrar, comunicar, processar e apresentar os dados que os usuários utilizarão em suas decisões. Um Data Warehouse pode variar sua arquitetura conforme o tipo de assunto abordado, pois as necessidades também variam de empresa para empresa. É possível definir uma arquitetura genérica onde praticamente todas as camadas necessárias são apresentadas, conforme a arquitetura genérica vista a seguir, ou arquiteturas que utilizam somente algumas das camadas definidas, como as arquiteturas em duas e três camadas. 3.1 – Arquitetura genérica do Data Warehouse A seguir é descrita uma arquitetura genérica proposta por [DAL99] e ilustrada na Figura 4. Esta descrição genérica procura apenas sistematizar papéis no ambiente de Data Warehouse, permitindo que as diferentes abordagens encontradas no mercado atualmente possam ser adaptadas a ela devesse considerar que esta arquitetura tem o objetivo de representar a funcionalidade de um Data Warehouse sendo que várias camadas propostas podem ser atendidas por um único componente de software. Esta arquitetura é composta pela camada dos dados operacionais e outras fontes de dados que são acessados pela camada de acesso aos dados. As camadas de gerenciamento de processos, transporte e Data Warehouse formam o centro da arquitetura e são elas as responsáveis por manter e distribuir os dados. A camada de acesso à informação é formada por ferramentas que possibilitam os usuários extrair informações do Data Warehouse. Todas as camadas desta arquitetura interagem com o dicionário de dados (metadados) e com o gerenciador de processos:
  • 24. Camadas de bancos de dados operacionais e fontes externas: É composto pelos dados dos sistemas operacionais das empresas e informações provenientes de fontes externas que serão integradas para compor o Data Warehouse; • Camada de acesso à informação: Envolve o hardware e o software utilizado para obtenção de relatórios, planilhas, gráficos e consultas. É nesta camada que os usuários finais interagem com o Data Warehouse, utilizando ferramentas de manipulação, análise e apresentação dos dados, incluindo-se as ferramentas de Data Mining e visualização; • Camada de acesso aos dados: Esta camada faz a ligação entre as ferramentas de acesso à informação e os bancos de dados operacionais. Esta camada se comunica com diferentes sistemas de bancos de dados, sistemas de arquivos e fontes sob diferentes protocolos de comunicação, o que se chama acesso universal de dados; • Camada de metadados (Dicionário de dados): Metadados são as informações que descrevem os dados utilizados pela empresa, isto envolve informações como descrições de registros, comandos de criação de tabelas, diagramas Entidade/Relacionamentos (ER), dados de um dicionário de dados, etc. É necessário que exista uma grande variedade de metadados no ambiente de Data Warehouse para que ele mantenha sua funcionalidade e os usuários não precisem se preocupar onde residem os dados ou a forma com que estão armazenados; • Camada de gerenciamento de processos: É a camada responsável pelo gerenciamento dos processos que contribuem para manter o Data Warehouse atualizado e consistente. Está envolvida com o controle das várias tarefas que devem ser realizadas para construir e manter as informações do dicionário de dados e do Data Warehouse; • Camada de transporte: Esta camada gerencia o transporte de informações pelo ambiente de rede. Inclui a coleta de mensagens e transações e se encarrega da entrega em locais e tempos determinados. Também é usada para isolar aplicações operacionais ou informacionais, do formato real dos dados nas duas extremidades; • Camada do Data Warehouse: É o Data Warehouse propriamente dito, corresponde aos dados utilizados para obter informações. Às vezes o Data Warehouse pode ser simplesmente uma visão lógica ou virtual dos dados, podendo não envolver o armazenamento dos mesmos ou armazenar dados operacionais e externos para facilitar seu acesso e manuseio.
  • 25. Figura 4 – Arquitetura genérica do Data Warehouse. 3.2 – Outras arquiteturas 3.2.1 – Arquitetura de duas camadas Uma opção de arquitetura para o Data Warehouse é utilizar um computador de alta capacidade como servidor. Isto é uma incorporação das aplicações utilizadas pelos usuários (front end) com os componentes do servidor (back end). Aplicações front end construídas com ferramentas cliente/servidor fornecem uma interface gráfica amigável, suportam funções específicas da empresa, possibilitam o acesso transparente aos dados dos sistemas já existentes e escondem a complexidade e a falta de consistência dos bancos de dados atuais além de facilitar a utilização e a visualização dos resultados. Os sistemas operacionais de uma empresa podem estar em uso por 15 ou 20 anos e podem ter altas taxas de redundância. A redundância e a falta de consistência dos dados podem dificultar a administração da empresa e o acesso aos dados e impede o desenvolvimento de novas aplicações front end. Uma das maneiras de tratar com esta situação é partir de um só sistema e construir uma espécie de "sistema guarda-chuva" que tenha facilidade de acesso aos dados do servidor principal.
  • 26. Figura 5 - Arquitetura de duas camadas. A arquitetura ilustrada na Figura 4 pode ser usada para construir um Data Warehouse em duas camadas que consiste de componentes dos clientes (front end) e componentes do servidor (back end). Esta arquitetura é atrativa porque ela utiliza os sistemas existentes bem como os servidores de bancos de dados existentes e requer um investimento mínimo em hardware e software. Entretanto, a arquitetura em duas camadas não é escalonável e não suporta um grande número de usuários simultaneamente. Isto estimula o desenvolvimento de estações clientes muito pesadas, pois muito processamento é alocado para processar nestas estações [DAL99]. 3.2.2 – Arquitetura de três camadas Uma alternativa é utilizar a arquitetura de informação em múltiplas camadas, como mostrado na Figura 5. Esta arquitetura flexível suporta um grande número de serviços integrados, na qual a interface do usuário, as funções de processamento do negócio e as funções de gerenciamento do banco de dados são separadas em processos que podem ser distribuídos através da arquitetura de informação. A arquitetura em três camadas é amplamente utilizada para Data Warehouse. Na terceira camada ficam as fontes de dados. Dados e regras de negócio podem ser compartilhados pela organização, assim como os bancos de dados para o Data Warehouse, ficam armazenados em servidores de alta velocidade na segunda camada. Na primeira camada ficam as aplicações de interface com os usuários que devem ser gráficas e baseadas em rede. No ambiente do Data Warehouse, os servidores de banco de dados e os servidores de aplicações da segunda camada fornecem um acesso eficiente e veloz aos dados compartilhados. Os dados de um Data Warehouse são tipicamente estáticos, por exemplo, não variam com o tempo e devem ser integrados, de natureza histórica e sumarizados ou agregados para que sejam significantes para os analistas de negócios. Como mostrado na Figura 5, dados operacionais e bancos de dados para o Data Warehouse são freqüentemente armazenados em servidores fisicamente separados. Bancos de dados operacionais são otimizados para ter alto desempenho no processamento de transações on-line, em inglês conhecido como On-line Transaction Processing (OLTP). Bancos de dados para Data
  • 27. Warehouse são otimizados para ter alto desempenho em consultas e análises, em inglês conhecido como On-line Analytical Processing (OLAP). Figura 6 – Arquitetura de três camadas. É importante reconhecer que não existe uma arquitetura "correta" para Data Warehouse. Para algumas organizações pode ser atrativo utilizar a arquitetura em duas camadas, por que ela minimiza o custo e a complexidade de construção do Data Warehouse. Para outras que requerem grande performance e escalabilidade, a arquitetura em três camadas pode ser mais apropriada. No planejamento do Data Warehouse, as organizações devem examinar as alternativas disponíveis de arquiteturas e selecionar aquela que satisfaça os seu requisitos estratégicos e organizacionais [DAL99].
  • 28. CAP. 4 – MODELO DE DADOS DO DATA WAREHOUSE O modelo de dados tem um papel fundamental para o desenvolvimento interativo do Data Warehouse. Quando os esforços de desenvolvimentos são baseados em um único modelo de dados sempre que for necessário unir estes esforços os níveis de sobreposição de trabalho e desenvolvimento desconexo serão muito baixos, pois todos os componentes do sistema estarão utilizando a mesma estrutura de dados. Existe um grande número de enfoques sobre modelagem de dados já desenvolvidos por vários autores, a maioria deles pode ser usada para construir um Data Warehouse. Dentre estes modelos apenas o multidimensional será apresentado neste trabalho. 4.1 - A Questão das Dimensões Obter respostas a questões típicas de análise dos negócios de uma empresa geralmente requer a visualização dos dados segundo diferentes perspectivas. Como exemplo, imagine-se uma agência de automóveis que esteja querendo melhorar o desempenho de seu negócio, Para isso, necessita examinar os dados sobre as vendas disponíveis na empresa. Uma avaliação deste tipo requer uma visão histórica do volume de vendas sob múltiplas perspectivas, como por exemplo: volume de vendas por modelo, volume de vendas por cor, volume de vendas por fabricante, volume de vendas por período de tempo. Uma análise do volume de vendas utilizando uma ou mais destas perspectivas, permitiria responder questões do tipo: Qual a tendência em termos de volume de vendas para o mês de dezembro para modelos Volvo Sedan preto? A capacidade de responder a este tipo de questão em tempo hábil é o que permite aos gerentes e altos executivos das empresas formular estratégias efetivas, identificar tendências e melhorar sua habilidade de tomar decisões de negócio. O ambiente tradicional de bancos de dados relacional certamente pode atender a este tipo de consulta. No entanto, usuários finais que necessitam de consultas deste tipo via acesso interativo aos bancos de dados, mostram-se seguidamente frustrados por tempos de resposta ruins e pela falta de flexibilidade oferecida por ferramentas de consulta baseadas no SQL (Structured Query Language). Daí a necessidade de utilizar abordagens específicas para atender a estas consultas. Para compreender melhor os conceitos envolvidos, examinemos em maior detalhe o exemplo acima.
  • 29. Chamaremos de dimensões as diferentes perspectivas envolvidas, no caso, modelo, loja, fabricante, mês. Estas “dimensões” usualmente correspondem a campos não numéricos em um banco de dados. Consideremos também um conjunto de “medidas”, tal como vendas ou despesas com promoção. Estas medidas correspondem geralmente a campos numéricos em um banco de dados. A seguir, avaliam-se agregações destas medidas segundo às diversas dimensões e as armazenamos para acesso futuro. Por exemplo, calcula-se a média de todas as vendas por todos os meses por loja. A forma como estas agregações são armazenadas pode ser vista em termos de dimensões e coordenadas, dando origem ao termo multidimensional. Intuitivamente, cada eixo no espaço multidimensional é um campo/coluna de uma tabela relacional e cada ponto um valor correspondente à interseção das colunas. Assim, o valor para o campo vendas, correspondente a mês igual a maio e loja igual a Iguatemi é um ponto com coordenada [maio, Iguatemi]. Neste caso, mês e loja são duas dimensões e vendas é uma medida. Teoricamente, quaisquer dados podem ser considerados multidimensionais. Entretanto, o termo normalmente se refere a dados representando objetos ou eventos que podem ser descritos, e, portanto, classificados por dois ou mais de seus atributos. Estruturas relacionais podem ser usadas para a representação e o armazenamento de dados multidimensionais. Neste caso, as abordagens encontradas incluem desde a adoção de formas específicas de modelagem (os chamados esquemas estrela e floco de neve) até mecanismos sofisticados de indexação. 4.2 - Esquemas do tipo Estrela e Floco de Neve Em um esquema do tipo estrela ou "star" as instâncias são armazenadas em uma tabela contendo o identificador de instância, valores das dimensões descritivas para cada instância, e valores dos fatos, ou medidas, para aquela instância (tabela de fatos). Além disso, pelo menos uma tabela é usada, para cada dimensão, para armazenar dados sobre a dimensão (tabela de dimensão). No caso mais simples, a tabela de dimensão tem uma linha para cada valor válido da dimensão. Esses valores correspondem a valores encontrados na coluna referente àquela dimensão na tabela de fatos.
  • 30. Este esquema é chamado de estrela, por apresentar a tabela de fatos "dominante" no centro do esquema e as tabelas de dimensões nas extremidades. A tabela de fatos é ligada às demais tabelas por múltiplas junções, enquanto as tabelas de dimensões se ligam apenas à tabela central por uma única junção. A Figura 7 mostra um exemplo de um modelo tipo estrela. Figura 7 – Modelo Estrela. A tabela de fatos é onde as medidas numéricas do fato representado estão armazenadas. Cada uma destas medidas é tomada segundo a interseção de todas as dimensões. No caso do exemplo, uma consulta típica selecionaria fatos da figura FATOSVENDAS a partir de valores fornecidos relativos a cada dimensão. Outro tipo de estrutura bastante comum é o esquema do tipo floco de neve ou "snowflake", que consiste em uma extensão do esquema estrela onde cada uma das "pontas" da estrela passa a ser o centro de outras estrelas. Isto porque cada tabela de dimensão seria normalizada, "quebrando-se" a tabela original ao longo de hierarquias existentes em seus atributos. No caso do exemplo, a dimensão produto possui uma hierarquia definida onde categoria se divide em marca e marca se divide em produtos (Figura 8). Da mesma forma, a dimensão tempo inclui ano que contem mês e mês que contem dia do mês. Cada um destes relacionamentos geraria uma nova tabela em um esquema floco de neve.
  • 31. Figura 8 – A dimensão do produto normalizada. 4.2.1 – Vantagens do modelo estrela • O modelo Estrela tem uma arquitetura padrão e previsível. As ferramentas de consulta e interfaces do usuário podem se valer disso para fazer suas interfaces mais amigáveis e fazer um processamento mais eficiente; • Todas as dimensões do modelo são equivalentes, ou seja, podem ser vistas como pontos de entrada simétricos para a tabela de fatos. As interfaces do usuário são simétricas, as estratégias de consulta são simétricas, e o SQL gerado, baseado no modelo, é simétrico; • O modelo dimensional é totalmente flexível para suportar a inclusão de novos elementos de dados, bem como mudanças que ocorram no projeto. Essa flexibilidade se expressa de várias formas, dentre as quais temos: • Todas as tabelas de fato e dimensões podem ser alteradas simplesmente acrescentando novas colunas a tabelas; • Nenhuma ferramenta de consulta ou relatório precisa ser alterada de forma a acomodar as mudanças; • Todas as aplicações que existiam antes das mudanças continuam rodando sem problemas; • Existe um conjunto de abordagens padrões para tratamento de situações comuns no mundo dos negócios. Cada uma destas tem um conjunto bem definido de alternativas que podem então ser especificamente programadas em geradores de relatórios, ferramentas de consulta e outras interfaces do usuário. Dentre estas situações temos: • Mudanças lentas das dimensões: ocorre quando uma determinada dimensão evolui de forma lenta e assíncrona; • Produtos heterogêneos: quando um negócio, tal como um banco, precisa controlar diferentes linhas de negócio juntas, dentro de um conjunto comum de
  • 32. atributos e fatos, mas ao mesmo tempo esta precisa descrever e medir as linhas individuais de negócio usando medidas incompatíveis; • Outra vantagem é o fato de um número cada vez maior de utilitários administrativos e processo de software serem capazes de gerenciar e usar agregados, que são de suma importância para a boa performance de respostas em um Data Warehouse [DAL99]. 4.2.2 - Bancos de Dados Multidimensionais Embora seja viável utilizar estruturas relacionais na representação de dados multidimensionais, a solução não é ideal. Na Figura 9, é fácil verificar como uma matriz bidimensional representa mais claramente os dados armazenados na forma relacional tradicional. Na matriz, os valores de vendas estão localizados nas interseções dos eixos X e Y da matriz 3x3. Cada eixo corresponde a uma dimensão, e cada elemento dentro de uma dimensão corresponde a uma posição. Um array agrupa informações semelhantes em colunas e linhas. Figura 9 – Relacional versus Bidimensional. Além disso, na representação multidimensional, totais consolidados são facilmente obtidos e armazenados, bastando simplesmente adicionar totais de colunas e fileiras. 4.3 – Conversão do modelo E-R para o modelo do Data Warehouse Para tal, W. H. Inmon fornece então alguns passos que podem ser seguidos, não se esquecendo de que o fundamental é que as decisões de transformação devem ser tomadas levando-se em consideração os requisitos específicos da empresa. Os passos básicos são:
  • 33. 4.3.1 - Remoção dos dados puramente operacionais A primeira ação consiste em remover os dados que são usados apenas no ambiente operacional, como vemos no exemplo da Figura 10. Neste, atributos tais como mensagem, descrição e status são retirados, pois é muito pouco provável que estes sejam utilizados no processo de tomada de decisão. Neste momento, pode ser que se pense em manter todos os atributos, pois talvez algum destes seja necessário para alguma decisão específica. Entretanto, deve-se levar em conta o custo para gerenciar grandes volumes de dados [DAL99]. Figura 10 – Remoção dos dados puramente operacionais. 4.3.2 - Adição de um elemento de tempo na estrutura da chave A segunda modificação a ser feita no modelo corporativo é adicionar um elemento de tempo a chave das tabelas, se estas já não o tiverem. No exemplo da Figura 11, o campo Data Snapshot foi adicionado como parte da chave. Enquanto no modelo corporativo a chave é apenas a identificação do consumidor, no modelo do Data Warehouse a data do instantâneo deve fazer parte da chave, já que com o passar do tempo os dados do consumidor podem se alterar. Esta técnica é apenas uma forma de tirar instantâneos dos dados. Outra forma de fazê-lo é adicionar dois campos do tipo data, um marcando o início e outro o fim de um determinado intervalo de tempo. Esta técnica é melhor por representar faixas contínuas de tempo ao invés de pontos ou datas específicas [DAL99].
  • 34. Figura 11 – Adição de um elemento de tempo. 4.3.3 - Introdução de dados derivados O próximo passo é adicionar dados derivados ao modelo, como mostrado na Figura 12, já que por regra geral estes não existem no modelo corporativo. Devem ser adicionados os dados derivados que serão usados habitualmente de forma que estes sejam calculados apenas uma vez. Dessa forma, haverá uma redução no processamento que deve ser feito para acessar os dados derivados ou sumarizados. Outra razão para o armazenamento de dados derivados é que uma vez calculados e armazenados, a integridade destes aumenta, uma vez que se torna impossível a utilização de diferentes algoritmos para o cálculo destes derivados [DAL99]. Figura 12 – Introdução de dados derivados. 4.3.4 - Transformação de Relacionamentos entre dados em artefatos dos dados Os relacionamentos encontrados nas modelagens de dados clássicas assumem que há um e somente um valor de negócio no relacionamento. Levando-se em consideração que nos sistemas operacionais o dado estar integro no momento da transação, esta abordagem é correta. Entretanto, o Data Warehouse por sua característica de armazenar dados históricos, tem muitos valores para um dado relacionamento entre duas tabelas. Dessa forma a melhor
  • 35. maneira de representar o relacionamento entre duas tabelas no Data Warehouse é através da criação de artefatos. Um artefato de um relacionamento é somente a parte do relacionamento que é óbvia e tangível no momento do instantâneo. Em outras palavras, quando o instantâneo é feito os dados associados com o relacionamento que são úteis e óbvios serão colocados no Data Warehouse. O artefato pode incluir chaves estrangeiras e outros dados relevantes, tais como colunas de tabelas associadas, ou este pode incluir somente os dados relevantes, sem incluir as chaves estrangeiras. Como exemplo, consideremos as tabelas e o relacionamento entre estas na Figura 13. Nesta existe um relacionamento entre produto e fornecedor, onde cada produto tem um fornecedor principal. Se fossemos fazer então um instantâneo deste relacionamento, teríamos que considerar a informação do fornecedor principal que está relacionado ao produto. Além disso, outras informações de artefato relacionadas com o fornecedor deveriam então ser capturadas. A tabela de produtos no modelo do Data Warehouse ficaria então como a mostrada na Figura 14 [DAL99]. Figura 13 – Relacionamento entre tabelas no modelo E-R. Figura 14 – Inclusão de artefatos no Data Warehouse.
  • 36. 4.3.5 - Acomodação dos diferentes níveis de granularidade Dependendo do caso, o nível de granularidade do sistema transacional pode ser o mesmo do Data Warehouse ou não. Quando o nível de granularidade se altera, o modelo do Data Warehouse deve representar esta mudança, como no exemplo da Figura 15. No exemplo, o modelo de dados corporativo mostra dados da atividade de envio de um determinado produto que são armazenadas toda vez que uma entrega é feita. Quando este é passado para o Data Warehouse, duas agregações são feitas, alterando então a granularidade. Na primeira, o total de entregas é agregado mensalmente, fazendo com que a granularidade seja o mês, já na segunda, existe uma agregação das entregas feitas por mês e local de origem, fazendo então com que a granularidade seja o mês associado ao fornecedor [DAL99]. Figura 15 – Alteração do nível de granularidade. 4.3.6 - União dos dados comuns de diferentes tabelas Nesta fase, deve-se considerar a possibilidade de combinar duas ou mais tabelas do modelo corporativo em uma única tabela do modelo do Data Warehouse. Para que esta junção possa ser feita, as seguintes condições devem ser verdadeiras: • As tabelas compartilham uma chave comum (ou chave parcial); • Os dados das diferentes tabelas geralmente são usados juntos; • Padrão de inserção nas tabelas é o mesmo.
  • 37. Como exemplo, consideremos a Figura 16, onde temos as tabelas NOTAS e ITENS DAS NOTAS. Quando estas são colocadas no modelo do Data Warehouse, estas vão para uma mesma tabela. Dessa forma, a junção entre estas tabelas passa a não ser mais necessária quando uma consulta for feita. Neste caso, podemos ver que as três condições são atendidas: as tabelas compartilham parte da chave, ID da Nota; estas duas tabelas geralmente são usadas juntas; e o padrão de inserção é o mesmo, ou seja, sempre que uma nota é inserida seus itens também o são [DAL99]. Figura 16 – União dos dados de diferentes tabelas. 4.3.7 - Criação de arrays de dados Os dados no modelo corporativo geralmente estão normalizados, onde a existência de grupos repetitivos não é permitida. Entretanto, em algumas situações no ambiente de Data Warehouse pode haver grupos repetitivos de dados. As condições para existência destes são: • Quando o número de ocorrências do dado é previsível; • Quando a ocorrência do dado é relativamente pequena (em termos de tamanho físico); • Quando as ocorrências do dado geralmente são usadas juntas; • Quando o padrão de inserção e remoção dos dados é estável;
  • 38. A Figura 17 mostra uma tabela no modelo corporativo com as previsões de gasto mensais. Quando esta é colocada no modelo do Data Warehouse, os dados são armazenados de forma que cada mês do ano é uma ocorrência no array [DAL99]. Figura 17 - Modelo corporativo. 4.4 Data Marts Da mesma forma que o Data Warehouse, o Data Mart ainda não possui uma definição universalmente aceita e também esta em fase de aperfeiçoamento. Os Data Marts são subconjuntos de dados, dentro de um Data Warehouse, projetados para dar suporte a negócios de unidade organizacionais especificas (NIMER, 1998). Segundo o autor, os Data Marts são muito interessantes para resolver certos problemas, mas não são necessariamente substitutos de um projeto de Data Warehouse. Um Data Mart não deve ser um pequeno Data Warehouse, com a finalidade de ser rápido ou possuir dados ainda não suportados para o Data Warehouse (KIMBALL, 1997). Os projetos de Data Marts se justificam em poucos casos, basicamente naqueles onde a alta gerência ainda não esta convencida quanto a viabilidade e vantagens que a tecnologia do Data Warehouse pode prover as organizações. Neste caso, os Data Marts são viáveis, por apresentarem resultados mais rápidos, demoram entre 4 a 12 meses para serem implementados e, em conseqüência, começam a dar resultados mais rápidos. Os Data Warehouses têm prazos que variam entre 1 a 5 anos para implementação completa.
  • 39. CAP. 5 – DESENVOLVIMENTO DO DATA WAREHOUSE O sucesso do desenvolvimento de um Data Warehouse depende fundamentalmente de uma escolha correta da estratégia a ser adotada, de forma que seja adequada às características e necessidades específicas do ambiente onde será implementado. Existe uma variedade de abordagens para o desenvolvimento de Data Warehouses, devendo-se fazer uma escolha fundamentada em pelo menos três dimensões: escopo do Data Warehouse (departamental, empresarial, etc.), grau de redundância de dados, tipo de usuário alvo. O escopo de um Data Warehouse pode ser tão amplo quanto aquele que inclui todo o conjunto de informações de uma empresa ou tão restrito quanto um Data Warehouse pessoal de um único gerente. Quanto maior o escopo, mais valor o Data Warehouse tem para a empresa e mais cara e trabalhosa sua criação e manutenção. Por isso, muitas empresas tendem a começar com um ambiente departamental e só após obter um retorno de seus usuários expandir seu escopo. Quanto à redundância de dados, há essencialmente três níveis de redundância: o Data Warehouse virtual, o Data Warehouse centralizado e o Data Warehouse distribuído. • O Data Warehouse virtual consiste em simplesmente prover os usuários finais com facilidades adequadas para extração das informações diretamente dos bancos de produção, não havendo assim redundância, mas podendo sobrecarregar o ambiente operacional. • O Data Warehouse central constitui-se em um único banco de dados físico contendo todos os dados para uma área funcional específica, um departamento ou uma empresa, sendo usados onde existe uma necessidade comum de informações. Um Data Warehouse central normalmente contém dados oriundos de diversos bancos operacionais, devendo ser carregado e mantido em intervalos regulares. • O Data Warehouse distribuído, como o nome indica, possui seus componentes distribuídos por diferentes bancos de dados físicos, normalmente possuindo uma grau de redundância alto e por conseqüência, procedimentos mais complexos de carga e manutenção. Os padrões de uso de um Data Warehouse também constituem um fator importante na escolha de alternativas para o ambiente. Relatórios e consultas pré-estruturadas podem satisfazer o usuário final,
  • 40. e geram pouca demanda sobre o SGBD e sobre o ambiente servidor. Análises complexas, por sua vez, típicas de ambientes de suporte à decisão, exigem mais de todo o ambiente. Ambientes dinâmicos, com necessidades em constante mudança, são mais bem atendidos por uma arquitetura simples e de fácil alteração, ao invés de uma estrutura mais complexa que necessite de reconstrução a cada mudança. A freqüência da necessidade de atualização também é determinante: grandes volumes de dados que são atualizados em intervalos regulares favorecem uma arquitetura centralizada. 5.1 - Estratégia Evolucionária Data Warehouses, em geral, são projetados e carregados passo a passo, seguindo, portanto uma abordagem evolucionária. Os custos de uma implementação "por inteiro", em termos de recursos consumidos e impactos no ambiente operacional da empresa justificam esta estratégia. Muitas empresas iniciam o processo a partir de uma área específica da empresa, que normalmente é uma área carente de informação e cujo trabalho seja relevante para os negócios da empresa, criando os chamados Data Marts (um Data Warehouse departamental), para depois ir crescendo aos poucos, seguindo uma estratégia "botton-up" ou assunto-por- assunto. Outra alternativa é selecionar um grupo de usuários, prover ferramentas adequadas, construir um protótipo do Data Warehouse, deixando que os usuários experimentem com pequenas amostras de dados. Somente após a concordância do grupo quanto aos requisitos e funcionamento, é que o Data Warehouse será de fato carregado com dados dos sistemas operacionais na empresa e dados externos. Data marts também podem ser criados como subconjunto de um Data Warehouse maior, em busca de autonomia, melhor desempenho e simplicidade de compreensão. 5.2 - Aspectos de Modelagem A especificação de requisitos do ambiente de suporte à decisão associado a um Data Warehouse é fundamentalmente diferente da especificação de requisitos dos sistemas que sustentam os processos usuais do ambiente operacional de uma empresa.
  • 41. Os requisitos dos sistemas do ambiente operacional são claramente identificáveis a partir das funções a serem executadas pelo sistema. Requisitos de sistemas de suporte à decisão são, por sua vez, indeterminados. O objetivo por trás de um Data Warehouse é prover dados com qualidade; os requisitos dependem das necessidades de informação individuais de seus usuários. Ao mesmo tempo, os requisitos dos sistemas do ambiente operacional são relativamente estáveis ao longo do tempo, enquanto que os dos sistemas de suporte à decisão são instáveis: dependem das variações das necessidades de informações daqueles responsáveis pelas tomadas de decisões dentro da empresa. No entanto, embora as necessidades por informações específicas mudem com freqüência, os dados associados não mudam. Imaginando-se que os processos de negócio de uma empresa permaneçam relativamente constantes, existe apenas um número finito de objetos e eventos com as quais uma organização está envolvida. Por esta razão, um modelo de dados é uma base sólida para identificar requisitos para um Data Warehouse. De qualquer forma, é um erro pensar que técnicas de projeto que servem para sistemas convencionais serão adequadas para a construção de um Data Warehouse. Os requisitos para um Data Warehouse não podem ser conhecidos até que ele esteja parcialmente carregado e já em uso. Outra questão interessante é a adequação do modelo Entidade-Relacionamento ao tipo de transação de sistemas OLTP (On-line Transaction Processing). O principal objetivo da modelagem, neste caso, é eliminar ao máximo, a redundância, de tal forma que uma transação que promova mudanças no estado do banco de dados, atue o mais pontualmente possível. Com isso, nas metodologias de projeto usuais, os dados são "fragmentados" por diversas tabelas, o que traz uma considerável complexidade à formulação de uma consulta por um usuário final. Por isso, esta abordagem não parece ser a mais adequada para o projeto de um Data Warehouse, onde estruturas mais simples, com menor grau de normalização devem ser buscadas. 5.3 – Técnicas de gerenciamento da quantidade de dados operacionais pesquisados
  • 42. Existem algumas técnicas que podem ser usadas para limitar a quantidade de dados pesquisados, conforme demonstrado na Figura 18, as técnicas expostas a seguir devem ser analisadas e deve-se escolher a que melhor represente as necessidades da empresa. [DAL99]. Figura 18 – Selecionando os dados a serem varridos. A primeira técnica consiste em pesquisar dados que apresentem marcas de tempo. Para isso é necessário que as aplicações registrem o momento da última alteração ou atualização em um registro para que ao ser executada a varredura para o Data Warehouse só sejam examinados os registros que tenham a data de atualização igual ou maior do que a data da última pesquisa. A segunda técnica utiliza um arquivo de registros de alterações efetuadas. Este arquivo, também chamado arquivo “delta”. É criado por uma aplicação e contém apenas as alterações efetuadas por esta nos dados operacionais. Quando é possível contar com um arquivo delta o processo de varredura se torna muito eficiente uma vez que os dados que não sofreram alterações não serão acessados. O problema é que poucas aplicações geram arquivos delta. A terceira técnica consiste em varrer um arquivo de auditoria ou de log. Basicamente o arquivo de log possui os mesmos dados de um arquivo delta, todavia, há algumas diferenças significativas. Uma delas é que por ser o arquivo utilizado para a recuperação dos dados do
  • 43. banco de dados operacional em uma eventual falha não é interessante que se utilize este arquivo com outros propósitos. Outra diferença é que os arquivos de log normalmente possuem uma estrutura interna voltada aos objetivos de um sistema e não estão completamente preparados para a recuperação de dados por um Data Warehouse. A quarta técnica empregada no gerenciamento da quantidade de dados pesquisados durante a extração para o Data Warehouse consiste em modificar o código da aplicação operacional. Essa pode ser a pior escolha, sobretudo quando o código da aplicação é antigo ou complexo. A última opção consiste em moldar um arquivo de imagem "anterior" e "posterior". Segundo esta opção, uma cópia do banco de dados é tirada no momento da extração e quando for realizada outra extração, outra cópia será tirada. As duas cópias serão comparadas serialmente entre si para que seja detectada a atividade transcorrida neste período e então resgatadas às diferenças entre as duas copias. Esse método é pesado, complexo e demanda uma quantidade excessiva de recursos. 5.4 – Técnicas para incrementar a performance O grande desafio de um sistema de apoio a decisão é que ele possua uma interface amigável e tempo de resposta satisfatório. Existem algumas técnicas que podem ser aplicadas no desenvolvimento de um Data Warehouse para incrementar sua performance. Essas tecnologias podem ser divididas em duas áreas: aquelas que propõem soluções baseadas em hardware e outras baseadas em software. Algumas destas técnicas baseadas em software são amplamente utilizadas no ambiente operacional e outras são específicas do ambiente de Data Warehouse, algumas técnicas são citadas a seguir, conforme [DAL99] e [PER99]. Uma proposta ao nível de hardware seria dividir o trabalho entre vários processadores. Porém, o sistema gerenciador de banco de dados deve ser capaz de dividir seu processamento entre esses processadores. Com o processamento paralelo, a percepção de melhora no desempenho é imediata, mas a tendência, ao longo do tempo, é voltarmos ao mesmo ponto, devido ao crescimento constante do Data Warehouse, atrelado às grandes mudanças que ocorrem freqüentemente no mundo dos negócios. A distribuição do Data Warehouse, por vezes, é similar à abordagem do processamento paralelo: dividir a base de dados em subconjuntos de dados e coloca-los em
  • 44. unidades de processamento separadas. A análise a respeito desse conceito vem novamente ao encontro de mesma atribuída ao processamento paralelo: dividir o trabalho. Portanto, podemos chegar à mesma conclusão, em termos de desvantagem, apresentada no processamento paralelo, ou seja, à medida que o número de dados aumentar, teremos sempre de buscar maneiras de subdividir o conjunto de dados. Data marts são outra forma de distribuir os dados contidos no Data Warehouse. Os data marts, geralmente, contêm dados específicos de uma determinada área ou departamento. Dessa forma, podemos dizer que os data marts são “mini” Data Warehouses, armazenados provavelmente em plataformas diferentes. O processo de particionamento melhora o desempenho no resgate de informações, fazendo uso da segmentação dos dados em áreas lógicas diferentes. Recursos sofisticados de indexação são a maneira mais eficiente de redução de I/O de disco, necessária para resgatar um subconjunto de dados. Com técnicas avançadas de indexação, a seleção de registros por qualquer critério é executada usando-se poucas leituras do disco. Dessa forma, obtemos, em segundos, seleções complexas em enormes bases de dados. Existem várias formas de indexação. Há índices nativos da estrutura de banco de dados relacionais: primários, B-tree (árvore B) e hash/hashing. Há também índices especializados, independentes da estrutura dos bancos de dados relacionais: invertidos, bitmap, combinados, R-tree (árvores R) e alguns outros específicos para determinadas aplicações. Uma técnica relativa a estrutura do Data Warehouse que pode ser utilizada é a intercalação de tabelas onde o projetista deve procurar intercalar as tabelas afins em um mesmo local físico, diminuindo assim a quantidade de E/S (entradas/saídas), tanto em termos de acesso aos dados, como em termos de acessos aos índices para a localização dos dados. A melhor estratégia de intercalação de tabelas deve ser defina com base nos tipos de dados e possíveis consultas que podem ser realizadas. Outra técnica importante aplicada especialmente no ambiente de Data Warehouse consiste na introdução intencional de dados redundantes. A Figura 19 mostra um exemplo no qual a introdução deliberada de dados redundantes proporciona um excelente retorno. Na parte superior da Figura 19 o campo – descrição – está normalizado e não apresenta redundância. Dessa maneira todos os processos que precisam ver a descrição precisam acessar a tabela básica. Na parte inferior da Figura 19 o campo – descrição – foi intencionalmente colocado nas diversas tabelas em que ele precisa ser usado. O problema da replicação de dados é somente o aumento do volume do Data Warehouse, já que praticamente não existe a preocupação com atualizações neste ambiente.
  • 45. Figura 19 – Introdução intencional de dados redundantes. A terceira técnica que pode ser utilizada para aumentar a velocidade de acesso aos dados é chamada de "separação de dados" que consiste em transformar uma tabela normalizada e que apresente probabilidades de acesso muito diferentes em duas tabelas separadas. Para a construção de um Data Warehouse pode ser usada também uma técnica chamada de “índice criativo”. Um índice criativo é gerado quando os dados passam do ambiente operacional para o ambiente de Data Warehouse. O índice criativo gera um perfil de dados de interesse do usuário final, como informações sobre os produtos mais vendidos, clientes inativos e outras informações que possam antecipar os interesses da gerencia, como esta antecipação nem sempre é possível é necessário avaliar com cautela sobre quais os dados em que será aplicada esta técnica. Por último deve-se esclarecer que a tentativa de reproduzir a integridade referencial no Data Warehouse constitui uma abordagem incorreta pois os dados em um Data Warehouse não são atualizados e representam informações ao longo do tempo, com isso os relacionamentos não permanecem iguais impossibilitando a criação de relacionamentos.
  • 46. 5.5 - Etapas do Desenvolvimento de um Data Warehouse Na verdade, é difícil apontar no momento, uma metodologia consolidada e amplamente aceita para o desenvolvimento de Data Warehouses. O que se vê na literatura e nas histórias de sucesso de implementações em empresas, são propostas no sentido de construir um modelo dimensional a partir do modelo de dados corporativo ou departamental (base dos bancos de dados operacionais da empresa), de forma incremental. De fato, um Data Warehouse é construído de uma maneira "heurística", confirmando a estratégia evolucionária discutida no item anterior. De qualquer forma, a metodologia a ser adotada é ainda bastante dependente da abordagem escolhida, em termos de ambiente, distribuição, etc. A seguir, apresentamos, a título de exemplo, as etapas sugeridas para um desenvolvimento do tipo estrela. Desenvolver um Data Warehouse é uma questão de casar as necessidades dos seus usuários com a realidade dos dados disponíveis. Abaixo podemos analisar um conjunto de nove pontos fundamentais no projeto da estrutura de um Data Warehouse. São os seguintes os chamados pontos de decisão, que constituem definições a serem feitas e correspondem, de fato, a etapas do projeto: • Os processos, e por conseqüência, a identidade das tabelas de fatos; • A granularidade de cada tabela de fatos; • As dimensões de cada tabela de fatos; • Aos fatos, incluindo fatos pré-calculados; • Os atributos das dimensões; • Como acompanhar mudanças graduais em dimensões; • As agregações, dimensões heterogêneas, minidimensões e outras decisões de projeto físico; • Duração histórica do banco de dados; • A urgência com que se dá a extração e carga para o Data Warehouse. Recomenda-se que estas definições se façam na ordem acima. Esta metodologia segue a linha topdown, pois começa identificando os grandes processos da empresa. Como exemplo, temos os processos de uma empresa revendedora de produtos: planos de estoque, ordens de compra, inventário, pedidos de clientes, expedição de pedidos, créditos, etc. Quando os processos estiverem identificados, cria-se uma ou mais tabelas de fatos a partir de cada um deles.
  • 47. Neste ponto é necessário então decidir o a um fato individual naquela tabela (esta é a granularidade da tabela). Exemplos de granularidade são: uma linha sobre um produto, um perfil de venda diário do produto, ou um perfil de venda mensal do produto. Após definir a granularidade da tabela de fatos, o próximo passo é definir as dimensões e suas granularidades. Neste exemplo, considera-se a tabela de fatos vendas acumuladas do produto. Uma vez definida a granularidade, as dimensões e suas respectivas granularidades podem ser identificadas. Assim, as dimensões tempo, produto e vendedor são criadas, além de outras dimensões descritivas como local-de-expedição, local-derecebimento, modo-de-envio. A adição destas dimensões descritivas não altera o número de instâncias na tabela de fatos. A Figura 20 mostra a tabela de fatos com as dimensões identificadas. Cada dimensão pode ser vista como um ponto de entrada para a tabela de fatos. A escolha das dimensões é o ponto chave no projeto. O passo seguinte consiste em detalhar todos as medidas que constarão da tabela de fatos e finalmente completar as tabelas de dimensões. Neste instante, tem-se a estrutura do projeto lógico completa. A partir de então, passa-se a trabalhar questões relativas ao projeto físico, avaliando mudanças graduais em dimensões e discutindo-se a inclusão de agregações, minidimensões e dimensões heterogêneas. Figura 20 - A tabela de fatos e suas dimensões. 5.6 – Relacional versus multidimensional Bancos de dados relacionais encontram em sua flexibilidade e potencial para consultas ad-hoc, um de seus pontos fortes. Bancos de dados relacionais são sabidamente mais flexíveis quando são usados com uma estrutura de dados normalizada. Uma típica consulta OLAP, no entanto, "atravessa" diversas relações e requer diversas operações de junção para reunir estes
  • 48. dados. O desempenho dos sistemas de banco de dados relacionais tradicionais é melhor para consultas baseadas em chaves do que consultas baseadas em conteúdo. Para atender os requisitos deste tipo de transações, fornecedores de SGBDs relacionais têm adicionado funcionalidades a seus produtos. Estas funcionalidades incluem extensões às estruturas de armazenamento e aos operadores relacionais e esquemas de indexação especializados. Estas técnicas podem melhorar o desempenho para recuperações por conteúdo através da pré-junção de tabelas usando índices ou pelo uso de listas de índices totalmente invertidas. A maioria das ferramentas de acesso a Data Warehouses explora a natureza multidimensional dos dados. Por isso, estruturar os dados em bancos de dados relacionais tradicionais em esquemas do tipo estrela ou floco de neve tornou-se uma abordagem bastante comum. Estes esquemas podem usar múltiplas tabelas e ponteiros para simular uma estrutura multidimensional. Também é possível usar algum outro mecanismo não relacional para armazenar algumas das agregações pré-calculadas enquanto outras são obtidas dinamicamente. Esta abordagem goza dos benefícios de um mecanismo relacional, tirando vantagem do cálculo prévio de algumas agregações. Normalmente a tabela central de fatos é bem grande enquanto as das demais dimensões são bem menores. Por sua vez, bancos de dados multidimensionais permitem manipular diretamente objetos multidimensionais. As dimensões são identificadas ao criar a estrutura do banco, de forma que adicionar uma nova dimensão pode ser trabalhoso. Alguns bancos multidimensionais requerem uma completa recarga do banco quando uma reestruturação ocorre. Portanto, são mais recomendados para ambientes mais estáveis onde os requisitos sobre os dados não estejam em constante mudança. 5.6.1 - Um ou mais bancos Embora se discuta o banco de dados de um Data Warehouse como se fosse um único repositório de dados, em grande parte dos casos isto não acontece. Na verdade, os dados podem estar distribuídos por múltiplos bancos de dados, inclusive sob diferentes sistemas de gerenciamento de banco de dados. Bancos de dados multidimensionais fornecem uma visão específica dos dados da empresa. Cada área pode, no entanto, requerer que a organização dos dados segundo um array multidimensional seja ditada pela sua visão do negócio, atendendo a suas necessidades. É
  • 49. muito pouco provável que o mesmo projeto de banco de dados multidimensional atenda igualmente bem a questões de tomada de decisão das diversas áreas da empresa. Neste caso, um sistema de banco de dados relacional é usualmente mais adequado para gerenciar um banco de dados integrado, provendo uma estrutura mais neutra com relação às necessidades de cada área. Uma solução freqüentemente encontrada é a separação do gerenciamento dos dados entre o Data Warehouse relacional integrado da empresa e os seus data marts satélites multidimensionais. Esta alternativa introduz a necessidade de uma estratégia de distribuição de dados que coordene a alimentação de novos dados aos bancos multidimensionais. Uma solução semelhante é adotada no caso em que o Data Warehouse possui diferentes níveis de detalhe: a camada atômica, de maior nível de detalhe, é mantida em formato relacional, enquanto a camada contendo dados resumidos, pode ser mantida em formato multidimensional.
  • 50. CAP. 6 – CARREGANDO O DATA WAREHOUSE A extração, limpeza, transformação e migração de dados dos sistemas existentes na empresa para o Data Warehouse constituem tarefas críticas para o seu funcionamento efetivo e eficiente. Diversas técnicas e abordagens têm sido propostas, algumas bastante genéricas e outras especialmente voltadas para a manutenção de integridade dos dados num ambiente caracterizado pela derivação e replicação de informações. Os produtos oferecidos no mercado procuram automatizar processos que teriam de ser feitos manualmente ou utilizando ambientes de programação de mais baixo nível. De fato, não existe uma ferramenta única capaz de oferecer suporte aos processos de extração, limpeza, transformação e migração dos dados: diferentes ferramentas especializam-se em questões específicas. O grande desafio por trás da alimentação de dados das fontes para o Data Warehouse não é técnico, mas gerencial. Muitos dos processos envolvidos - como mapeamento, integração e avaliação de qualidade - ocorrem de fato durante a fase de análise e projeto do Data Warehouse. Especialistas afirmam que identificar fontes, definir regras de transformação e detectar e resolver questões de qualidade e integração consomem cerca de 80 % do tempo de projeto. Infelizmente, não é fácil automatizar estas tarefas. Embora algumas ferramentas possam ajudar a detectar problemas na qualidade dos dados e gerar programas de extração, a maioria das informações necessária para desenvolver regras de mapeamento e transformação existe apenas na cabeça dos analistas e usuários. Fatores que certamente influem na estimativa de tempo para estas tarefas são o número de fontes e a qualidade dos metadados mantidos sobre estas fontes. As regras de negócio associadas a cada fonte - tais como validação de domínios, regras de derivação e dependências entre elementos de dados – são outra fonte de preocupações. Se estas regras tiverem de ser extraídas do código fonte das aplicações, o tempo para mapeamento e integração pode dobrar. 6.1 – Extração As várias alternativas para extração permitem balancear desempenho, restrições de tempo e de armazenamento. Por exemplo, se a fonte for um banco de dados on-line, pode-se submeter uma consulta diretamente ao banco para criar os arquivos de extração. O desempenho das aplicações ligadas às fontes pode cair consideravelmente se transações on-
  • 51. line e as consultas para extração competirem entre si. Uma solução alternativa é criar uma cópia corrente dos dados das fontes a partir da qual se fará então a extração. Como desvantagem desta solução, podemos citar o espaço adicional de disco necessário para armazenar a cópia. Outra alternativa é examinar o ciclo de processamento de algumas transações off-line que atuem nas fontes. Os programas que criam os arquivos de extração para a carga do Data Warehouse podem ser incorporados a um ponto apropriado deste esquema de processamento. As rotinas de extração devem ser capazes de isolar somente aqueles dados que foram inseridos e atualizados desde a última extração, este processo é conhecido como refresh. A melhor política de refresh deve ser avaliada pelo administrador do Data Warehouse, que deve levar em conta características como as necessidades dos usuários finais, tráfego na rede e períodos de menor sobrecarga, tanto das origens dos dados quanto do Data Warehouse, deve- se considerar que os períodos de sobrecarga podem variar para cada origem de dados [DAL99]. 6.2 – Transformação e filtros Uma vez que os dados são extraídos e colocados na área de trabalho temporária, estes devem passar por uma série de tratamentos. O primeiro destes tratamentos refere-se a limpeza ou filtragem dos dados onde o objetivo é garantir a integridade dos dados através de programas ou rotinas especiais que tentam identificar anomalias e resolvê-las, deixando os dados em um estado consistente antes de serem instalados no Data Warehouse. A correção de erros de digitação, a descoberta de violações de integridade, a substituição de caracteres desconhecidos, a padronização de abreviações, podem ser exemplos de limpeza de dados. O segundo passo é colocar os dados em uma forma homogênea aplicando uma metodologia de comparação de representações, que inclua os critérios a serem utilizados na identificação de semelhanças e conflitos de modelagem. Conflitos de modelagem podem ser divididos em: semânticos e estruturais. Conflitos semânticos são todos aqueles envolvendo o nome ou palavra associado às estruturas de modelagem, por exemplo, mesmo nome para diferentes entidades ou diferentes nomes para a mesma entidade. Conflitos estruturais englobam os conflitos relativos às estruturas de modelagem escolhidas, tanto no nível de estrutura propriamente dito como no nível de domínios. Os principais tipos de conflitos
  • 52. estruturais são os conflitos de domínio de atributo que se caracterizam pelo uso de diferentes tipos de dados para os mesmos campos. Conflitos típicos de domínio de atributo são: • Diferenças de unidades: quando as unidades utilizadas diferem, embora forneçam a mesma informação (como distância em metros ou quilômetros); • Diferenças de precisão: quando a precisão escolhida varia de um ambiente para outro (como quando o custo do produto é armazenado com duas posições ou com seis posições decimais); • Diferenças em códigos ou expressões: quando o código utilizado difere um do outro (como no caso de sexo representado por M ou F e por 1 e 2); • Diferenças de granularidade: quando os critérios associados a uma informação, embora utilizando uma mesma unidade, são distintos (como quando horas trabalhadas) correspondem às horas trabalhadas na semana ou às horas trabalhadas no mês; • Diferenças de abstração: quando a forma de estruturar uma mesma informação segue critérios diferentes (como com endereço armazenado em um atributo único, ou subdividido em rua e complemento). Depois de identificados os conflitos de modelagem, deve-se criar as regras de mapeamento de representações equivalentes e de conversão para os padrões estabelecidos pelo Data Warehouse [DAL99]. 6.3 - Derivação e Sumarização Diferentes alternativas também existem para prover suporte a dados. Uma abordagem é derivar os dados durante o processo de carga e armazená-los no ambiente relacional corporativo. Uma alternativa é fazer a derivação quando o servidor de replicação distribui os dados para os Data Warehouses. Ou então, derivar os dados "on-the-fly" quando o usuário submeter uma consulta ou lançar uma simulação.
  • 53. CAP. 7 – EXTRAINDO INFORMAÇÕES DO DATA WAREHOUSE Existem várias maneiras de recuperar informações de um Data Warehouse, as formas de extração mais comuns no mercado hoje são: • Ferramentas de consulta e emissão de relatórios; • EIS (Executive Information Systems); • Ferramentas OLAP; • Ferramentas Data Mining. A nova tendência dessas soluções é a integração com o ambiente Web, permitindo maior agilidade em consultas estáticas e dinâmicas. Nesta monografia veremos de forma básica e separadamente os conceitos das tecnologias OLAP e Data Mining. A diferença básica entre ferramentas OLAP e Data Mining está na maneira como a exploração dos dados é abordada. Com ferramentas OLAP a exploração é feita na base da verificação, isto é, o analista conhece a questão, elabora uma hipótese e utiliza a ferramenta para confirmá-la. Com Data Mining, a questão é total ou parcialmente desconhecida e a ferramenta é utilizada para a busca de conhecimento. 7.1 - Ferramentas OLAP OLAP (On-Line Analytical Processing) representa um conjunto de tecnologias projetadas para suportar análise e consultas ad hoc. Sistemas OLAP ajudam analistas e executivos a sintetizarem informações sobre a empresa, através de comparações, visões personalizadas, análise histórica e projeção de dados em vários cenários de "e se...". Sistemas OLAP são implementados para ambientes multi-usuário, arquitetura cliente-servidor e oferecem respostas rápidas e consistentes às consultas iterativas executadas pelos analistas, independente do tamanho e complexidade do banco de dados. A característica principal dos sistemas OLAP é permitir uma visão conceitual multi- dimensional dos dados de uma empresa. A visão multi-dimensional é muito mais útil para os analistas do que a tradicional visão tabular utilizada nos sistemas de processamento de transação. Ela é mais natural, fácil e intuitiva, permitindo a visão em diferentes perspectivas dos negócios da empresa e desta maneira tornando o analista um explorador da informação [BIS99]. A modelagem dimensional é a técnica utilizada para se ter uma visão multi- dimensional dos dados.
  • 54. Nesta técnica os dados são modelados em uma estrutura dimensional conhecida por cubo. As dimensões do cubo representam os componentes dos negócios da empresa tais como "cliente", "produto", "fornecedor" e "tempo". A célula resultante da interseção das dimensões é chamada de medida e geralmente representa dados numéricos tais como "unidades vendidas", "lucro" e "total de venda". Além dos componentes dimensão e medida outro importante aspecto do modelo multidimensional é a consolidação dos dados uma vez que para a tarefa de análise são mais úteis e significativas as agregações (ou sumarização) dos valores indicativas dos negócios. A expressão Decision Cube refere-se a um conjunto de componentes de suporte à decisão, que podem ser utilizados para cruzar tabelas de um banco de dados, gerando diversas visões através de planilhas ou gráficos. Envolve o cálculo, quando da carga do Data Warehouse, de dados que o usuário virá a solicitar, mas que podem ser derivados de outros dados. Quando o usuário solicita os dados, estes já estão devidamente calculados, agregados em um Cubo de Decisões [DAL99]. Além da visão multi-dimensional dos dados da empresa, outras importantes características dos sistemas OLAP são: • Análise de tendências. A tecnologia OLAP é mais do que uma forma de visualizar a história dos dados. Deve, também, ajudar os usuários a tomar decisões sobre o futuro, permitindo a construção de cenários ("e se...") a partir de suposições e fórmulas aplicadas, pelos analistas, aos dados históricos disponíveis; • Busca automática (reach-through) de dados mais detalhados que não estão disponíveis no servidor OLAP. Detalhes não são normalmente importantes na tarefa de análise, mas quando necessários, o servidor OLAP deve ser capaz de buscá-los; • Dimensionalidade genérica; • Operação trans-dimensional. Possibilidade de fazer cálculos e manipulação de dados através diferentes dimensões; • Possibilidade de ver os dados de diferentes pontos de vista (slice and dice), mediante a rotação (pivoting) do cubo e a navegação (drill-up/drill-down) entre os níveis de agregação; • Conjunto de funções de análise e cálculos não triviais com os dados.
  • 55. Existe também um conjunto de 12 regras que servem para avaliar as ferramentas OLAP conforme [BIS99]: 1. Visão conceitual multidimensional 2. Transparência 3. Acessibilidade 4. Desempenho consistente de fornecimento de informações 5. Arquitetura cliente/servidor 6. Dimensionalidade genérica 7. Manipulação dinâmica da matriz esparsa 8. Suporte multiusuário 9. Operações irrestritas com dimensões cruzadas 10. Manipulação intuitiva dos dados 11. Relatórios flexíveis 12. Dimensões e níveis de agregação ilimitados Uma arquitetura OLAP possui três componentes principais: um modelo de negócios para análises interativas, implementado numa linguagem gráfica que permita diversas visões e níveis de detalhes dos dados; um motor OLAP para processar consultas multidimensionais contra o dado-alvo; e um mecanismo para armazenar os dados a serem analisados. A base de dados usada define se o pacote é um ROLAP, que interfaceia com um banco de dados relacional de mercado, ou um MOLAP, que se liga a um servidor OLAP, através de um banco de dados multidimensional e dedicado [DAL99]. 7.1.1 - MOLAP x ROLAP Multidimensional OLAP (MOLAP) é uma classe de sistemas que permite a execução de análises sofisticadas usando como gerenciador de dados um banco de dados multidimensional. Em um banco de dados MOLAP os dados são mantidos em arranjos e indexados de maneira a prover uma ótima performance no acesso a qualquer elemento. O indexamento, a antecipação da maneira como os dados serão acessados e o alto grau de agregação dos dados fazem com que sistemas MOLAP tenham uma excelente performance. Além de serem rápidos, outra grande vantagem destes sistemas é o rico e complexo conjunto de funções de análise que oferecem.
  • 56. A maneira de se implementar os arranjos de dados pode variar entre fornecedores de soluções MOLAP. Existem as arquiteturas hiper-cubos e multi-cubos. Na arquitetura hiper- cubo existe um único cubo onde cada medida é referenciada por todas as outras dimensões. Por exemplo, um cubo onde a medida "vendas" é referenciada pelas dimensões "produto", "ano", "mês", "estado" e "cidade". Além da dificuldade em visualizar tal "cubo" (com cinco dimensões!). Outros problemas desta abordagem são a maior necessidade de espaço em disco e a existência de um mecanismo para controlar a esparsidade dos dados que ocorre quando não existe uma medida na interseção das dimensões. Por exemplo, quando um produto não é vendido em determinado estado. A grande vantagem é a consistência no tempo de resposta que é independente do número de dimensões envolvidas na consulta. Na arquitetura multi-cubos uma medida é referenciada por dimensões selecionadas. Em um cubo, a medida "vendas" é referenciada pelas dimensões "semestre", "estado" e "produto" e em outro cubo, a medida "custo" é referenciada pelas dimensões "mês" e "departamento". Esta arquitetura é escalável e utiliza menos espaço em disco. A performance é melhor em cada cubo individualmente, no entanto, consultas que requerem acesso a mais de um cubo podem exigir processamentos complexos para garantir a consistência do tempo de resposta. Sistemas ROLAP fornecem análise multidimensional de dados armazenados em uma base de dados relacional. Atualmente existem duas maneiras de se fazer este trabalho: fazer todo o processamento dos dados no servidor da base de dados. O servidor OLAP gera os comandos SQL em múltiplos passos e as tabelas temporárias necessárias para o processamento das consultas; ou executar comandos SQL para recuperar os dados, mas fazer todo o processamento (incluindo joins e agregações) no servidor OLAP. Além das características básicas de sistemas OLAP, servidores ROLAP devem também: utilizar metadados para descrever o modelo dos dados e para auxiliar na construção das consultas. Desta maneira um analista pode executar suas análises utilizando seus próprios termos; e criar comandos SQL otimizados para os bancos de dados com o qual trabalha. A principal vantagem de se adotar uma solução ROLAP reside na utilização de uma tecnologia estabelecida, de arquitetura aberta e padronizada como é a relacional, beneficiando-se da diversidade de plataformas, escalabilidade e paralelismo de hardware (SMP e MPP).