You are on page 1of 16

Data Warehouse - Da Modelagem a Implantação

AUTOR:
CAMILO MUSSI

Introdução
O contexto em que se vive atualmente demanda das organizações uma
capacidade de analisar, planejar e reagir rápida para poder acompanhar ou superar as
exigências dos clientes e à ameaça da concorrência. Para que isto aconteça, é
necessário que a organização tenha disponível, quando necessário, as informações
que constituem a base para obtenção de vantagens competitivas e maior fidelidade dos
clientes.
A todo o momento uma grande quantidade de informações sobre os mais
variados aspectos dos negócios da empresa é gerada e armazenada, passando a fazer
parte da base de conhecimento. Entretanto, esses dados estão espalhados por vários
sistemas de difícil integração, sem qualidade e indisponíveis para os gerentes e altos
executivos que são os tomadores de decisões estratégicas das organizações. Para
suprir essa deficiência surgiu o Data Warehouse (DW), que se constitui de um conjunto
de arquiteturas e/ou sistemas de informação orientados a assunto que existem em
plataformas segregadas do ambiente transacional, manipulando grande volume de
dados, principalmente históricos, e dão origem a consultas (read-only) invariavelmente
não previsíveis, que tem por objetivo dar suporte a esses processos.
O objetivo desse tutorial é apresentar os principais conceitos e questões
envolvidas com este tecnologia, procurando enfatizar a importância de sua utilização
para garantir agilidade e segurança na tomada de decisão, definido o caminho a ser
desenvolvido desde a modelagem até a implantação de um DW.
Histórico
O universo dos sistemas de informação é historicamente imaturo, existe apenas
desde a década de 1960, a prova disto é a tendência desses sistemas de
concentrarem-se nos detalhes. O DW surge num contexto de evolução dos processos
de tomada de decisão das empresas, que pode ser mais bem observado segundo uma
perspectiva global.
O processamento dos Sistemas de Apoio à Decisão (SAD) está em evolução,
mas suas origens remontam aos primórdios dos computadores.
Em meados da década de 60, começou a proliferação dos arquivos mestres e
fitas magnéticas causando um tremendo problema: a redundância dos dados e a difícil
manutenção e desenvolvimento dos programas, além da complexidade do hardware.
Para solucionar esses problemas surgiu uma nova tecnologia de armazenamento
e acesso a dados por volta de 1970, o armazenamento em disco ou Dispositivo de
Armazenamento de Acesso Direto (DASD). Nesse novo dispositivo os dados eram
acessados de forma direta, ou seja, para acessar o registro “n + 1” não era preciso
passar pelos registros 1,2,...,n. O tempo de acesso passou a ser medido em
milissegundos, solucionando o problema de tempo das fitas magnéticas.
Com o DASD surgiu um software conhecido como Sistema Gerenciador de Banco
de Dados (SGBD), que gerencia o armazenamento, acesso e indexação dos dados no
DASD, além de outras funcionalidades. Com o SGBD e o DASD surgiu uma solução

1
tecnológica para os arquivos mestres, resolvendo os problemas de tempo de acesso,
redundância de dados e etc. Essas novas tecnologias abriram o caminho para o
processamento de transações online de alta performance e o surgimento de sistemas
bancários, de controle de reservas, controle de produção e outros.
Na década de 80 surgiram os computadores pessoais e as linguagens de quarta
geração, que transformaram os usuários em sujeitos ativos, já que agora eles
passaram a controlar os sistemas e os dados. Com essa nova tecnologia, surgiu a
possibilidade de se utilizar os dados para outros objetivos além do processamento on-
line de alta performance. Os Sistemas de Informações Gerenciais (SIG) passaram a
ser viáveis, surgindo então o paradigma de um único banco de dados para apoiar o
processamento transacional e o processamento analítico.
Após o advento das transações on-line de alta performance surgiram os
programas de extração, que usando alguns critérios de seleção transportavam os
dados para um novo arquivo ou banco de dados. Com isto conseguia-se uma melhora
na performance das análises coletivas dos mesmos, pois o processamento não estaria
concorrendo com as transações on-line e, além disso, a posse dos dados passou para
as mãos dos usuários. Por esses motivos, tornou-se comum o uso dos programas de
extração e, conseqüentemente, o advento de alguns problemas como a falta de
credibilidade dos dados, problemas de produtividade e a impossibilidade de transformar
os dados em informações. Esse novo ambiente desorganizado não atendia às
necessidades do futuro e por isso se fizeram necessárias algumas mudanças de
arquitetura, surgindo o ambiente projetado de DW.
No cerne de um ambiente projetado de DW está a percepção da existência de
dois tipos de dados [4]:
• Dados primitivos – utilizados pelos sistemas operacionais das empresas.
Podem ser atualizados e refere-se a um presente momento. Atendem as
atividades funcionais;
• Dados derivados – dados resumidos ou calculados para atender às
necessidades da empresa. Não podem ser atualizados e são históricos.
Atendem as atividades gerenciais.
Como pode ser visto, existe uma grande diferença entre os dados primitivos
(dados operacionais) e os dados derivados (dados gerenciais) e, portanto, eles não
devem coexistir num mesmo banco de dados.
Num ambiente projetado de uma empresa existem quatro níveis [4]:
1. Operacional – contém os dados primitivos e atendem ao processamento on-line
de alta performance;
2. Atômico ou DW – contém dados primitivos não atualizados e dados derivados;
3. Departamental – contém informações úteis aos diversos departamentos da
empresa. A fonte de todos esses dados é o DW. Há um banco de marketing, um
de contabilidade e assim por diante, às vezes denominado Datamart;
4. Individual – geralmente dados temporários e de pequenas proporções e são
utilizados para analises heurísticas.
A primeira vista, pode-se concluir que existe uma grande redundância de dados
neste ambiente mas essa afirmação não é verdadeira. No nível operacional existem
apenas registros com valores atuais, no de DW existem dados históricos e, no
Departamental, existem registros dos departamentos específicos da empresa.

2
Com isso chega-se ao ambiente que será estudado a seguir.
Ambiente de DW
Existem, nas empresas, dois tipos de sistemas:
• Sistemas operacionais (On-line Transaction Processing - OLTP): sistemas
que dão suporte ao dia a dia do negócio da empresa, que mantém a
empresa em funcionamento e são chamados de sistemas de produção e
• Sistemas informacionais (On-line Analitycal Processing - OLAP): sistemas
que dão suporte aos processos decisórios da empresa, que irão dar
subsídios para as decisões estratégias da empresa e compreendem os SADs
e os SIGs.
Como os dados informacionais exigem uma quantidade significativa e variada de
recursos, devem estar num ambiente de banco de dados separado dos dados
operacionais.
Alguns motivos que levam a essa separação:
• O DW engloba dados de vários sistemas OLTP e
• As estruturas básicas de dados de um DW são diferentes do sistema OLTP.
A grande vantagem de separar esses dados é que, como eles satisfazem a
objetivos diferentes, eles poderão se concentrar no que fazem, oferecendo melhor
desempenho e funcionalidade.
Conceito de DW
Segundo W. H. Inmon [4], um DW é 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.
Os dados dos sistemas operacionais irão constituir a base de carga do DW.
Esses dados, após sofrerem um processo de transformação, irão ser associados a um
novo ponto no eixo do tempo e armazenados no DW. Contudo, um DW irá exigir mais
recursos do que os vistos anteriormente e, portanto, serão incluídas também
informações vindas de várias outras fontes internas (planilhas eletrônicas, documentos
textuais, etc.) bem como fontes externas (jornais, revistas etc.)
Características
1. Orientado por Assunto
Refere-se ao fato de que os dados estaão organizados de acordo com os
assuntos de interesse da empresa, como por exemplo: produto, cliente, loja. Em
contrapartida, os dados dos sistemas operacionais estão organizados de acordo com a
funcionalidade da empresa, como por exemplo, no caso de uma escola: aluno,
servidor, matrícula.
Esses assuntos serão armazenados em um conjunto de tabelas relacionadas. É
importante enfatizar que, não necessariamente, todas essas tabelas devem estar com
o mesmo nível de resumo ou no mesmo dispositivo de armazenamento.
2. Integrado
Refere-se ao fato de que todo dado, trazido dos sistemas operacionais para o
ambiente de DW é, anteriormente, consolidado, de forma que passe a ter um único
significado. Como exemplo, considere o atributo “sexo” que, em uma aplicação é

3
tratado como “m/f”, em outra como “1/0”, outra como “x/y” e outra como
“masculino/feminino”. Para ser transportado para o DW, o dado tem que ser codificado
de uma única forma.
3. Variante no Tempo
Refere-se ao fato de que as estruturas de dados no DW sempre contêm um
atributo de tempo, ou seja, a cada mudança ocorrida num dado, uma nova entrada é
criada e não atualizada, como acontece nos sistemas operacionais.
É importante salientar a complexidade do ambiente de DW, pois pode possuir
não somente resumos anuais e mensais como também diários e semanais. Sabe-se
que o número de dias e o início de uma semana diferem de um mês para o outro e de
um ano para o outro. Além disso, os metadados também devem acompanhar essa
variação no tempo, pois um determinado dado pode ter um significado numa época e
outro em uma época diferente.
4. Não Volátil
Refere-se ao fato de que, em um DW, os dados não sofrem atualizações. Eles
são carregados uma única vez e, a partir desse momento, só podem ser consultados.
Ao contrário do que acontece nos sistemas operacionais onde existem milhões de
transações de atualizações ocorrendo a todo instante. Por isso esses sistemas têm de
possuir um grande número de controles para que não ocorra nenhuma inconsistência
devido a uma transação interrompida indevidamente.
OLTP X OLAP
Existem grandes diferenças entre os dois ambientes que, a seguir, serão
definidas, mostrando o benefício que a implantação do DW pode trazer para o
ambiente operacional.
1. Integração dos dados
Os dados no ambiente operacional não estão integrados, cada sistema possui
uma definição própria. Para migrá-los para o DW deve existir uma integração prévia,
porque se os dados chegarem em um estado não integrado, não poderão ser utilizados
para obter uma visão corporativa. Com isso consolidam-se dados inconsistentes dos
sistemas mais antigos em conjuntos coerentes.
2. Atualização dos dados
Não há sobreposição entre os registros existentes no ambiente operacional e no
de DW. Caso ocorra uma mudança, um novo registro é inserido no DW, associando ao
mesmo um elemento de tempo. Com isso os dados históricos não precisam mais ser
guardado no ambiente operacional. A remoção de grandes volumes de dados traz
algumas facilidades para o ambiente de produção como: correção, reestruturação,
monitoração e indexação, deixando o ambiente mais maleável.
3. Ciclo de vida do desenvolvimento
O ciclo de vida do DW começa pelos dados. Caso esses dados estejam sob
controle, eles são integrados e testados para verificar distorções. Então, é feita a
codificação do programa. Os resultados dos programas são analisados e, finalmente,
os requisitos do sistema são compreendidos.
4. Organização dos dados (modelo de dados)
Enquanto no ambiente operacional, os dados são modelados segundo a técnica
denominada Modelagem Entidade/Relacionamento, que busca remover qualquer

4
redundância dos dados para obter um melhor desempenho da transação, no ambiente
de DW os dados são modelados segundo a técnica da Modelagem Multidimensional,
que busca obter um maior desempenho nas consultas e atender às necessidades de
simplicidade do usuário.
5. Tempo de resposta
A noção de tempo de resposta nos dois ambientes é bem diferente. Enquanto no
OLTP, o tempo de resposta é um fator crítico, ou seja, está diretamente ligado aos
negócios, no ambiente de DW é mais atenuado, podendo ser medido em minutos,
horas ou dias. No entanto isso não quer dizer que ele não seja importante, o tempo de
resposta está diretamente ligado à produtividade, então quanto menor mais resultados
serão alcançados.
6. Uma máquina ou duas
Como o DW exige uma quantidade significativa e variada de recursos,
geralmente é implementado em uma máquina separada do sistema OLTP. A palavra
recurso, de um modo geral, é um motivo suficiente para requerer uma segunda
máquina, mas existem outros dois motivos importantes. Primeiro, o DW é um recurso
centralizado que integra dados de vários sistemas OLTP. Neste caso, por definição, a
máquina do DW é separada. Segundo, as estruturas básicas de dados do DW são
completamente diferentes daquelas do sistema OLTP. Como os dados devem ser
copiados e reestruturados para o DW, praticamente não há razão para mantê-los na
máquina do original OLTP. [6]
7. Metadados
São normalmente definidos como “dados sobre dados”. Talvez uma definição
mais exata seja a de que metadado é uma abstração dos dados, ou ainda, dados de
alto nível que descrevem dados de um nível inferior. Sem metadados, os dados não
têm significado. São exemplos de metadados as descrições de registros em um
programa de aplicação ou o esquema de um banco de dados descrito em seu catálogo
ou ainda as informações contidas em um dicionário de dados.
Em um ambiente operacional, os metadados são especialmente valiosos para os
desenvolvedores de aplicação e os administradores de banco de dados. Os bancos de
dados operacionais são usualmente utilizados via aplicação, que já contém as
definições de dados embutidas. Seus usuários simplesmente interagem com as telas
do sistema, sem precisar conhecer como os dados são mantidos pelo banco de dados.
O ambiente de suporte a decisão, por sua vez, é bastante distinto. Nele,
analistas de dados e executivos procuram por fatos não usuais e correlações que serão
conhecidas quando encontradas. Aplicações rotineiras e predefinidas não fazem
sentido neste ambiente. Os usuários de um DW precisam examinar seus dados e para
tal, conhecer sua estrutura e significado.
De um modo geral existem três camadas de metadados em um DW:
• Operacionais (do nível das aplicações) – definem a estrutura dos dados
mantidos pelos bancos operacionais, usados pelas aplicações de produção da
empresa;
• Centrais do DW – mantidos no catálogo do DW. Distingue-se por serem
orientados por assunto, definindo como os dados transformados devem ser
interpretados. Incluem definições de agregados e campos calculados, assim
como as visões sobre cruzamentos de assuntos;

5
• Nível do usuário – mapeiam os metadados do DW para conceitos que sejam
familiares e adequados aos usuários finais.
Projetando um DW
Os DW de sucesso não são como os sistemas operacionais que possuem fases
de desenvolvimento e manutenção bem distintas. Eles são entidades dinâmicas que
mudam de acordo com as necessidades de negócio da organização, caracterizando-se
assim por uma abordagem de desenvolvimento evolucionária. Além do seu dinamismo,
os custos de implementação e o impacto nos sistemas operacionais também justificam
essa abordagem.
Muitas empresas iniciam o processo por um departamento que tenha carência
de informação e cujo trabalho seja relevante para a organização, criando os chamados
datamarts , para depois ir acrescentando aos poucos. Outra opção é disponibilizar um
protótipo de DW, escolher alguns usuários e deixar que eles experimentem essas
pequenas amostras. Após a concordância do grupo, carregar os dados dos sistemas
operacionais e dados externos.
De qualquer forma, Inmon [4] salienta que é um erro pensar que técnicas de
projeto que servem para sistemas convencionais serão adequadas para a construção
de um DW. Os requisitos para um DW não são conhecidos até que ele esteja
parcialmente carregado ou já em uso.
Outra questão importante, discutida por Kimball [6], é a adequação do modelo
entidade-relacionamento ao tipo de transação OLTP. 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 DW, onde estruturas mais simples, com
menor grau de normalização devem ser buscadas.
Não existe ainda no mercado uma metodologia de desenvolvimento de DW
consolidada, o que se vê são propostas de construção do modelo dimensional a partir
dos modelos corporativos ou departamentais de forma incremental. Segundo Inmon [4],
um DW é construído de forma heurística, confirmando a abordagem evolucionária
descrita anteriormente.
De qualquer forma, a metodologia a ser adotada é ainda bastante dependente
da abordagem escolhida, em termos de ambiente, distribuição, etc.. A seguir, serão
apresentadas etapas sugeridas para desenvolvimento de um projeto de DW.
Entrevistando os usuários finais
Deve-se começar pelas entrevistas com os usuários finais para saber quais
informações importantes são necessárias para serem consultadas e analisadas.
Segundo Kimball [6], as entrevistas com os usuários finais têm duas finalidades.
Primeiro, oferecem ao projetista uma visão concreta das necessidades e expectativas
da comunidade de usuários. As entrevistas criam uma conexão entre as equipes de
projetistas do DW e do negócio. Entender o negócio é a “moeda de ouro” da equipe de
projetistas. Essas entrevistas são essenciais ao sucesso do projeto.
A segunda finalidade das entrevistas permite aos projetistas aumentar o nível de
conscientização dos usuários finais quanto à implantação do DW, assim como adequar

6
suas expectativas. Entrevistar o usuário final é sem dúvida uma faca de dois gumes. A
equipe de projetistas deve estar preparada para dar continuidade ao projeto logo após
o término das entrevistas, porque o DW estará nas mentes dos usuários.
O processo de entrevista deve alternar entre grupos de usuários finais e
Administradores de Banco de Dados (DBAs) de sistemas legados. À medida que os
usuários finais levantam os tópicos importantes, surgem as questões sobre qual a
capacidade dos dados disponíveis de suportar tais tópicos.
As entrevistas ideais consistem em sessões de uma hora, em que dois ou três
projetistas da equipe reúnem-se com um gerente de área e alguns de seus
subordinados. As reuniões com muitos participantes de cada departamento são uma
perda de tempo. Uma hora de reunião será mais que suficiente para a equipe de DW
obter informações iniciais e geralmente é oportuno absorver as principais necessidades
do usuário antes de prosseguir com as entrevistas.
Em uma organização de grande porte, é aconselhável realizar uma ou duas
entrevistas com cada segmento, mesmo que alguns deles não sejam prioritários para o
DW. Será especialmente importante incluir tanto o segmento matriz como o filial nas
entrevistas principais, além das áreas igualmente importantes. Será melhor não
entrevistar todas as equipes de uma determinada área em seqüência, isto é, todas as
equipes de marketing, seguidas de todas as equipes de produção e de todas as de
vendas. À medida que as entrevistas progridem, os projetistas adquirem maior
entendimento do negócio e pode ser útil retornar a um tópico do início do processo, nas
últimas entrevistas. O conteúdo das entrevistas finais não deve acrescentar nada de
extraordinário às informações coletadas, comprovando dessa forma que todos os
aspectos importantes do negócio foram abordados. Caso surjam informações
totalmente novas nas etapas finais do processo de entrevistas, então devemos
suspeitar de que alguns dos tópicos não foram amplamente cobertos.
Deve-se ter cuidado na escolha do usuário que deve ser entrevistado. O mesmo
deve ser capaz de responder todas as perguntas sobre o negócio da empresa e
especialmente do seu departamento.
O segredo de uma boa entrevista é fazer o usuário descrever seu trabalho. Há
várias perguntas que resultam em respostas produtivas. A seguir estão algumas delas,
mas lembre-se: Seja flexível.
• Qual a missão do seu grupo/departamento/divisão?
• Qual mudança recente na condução do negócio é mais significativa?
• Como você mede o sucesso em seu grupo?
Perguntas sobre o nível de granularidade devem ser incluídas:
• Você consulta os dados diariamente?
• Você precisa distinguir terças de sábados?
• Instantâneos mensais são suficientes para o que você deseja fazer?
A combinação dos níveis de detalhe de cada uma das dimensões determina a
granularidade da tabela de fatos central.
Finalmente algumas perguntas sobre urgência :
• É necessário que os dados de ontem estejam disponíveis hoje? Observe que
essa pergunta é diferente daquela de granularidade. É possível que um

7
grupo precise distinguir terças-feiras de sábados (granularidade), mas não
que os dados de ontem estejam disponíveis hoje (urgência).
• Quanto tempo após o fechamento do mês deve ser gerado o instantâneo
mensal?
As respostas a essas perguntas orientarão o projeto do sistema de extração de
dados.
No final da entrevista, será um bom momento para serem solicitados exemplos
de relatórios sobre os temas discutidos. Um processo de entrevista bem sucedido deve
resultar num acúmulo de relatórios administrativos.
Entrevistando os DBAs
Segundo Kimball [6], as entrevistas com os DBAs são de vital importância, pois
eles são os especialistas dos sistemas legados que podem ser usados como fonte de
dados do DW e, por isso, devem ser realizadas intercaladas com as dos usuários
finais. Essas entrevistas devem checar a consistência dos temas abordados nas
entrevistas com os usuários finais. Deve também ser solicitado, anteriormente, aos
DBAs, a descrição textual de cada tabela importante do banco, dos campos das
tabelas e a contagem de linhas de cada tabela para servir como suporte a construção
do DW. A seguir estão descritas algumas perguntas que devem ser feitas aos DBAs :
• Como os vários sistemas de produção relacionam-se entre si? Que sistema
alimenta outro sistema? Qual a origem dos dados?
• Onde os DW obtém os arquivos mestre para algumas das dimensões chave?
• Quais campos das tabelas importantes estão preenchidos? Quais estão
totalmente preenchidos? Quais possuem garantia de qualidade? Quais são
obrigatórios no momento da entrada de dados? Quais são validados no
momento da entrada de dados?
• O que os códigos significam? Onde é possível obter a descrição textual dos
códigos? Quem pode informar o significado dos códigos?
• Como são administradas as chaves das tabelas? Elas são reutilizadas?
• Sempre é gerada uma nova chave de produção quando acontece uma
modificação num determinado registro? Existe um documento descrevendo
exatamente essa modificação? Seremos notificados sobre essas modificações?
• É possível ler diretamente os arquivos de produção de dados? Quais sistemas
estão disponíveis para executar essa etapa de leitura? Os registros modificados
são identificados nos arquivos de dados de produção? É possível ler o histórico
de transações original?
• Há campos nessas tabelas sendo utilizados com mais de uma finalidade e
depende do contexto?
No final da entrevista, será um bom momento para ser solicitado exemplos de
relatórios fornecidos a comunidade de usuários.
Definindo o modelo de dados
Após levantamento das informações que os usuários desejam analisar no DW e
os sistemas legados onde se encontram essas informações, deve-se definir o “escopo
de integração”, que consiste em identificar as entidades que pertencem ao escopo do
modelo de dados.

8
Depois de definir o escopo, para construir um modelo de dados para o DW, o
ponto de partida é o modelo corporativo. Contudo, um considerável número de
alterações é feito no modelo corporativo para ser aplicado ao DW, como :
• Remover dados meramente operacionais.
• As estruturas de chaves do modelo corporativo de dados são aumentadas
para conter um elemento de tempo.
• Os relacionamentos de dados dos modelos operacionais são transformados
em “artefatos” no DW.
• Realização de análise de estabilidade (consiste em agrupar atributos de
dados de acordo com sua propensão a alterações).
No final dessas transformações, se esboçará um modelo de dados que servirá
como guia para a construção do DW iterativamente. A seguir, estão algumas das
muitas razões da importância do desenvolvimento iterativo [4]:
• O usuário final não terá condições de expressar suas necessidades com
clareza até que a primeira iteração seja feita;
• A gerência não se comprometerá por completo até que verdadeiros
resultados tangíveis e claros sejam apresentados;
• Há necessidade de, rapidamente, obter resultados visíveis.
Como todo o esforço de desenvolvimento é guiado pelo modelo de dados
unificado, ele irá produzir um todo coeso e firmemente orquestrado.
Contudo há algumas limitações quanto ao uso do modelo de dados como
alicerce do DW. O modelo de dados parece tornar todas as entidades iguais e, na
realidade, no mundo do DW, as entidades não são pares idênticos, elas demandam
seu próprio tratamento especial.
Analisando o DW sob uma perspectiva tridimensional, observa-se que algumas
entidades serão escassamente povoadas, ao passo que outras serão altamente
povoadas.
A vantagem da criação do modelo dimensional consiste em agilizar os dados
para o processamento do SAD. Por meio da pré-junção dos dados e da geração de
redundância seletiva, o projetista simplifica e agiliza os dados para acesso e análise,
que é necessário para o DW.
Em resumo, o modelo de dados relacional e o dimensional se enquadram como
alicerces do projeto do DW. O modelo dimensional se aplica como um alicerce do
projeto das entidades de grande porte que existirão. O modelo de dados relacional se
aplica como alicerce do projeto para as entidades de pequeno porte.
Existem dois tipos de esquema para o modelo dimensional: o star join (estrela) e
o snowflake (flocos de neve).
No modelo star join, 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). Este esquema é chamado de star join por apresentar
uma 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,

9
enquanto as tabelas de dimensões se ligam apenas à tabela central por uma única
junção. A tabela de fatos é onde as medidas numéricas do fato representado são
armazenadas. Cada uma destas medidas é tomada segundo uma interseção de todas
as dimensões.
O outro tipo, o modelo snowflake, consiste de uma extensão do star join, onde
cada uma das pontas da estrela passa a ser o centro de outras estrelas. Porque cada
tabela de dimensão seria normalizada, quebrando-se a tabela original ao longo de
hierarquias existentes em seus atributos.
Kimball [6] aconselha os projetistas a resistirem à tentação de transformar
esquemas estrela em floco de neve, devido ao impacto da complexidade deste tipo de
estrutura sobre o usuário final, enquanto que o ganho em termos de espaço de
armazenamento seria pouco relevante.
Questões que devem ser observadas na modelagem
Segundo Kimball [6], algumas características devem ser observadas, durante a
modelagem do DW, para que as consultas não produzam resultados incorretos, pois as
mesmas servirão de base para a tomada de decisão das empresas, ou se tornem muito
lentas e impossíveis de serem executadas. São elas:
• Atributos semi-aditivos e não aditivos
Uma operação não aditiva, como o cálculo da margem bruta, pode ser
computada em qualquer plano da tabela de fatos, lembrando-se de calcular o quociente
das somas, não a soma dos quocientes. Em outras palavras, o resultado deve ser a
divisão das somas e não o inverso. Uma operação semi-aditiva não pode ser
adicionada ao longo de todas as dimensões da tabela de fatos, deve-se limitar com
isso a operação às dimensões válidas.
• Dimensões descaracterizadas
Números de controle de documentos, como números de pedidos, números de
fatura e números de conhecimento de embarque, normalmente são representados
como dimensões descaracterizadas (isto é, chaves de dimensão sem uma tabela
correspondente) em tabelas de fatos em que o grão da tabela é o documento
propriamente dito ou uma linha de item do documento.
• Dimensões derivadas que suportam agregados
Ë extremamente importante construir tabelas de fatos derivadas (resumidas) em
vários níveis superiores de detalhe para melhorar o desempenho das consultas, que de
outra forma apresentariam um grande número de registros.
Existem muitas formas de agregados no DW, sendo as mais comuns:
a. Cumulativa simples: as transações diárias são transportadas do ambiente
operacional e resumidas em forma de registros no DW. O resumo pode ser feito
por qualquer área de interesse, segundo a qual o DW esteja organizado.
b. Resumo rotativo: os dados passam do ambiente operacional para o DW
como mencionado anteriormente. A diferença está na forma como é agregado.
Por exemplo, nesta estrutura, nos primeiros sete dias da semana a atividade é
resumida em sete posições diárias. No oitavo dia, as sete posições diárias são
acumuladas e colocadas na primeira posição semanal. No final do mês, as
posições semanais são acumuladas e colocadas na primeira posição mensal. No
final do ano, as posições mensais são acumuladas, e a primeira posição anual é

10
carregada. Existem vantagens e desvantagens nesta abordagem com relação a
anterior:
ƒ Os dados podem ser processados para encontrar o ponto mais alto,
mais baixo, a média, e assim por diante.
ƒ A primeira e a última ocorrência de dados podem ser dispostas em
um bloco.
ƒ Dados de determinados tipos, inseridos nos limites de diversos
parâmetros, podem ser mensurados.
ƒ Dados válidos em relação a um determinado momento podem ser
dispostos em um bloco.
ƒ Os dados mais antigos e os mais recentes podem ser dispostos em
um bloco.
c. Dimensões grandes: não se devem desmembrar as dimensões, mesmo que
elas sejam extensas, pois poderá causar um desempenho limitado. A melhor
abordagem para rastrear modificações nessas tabelas é subdividi-las em
minidimensões compostas por pequenos conjuntos de atributos estruturados
para conter um número limitado de valores.
d. Dimensões de modificação lenta: o DW deve representar de forma
concreta o histórico passado, por isso não se pode considerar que as entidades
não se modificam ao longo do tempo. Entretanto, a solução não será incluir tudo
na tabela de fatos ou tornar cada dimensão dependente no tempo. Em vez
disso, deve-se explorar o fato de que a maioria das dimensões é constante ao
longo do tempo e que se pode preservar uma estrutura dimensional
independente, incluindo relativamente poucas adições para capturar o aspecto
temporal das modificações. Essas dimensões praticamente constantes são
chamadas de dimensões de modificação lenta. Existem três opções de
modificação destas dimensões, cada uma delas resultando em um diferente
nível de rastreamento de modificações ao longo do tempo:
ƒ Substituir os valores antigos dos registros da dimensão e, portanto,
perder a capacidade de rastrear o histórico passado.
ƒ Adicionar um registro à dimensão, contendo os novos valores do
atributo no momento da mudança, para segmentar o histórico entre a
descrição antiga e a nova descrição com muita precisão.
ƒ Criar novos campos “atuais” no registro original da dimensão para
incluir os novos valores do atributo, mantendo também seus valores
originais, permitindo dessa forma descrever o histórico anterior e o
posterior à mudança tanto em relação aos valores originais do atributo
quanto aos valores atuais.
e. Tabela de fatos sem fatos: alguns processos que são representados no DW
produzem tabelas de fatos semelhantes às tabelas que foram construídas, mas
que não contém fatos mensuráveis. São chamadas de tabelas de fatos sem
fatos. As duas principais variações dessas tabelas são tabelas de rastreamento
de eventos e tabelas de cobertura. Os eventos são geralmente modelados por
uma tabela de fatos contendo algumas chaves, cada qual representando uma
dimensão do evento, freqüentemente não estão associadas a fatos numéricos
óbvios. As tabelas de cobertura são, freqüentemente, tabelas de eventos que

11
não ocorreram e, de modo geral, não contém fatos assim como as tabelas de
rastreamento de eventos. [6]
Decisões no projeto de um DW
Uma vez que o modelo de dados tenha sido definido, o próximo passo é definir
algumas características do projeto físico, para que se possam satisfazer alguns
critérios como:
• Capacidade de gerenciar grande quantidade de dados.
• Capacidade de permitir que os dados sejam acessados de modo flexível.
• Capacidade de, periodicamente, carregar grande quantidades de dados.
• Capacidade de acessar dados de um registro por vez, ...
Granularidade
O mais importante aspecto do projeto de DW é a questão da granularidade, pois
afeta profundamente o volume de dados que residem no DW e, ao mesmo tempo, afeta
o tipo de consulta que pode ser atendida.
O volume de dados e o espaço bruto não são as únicas questões relevantes,
existe também a força de processamento que precisa ser empregada para acessar
esses dados.
Há, portanto, um bom motivo para a compactação de dados, porque se
economiza, sobre o total de DASD utilizado, o número de índices necessários e os
recursos de processador para o tratamento de dados.
No entanto, à medida que o nível de granularidade se eleva, há uma
correspondente diminuição da possibilidade de utilização dos dados para atender a
consulta.
Para solucionar essa questão, ou seja, possuir armazenamento e acesso aos
dados de forma eficiente e, ao mesmo tempo, poder analisar os dados em maior
detalhe, deve-se utilizar níveis duais de granularidade na parte detalhada do DW.
Ao criar dois níveis de granularidade no nível detalhado, o arquiteto do SAD
possibilita que, na maior parte do tempo, o processamento dirija-se aos dados
levemente resumidos que são compactados e de fácil acesso, além de disponibilizar o
nível de dados históricos quando um maior nível de detalhe for requerido.
Em decorrência dos custos, da eficiência, da facilidade de acesso e da
possibilidade de atender a qualquer consulta que possa ser respondida, para a maior
parte das empresas, o nível dual de dados consiste na melhor opção arquitetônica para
o nível detalhado do DW.
Particionamento
O objetivo do particionamento dos dados de detalhe corrente consiste em
repartir os dados em unidades físicas menores, para proporcionar ao pessoal de
operação e ao projetista mais flexibilidade no gerenciamento dos dados do que é
proporcionado pelas unidades físicas maiores.
Quando os dados residem em unidades físicas maiores, entre outras coisas,
eles não podem ser: Reestruturados facilmente; Indexados livremente; Pesquisados
seqüencialmente, se necessário; Reorganizados, Recuperados ou Monitorados
facilmente

12
Há vários critérios por meio dos quais é possível dividir dados, como: Data; Área
de negócio; Área geográfica; Unidade organizacional ou por todos os critérios
anteriores.
Ciclicidade dos dados
A ciclicidade de dados refere-se ao tempo necessário para que uma alteração
realizada no ambiente operacional seja refletida no DW. Algumas razões devem ser
observadas, como:
• Quanto mais rigidamente o ambiente operacional for emparelhado com o
DW, mais dispendiosa e complexa será a tecnologia.
• Os dados devem ser estabilizados antes de migrarem para o DW.
Eliminação dos dados
Há diversas maneiras pelas quais os dados são eliminados ou os detalhes dos
dados são transformados, como [4]:
• Acrescentados a um arquivo de resumo rotativo onde os detalhes são
perdidos.
• Transferidos de um meio de armazenamento para outro de alta performance,
como do DASD para um meio de armazenamento em massa.
• Efetivamente eliminados do sistema.
• Transferidos de um nível de arquitetura para outro, como do nível
operacional para o nível de data warehouse.
Instantâneos
A interação básica de negócios, que faz com que o DW se torne povoado por
dados, pode ser chamada de interação “EVENTO -> INSTANTÂNEO”. Em uma
interação “EVENTO -> INSTANTÂNEO”, algum evento de negócio dispara um
instantâneo de dados (normalmente no ambiente operacional), que por sua vez é
movido para o ambiente de DW.
Existem dois tipos de evento de negócio que podem disparar um instantâneo:
• Evento gerado pela atividade: um exemplo pode ser a concretização de uma
venda, a entrada de um item no estoque, a realização de uma chamada
telefônica ou a entrada de uma carga.
• Evento gerado pelo tempo: Um exemplo pode ser o final do dia, o final da
semana, ou o final de mês.
Erros na implantação de um DW
O Data Warehousing Institute [10] aponta os dez erros mais comuns na
implantação de um DW:
1. Começar o projeto com o tipo errado de patrocínio.
2. Gerar expectativas que não podem ser satisfeitas, frustrando os executivos
quando da utilização do DW.
3. Dizer: “Isto vai ajudar os gerentes a tomar decisões melhores” e outras
informações politicamente ingênuas.
4. Carregar o DW com informações só “porque estavam disponíveis” .

13
5. Falhar no objetivo de acrescentar valor ao dada por meio de mecanismos de
desnormalização, categorização e navegação assistida.
6. Escolher um gerente que seja voltado para a tecnologia e não para o usuário.
7. Focalizar em dados tradicionais internos orientados a registro e ignorar o valor
potencial de dados textuais, imagem, som, vídeo e dados externos.
8. Fornecer dados com definições confusas e sobrepostas.
9. Acreditar nas promessas de desempenho, capacidade e escalabilidade dos
vendedores de produtos.
10. Usar o DW como justificativa para modelagem de dados e uso de ferramentas
case.
Povoando um data warehouse
A extração, limpeza, transformação e migração de dados dos sistemas
existentes na empresa para o DW 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 da integridade dos
dados num ambiente caracterizado pela derivação e replicação de informações.
O grande desafio por trás da alimentação de dados das fontes para o DW não é
técnico, mas gerencial. Muitos dos processos envolvidos – como mapeamento,
integração e avaliação da qualidade – ocorrem de fato durante a fase de análise e
projeto. Especialistas afirmam que identificar fontes, definir regras de transformação,
detectar e resolver questões de qualidade e integração consome cerca de 80% do
tempo de projeto. Embora algumas ferramentas possam ajudar a detectar problemas
na qualidade dos dados e gerar programas de extração, a maioria das informações
necessárias 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 sobre
as 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 outras
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.
Os processos associados à migração de dados das fontes para o DW incluem
extração de dados, limpeza, transformação e carga do DW.
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 então se
fará a extração. Como desvantagem desta solução, pode-se 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 DW podem ser incorporados a um ponto apropriado do esquema de
processamento.
14
Transformação e filtros
Os processos de transformação invocam as regras que convertem valores de
dados das fontes para valores do ambiente global e integrado do DW. Algumas
ferramentas permitem ao usuário controlar a maioria das atividades de exportação e
transformação por meio de parâmetros e “scripts”, constituindo uma filtragem
avançada. Outras ferramentas atuam como shells onde programas específicos de
extração e filtragem são inseridos.
Incorporando modificações
Sempre que modificações relevantes são feitas nas fontes de informações, estes
novos dados são extraídos e traduzidos para o modelo de dados do DW, onde são
integrados com os já existentes.
A detecção e extração das modificações dependem das facilidades disponíveis
pela fonte. Se esta fonte dor sofisticada, como um SGBD relacional que possui triggers,
este processo é relativamente fácil. No entanto, em muitos casos a fonte não dispõe de
recursos avançados para detecção e captura das modificações (sistemas herdados,
por exemplo). Neste casos existem basicamente três alternativas para detectar e extrair
modificações:
1. A aplicação que utiliza a fonte de informação é alterada de modo a enviar
notificações de alteração para o DW. Esta alternativa requer que o código
existente seja modificado. No entanto, na maioria dos casos essa opção é
impraticável devido à complexidade do código e grande tempo necessário
para sua alteração.
2. O arquivo de log do sistema é analisado de modo a obter as modificações
relevantes. O problema com esta alternativa é que, normalmente, são
necessários privilégios de DBA para acessar o log e muitos administradores
relutam em prover este acesso pois coloca em risco a segurança do sistema.
3. As modificações são determinadas por meio da comparação do dump
corrente da fonte com um anterior. O problema com esta alternativa é que ela
não é muito escalonável, ou seja, à medida que os dados das fontes
aumentam é necessário um número muito maior de comparações. Deste
modo, torna-se absolutamente necessário implementar este algoritmo do
modo mais eficiente possível.
OLAP
OLAP sempre envolve consultas interativas aos dados, seguindo um caminho de
análise por meio de múltiplos passos, como por exemplo, aprofundar-se
sucessivamente por níveis mais baixos de detalhe de um quesito de informação
específico. Envolve capacidades analíticas, incluindo a derivação de taxas, variâncias e
outras, envolvendo medidas ou dados numéricos por meio de muitas dimensões,
devendo suportar modelo de previsões, análises estatísticas e de tendências.
Dois tipos de processos são bastante comuns em aplicações OLAP:
• Slice and Dice: corresponde à técnica de mudar a ordem das dimensões
mudando assim a orientação segundo a qual os dados são visualizados.
Embora os dados permaneçam os mesmos, a mudança de orientação
permite ao usuário investigar diferentes inter-relacionamentos entre eles.
• Drill Down: consiste em permitir ao usuário “descer” pelas hierarquias das
dimensões: é comum o usuário iniciar pelo nível resumido (tal como vendas

15
nacionais, por marca) e então seletivamente obter níveis de detalhe
adicionais para seguir e explicar uma observação feita no nível resumido.
Conclusão
As organizações atuais, tanto nacionais como multinacionais, estão sempre
procurando vantagens competitivas. Sabe-se que a informação é a chave para se
ganhar tal vantagem. O problema é entender como as montanhas de dados que estão
nos sistemas operacionais irão ajudar para tal.
Nesse cenário, surge o DW como uma alternativa de transformar tais dados em
informações que irão ajudar a identificar as oportunidades para obtenção dessas
vantagens.
Bibliografia
[1] Corey, M., Abbey, M., Abramson, I., Taub, B. Oracle 8i - Data Warehouse. Campus,
2001.
[2] Gonçalves, M. Extração de Dados para Data Warehouse. Axcel Books, 2003.
[3] Inmon, W.H.. Terdeman, R. H., Imjoff, C. Data Warehousing: como transformar
informações em oportunidades de negócio. Berkeley, 2001.
[4] Inmon, W.H. Como Construir o Data Warehouse. Campus, 1997.
[5] Inmon, W.H., Welch, J. D., Glassey, K. L. Gerenciando Data Warehouse. Makron
Books, 1999.
[6] Kimball, R. Data Warehouse Toolkit. Makron Books, 1998.
[7] Kimball, R., Merz, R. Data Webhouse: construindo o data warehouse para a Web.
Campus, 2000.
[8] Pinheiro, Carlos A. R. WEB Warehousing, Extração e Gerenciamento de Dados na
Internet. Axcel Books, 2003.
[9] Thomsen, E. OLAP: Construindo sistemas de informações multidimensionais.
Campus, 2002.
[10] Singh, H. S. Data Warehouse: conceitos, tecnologias, implantação e
gerenciamento. Makron Books, 2001.

16

You might also like