You are on page 1of 22

Módulo 3.

Desenhando uma solução OLAP

Objetivos

 Compreender a formação da tabela de fatos


 Entender o que são as medidas
 Conhecer o que são as dimensões e como são
organizadas
 Perceber a diferença entre os esquemas estrela e floco de
neve
 Diferenciar as medidas naturais das calculadas

Conteúdo do módulo

3.1 Introdução
3.2 Construindo o data mart
3.3 Esquema Estrela
3.3.1 Tabela de Fatos
3.3.2 Dimensões
3.3.2.1 Relações e Estrutura de uma dimensão
3.3.2.2 Esquema Estrela
3.3.2.3 Esquema Floco de Neve
3.3.2.4 Pai – Filho (Parent- Child)
3.3.2.5 Dimensões Virtuais
3.3.2.6 A dimensão Tempo
3.4 Medidas
3.4.1 Medidas Naturais
3.4.2 Medidas Calculadas

Página 1 de 22
3.1. Introdução

Com o que vimos nos módulos anteriores, podemos começar a definir o desenho
do nosso banco de dados OLAP.
Neste módulo abordaremos o design das tabelas que formam o plano de um data
mart (DM) que servirá de estrutura para a posterior montagem do cubo.
No final deste módulo, o leitor compreenderá como definir a tabela de fatos, como
podem ser organizadas as dimensões e o que são as medidas.
A estrutura que forma a Tabela de Fatos e as Dimensões podem
ser vista como o plano ou a visão detalhada do cubo.

Página 2 de 22
Data Mart: são armazéns de dados com informações de
interesse particular para um determinado setor da empresa.
Data Warehousing: é o conjunto de armazéns de dados
particulares (Data Mart) com informação de interesse para a
empresa em geral.

Cada um dos exemplos a seguir são Data Mart (DM)


 Vendas
 Recursos Humanos
 Produção
O Data Warehousing é o conjunto desses DM’s
 DM de Vendas + DM de Recursos Humanos + DM de
Produção

3.2. Construindo o data mart


Até agora analisamos os requerimentos do usuário e depuramos seus dados para
a formação do data warehousing e neste módulo começaremos a desenhar o
modelo do data mart. Este modelo será a etapa prévia à montagem do nosso
banco de dados OLAP.
Nesta etapa modelaremos as tabelas relacionais em uma grande estrutura não
padronizada, formada por uma tabela de fatos e tabelas menores que definirão
as n-dimensões ou aberturas do nosso cubo, chamadas tabelas de dimensões.
Para isso, devemos primeiro conhecer alguns conceitos que devem ser levados
em consideração na construção do modelo.

3.3. Esquema Estrela


Para facilitar a análise, o data mart organiza os dados em uma estrutura chamada
esquema estrela.
Esta estrutura esta formada por uma tabela central - tabela de fatos - e um
conjunto de tabelas organizadas ao redor dela, as tabelas de dimensões.
Nas pontas da estrela estão as tabelas de dimensões que contém os atributos das
aberturas que interessam ao negócio e que podem ser utilizadas como critérios de
filtro e são relativamente pequenas. Cada tabela de dimensão está relacionada
com a tabela de fatos por um identificador.
As características de um esquema de estrela são:

Página 3 de 22
 O centro da estrela é a tabela de fatos.
 As pontas da estrela são as tabelas de dimensões.
 Cada esquema esta formado por apenas uma tabela de fatos.
 Geralmente é um esquema totalmente não padronizado e pode estar
parcialmente padronizado nas tabelas de dimensões.

No exemplo é apresentado um esquema estrela considerando a


necessidade de analisar como evolui a Admissão de Pacientes
(Fato) por serviço, pacientes e região geográfica ao longo do
tempo.

Dimensão Dimensão
Serviço Paciente

Tabela de Fatos
Admissão Pacientes

Dimensão Dimensão
Tempo Região
Geográfica

3.3.1 Tabela de Fatos


O modelo dimensional divide o mundo dos dados em dois grandes tipos: as
medidas e as dimensões destas medidas.
As medidas são sempre numéricas e são armazenadas nas tabelas de fatos e as
dimensões contextuais são armazenadas nas tabelas de dimensões.
A tabela de fatos é a tabela primária do modelo dimensional e contém os valores
do negócio que deseja analisar.

Página 4 de 22
Cada tabela de fatos contém as chaves externas que se relacionam com suas
respectivas tabelas de dimensões e as colunas com os valores que serão
analisados.

Exemplos de Fatos
 Em um hospital: admissão de pacientes
 Em uma operadora telefônica: Tráfego telefônico

Um fato é um conceito de interesse primário para o processo de


tomada de decisões e corresponde aos eventos que ocorrem de
forma dinâmica no negócio da empresa.

3.3.2 Dimensões
Desenharemos e construiremos cada dimensão baseada nos processos de
negócio definidos pelo cliente.
As dimensões organizam os dados em função de uma área de interesse para os
usuários.
Cada dimensão descreve um aspecto do negócio e proporciona o acesso intuitivo
e simples aos dados.
Uma dimensão oferece ao usuário um grande número de combinações e
intersecções para analisar dados.
As tabelas de dimensões são as companheiras das tabelas de fatos. Cada
dimensão é definida pela sua chave primária, que serve para manter a integridade
referencial na tabela de fatos à qual está relacionada.
Um cubo requer a definição de pelo menos uma dimensão no seu esquema.
3.3.2.1 Relações e Estrutura de uma dimensão
Cada nível de uma dimensão deve ter correspondência com uma coluna na tabela
da dimensão. Os níveis são ordenados por grau de detalhe e são organizados em
uma estrutura hierárquica. Cada nível contém membros; os membros são os
valores da coluna que define o nível.
Entre os membros e entre os níveis de uma dimensão existem relações, estas
podem ser entendidas como as relações que existem em uma árvore

Página 5 de 22
genealógica onde os termos pai, filho, irmão, primo, etc. e indicam uma
correspondência entre elementos da árvore; e os membros da dimensão se
comportam como familiares dentro da árvore genealógica.
 Pai: É o membro do nível imediatamente superior que se relaciona com o
membro selecionado. Cada elemento apresenta apenas um pai.
 Filho: São os elementos do nível inferior seguinte que se relacionam com o
membro selecionado. Podem existir vários filhos para um mesmo membro.
 Irmão: São os membros que estão no mesmo nível do membro selecionado
e apresentam o mesmo pai.
 Primo: São os membros que estão no mesmo nível do membro
selecionado, porém apresentam diferentes pais. Os primos apresentam pais
que são irmãos.
 Descendentes: São todos os membros que estão debaixo do nível do
membro selecionado, independente da quantidade de níveis que os separem.
 Ancestrais: São todos os membros que estão acima do nível do membro
selecionado.
Um membro é independente das relações. Cada integrante da dimensão é
membro dela.

Página 6 de 22
Exemplos de dimensão
 Dimensão região geográfica

* PAÍS ARGENTINA BRASIL URUGUAI


MINAS
** ESTADO BUENOS AIRES SÃO PAULO
GERAIS
MONTEVIDÉU
MAR del LA SÃO SORO BELO
*** CIDADE PLATA PLATA PAULO CABA HORIZONTE
MONTEVIDÉU

Exemplos de relações
Em uma dimensão região geográfica teríamos as seguintes relações entres
níveis e entre membros:
 Pai:
Brasil é pai de São Paulo e Minas Gerais
 Filho:
São Paulo e Minas Gerais são filhos de Brasil.
 Irmão:
São Paulo e Minas Gerais são irmãos um do outro; Argentina, Brasil e Uruguai
também são irmãos.
 Primo:
Sorocaba é primo de Belo Horizonte.
 Descendente:
Todos os membros que estiverem debaixo de Brasil são seus descendentes,
por exemplo, São Paulo, Minas Gerais, Sorocaba e Belo Horizonte são alguns
dos seus descendentes.
 Ancestral:
Sorocaba apresenta dois antepassados: São Paulo e Brasil.

As dimensões podem ser:


 Locais

 Compartilhadas

As dimensões locais são aquelas definidas e utilizadas dentro de um mesmo


cubo.
As dimensões compartilhadas são as dimensões definidas independentemente
dos cubos e podem ser utilizadas por vários deles.
Vantagens das dimensões compartilhadas

Página 7 de 22
 Evitamos duplicar dimensões locais.
 Garantimos que os dados analisados estejam organizados da mesma forma
em todos os cubos, que implica em um menor custo de manutenção.
Desvantagens das dimensões compartilhadas
 Devem ser empregadas da mesma forma no cubos que as utilizarem.
 Uma mudança implica em que a dimensão deverá ser modificada em todos
os cubos.

Exemplos de Dimensão Compartilhada


A dimensão Produto pode ser utilizada para o Data Mart
Vendas e para o Data Mart Produção.
Dessa forma, a dimensão produto é uma dimensão
compartilhada pelos dois Data Marts.

Ao definir uma dimensão, devemos prestar especial atenção


aos requerimentos do cliente, pois uma definição equivocada
da dimensão ou dos seus níveis pode implicar em não obter
os resultados desejados.
Se a definição das dimensões não for a correta, serão
incorretas e inúteis as agrupações, as sumarizações ou os
filtros. Provavelmente você acabará copiando dados para
uma planilha de cálculo como se não existisse o DM.
Riscos de Dimensões Compartilhadas
É importante garantir que qualquer modificação ou mudança
em uma dimensão compartilhada seja válida para todos os
cubos que a utilizarem.

3.3.2.2 Dimensões: Esquema Estrela


No esquema estrela cada dimensão está formada por apenas uma tabela não
padronizada.
O esquema é denominado assim devido à sua semelhança com uma estrela.
Pelo fato das tabelas de dimensão não estarem padronizadas, conseguiremos
uma menor quantidade de tabelas no modelo do data mart.

Página 8 de 22
Este é um esquema onde as dimensões apresentam um esquema
estrela.

Dimensão Dimensão
Serviço Paciente

Tabela de Fatos
Admissão Pacientes

Dimensão Dimensão
Tempo Região
Geográfica

3.3.2.3 Dimensões: Esquema Floco de Neve


O esquema floco de neve é uma variação do esquema estrela onde alguma
ponta da estrela explode em mais tabelas.
O nome do esquema foi definido devido à sua semelhança com um floco de neve.
Neste esquema, as tabelas de dimensão floco de neve estão padronizadas para
eliminar redundância de dados.
Diferente do esquema estrela, neste esquema os dados das dimensões são
distribuídos em múltiplas tabelas.
Como vantagem do esquema destaca-se a economia de espaço no
armazenamento em disco, porém com um aumento na quantidade de tabelas.
As características a seguir são parte de um esquema floco de neve:
 A dimensão esta padronizada
 Os diferentes níveis estão armazenados em tabelas separadas
 Verifica-se economia de espaço

Página 9 de 22
A imagem abaixo mostra um esquema onde a dimensão
região geográfica apresenta um esquema floco de neve.

Floco de neve
País
Dimensão região
Geográfica

Estado

Serviço
Cidade

Admissão
Paciente

Paciente Tempo

Exemplo de Tabela Padronizada e Tabela Não


Padronizada
Na imagem podemos ver que na tabela padronizada os dados
nome do país e nome do estado aparecerão apenas uma vez
nas tabelas País e Estado respectivamente.
Caso contrário, se a tabela não estiver padronizada, teremos
redundância de dados, pois serão repetidos os dados do País
e do Estado para cada Cidade.

Padronizada Não Padronizada

País
ID_País Região Geográfica
Estado
País
ID_ Estado
Estado ID_País
ID_País País
ID_Estado
Estado
ID_Cidade
Cidade Cidade

ID_ Cidade
Cidade
ID_Estado

Página 10 de 22
Estrela Floco de neve
Quantidade de Menor Maior
tabelas

Melhora o desempenho Aumenta a quantidade de


vínculos entre tabelas
Consultas
provocando redução do
desempenho
Armazenamento Aumenta o espaço Economiza espaço

3.3.2.4 Dimensões: Pai – Filho (Parent – Child)


Uma dimensão pai-filho é uma dimensão onde o dado do Pai se relaciona com o
Filho e ambos estão na mesma tabela de dimensão, isto é, a dimensão se
relaciona consigo mesma.

Exemplos de Dimensão Pai - Filho


A dimensão Conta Contábil onde uma conta imputável faz
parte de um Subgrupo e o Subgrupo, por sua vez, faz parte de
um Grupo. Estes dados estão em apenas um Plano de Contas.
A conta Ativo, contém os grupos Investimentos, Créditos e
Caixa e o grupo Caixa contém Caixa e Fundo Fixo.

3.3.2.5 Dimensões Virtuais


As dimensões virtuais não precisam de um armazenamento físico no cubo e são
avaliadas no momento da consulta.
Funcionam de forma similar às dimensões reais e são transparentes para o
usuário.

Página 11 de 22
Exemplos de Dimensão Virtual
Podemos ter uma dimensão Produto organizada da seguinte
forma:
Produto (Dimensão real)
……
Fabricante
Marca
Tamanho
Produto

Se o usuário requer que suas análises de informação sejam


realizadas por Marca, utilizando a dimensão Produto será
necessário selecionar cada fabricante para obter a informação
da marca.
Para evitar isso, podemos criar uma dimensão virtual onde a
ordem dos níveis Fabricante - Marca estejam invertidas e que
permita ver seus dados por Marca sem a necessidade de
selecionar todos os fabricantes. Esta dimensão será
construída da seguinte forma:

Produto_Marca (Dimensão virtual 1)


……
Marca
Fabricante
Tamanho
Produto

Outra necessidade do usuário pode ser obter os totais ou filtros


de tamanho sem importar a marca ou o fabricante, então deve
ser construída uma dimensão virtual que contenha apenas a
coluna tamanho.

Tamanho (Dimensão virtual 2)


Tamanho

3.3.2.6 A dimensão Tempo


Mencionamos esta dimensão pois ela ocupa um lugar especial em cada data mart.
É importante lembrar que o tempo é parte implícita da informação contida no data
mart.
Esta dimensão pode ser definida dividindo-a em diferentes hierarquias de tempo:
 Ano

Página 12 de 22
 Semestre
 Mês

Exemplos de Dimensão Tempo

A definição da hierarquia será realizada levando em consideração as


necessidades apresentadas pela empresa. Devem ser considerados os períodos
de tempo pelos quais a informação precisa ser analisada e a regularidade da
carga de dados no cubo.
 Considerações para esta dimensão:
Nomes dos membros: Ao construir a dimensão tempo é conveniente que os
nomes dos membros sejam únicos. Dessa forma, se utilizarmos uma
nomenclatura para a hierarquia MÊS que for “Mês – Ano”, quando procurarmos
um período é necessário identificá-lo como Julho – 2006. Assim não será
necessário utilizar dois níveis da dimensão, conseguindo uma melhor qualidade
nos relatórios.
Caso contrário, se o nome da hierarquia MÊS estiver formado apenas pelo nome
do mês, para identificar o período Julho de 2006, é necessário selecionar primeiro
o nível Ano e depois o nível Mês.
Pode existir mais de uma: É importante destacar que não necessariamente esta
dimensão é única dentro do cubo, podendo ser necessário montar mais de uma
dimensão Tempo. Se for necessário analisar a informação da empresa baseada
no ano calendário e realizar outra análise baseada no ano fiscal (em empresas
onde um é diferente do outro), será necessário construir duas dimensões de
tempo para o mesmo data mart.

3.4. Medidas
As medidas são os valores dos dados analisados.
Uma medida é uma coluna quantitativa, numérica na tabela de fatos. As medidas
representam os valores que são analisados, como quantidade de pacientes
admitidos ou ligações realizadas.
As medidas são:

Página 13 de 22
 Valores que permitem analisar os fatos.
 Valores numéricos, pois estes valores são as bases das quais o usuário
pode realizar cálculos.
Se a medida for um valor não numérico é necessário codificá-la para um valor
numérico no processo de obtenção de dados e decodificá-la quando for
necessário visualizar seu valor original.
As características a seguir são algumas das características das medidas:
 Devem ser numéricas.
 Cruzam todas as dimensões em todos os níveis.

As medidas podem ser classificadas em:


 Naturais
 Calculadas

Exemplos de Medidas
 Em um hospital, onde o fato é Admissão de Pacientes
as medidas podem ser:
Pacientes Admitidos
Pacientes Atendidos
 Em uma operadora telefônica, onde o fato é Tráfego
Telefônico, as medidas podem ser:
Ligações Quantidade
Ligações Duração

Exemplos de Medidas não numéricas


Suponhamos o fato Recursos Humanos, onde podemos ter a
medida Sexo tomando os valores “F” ou “M”.
Estes valores devem ser codificados em valores numéricos
durante o processo de transformação de dados (ETL). Dessa
forma, por exemplo, temos 0=”F” e 1=”M”.
Quando o usuário visualizar esta medida, os dados devem
retornar aos seus valores originais (decodifica-los) para
mostrar “F” ou “M”.

Página 14 de 22
3.4.1 Medidas Naturais
São as colunas numéricas que desejamos analisar provenientes diretamente dos
sistemas OLTP.
Ao definir uma medida é importante considerar qual será a forma de agregação
(agrupação da mesma) ao subir pela estrutura dimensional.
Estas formas de agregação podem ser:
 Soma: é a operação que soma os valores das colunas
 Contagem: realiza uma contagem dos valores
 Mínima: retorna um valor mínimo
 Máxima: proporciona o maior dos valores
 Contagem de Diferentes: conta os valores diferentes

As agregações são resumos de dados pré-calculados


que melhoram o tempo de resposta pelo simples motivo
de ter as respostas prontas antes de receber as
perguntas.

3.4.2 Medidas Calculadas


São as medidas calculadas no cubo baseadas nos valores das medidas naturais.
O sentido da expressão medidas calculadas é muito amplo e engloba qualquer
manipulação das medidas naturais que facilitem a análise dos fatos.
Em uma medida calculada é possível realizar
 Cálculos Matemáticos
 Expressões condicionais
 Alertas
Estes três tipos (cálculos, condições e alertas) geralmente podem existir juntos
dentro da mesma medida calculada.

Página 15 de 22
 Cálculo Matemático
Em um sistema de RH, podemos desejar medir a média de
horas extras por mês. Definimos a medida calculada Média de
Horas Extras que será o resultado da realização de Horas
Extras dividido por Dias Trabalhados.
 Expressões condicionais
Para a medida calculada anteriormente, Média de Horas
Extras, é necessário verificar a condição de numerador
diferente de zero para evitar que a divisão apresente erro.
Se Dias Trabalhados é diferente de zero, então Média de
Horas Extras será igual a Horas Extras dividido por Dias
Trabalhados.
Se Dias Trabalhados é igual a zero, então Média de Horas
Extras será vazio.
 Alertas
Em um hospital, podemos definir a medida calculada
Sobrecarga de Pacientes que assumirá o valor 1 se os
Pacientes Admitidos (medida natural) é maior que 100, caso
contrário permanecerá vazia.
Podemos construir uma medida Cumprimento de Vendas que
seja um alerta do tipo semáforo e indique
Vermelho: Se as unidades vendidas são menores do que as
unidades orçadas dividido por 5, isto é, foi vendido menos de
20 % do previsto.
Amarelo: Se o valor das unidades vendidas está entre
unidades orçadas dividido por 3 e unidades orçadas dividido
por 5 (o valor vendido esta entre 20 % e 80 % do previsto).
Verde: Se não for cumprida nenhuma das condições
anteriores, isto é, foi vendido mais de 80 % do previsto.

Página 16 de 22
Estudo de Caso

Ilustraremos os conceitos aprendidos nesta unidade com o nosso exemplo da


Contoso.
Construiremos o modelo do data mart de vendas em três etapas:
Etapa 1 Construção das Dimensões
Etapa 2 Montagem da Tabela de Fatos
Etapa 3 Definição das Medidas
Construção das Dimensões
Como primeiro passo, definiremos as dimensões pois elas oferecem as aberturas
do cubo.
Baseado nas definições surgidas nas reuniões de trabalho com os representantes
da DLA, verificamos a necessidade de analisar seus dados de acordo com o
seguinte quadro:

Fato a medir: Venda de Produtos

Dimensões
Medidas Tempo Filial Vendedor Cliente Produto
Vendas_Valor X X X X X
Vendas_Custo X X X X X
Vendas_Unidades X X X X X
Vendas_ValorTotal X X X X X
Vendas_Lucro X X X X X
Vendas_Média X X X X X

Se o trabalho for executado corretamente, deve existir uma coincidência exata


entre a definição das dimensões e os dados retirados das fontes transacionais.
Caso não ocorra essa coincidência, em alguma das duas etapas ocorreu um erro
ou os dados de origem não estão corretos ou as dimensões foram mal definidas.
Vamos começar pela Dimensão Tempo pois, como foi visto nesta unidade, é a
mais importante dentro de qualquer data mart.
Nosso cliente precisa analisar os seus dados diariamente, então é necessário
definir os níveis:

Página 17 de 22
 Ano
 Semestre
 Trimestre
 Mês
 Dia

A tabela de dimensão estará formada:

Dimensão Tempo

* Ano
** Semestre
*** Trimestre
**** Mês
***** Dia

Dimensão Filial, usaremos um esquema estrela e a sua estrutura hierárquica será:

Dimensão Filial

* Filial
** Tipo Filial
*** País
**** Estado
***** Cidade

Dimensão Vendedor, da mesma forma que a filial, terá um esquema estrela e


estará definida pelos níveis:

Dimensão Vendedor

* Filial
** Seção
*** Vendedor

Dimensão Cliente, tendo todos os atributos de um cliente.

Página 18 de 22
Dimensão Cliente

* País
** Estado
*** Cidade
**** Razão Social

Dimensão Produto, sendo construída de acordo com um esquema floco de neve.


Nestes casos é mantida a padronização dos sistemas OLTP. Cada tabela contém
os dados iniciais e sua relação com o resto.
A dimensão será padronizada pois usaremos mais tabelas para construí-la.
Nosso cliente pode classificar seus produtos de acordo com a categoria, o
departamento e a família de produto à qual pertence.

Montagem da Tabela de Fatos


Após definir as dimensões e seus níveis, realizaremos a montagem da tabela de
Fatos.
A tabela de fatos deve ter as colunas chave das tabelas de dimensões e as
colunas de medidas.
Primeiro devemos colocar as colunas chave da tabela em cada uma das tabelas
de dimensões.

Página 19 de 22
Fat_Vendas

ID_Data
ID_Produto
ID_Cliente
ID_Vendedor

Definição das Medidas


É importante lembrar que as medidas são os valores numéricos que o usuário
deseja analisar.
Vimos que o nosso cliente precisa medir:
 O custo incluído em cada unidade vendida
 O valor de venda de cada produto.
 O lucro obtido na venda de cada produto.

Acrescentaremos as vendas na nossa tabela de fatos:

Fat_Vendas

ID_Data
ID_Produto
ID_Cliente
ID_Vendedor
Vendas_Valor
Vendas_Custo
Vendas_Unidades

A medida “lucro obtido na venda de cada produto” não será acrescentada à tabela
pois esta medida pode ser calculada a partir das medidas naturais vendas valor e
vendas custo.
Nosso modelo contará também com as medidas calculadas:
 Vendas_Lucro que terá a fórmula Vendas_Valor menos Vendas_Custo
 Vendas_Média que será o resultado da soma de Vendas_Unidades
dividido por quantidade de dias, verificando a condição do numerador
diferente de zero.

Página 20 de 22
Realizadas estas três etapas, podemos ver o desenho completo do nosso data
mart.

Lições Aprendidas
 Um Data Mart adota um esquema estrela para
maximizar o desempenho das consultas.
 As dimensões são categorias descritivas pelas
quais as medidas podem ser separadas para
análise.
 A dimensão Tempo esta implícita em todo o Data
Mart.
 As medidas são os dados numéricos de interesse
primário para o cliente.
 Com as medidas calculadas é possível construir
alertas.

Página 21 de 22
Perguntas de Reflexão
 Os requerimentos estão definidos claramente? Conhecemos
os fatos que desejamos analisar, os indicadores e as
aberturas pelas quais desejamos realizar a análise?
 Esta definição está de acordo com as tabelas auxiliares
criadas e carregadas com dados dos sistemas OLTP?
 Sabemos se os usuários utilizarão as dimensões para
navegar ou para filtrar?
 As dimensões desenhadas atendem as necessidades dos
usuários de forma intuitiva e com facilidade de manipulação?
 Já temos todas as medidas naturais com as aberturas
requeridas?
 Está definida a forma de agregação, ao sair da granularidade
mínima, para todas as medidas naturais?
 Estão definidas as fórmulas ou critérios de todas as medidas
calculadas?
 Estão documentadas corretamente todas as definições?

Página 22 de 22

You might also like