03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais

1/24 msdn.microsoft.com/pt-br/librar/cc518031.asp
Fundamentos e Modelagem de Bancos de
Dados Multidimensionais
20 de 23 pessoas classificaram isso como til  Avalie este tópico
Publicado em: 4 de outubro de 2007
Por Alexandre Ricardo Nardi
­Arquiteto de Soluções
Microsoft Brasil
Contedo
Nesta página
Introdução 
Fundamentos de Sistemas Analíticos 
Sistemas Transacionais X Sistemas Analíticos 
Data Warehouses e Data Marts 
Bancos de Dados Multidimensionais 
Modelos de Dados Multidimensionais 
Alguns Conceitos 
Estrela e suas Variações 
Snowflake e suas Variações 
Conclusão 
Referências 
Resumo: Este artigo apresenta estruturas de indexação para bancos de dados multidimensionais, as Árvores Bitmap,
comparando com as estruturas usadas para bancos de dados relacionais. Então percorremos diversas opções para modelagem de
dados multidimensionais, incluindo os Modelos Estrela e Snowflake e suas variações.
Introdução
A utilização de Sistemas Gerenciadores de Bancos de Dados Relacionais (SGBDRs) é prática consolidada mundialmente. Os
dados precisam poder ser armazenados e recuperados geralmente em intervalos curtos de tempo, em situações não triviais tais
como:
Situações de alta concorrência, por vezes de milhares de acessos simultâneos, que precisam ser gerenciados em
ambientes transacionais;
Grandes web sites que, além dos requisitos de desempenho, necessitam cuidados especificamente com relação à
segurança dos dados;
Aplicações analíticas, baseadas em históricos de anos, para apoio a decisões gerenciais e estratégicas.
As estruturas de dados e mecanismos de indexação utilizados por esses SGBDRs atendem bem às duas primeiras situações.
Todavia, as aplicações analíticas possuem peculiaridades tais como manipulação de grandes volumes de dados e baixa taxa de
atualização. Essas características favorecem outro modelo estrutural, mais eficiente e por vezes mais econômico, no tocante a
espaço de armazenamento.
Conhecendo as estruturas de dados, a compreensão das alternativas de modelagem de dados multidimensional, base dos
sistemas analíticos, fica facilitada.
Neste texto abordaremos as principais diferenças entre sistemas transacionais e analíticos, bem como algumas estruturas de
indexação comumente utilizadas para cada tipo. Apresentaremos, ainda, considerações importantes quanto à modelagem de
dados multidimensional, incluindo os modelos estrela e snowflake e suas variações.
Inicio da pagina 
Fundamentos de Sistemas Analticos
Nos ltimos anos o termo Business Intelligence (BI) tem sido largamente utilizado no mercado como sinônimo de sistemas
analíticos, OLAP, cubos, entre outros. Embora essas denominações possam estar associadas entre si, são conceitualmente
03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais
2/24 msdn.microsoft.com/pt-br/librar/cc518031.asp
distintas.
A rigor, Business Intelligence pode ser obtido por qualquer artefato, seja tecnológico ou não, que permita a extração de
conhecimento a partir de análises do negócio. Por razões óbvias, a efetividade destas análises será maior se os dados estiverem
disponíveis de modo consistente e, preferencialmente, consolidado. Este é um dos objetivos dos Data Warehouses.
Soluções informatizadas de BI geralmente contém sistemas analíticos, que podem ser de diversos tipos, dependendo do
objetivo das análises e do perfil do usuário, conforme ilustrado na Figura 1:
Decision Support Systems (DSS), ou Sistemas de Apoio a Decisão: são baseados em relatórios analíticos, normalmente
utilizados por usuários de nível operacional;
Management Information Systems (MIS), ou Sistemas de Informações Gerenciais: permitem análises mais profundas,
com a realização de simulações de cenários. Por vezes, utilizam­se de ferramentas de Data Mining para identificação de
cruzamentos não triviais. São utilizados por analistas de negócio no nível tático;
Executive Information Systems (EIS), ou Sistemas de Informações Executivas: são voltados para profissionais que
atuam no nível estratégico das empresas, como diretores e presidência. Oferecem, para tanto, um conjunto de
indicadores chave de desempenho (KPI, ou Key Performance Indicators).
Figura 1: alguns tipos de sistemas analticos.
O afinamento da pirâmide indica quantidades menores e mais especficas de usuários para cada sistema.
Independentemente do tipo de sistema analítico, este difere substancialmente dos sistemas transacionais de produção. A
seguir, apresentaremos tais diferenças, bem como os conceitos envolvidos.
Inicio da pagina 
Sistemas Transacionais X Sistemas Analticos
Sistemas transacionais, também conhecidos como sintéticos ou ainda OLTP  Online Transactional Processing ­ são aqueles
que, como o nome sugere, baseiam­se em transações. Alguns exemplos deste tipo de sistemas são:
Sistemas Contábeis;
Aplicações de Cadastro;
Sistemas de Compra, Estoque, Inventário;
ERPs, CRMs.
Os sistemas transacionais se caracterizam pela alta taxa de atualização, grande volumes de dados e acessos pontuais, ou seja,
pesquisas cujo resultado seja de pequeno volume (até milhares de linhas, mas preferencialmente menos).
Já os sistemas analíticos, ou OLAP  Online Analytical Processing  se caracterizam por fornecer subsídio para tomadas de
03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais
3/24 msdn.microsoft.com/pt-br/librar/cc518031.asp
decisão, a partir de análises realizadas sobre bases de dados históricas, por vezes com milhões de registros a serem totalizados.
Alguns exemplos de sistemas analíticos são os ilustrados na Figura 1.
A Tabela 1 sintetiza as principais diferenças entre sistemas transacionais e analíticos:
Tabela 1: Comparação entre sistemas transacionais e analticos.
Caracterstica Sistemas Transacionais(OLTP) Sistemas Analticos(OLAP)
Conforme ilustrado na tabela acima, o fato dos sistemas transacionais refletirem a situação atual de um determinado tipo de
dado conduz todas as demais características, como:
A realização de atualizações freqentemente, mantendo os dados atuais;
Informação detalhada com a maior granularidade possível (consistência microscópica);
Pesquisas pontuais, portanto de baixa complexidade, no tocante ao negócio (do ponto de vista técnico, a pesquisa pode
ser bem elaborada).
Do mesmo modo, o fato das análises serem realizadas sobre dados históricos leva às seguintes características:
Uma vez que os dados são históricos, as atualizações não precisam ser tão freqentes. Por exemplo, numa comparação
entre a produtividade de três filiais de uma empresa para um determinado produto nos últimos quatro meses, por mês, o
dia de hoje ou mesmo ontem não é, em geral, de grande representatividade;
As análises geralmente agrupam informações, sendo tais agrupamentos mais importantes neste contexto do que os
dados detalhados. No exemplo do item anterior, o importante é a produção conjunta mensal, e não a produção de uma
unidade particular do produto analisado.
Os diferentes tipos de sistemas também sugerem diferentes abordagens técnicas, seja na forma de armazenamento ou de busca.
No caso dos sistemas transacionais, que exigem acesso rápido aos dados, principalmente no tocante a modificações, a
utilização de índices estruturados como árvores balanceadas, ou B­Trees, é adequada. No entanto, essa estrutura não é a mais
recomendada para sistemas analíticos, onde as atualizações são esporádicas, mas as consultas envolvem grandes conjuntos de
dados e devem ser muito rápidas. Outra estrutura de dados, denominada árvore PATRICIA, é mais adequada neste contexto. As
próximas duas seções descrevem o funcionamento dessas duas estruturas.
Árvores Balanceadas (B­Trees)
Este tipo de árvore, empregada por vários SGBDRs comerciais ou não, possui a denominação balanceada pelo fato das folhas
estarem praticamente à mesma distância da raiz, podendo diferir em apenas um nível. A Figura 2 ilustra uma árvore
balanceada:
Atualizações Mais freqentes Menos freqentes
Tipo de Informação Detalhes Agrupamento
Quantidade de Dados Poucos Muitos
Precisão Dados atuais Dados históricos
Complexidade Baixa Alta
Consistência Microscópica Global
Exemplos CRM, ERP, Supply Chain MIS, DSS, EIS
Terminologia Linhas e Colunas Dimensões, Medidas e Fatos
03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais
4/24 msdn.microsoft.com/pt-br/librar/cc518031.asp
Figura 2: exemplo de árvore balanceada.
A figura acima mostra uma busca na árvore, que pode ser realizada de modo eficiente. O fato da árvore acima ser binária é mera
coincidência. Vale notar que uma inserção neste tipo de árvore pode ser realizada com pequena quantidade de operações,
conforme ilustrado na Figura 3. Essas operações denominam­se rotações, e visam a manutenção da árvore como balanceada.
Nos dois casos, a inserção foi realizada em g, de modo a desbalancear a árvore. As rotações sugeridas reparam a situação.
Figura 3: inserçes em árvores balanceadas.
Árvores PATRICIA
Concebido por Donald. R. Morrison (1) e descrito em (2), PATRICIA é um algoritmo para realização de buscas em árvores com
as chaves dos nós representadas em binário, sem armazenar as chaves nos nós. O nome é um acrônimo de Practical Algorithm
03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais
5/24 msdn.microsoft.com/pt-br/librar/cc518031.asp
To Retrieve Information Coded In Alphanumeric, e o método é particularmente útil para tratamento de chaves de tamanho
variável extremamente longas, tais como títulos e frases. No caso de pesquisas analíticas, os dados podem tirar proveito deste
método desde que as informações sejam armazenadas como cadeias de texto.
Uma restrição dessas árvores é a necessidade de não haver um elemento que seja prefixo de outro, o que pode facilmente ser
obtido se necessário.
Em nosso exemplo, utilizaremos a codificação apresentada na Tabela 2 para as letras de A a Z:
Tabela 2: representaão binária das letras do alfabeto.
Caractere Representaão Decimal Representaão Binária
<espaço> 0 00000
A 1 00001
B 2 00010
C 3 00011
D 4 00100
E 5 00101
F 6 00110
G 7 00111
H 8 01000
I 9 01001
J 10 01010
K 11 01011
L 12 01100
M 13 01101
N 14 01110
O 15 01111
P 16 10000
Q 17 10001
R 18 10010
S 19 10011
T 20 10100
03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais
6/24 msdn.microsoft.com/pt-br/librar/cc518031.asp
O caractere <espaço> é utilizado como separador entre as palavras.
A Tabela 3 ilustra a representação binária da frase ESTE FOI UM ESTUDO DE ARVORE PATRICIA:
Tabela 3: representaão em binário das palavras do exemplo.
A partir da frase acima é possível construir a árvore PATRICIA ilustrada na Figura 4:
U 21 10101
V 22 10110
W 23 10111
X 24 11000
Y 25 11001
Z 26 11010
03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais
7/24 msdn.microsoft.com/pt-br/librar/cc518031.asp
Figura 4: árvore PATRICIA.
As setas tracejadas indicam um ancestral do n corrente, e as setas Cheias indicam seus descendentes.
Cada nó da árvore possui as seguintes informações:
KEY: um ponteiro para o início da palavra no texto original. Por exemplo, ao invés do texto (ESTUDO), o nó
deveria conter 13, que é a posição na frase do início da palavra;
LLINK e RLINK: ponteiros representando zero e um, respectivamente. Mais detalhes no exemplo de busca na árvore a
seguir;
LTAG e RTAG: campos binários indicando se LLINK e RLINK, nesta ordem, são ponteiros para nós ancestrais (valor
um, representado pelas setas tracejadas na Figura 4) ou descendentes (valor zero, correspondente às setas cheias na
Figura 4). Por convenção, um nó pode ser ancestral de si mesmo;
SKIP: o número de bits que podem ser pulados durante uma busca. O exemplo de busca a seguir ilustra esse conceito.
A raiz da árvore contém apenas KEY, LLINK e LTAG.
Busca em Árvores PATRICIA
O algoritmo de busca é relativamente simples. Ilustraremos aqui dois casos:
1.  Busca por um elemento presente na árvore: procura pela palavra FOI (em binário, 00110 01111 01001)
A busca inicia no nó à esquerda da raiz, (UM). O campo SKIP pede para analisarmos o bit 1. Se valer 0,
procura à esquerda. Se valer 1, procura à direita. No exemplo, seguimos para a esquerda;
Estando no nó (ARVORE), o campo SKIP = 2 somado aos SKIPs anteriores, ou 1 + 2, pede para analisar o bit
03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais
8/24 msdn.microsoft.com/pt-br/librar/cc518031.asp
3 do texto sendo procurado. Como vale 1, procura à direita;
Estando no nó (FOI), o campo SKIP pede para analisar o bit 4. Como vale 1, segue à direita;
Como o nó corrente não mudou, testa o valor da chave para saber se encontrou. Esse teste é importante, uma vez
que o padrão 0x11x xxxxx xxxxx foi encontrado. Uma busca pelo texto FUI também terminaria no mesmo
padrão.
2.  Busca por todos os elementos que começam com uma cadeia. Por exemplo, busca por todos os elementos que comecem
por EST (em binário, 00101 10011 10100):
A busca procede da mesma forma que a anterior, até o momento em que tenta­se comparar bit inexistente (16º
bit) no texto procurado (15 bits);
Nesse ponto, compara­se o texto procurado com o elemento corrente ­ (ESTUDO). Se encontrou, então o
mesmo padrão também está presente nos descendentes e ancestrais deste nó, devendo ser então comparados.
Construão de Árvores PATRICIA
Este algoritmo funciona da seguinte forma:
1.  A raiz da árvore contém a primeira palavra lida, conforme a Figura 5;
2.  A partir daí, para cada novo elemento, fazemos duas buscas:
A primeira para procurar a provável localização do elemento. Considerando todos os elementos distintos, essa
busca sempre será mal­sucedida;
Na posição encontrada na primeira busca, determina­se quantos bits coincidem com o elemento novo;
Daí, faz­se nova busca para encontrar precisamente a posição a inserir o novo elemento.
A seqüência de figuras a seguir ilustra a construção da árvore da Figura 4:
03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais
9/24 msdn.microsoft.com/pt-br/librar/cc518031.asp
Figura 5: seqência de figuras ilustrando a construção de uma árvore PATRICIA.
A árvore completa está na Figura 4.
Embora seja uma estrutura de dados muito eficiente no que diz respeito a buscas, executando em tempos O(lgN), onde N é o
nmero de elementos da árvore, o custo de atualizações é grande, inviabilizando seu uso para aplicações transacionais.
Inicio da pagina 
03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais
10/24 msdn.microsoft.com/pt-br/librar/cc518031.asp
Data Warehouses e Data Marts
Esses dois conceitos comumente se associam ao uso de aplicações analíticas.
Um Data Warehouse é uma base de dados, geralmente relacional, que consolida as informações empresariais. Sua construção
(3) é um processo normalmente moroso e complexo, por diversos fatores, dentre os quais a grande quantidade de dados,
diversas fontes de informações com bases heterogêneas e muitas vezes inconsistentes, envolvimento de várias áreas ou
departamentos da empresa. Um dos maiores desafios na construção do DW é a extração e consolidação dos dados
operacionais, pois:
Pode haver várias fontes;
Os dados precisam ser limpos;
A granularidade precisa ser ajustada;
Pode ser necessário resumir dados;
Deve haver valores default e tratamento de NULL;
É necessário componente temporal;
Os relacionamentos nos dados de entrada precisam ser claros.
Algumas situações comuns entre as fontes de dados:
Mesmos dados, nomes diferentes;
Dados diferentes, mesmo nome;
Dados exclusivos de uma aplicação;
Chaves diferentes, mesmos dados.
Como métodos de construção, existem formalmente dois:
Top­down, no qual é realizada a modelagem integral do DW, seguida pelas extrações de dados. A principal vantagem é
a criação de um modelo nico. O revés fica por conta do maior tempo de projeto;
Bottom­up, onde o foco é em uma área por vez, com o crescimento gradual do DW. A vantagem é a obtenção de
resultados a intervalos mais curtos, garantindo muitas vezes sustentação ao projeto. A desvantagem é a maior
dificuldade de se consolidar informações entre as diversas áreas.
Uma alternativa às estratégias acima, denominada Middle­out, é aproveitar as vantagens de cada uma por meio do
desenvolvimento iterativo do DW:
1.  O modelo de dados corporativo é o primeiro a ser desenvolvido e é o responsável pela integração dos demais;
2.  As primeiras tabelas da área de interesse escolhida são povoadas: primeiras análises;
3.  Povoamento de mais tabelas com dados históricos;
4.  Alguns dados passam a compor o DW, saindo da base operacional;
5.  Surgimento dos data marts (a seguir nesta seção);
6.  O ciclo se repete até que o DW esteja completo. Bases de produção contêm apenas dados operacionais.
Outro fator crítico para o sucesso de um DW é o gerenciamento do volume. Embora o conceito de DW se aplique a grandes
quantidades de dados, chegando atualmente a ordem de TB, sua capacidade não é infinita, devendo ser utilizada sabiamente.
Apenas dados relevantes deveriam constar do DW. Pode ser que o horário de uma determinada transação seja importante
quando o foco for o curto prazo, mas que apenas um contexto de agrupamento seja suficiente para dados de cinco anos atrás.
Questões como essa devem ser consideradas durante o planejamento do DW, pois ajudam a dimensioná­lo.
A remoção de dados do DW é um assunto tratado com receio pelos DBAs e pelos analistas de negócio. A rigor, tão importante
quanto saber que dados armazenar, é saber quando e quais dados remover do DW. Algumas estratégias são:
03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais
11/24 msdn.microsoft.com/pt-br/librar/cc518031.asp
esumir dados mais antigos;
Armazenar os dados antigos em meio mais barato (fita);
Remover os dados do DW.
Tais estratégias não são excludentes, podendo ser utilizadas em conjunto.
A importância da remoção de dados está em manter o DW o mais enxuto possível, embora isso possa parecer contraditório ao
conceito de DW.
Com relação à granularidade, as bases de dados operacionais trabalham com o maior nível de detalhe possível, ou seja, a maior
granularidade. Já no DW pode haver diversos graus de agregação e resumo dos dados. Por exemplo, os dados do ano corrente
podem ser detalhados por item de pedidos, de um a cinco anos, por total de cada pedido e, após isso, por total de pedidos por
dia. A correta determinação da granularidade exerce papel fundamental no planejamento de capacidade e desempenho do DW.
Ao contrário do que ocorre com as bases operacionais, o DW, por conter dados históricos, não demanda alta taxa de
atualização. Desse modo, pode ser atualizado a cada 24 horas ou até mesmo uma vez por semana. Além disso, por sofrer poucas
modificações, e de forma controlada (por aplicações específicas para esse fim), seus relacionamentos podem ser implementados
através de entidades, embora isso não seja freqente.
Embora consolide as informações da empresa, mesmo que de modo iterativo, os DWs são geralmente armazenados em bancos
de dados relacionais, e não se utilizam de estruturas tais como as árvores PATRICIA. Neste ponto surgem os Data Marts (DM),
bancos de dados multidimensionais específicos por área de negócio para realização de análises. Alguns conceitos sobre Data
Marts não estão muito bem claros para o mercado. O processo de construção de um DW e de DMs, ilustrado na Figura 6, ajuda
a esclarecer alguns deles:
Figura 6: etapas da construão de um DW e de DMs.
Como pode ser notado na figura acima, um DW construído iterativamente possui porções agrupadas por segmento de negócio,
região ou qualquer outra forma que seja adequada à empresa. Essas porções alimentam os Data Marts, que podem ser então
consultados por ferramentas de análise.
Inicio da pagina 
Banco de Dado Mlidimenionai
A finalidade de bases de dados multidimensionais (alguns autores chamam de dimensionais) é fornecer subsídio para
realização de análises. Para tanto, sua arquitetura e até mesmo a terminologia empregada são distintas das utilizadas para
bancos de dados transacionais.
03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais
12/24 msdn.microsoft.com/pt-br/librar/cc518031.asp
O fato de existirem diversas informaçes a serem cruzadas (dimenses) permite a realização de pesquisas tais como a ilustrada
na Figura 7:
Figura 7: eemplo de pesquisa multidimensional.
Terminologia
As análises sobre dados históricos envolvem uma série de possibilidades de cruzamentos e agrupamentos de informaçes, com
o uso dos seguintes termos:
Dimenses: estabelecem a organização dos dados, determinando possíveis consultas/cruzamentos. Por exemplo:
região, tempo, canal de venda,... Cada dimensão pode ainda ter seus elementos, chamados membros, organizados em
diferentes níveis hierárquicos. A dimensão tempo, por exemplo, pode possuir duas hierarquias: calendário gregoriano
(com os níveis ano, mês e dia) e calendário fiscal (com os níveis ano, semana e dia);
Medidas: são os valores a serem analisados, como médias, totais e quantidades;
Fatos: são os dados a serem agrupados, contendo os valores de cada medida para cada combinação das dimenses
existentes. O tamanho da tabela que contém os fatos merece atenção especial do analista;
Agregaçes: totalizaçes calculadas nos diversos níveis hierárquicos.
A criação de DMs implica na geração de agregaçes. Este processamento se reflete em ganho de desempenho quando da
realização de consultas.
Alicerce Relacional
Diversas ferramentas analíticas, também chamadas ferramentas de OLAP, operam sobre bases de dados multidimensionais
armazenadas em SGBDRs. Além disso, as agregaçes são também mantidas em banco de dados relacional.
Esta forma de armazenamento é conhecida como ROLAP, ou Relational OLAP. Uma vez que os dados já se encontram em um
modelo apropriado, chamado multidimensional (veja opçes de modelagem nas próximas seçes), basta processar as
agregaçes. Com isso obtém­se ganho de espaço de armazenamento, uma vez que os dados permanecem apenas na base de
origem (multidimensional), embora a criação de grandes quantidades de agregaçes possa incorrer em explosão de dados.
Alicerce em Cubos
Outra forma de armazenamento, cujo modelo matemático denomina­se hipercubos, apresenta a característica de possuir
armazenamento e indexação em estruturas de dados que otimizam consultas ao invés de atualizaçes, como é o caso das
árvores PATRICIA.
Esta forma é erroneamente chamada MOLAP, ou Multidimensional OLAP. O erro está no fato de que bases ROLAP também
são multidimensionais.
Quando o modelo multidimensional é processado, nova base é gerada, desta vez contendo tanto os dados quanto as
agregaçes em formato próprio, utilizando­se de estruturas apropriadas para pesquisas.
03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais
13/24 msdn.microsoft.com/pt-br/librar/cc518031.asp
A Figura 8 ilustra uma representação de um cubo com três dimensões:
Figura 8: representação de um cubo com as dimenses Produto, Região e Tempo.
Embora o risco de explosão de dados seja comum em estruturas relacionais por conta de cruzamentos sem dados, mas que
ocupam algum espaço, as estruturas utilizadas pelos cubos são esparsas, e se aplicam a dados e agregações, de modo que os
cubos são substancialmente menores do que a base multidimensional que o originou.
Inicio da pagina 
Modelo de Dado Mlidimenionai
A natureza do uso de bancos de dados multidimensionais torna sua modelagem distinta daquela utilizada para sistemas
transacionais. Neste último aplicamos técnicas de normalização seguidas por graus de desnormalização a fim de obter o
desempenho desejado ao reduzir o número de tabelas em junções (joins).
Vale lembrar que o número de planos de execução para uma junção de n tabelas é n!, isto é, para uma junção de 10 tabelas há
3.628.800 possibilidades. Embora o escalonador do SGBD possua estratégias para reduzir este número, é um ponto de atenção
a considerar. Já para o caso dos MDDBs, o grau de desnormalização é bem maior, dado o volume de dados e a agilidade na
consolidação de valores quando calculando as agregações.
Nesta seção, com trechos extraídos de (4) e (5), percorremos alguns conceitos importantes para a modelagem quanto à
representação de fatos, dimensões e quanto a chaves. Então descrevemos vários modelos de dados, sempre do ponto de vista
lógico. Portanto, os modelos que veremos serão sempre relacionais, independentemente do alicerce, relacional ou em cubos,
que pode ser utilizado para o modelo físico.
Inicio da pagina 
Algn Conceio
Quando o modelo de dados começa a ser definido, elementos básicos de representação precisam ter sido estabelecidos, de
modo a criar­se um padrão de modelagem. Em nosso modelo teremos as dimensões e fatos representados em tabelas, podendo
haver múltiplas dimensões e múltiplas tabelas de fatos.
Fatos
Ao modelar a(s) tabela(s) de fatos (ou apenas tabela fato), deve­se ter em mente os seguintes pontos:
A chave primária é composta, sendo um elemento da chave para cada dimensão;
Cada elemento chave para a dimensão deve ser representado e descrito na tabela dimensão correspondente (para
efetuar a junção);
A dimensão tempo é sempre representada como parte da chave primária.
Dimenses
03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais
14/24 msdn.microsoft.com/pt-br/librar/cc518031.asp
Deve haver uma tabela dimensão para cada dimensão do modelo, contendo:
Uma chave artificial (ou gerada) genérica;
Uma coluna de descrição genérica para a dimensão;
Colunas que permitam efetuar os filtros;
Um indicador NÍVEL que indica o nível da hierarquia a que se refere a linha da tabela.
A Figura 9 ilustra uma tabela para a dimensão Geografia, com os pontos acima representados. Note que a coluna nível
determina a hierarquia (Região/Estado/Cidade
Figura 9: exemplo de uma tabela de dimenso
Valores nulos irão existir em algumas colunas, dependendo do nível hierárquico para o qual a linha contenha valores. Esse é o
caso da coluna loja: como somente existem lojas nas cidades, e não nos estados ou regiões, a tabela fica com nulos,
conforme identificados pela região circundada na figura. Todavia, é tarefa do modelo físico reduzir o espaço ocupado pelos
nulos
A Dimenso Tempo
Esta é uma dimensão que praticamente todos os sistemas analíticos possuem, dada a característica de realização de análises em
dados históricos. Deveria conter:
Uma coluna chave para a junção com a(s) tabela(s) de fato(s);
Uma descrição genérica para cada período;
Colunas que permitam efetuar os filtros;
Coluna sinalizadora da presença de fatos para o período de tempo indicado na linha;
Coluna RESOLUÇÃO usada para restringir o período ao nível apropriado ­ opera de forma idêntica à coluna NÍVEL
das outras dimensões
Coluna SEQÜÊNCIA que contém um número seqüencial de 1 a n em cada nível do período de tempo e identifica a
ordem relativa de cada data. Permite:
Coluna SEQÜÊNCIA que contém um número seqüencial de 1 a n em cada nível do período de tempo e
identifica a ordem relativa de cada data. Permite:
Construções com cálculos de tempo, como últimos quatro dias, por exemplo.
A Figura 10 mostra um exemplo de tabela de dimensão tempo. Note que a descrição é o que aparecerá para os valores de uma
03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais
15/24 msdn.microsoft.com/pt-br/librar/cc518031.asp
determinada data ou período.
Figura 10: exemplo de uma tabela para a dimensão tempo
Consideraçes sobre Chaves
No tocante às chaves, sistemas analíticos devem contar com chaves artificiais, por uma série de motivos:
Qualquer atualização de dados fica simplificada. Por exemplo, um recadastramento de CPFs, embora improvável,
poderia resultar em atualização de grande volume para uma tabela de fatos de transações bancárias, caso o cliente fosse
identificado com CPF sendo chave;
Com uma única coluna para a chave, geralmente de tipo inteiro, o desempenho de pesquisas tende a ser melhor 
quanto menor o tamanho da chave, melhor o desempenho;
O fato de ser chave simples facilita a execução de junções.
Inicio da pagina 
Estrela e suas Variaçes
Uma das formas de apresentação de um banco de dados multidimensional é através do Modelo Estrela, apresentado por Ralph
Kimball (4). No centro da estrela encontra­se a tabela de fatos e, ao seu redor, as dimensões. Este modelo é apresentado na
Figura 11:
03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais
16/24 msdn.microsoft.com/pt-br/librar/cc518031.asp
Figa 11: Modelo Eela
É um modelo simples e eficiente, caracterizado por possuir uma nica tabela de fatos e chaves simples nas tabelas de
dimensões. Cada dimensão é representada por uma nica tabela.
Os pontos positivos deste modelo são a eficiência, dada pelo reduzido nmero de junções nas pesquisas e pelas chaves
simples, e a facilidade de definir hierarquias.
Os pontos negativos são o tamanho e a desnormalização das tabelas de dimensões.
Modelo Eela Pacial
É uma variação do Modelo Estrela, na qual existem várias tabelas fato e de dimensão separadas lógica e fisicamente por níveis
de sumarização.
Desse modo, os dados são particionados em granularidades distintas. Por haver várias tabelas fato, na prática existem várias
estrelas, cada uma representando uma combinação de níveis de agregação em cada dimensão. A Figura 12 apresenta uma parte
do modelo que ilustra esta variação.
03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais
17/24 msdn.microsoft.com/pt-br/librar/cc518031.asp
Figura 12: eemplo de duas estrelas no Modelo Estrela Parcial
Quando houver necessidade de novas agregaçes, basta criar outras tabelas com as granularidades desejadas, como ilustrado
na Figura 13.
03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais
18/24 msdn.microsoft.com/pt-br/librar/cc518031.asp
Figura 13: Modelo Estrela Parcial para composiçes de agregaçes
Os pontos positivos deste modelo são a maior economia de espaço, eliminando redundâncias e colunas que não têm sentido
para determinado nível de agregação e o melhor desempenho para consultas de nível específico de agregação.
Por outro lado, a complexidade do modelo é maior e as consultas que combinam níveis de agregação distintos são mais
elaboradas, podendo resultar em queda de desempenho.
Modelo Estrela com Particionamento de Fatos (ou Modelo Constelação de Fatos)
É uma variação do Modelo Estrela Parcial, na qual os fatos são particionados e as dimenses compartilhadas, conforme
ilustrado na Figura 14.
03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais
19/24 msdn.microsoft.com/pt-br/librar/cc518031.asp
Figura 14: Modelo Particionamento de Fatos
Quando comparado ao Modelo Estrela Parcial, este modelo é menos exigente quanto à sua manutenção, dado o
compartilhamento das tabelas de dimensão.
Modelo Estrela com Particionamento de Dimenses
Assim como o anterior, é uma variação do Modelo Estrela Parcial, porém com as dimenses particionadas, compartilhando a
tabela de fatos. A Figura 15 apresenta este modelo. Note que a tabela de fatos deve conter os seus dados na maior
granularidade que o modelo previr e também consolidados de acordo com os níveis mais altos.
03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais
20/24 msdn.microsoft.com/pt-br/librar/cc518031.asp
Figura 15: Modelo Particionamento de DImenses, para local e tempo. Note a granularidade da tabela de fatos.
Este modelo é particularmente útil quando houver dimensões com grande quantidade de elementos, como é o caso de SKUs de
produtos, por exemplo.
Inicio da pagina 
Snowflake e suas Variaçes
Os Modelos Snowflake acrescentam graus de normalização às tabelas de dimensões do Modelo Estrela, eliminando
redundâncias e a necessidade do indicador NÍVEL. A Figura 16 mostra o resultado da normalização das tabelas Produtos e
Lojas apresentadas na Figura 11. Observe a redução nas redundâncias, o que resulta em agilidade na manutenção. Apesar
disso, é um modelo que resulta em maior número de tabelas em junções, podendo haver queda de desempenho.
03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais
21/24 msdn.microsoft.com/pt-br/librar/cc518031.asp
Figura 16: Modelo Snowflake, aps normalização do Modelo Estrela da Figura 11
A seguir veremos três variações do Modelo Snowflake.
Modelo Snowflake Lookup
Neste modelo, ilustrado na Figura 17, as tabelas de dimensões são normalizadas, resultando na eliminação de redundâncias, o
que torna a manutenção mais ágil e o modelo mais consistente.
Aqui, criamos uma tabela principal para uma determinada dimensão, que referencia tabelas de busca (lookup), estas contendo
os nomes e descrições de campos.
Um cuidado extra com este modelo é o nmero de tabelas em junções, o que pode degradar o desempenho.
03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais
22/24 msdn.microsoft.com/pt-br/librar/cc518031.asp
Figura 17: parte do Modelo Snowflake Lookup, mostrando a normalizaão da tabela Clientes do modelo da Figura 16
Observe no diagrama acima, que a tabela de fatos foi deslocada para a esquerda e nem todas as dimensões estão representadas,
a fim de melhorar a visualização do modelo. Note que a tabela de dimensão PrincipalClientes possui apenas os dados de
cada cliente e chaves estrangeiras para outros elementos, sendo que a manutenção destes é feita de modo mais consistente ao
promover alterações apenas nas tabelas de busca (lookup).
Modelo Snowflake Chain
Este modelo encadeia as tabelas de dimensões começando com a tabela principal, que é o ponto de entrada para a tabela fato.
A tabela principal da dimensão contém a chave para o próximo nível da hierarquia da dimensão e assim por diante. Na Figura
16, a normalização da dimensão Produtos em diversos níveis é um exemplo deste modelo. Note que a tabela de fatos possui
indicação do nível mais baixo na hierarquia, referenciando a dimensão Produtos, e então as tabelas de dimensões Modelos
e Fabricantes percorrem os níveis mais altos.
A recomendação de uso deste modelo ocorre quando o nível de detalhe mais baixo está armazenado na tabela de fatos. A
contra­indicação, por sua vez, é para os casos em que a pesquisa requer vários níveis de sumarização da informação, já que são
necessários vários passos para recuperar as informações. A fim de melhorar o desempenho, uma sugestão é desnormalizar a
cadeia, inserindo as chaves de níveis mais altos nos níveis mais baixos.
Modelo Snowflake Attribute
Com o objetivo de reduzir o número de informações referentes a atributos nas tabelas de fatos, geralmente utilizados para
obtenção de detalhes (drillthrough), inserimos todos eles em uma tabela de atributos, conforme ilustrado pelas figuras a seguir.
03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais
23/24 msdn.microsoft.com/pt-br/librar/cc518031.asp
Figura 18: Modelo Snoflake, antes de separar os atributos
Figura 19: Modelo Snoflake Attribute
Outra utilidade deste modelo é a consolidação de informações sobre diversas pequenas dimensões que possuam poucos
campos (muitas vezes apenas a descrição) em uma nica tabela. Desse modo, o nmero de tabelas em junções pode ser
reduzido, melhorando o desempenho.
Inicio da pagina 
Concluso
03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais
24/24 msdn.microsoft.com/pt-br/librar/cc518031.asp
© 2012 Microsoft. Todos os direitos reservados.
O desenvolvimento de sistemas analíticos é cada vez mais comum. Embora haja ferramentas de diversos fornecedores, de nada
elas adiantam se a modelagem de dados e o paradigma analítico não forem compreendidos.
Neste artigo procuramos percorrer assuntos pouco divulgados e com pouca bibliografia. Abordamos as estruturas de dados
mais comumente encontradas em gerenciadores relacionais e analíticos: as B­Trees e as Árvores Bitmap. Ao conhecer um
pouco da estrutura que suporta as tecnologias, esperamos que o leitor possa escolher melhor e entender as características de
cada modelo de dados que desenvolver e suportar.
As opções de modelagem são várias e aqui ilustramos algumas que podem ser utilizadas de modo isolado ou ainda
combinadas, a fim de produzir modelos de dados multidimensionais que atendam a sua demanda.
Inicio da pagina 
Referncias
1.  PATRICIA  Practical Algorithm To Retrieve Information Coded In Alphanumeric. Morrison, Donald R. 4, 1968,
JACM, Vol. 15, pp. 514­534.
2.  Knuth, Donald E. The Art of Computer Programming. s.l. : Addison­Wesley, 1998. Vol. 3. ISBN 0­201­89685­0.
3.  Inmon, W H. Building the Data Warehouse. s.l. : John Wiley & Sons, 1998.
4.  Ferreira, Joo Eduardo, Italiano, Isabel Cristina and Takai, Osvaldo Kotaro. Introdução a Banco de Dados.
[Online] 2005. [Cited: 06 21, 2007.] http://www.ime.usp.br/~jef/apostila.pdf.
5.  Tanler, Richard. The Intranet Data Warehouse. s.l. : John Wiley & Sons, 1997.
6.  Kimball, Ralph. The Data Warehouse Toolkit. s.l. : John Wiley & Sons, 2000.
Inicio da pagina
Isso foi útil para você?  Sim  Não

03/02/12

Fundamentos e Modelagem de Bancos de Dados Multidimensionais

distintas. A rigor, Business Intelligence pode ser obtido por qualquer artefato, seja tecnológico ou não, que permita a extração de conhecimento a partir de análises do negócio. Por razões óbvias, a efetividade destas análises será maior se os dados estiverem disponíveis de modo consistente e, preferencialmente, consolidado. Este é um dos objetivos dos Data Warehouses. Soluções informatizadas de BI geralmente contém sistemas analíticos, que podem ser de diversos tipos, dependendo do objetivo das análises e do perfil do usuário, conforme ilustrado na Figura 1: Decision Support Systems (DSS), ou Sistemas de Apoio a Decisão: são baseados em relatórios analíticos, normalmente utilizados por usuários de nível operacional; Management Information Systems (MIS), ou Sistemas de Informações Gerenciais: permitem análises mais profundas, com a realização de simulações de cenários. Por vezes, utilizam­se de ferramentas de Data Mining para identificação de cruzamentos não triviais. São utilizados por analistas de negócio no nível tático; Executive Information Systems (EIS), ou Sistemas de Informações Executivas: são voltados para profissionais que atuam no nível estratégico das empresas, como diretores e presidência. Oferecem, para tanto, um conjunto de indicadores chave de desempenho (KPI, ou Key Performance Indicators).

Figura 1: alguns tipos de sistemas anal ticos. O afinamento da pirâmide indica quantidades menores e mais espec ficas de usuários para cada sistema.

Independentemente do tipo de sistema analítico, este difere substancialmente dos sistemas transacionais de produção. A seguir, apresentaremos tais diferenças, bem como os conceitos envolvidos. Inicio da pagina 

Sistemas Transacionais X Sistemas Anal ticos
Sistemas transacionais, também conhecidos como sintéticos ou ainda OLTP   Online Transactional Processing ­ são aqueles que, como o nome sugere, baseiam­se em transações. Alguns exemplos deste tipo de sistemas são: Sistemas Contábeis; Aplicações de Cadastro; Sistemas de Compra, Estoque, Inventário; ERPs, CRMs. Os sistemas transacionais se caracterizam pela alta taxa de atualização, grande volumes de dados e acessos pontuais, ou seja, pesquisas cujo resultado seja de pequeno volume (até milhares de linhas, mas preferencialmente menos). Já os sistemas analíticos, ou OLAP   Online Analytical Processing   se caracterizam por fornecer subsídio para tomadas de

msdn.microsoft.com/pt-br/librar /cc518031.asp

2/24

com/pt-br/librar /cc518031. no tocante ao negócio (do ponto de vista técnico. As próximas duas seções descrevem o funcionamento dessas duas estruturas. Árvores Balanceadas (B­Trees) Este tipo de árvore. por mês. ou B­Trees. denominada árvore PATRICIA. mas as consultas envolvem grandes conjuntos de dados e devem ser muito rápidas. o fato das análises serem realizadas sobre dados históricos leva às seguintes características: Uma vez que os dados são históricos. Caracter stica Atualizações Tipo de Informação Quantidade de Dados Precisão Complexidade Consistência Exemplos Terminologia Sistemas Transacionais(OLTP) Mais freq entes Detalhes Poucos Dados atuais Baixa Microscópica CRM. principalmente no tocante a modificações. a partir de análises realizadas sobre bases de dados históricas. é mais adequada neste contexto.asp 3/24 . onde as atualizações são esporádicas. e não a produção de uma unidade particular do produto analisado. DSS. numa comparação entre a produtividade de três filiais de uma empresa para um determinado produto nos últimos quatro meses. de grande representatividade; As análises geralmente agrupam informações. que exigem acesso rápido aos dados. o importante é a produção conjunta mensal. Os diferentes tipos de sistemas também sugerem diferentes abordagens técnicas. Por exemplo. Alguns exemplos de sistemas analíticos são os ilustrados na Figura 1. por vezes com milhões de registros a serem totalizados. Do mesmo modo. mantendo os dados atuais; Informação detalhada com a maior granularidade possível (consistência microscópica); Pesquisas pontuais. No entanto. é adequada. o dia de hoje ou mesmo ontem não é. Medidas e Fatos Conforme ilustrado na tabela acima. o fato dos sistemas transacionais refletirem a situação atual de um determinado tipo de dado conduz todas as demais características. a pesquisa pode ser bem elaborada). ERP. podendo diferir em apenas um nível.microsoft.03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais decisão. empregada por vários SGBDRs comerciais ou não. seja na forma de armazenamento ou de busca. a utilização de índices estruturados como árvores balanceadas. Supply Chain Linhas e Colunas Sistemas Anal ticos(OLAP) Menos freq entes Agrupamento Muitos Dados históricos Alta Global MIS. essa estrutura não é a mais recomendada para sistemas analíticos. No exemplo do item anterior. as atualizações não precisam ser tão freq entes. em geral. possui a denominação balanceada pelo fato das folhas estarem praticamente à mesma distância da raiz. como: A realização de atualizações freq entemente. Outra estrutura de dados. A Tabela 1 sintetiza as principais diferenças entre sistemas transacionais e analíticos: Tabela 1: Comparação entre sistemas transacionais e anal ticos. sendo tais agrupamentos mais importantes neste contexto do que os dados detalhados. portanto de baixa complexidade. A Figura 2 ilustra uma árvore balanceada: msdn. No caso dos sistemas transacionais. EIS Dimensões.

 sem armazenar as chaves nos nós. O fato da árvore acima ser binária é mera coincidência. de modo a desbalancear a árvore. que pode ser realizada de modo eficiente.03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais Figura 2: exemplo de árvore balanceada. Essas operações denominam­se rotações. Figura 3: inserç es em árvores balanceadas. Morrison (1) e descrito em (2).asp 4/24 . R. A figura acima mostra uma busca na árvore. a inserção foi realizada em g. conforme ilustrado na Figura 3.microsoft.com/pt-br/librar /cc518031. As rotações sugeridas reparam a situação. Nos dois casos. PATRICIA é um algoritmo para realização de buscas em árvores com as chaves dos nós representadas em binário. Árvores PATRICIA Concebido por Donald. e visam a manutenção da árvore como balanceada. Vale notar que uma inserção neste tipo de árvore pode ser realizada com pequena quantidade de operações. O nome é um acrônimo de  Practical Algorithm msdn.

 utilizaremos a codificação apresentada na Tabela 2 para as letras de  A  a  Z : Tabela 2: representa ão binária das letras do alfabeto.03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais To Retrieve Information Coded In Alphanumeric . e o método é particularmente útil para tratamento de chaves de tamanho variável extremamente longas. No caso de pesquisas analíticas. tais como títulos e frases.com/pt-br/librar /cc518031.asp 5/24 . o que pode facilmente ser obtido se necessário. Em nosso exemplo.microsoft. os dados podem tirar proveito deste método desde que as informações sejam armazenadas como cadeias de texto. Caractere <espaço> A B C D E F G H I J K L M N O P Q R S T Representa ão Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Representa ão Binária 00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001 10010 10011 10100 msdn. Uma restrição dessas árvores é a necessidade de não haver um elemento que seja prefixo de outro.

com/pt-br/librar /cc518031. A partir da frase acima é possível construir a árvore PATRICIA ilustrada na Figura 4: msdn.microsoft.03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais U V W X Y Z 21 22 23 24 25 26 10101 10110 10111 11000 11001 11010 O caractere <espaço> é utilizado como separador entre as palavras.asp 6/24 . A Tabela 3 ilustra a representação binária da frase  ESTE FOI UM ESTUDO DE ARVORE PATRICIA : Tabela 3: representa ão em binário das palavras do exemplo.

 O campo SKIP pede para analisarmos o bit 1. o campo SKIP = 2 somado aos SKIPs anteriores. O exemplo de busca a seguir ilustra esse conceito. No exemplo. procura à direita. correspondente às setas cheias na Figura 4).asp 7/24 . Ilustraremos aqui dois casos: 1. Cada nó da árvore possui as seguintes informações: KEY: um ponteiro para o início da palavra no texto original.com/pt-br/librar /cc518031. ao invés do texto  (ESTUDO) . Mais detalhes no exemplo de busca na árvore a seguir; LTAG e RTAG: campos binários indicando se LLINK e RLINK. respectivamente. 00110 01111 01001) A busca inicia no nó à esquerda da raiz. que é a posição na frase do início da palavra; LLINK e RLINK: ponteiros representando zero e um. e as setas Cheias indicam seus descendentes. ou 1 + 2. Por exemplo. nesta ordem.03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais Figura 4: árvore PATRICIA.  (UM) . são ponteiros para nós ancestrais (valor um.  Busca por um elemento presente na árvore: procura pela palavra  FOI  (em binário. A raiz da árvore contém apenas KEY. Busca em Árvores PATRICIA O algoritmo de busca é relativamente simples. LLINK e LTAG. As setas tracejadas indicam um ancestral do n  corrente. Se valer 0. representado pelas setas tracejadas na Figura 4) ou descendentes (valor zero. procura à esquerda. um nó pode ser ancestral de si mesmo; SKIP: o número de bits que podem ser pulados durante uma busca. seguimos para a esquerda; Estando no nó  (ARVORE) . o nó deveria conter 13. Por convenção.microsoft. Se valer 1. pede para analisar o bit msdn.

 faz­se nova busca para encontrar precisamente a posição a inserir o novo elemento. compara­se o texto procurado com o elemento corrente ­  (ESTUDO) . Esse teste é importante. fazemos duas buscas: A primeira para procurar a provável localização do elemento. testa o valor da chave para saber se encontrou.asp 8/24 . devendo ser então comparados. Constru ão de Árvores PATRICIA Este algoritmo funciona da seguinte forma: 1. Uma busca pelo texto  FUI  também terminaria no mesmo padrão. uma vez que o padrão  0x11x xxxxx xxxxx  foi encontrado. Se encontrou. até o momento em que tenta­se comparar bit inexistente (16º bit) no texto procurado (15 bits); Nesse ponto. para cada novo elemento.  A partir daí. o campo SKIP pede para analisar o bit 4. 2. Por exemplo. essa busca sempre será mal­sucedida; Na posição encontrada na primeira busca. segue à direita; Como o nó corrente não mudou. A seqüência de figuras a seguir ilustra a construção da árvore da Figura 4: msdn. determina­se quantos bits coincidem com o elemento novo; Daí. Como vale 1. busca por todos os elementos que comecem por  EST  (em binário. 00101 10011 10100): A busca procede da mesma forma que a anterior.  Busca por todos os elementos que começam com uma cadeia.com/pt-br/librar /cc518031. Como vale 1. procura à direita; Estando no nó  (FOI) .  A raiz da árvore contém a primeira palavra lida.03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais 3 do texto sendo procurado. conforme a Figura 5; 2. Considerando todos os elementos distintos. então o mesmo padrão também está presente nos descendentes e ancestrais deste nó.microsoft.

asp 9/24 . onde N é o n mero de elementos da árvore. o custo de atualizações é grande. inviabilizando seu uso para aplicações transacionais. Embora seja uma estrutura de dados muito eficiente no que diz respeito a buscas. A árvore completa está na Figura 4.03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais Figura 5: seq ência de figuras ilustrando a construção de uma árvore PATRICIA.microsoft. Inicio da pagina  msdn.com/pt-br/librar /cc518031. executando em tempos O(lgN).

A remoção de dados do DW é um assunto tratado com receio pelos DBAs e pelos analistas de negócio. O revés fica por conta do maior tempo de projeto; Bottom­up. Apenas dados relevantes deveriam constar do DW. mas que apenas um contexto de agrupamento seja suficiente para dados de cinco anos atrás. mesmo nome; Dados exclusivos de uma aplicação; Chaves diferentes. Um dos maiores desafios na construção do DW é a extração e consolidação dos dados operacionais. Algumas estratégias são: msdn.  Povoamento de mais tabelas com dados históricos; 4. Sua construção (3) é um processo normalmente moroso e complexo. envolvimento de várias áreas ou departamentos da empresa. Pode ser que o horário de uma determinada transação seja importante quando o foco for o curto prazo. A principal vantagem é a criação de um modelo  nico. diversas fontes de informações com bases heterogêneas e muitas vezes inconsistentes. mesmos dados. é saber quando e quais dados remover do DW. pois: Pode haver várias fontes; Os dados precisam ser limpos; A granularidade precisa ser ajustada; Pode ser necessário resumir dados; Deve haver valores default e tratamento de NULL; É necessário componente temporal; Os relacionamentos nos dados de entrada precisam ser claros.  Alguns dados passam a compor o DW.  O ciclo se repete até que o DW esteja completo.asp 10/24 . denominada Middle­out.  O modelo de dados corporativo é o primeiro a ser desenvolvido e é o responsável pela integração dos demais; 2. Embora o conceito de DW se aplique a grandes quantidades de dados.  As primeiras tabelas da área de interesse escolhida são povoadas: primeiras análises; 3. que consolida as informações empresariais. Como métodos de construção. Outro fator crítico para o sucesso de um DW é o gerenciamento do volume. saindo da base operacional; 5.  Surgimento dos data marts (a seguir nesta seção); 6. dentre os quais a grande quantidade de dados. seguida pelas extrações de dados. A vantagem é a obtenção de resultados a intervalos mais curtos. geralmente relacional. tão importante quanto saber que dados armazenar. existem formalmente dois: Top­down. A rigor. devendo ser utilizada sabiamente. pois ajudam a dimensioná­lo. Algumas situações comuns entre as fontes de dados: Mesmos dados. é aproveitar as vantagens de cada uma por meio do desenvolvimento iterativo do DW: 1. chegando atualmente a ordem de TB. nomes diferentes; Dados diferentes. A desvantagem é a maior dificuldade de se consolidar informações entre as diversas áreas. onde o foco é em uma área por vez. Bases de produção contêm apenas dados operacionais.03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais Da a Wa eho e  e Da a Ma Esses dois conceitos comumente se associam ao uso de aplicações analíticas. Questões como essa devem ser consideradas durante o planejamento do DW. por diversos fatores.microsoft. sua capacidade não é infinita. Uma alternativa às estratégias acima.com/pt-br/librar /cc518031. Um Data Warehouse é uma base de dados. garantindo muitas vezes sustentação ao projeto. no qual é realizada a modelagem integral do DW. com o crescimento gradual do DW.

 mesmo que de modo iterativo. sua arquitetura e até mesmo a terminologia empregada são distintas das utilizadas para bancos de dados transacionais. Já no DW pode haver diversos graus de agregação e resumo dos dados. Neste ponto surgem os Data Marts (DM). os dados do ano corrente podem ser detalhados por item de pedidos. região ou qualquer outra forma que seja adequada à empresa. os DWs são geralmente armazenados em bancos de dados relacionais. não demanda alta taxa de atualização. a maior granularidade. após isso. seus relacionamentos podem ser implementados através de entidades. o DW.com/pt-br/librar /cc518031. e de forma controlada (por aplicações específicas para esse fim). Além disso. Desse modo. embora isso possa parecer contraditório ao conceito de DW. Com relação à granularidade. A correta determinação da granularidade exerce papel fundamental no planejamento de capacidade e desempenho do DW.03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais esumir dados mais antigos; Armazenar os dados antigos em meio mais barato (fita); Remover os dados do DW. por total de cada pedido e. por total de pedidos por dia. um DW construído iterativamente possui porções agrupadas por segmento de negócio. bancos de dados multidimensionais específicos por área de negócio para realização de análises. por conter dados históricos. pode ser atualizado a cada 24 horas ou até mesmo uma vez por semana. de um a cinco anos. ilustrado na Figura 6. que podem ser então consultados por ferramentas de análise. Por exemplo.asp 11/24 . por sofrer poucas modificações. msdn. Essas porções alimentam os Data Marts. podendo ser utilizadas em conjunto. ou seja. ajuda a esclarecer alguns deles: Figura 6: etapas da constru ão de um DW e de DMs. A importância da remoção de dados está em manter o DW o mais enxuto possível. embora isso não seja freq ente. Tais estratégias não são excludentes. as bases de dados operacionais trabalham com o maior nível de detalhe possível. Alguns conceitos sobre Data Marts não estão muito bem claros para o mercado. Embora consolide as informações da empresa. Inicio da pagina  Banco  de Dado  M l idimen ionai A finalidade de bases de dados multidimensionais (alguns autores chamam de dimensionais) é fornecer subsídio para realização de análises. Como pode ser notado na figura acima. Ao contrário do que ocorre com as bases operacionais.microsoft. e não se utilizam de estruturas tais como as árvores PATRICIA. Para tanto. O processo de construção de um DW e de DMs.

 tempo. as agregaç es são também mantidas em banco de dados relacional. nova base é gerada. Uma vez que os dados já se encontram em um modelo apropriado.. semana e dia); Medidas: são os valores a serem analisados. embora a criação de grandes quantidades de agregaç es possa incorrer em explosão de dados. O tamanho da tabela que contém os fatos merece atenção especial do analista; Agregaç es: totalizaç es calculadas nos diversos níveis hierárquicos. pode possuir duas hierarquias: calendário gregoriano (com os níveis ano. Além disso. ou Relational OLAP. como é o caso das árvores PATRICIA. desta vez contendo tanto os dados quanto as agregaç es em formato próprio. A dimensão tempo. Terminologia As análises sobre dados históricos envolvem uma série de possibilidades de cruzamentos e agrupamentos de informaç es. Alicerce Relacional Diversas ferramentas analíticas.asp 12/24 . Cada dimensão pode ainda ter seus elementos. canal de venda. determinando possíveis consultas/cruzamentos. utilizando­se de estruturas apropriadas para pesquisas. msdn. Alicerce em Cubos Outra forma de armazenamento. O erro está no fato de que bases ROLAP também são multidimensionais. Por exemplo: região. Com isso obtém­se ganho de espaço de armazenamento. chamados membros.. A criação de DMs implica na geração de agregaç es. totais e quantidades; Fatos: são os dados a serem agrupados.com/pt-br/librar /cc518031. cujo modelo matemático denomina­se hipercubos. como médias.microsoft. Quando o modelo multidimensional é processado. também chamadas ferramentas de OLAP. Este processamento se reflete em ganho de desempenho quando da realização de consultas. Esta forma é erroneamente chamada MOLAP. Esta forma de armazenamento é conhecida como ROLAP. mês e dia) e calendário fiscal (com os níveis ano. por exemplo.. ou Multidimensional OLAP. apresenta a característica de possuir armazenamento e indexação em estruturas de dados que otimizam consultas ao invés de atualizaç es. basta processar as agregaç es. contendo os valores de cada medida para cada combinação das dimens es existentes. organizados em diferentes níveis hierárquicos. com o uso dos seguintes termos: Dimens es: estabelecem a organização dos dados. operam sobre bases de dados multidimensionais armazenadas em SGBDRs. uma vez que os dados permanecem apenas na base de origem (multidimensional). chamado multidimensional (veja opç es de modelagem nas próximas seç es).03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais O fato de existirem diversas informaç es a serem cruzadas (dimens es) permite a realização de pesquisas tais como a ilustrada na Figura 7: Figura 7: e emplo de pesquisa multidimensional.

 independentemente do alicerce. é um ponto de atenção a considerar. Embora o escalonador do SGBD possua estratégias para reduzir este número. Então descrevemos vários modelos de dados. Fatos Ao modelar a(s) tabela(s) de fatos (ou apenas tabela fato). podendo haver múltiplas dimensões e múltiplas tabelas de fatos. Portanto.com/pt-br/librar /cc518031. Já para o caso dos MDDBs. Inicio da pagina  Modelo  de Dado  M l idimen ionai A natureza do uso de bancos de dados multidimensionais torna sua modelagem distinta daquela utilizada para sistemas transacionais. percorremos alguns conceitos importantes para a modelagem quanto à representação de fatos. que pode ser utilizado para o modelo físico. as estruturas utilizadas pelos cubos são esparsas. relacional ou em cubos. Dimens es msdn. deve­se ter em mente os seguintes pontos: A chave primária é composta. Inicio da pagina  Alg n  Concei o Quando o modelo de dados começa a ser definido.microsoft. dado o volume de dados e a agilidade na consolidação de valores quando calculando as agregações.628. de modo que os cubos são substancialmente menores do que a base multidimensional que o originou. Embora o risco de explosão de dados seja comum em estruturas relacionais por conta de cruzamentos sem dados. mas que ocupam algum espaço.03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais A Figura 8 ilustra uma representação de um cubo com três dimensões: Figura 8: representação de um cubo com as dimens es Produto. Neste último aplicamos técnicas de normalização seguidas por graus de desnormalização a fim de obter o desempenho desejado ao reduzir o número de tabelas em junções (joins). o grau de desnormalização é bem maior. Em nosso modelo teremos as dimensões e fatos representados em tabelas.800 possibilidades. elementos básicos de representação precisam ter sido estabelecidos. de modo a criar­se um padrão de modelagem. sendo um elemento da chave para cada dimensão; Cada elemento chave para a dimensão deve ser representado e descrito na  tabela dimensão  correspondente (para efetuar a junção); A dimensão tempo é sempre representada como parte da chave primária. dimensões e quanto a chaves. Região e Tempo. Vale lembrar que o número de planos de execução para uma junção de n tabelas é n!.asp 13/24 . e se aplicam a dados e agregações. para uma junção de 10 tabelas há 3. com trechos extraídos de (4) e (5). sempre do ponto de vista lógico. Nesta seção. isto é. os modelos que veremos serão sempre relacionais.

 Esse é o caso da coluna  loja : como somente existem lojas nas cidades. Note que a coluna  nível determina a hierarquia (Região/Estado/Cidade Figura 9: exemplo de uma tabela de dimens o Valores nulos irão existir em algumas colunas. A Figura 10 mostra um exemplo de tabela de dimensão tempo. com os pontos acima representados. Todavia. Permite: Construções com cálculos de tempo. Note que a descrição é o que aparecerá para os valores de uma msdn. conforme identificados pela região circundada na figura. e não nos estados ou regiões. contendo: Uma chave artificial (ou gerada) genérica; Uma coluna de descrição genérica para a dimensão; Colunas que permitam efetuar os filtros; Um indicador NÍVEL que indica o nível da hierarquia a que se refere a linha da tabela.asp 14/24 . a tabela fica com nulos. Permite: Coluna SEQÜÊNCIA que contém um número seqüencial de 1 a n em cada nível do período de tempo e identifica a ordem relativa de cada data. A Figura 9 ilustra uma tabela para a dimensão  Geografia . dada a característica de realização de análises em dados históricos.com/pt-br/librar /cc518031.03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais Deve haver uma  tabela dimensão  para cada dimensão do modelo. é tarefa do modelo físico reduzir o espaço ocupado pelos nulos A Dimens o Tempo Esta é uma dimensão que praticamente todos os sistemas analíticos possuem. Deveria conter: Uma coluna chave para a junção com a(s) tabela(s) de fato(s); Uma descrição genérica para cada período; Colunas que permitam efetuar os filtros; Coluna sinalizadora da presença de fatos para o período de tempo indicado na linha; Coluna RESOLUÇÃO usada para restringir o período ao nível apropriado ­ opera de forma idêntica à coluna NÍVEL das outras dimensões Coluna SEQÜÊNCIA que contém um número seqüencial de 1 a n em cada nível do período de tempo e identifica a ordem relativa de cada data. como  últimos quatro dias . dependendo do nível hierárquico para o qual a linha contenha valores.microsoft. por exemplo.

03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais determinada data ou período. geralmente de tipo inteiro.com/pt-br/librar /cc518031. Figura 10: exemplo de uma tabela para a dimensão tempo Consideraç es sobre Chaves No tocante às chaves. as dimensões. sistemas analíticos devem contar com chaves artificiais.microsoft. poderia resultar em atualização de grande volume para uma tabela de fatos de transações bancárias.asp 15/24 . ao seu redor. o desempenho de pesquisas tende a ser melhor  quanto menor o tamanho da chave. melhor o desempenho; O fato de ser chave simples facilita a execução de junções. embora improvável. No centro da estrela encontra­se a tabela de fatos e. por uma série de motivos: Qualquer atualização de dados fica simplificada. Inicio da pagina  Estrela e suas Variaç es Uma das formas de apresentação de um banco de dados multidimensional é através do Modelo Estrela. Este modelo é apresentado na Figura 11: msdn. caso o cliente fosse identificado com CPF sendo chave; Com uma única coluna para a chave. Por exemplo. um recadastramento de CPFs. apresentado por Ralph Kimball (4).

Os pontos negativos são o tamanho e a desnormalização das tabelas de dimensões. Por haver várias tabelas fato. Desse modo.com/pt-br/librar /cc518031. cada uma representando uma combinação de níveis de agregação em cada dimensão.asp 16/24 . caracterizado por possuir uma  nica tabela de fatos e chaves simples nas tabelas de dimensões. dada pelo reduzido n mero de junções nas pesquisas e pelas chaves simples.microsoft.03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais Fig a 11: Modelo E ela É um modelo simples e eficiente. e a facilidade de definir hierarquias. A Figura 12 apresenta uma parte do modelo que ilustra esta variação. os dados são particionados em granularidades distintas. Os pontos positivos deste modelo são a eficiência. na prática existem várias estrelas. Modelo E ela Pa cial É uma variação do Modelo Estrela. msdn. na qual existem várias tabelas fato e de dimensão separadas lógica e fisicamente por níveis de sumarização. Cada dimensão é representada por uma  nica tabela.

microsoft. msdn. como ilustrado na Figura 13.asp 17/24 . basta criar outras tabelas com as granularidades desejadas.com/pt-br/librar /cc518031.03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais Figura 12: e emplo de duas estrelas no Modelo Estrela Parcial Quando houver necessidade de novas agregaç es.

Modelo Estrela com Particionamento de Fatos (ou Modelo Constelação de Fatos) É uma variação do Modelo Estrela Parcial. eliminando redundâncias e colunas que não têm sentido para determinado nível de agregação e o melhor desempenho para consultas de nível específico de agregação.03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais Figura 13: Modelo Estrela Parcial para composiç es de agregaç es Os pontos positivos deste modelo são a maior economia de espaço. Por outro lado.asp 18/24 . msdn.com/pt-br/librar /cc518031. podendo resultar em queda de desempenho. a complexidade do modelo é maior e as consultas que combinam níveis de agregação distintos são mais elaboradas. conforme ilustrado na Figura 14. na qual os fatos são particionados e as dimens es compartilhadas.microsoft.

 este modelo é menos exigente quanto à sua manutenção.03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais Figura 14: Modelo Particionamento de Fatos Quando comparado ao Modelo Estrela Parcial.microsoft. A Figura 15 apresenta este modelo. dado o compartilhamento das tabelas de dimensão.com/pt-br/librar /cc518031. é uma variação do Modelo Estrela Parcial. msdn. Note que a tabela de fatos deve conter os seus dados na maior granularidade que o modelo previr e também consolidados de acordo com os níveis mais altos. Modelo Estrela com Particionamento de Dimens es Assim como o anterior.asp 19/24 . compartilhando a tabela de fatos. porém com as dimens es particionadas.

 o que resulta em agilidade na manutenção. Observe a redução nas redundâncias.03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais Figura 15: Modelo Particionamento de DImens es. eliminando redundâncias e a necessidade do indicador NÍVEL. Apesar disso. msdn. como é o caso de SKUs de produtos. por exemplo. é um modelo que resulta em maior número de tabelas em junções. Este modelo é particularmente útil quando houver dimensões com grande quantidade de elementos. Inicio da pagina  Snowflake e suas Variaç es Os Modelos Snowflake acrescentam graus de normalização às tabelas de dimensões do Modelo Estrela. Note a granularidade da tabela de fatos.asp 20/24 . podendo haver queda de desempenho.microsoft. A Figura 16 mostra o resultado da normalização das tabelas  Produtos  e Lojas  apresentadas na Figura 11. para local e tempo.com/pt-br/librar /cc518031.

Um cuidado extra com este modelo é o n mero de tabelas em junções. Modelo Snowflake Lookup Neste modelo.microsoft. criamos uma tabela principal para uma determinada dimensão.03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais Figura 16: Modelo Snowflake. ilustrado na Figura 17.asp 21/24 . resultando na eliminação de redundâncias. as tabelas de dimensões são normalizadas. que referencia tabelas de busca (lookup). ap s normalização do Modelo Estrela da Figura 11 A seguir veremos três variações do Modelo Snowflake. o que torna a manutenção mais ágil e o modelo mais consistente. estas contendo os nomes e descrições de campos. o que pode degradar o desempenho.com/pt-br/librar /cc518031. Aqui. msdn.

a fim de melhorar a visualização do modelo. geralmente utilizados para obtenção de detalhes (drillthrough).asp 22/24 . A contra­indicação. que a tabela de fatos foi deslocada para a esquerda e nem todas as dimensões estão representadas. Modelo Snowflake Attribute Com o objetivo de reduzir o número de informações referentes a atributos nas tabelas de fatos. por sua vez. a normalização da dimensão  Produtos  em diversos níveis é um exemplo deste modelo. é para os casos em que a pesquisa requer vários níveis de sumarização da informação. referenciando a dimensão  Produtos . inserimos todos eles em uma tabela de atributos. inserindo as chaves de níveis mais altos nos níveis mais baixos. Modelo Snowflake Chain Este modelo encadeia as tabelas de dimensões começando com a tabela principal. Note que a tabela de dimensão  PrincipalClientes  possui apenas os dados de cada cliente e chaves estrangeiras para outros elementos.com/pt-br/librar /cc518031. sendo que a manutenção destes é feita de modo mais consistente ao promover alterações apenas nas tabelas de busca (lookup).microsoft. uma sugestão é desnormalizar a cadeia.03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais Figura 17: parte do Modelo Snowflake Lookup. mostrando a normaliza ão da tabela Clientes do modelo da Figura 16 Observe no diagrama acima. A recomendação de uso deste modelo ocorre quando o nível de detalhe mais baixo está armazenado na tabela de fatos. Note que a tabela de fatos possui indicação do nível mais baixo na hierarquia. e então as tabelas de dimensões  Modelos e  Fabricantes  percorrem os níveis mais altos. A fim de melhorar o desempenho. conforme ilustrado pelas figuras a seguir. que é o ponto de entrada para a tabela fato. já que são necessários vários passos para recuperar as informações. msdn. Na Figura 16. A tabela principal da dimensão contém a chave para o próximo nível da hierarquia da dimensão e assim por diante.

03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais Figura 18: Modelo Sno flake. Desse modo.asp 23/24 .microsoft. melhorando o desempenho. Inicio da pagina  Conclus o msdn. antes de separar os atributos Figura 19: Modelo Sno flake Attribute Outra utilidade deste modelo é a consolidação de informações sobre diversas pequenas dimensões que possuam poucos campos (muitas vezes apenas a descrição) em uma  nica tabela. o n mero de tabelas em junções pode ser reduzido.com/pt-br/librar /cc518031.

l. s. 2. Inicio da pagina  Refer ncias 1. 3. The Art of Computer Programming.l. Vol. 2000.l. 4. : John Wiley & Sons. Osvaldo Kotaro.l. pp.  Knuth. Introdução a Banco de Dados.  Tanler. Jo o Eduardo.pdf. s. 6. 3. W H. Todos os direitos reservados. 1997. 2007. a fim de produzir modelos de dados multidimensionais que atendam a sua demanda. Donald E. Isabel Cristina and Takai. 1998.ime. Vol. Neste artigo procuramos percorrer assuntos pouco divulgados e com pouca bibliografia.asp 24/24 . Donald R . Ralph. Inicio da pagina Isso foi útil para você?  Sim  Não © 2012 Microsoft. 15.usp. As opções de modelagem são várias e aqui ilustramos algumas que podem ser utilizadas de modo isolado ou ainda combinadas. 5. 1968. msdn. de nada elas adiantam se a modelagem de dados e o paradigma analítico não forem compreendidos. Abordamos as estruturas de dados mais comumente encontradas em gerenciadores relacionais e analíticos: as B­Trees e as Árvores Bitmap. The Intranet Data Warehouse. [Cited: 06 21.  Ferreira. : John Wiley & Sons. esperamos que o leitor possa escolher melhor e entender as características de cada modelo de dados que desenvolver e suportar. 4.  PATRICIA   Practical Algorithm To Retrieve Information Coded In Alphanumeric. : Addison­Wesley. Building the Data Warehouse. Italiano. [Online] 2005. Embora haja ferramentas de diversos fornecedores. Morrison.  Inmon. 514­534. s. : John Wiley & Sons. Richard.microsoft. s. ISBN 0­201­89685­0.03/02/12 Fundamentos e Modelagem de Bancos de Dados Multidimensionais O desenvolvimento de sistemas analíticos é cada vez mais comum. JACM. The Data Warehouse Toolkit. 1998. Ao conhecer um pouco da estrutura que suporta as tecnologias.] http://www.  Kimball.br/~jef/apostila.com/pt-br/librar /cc518031.