Você está na página 1de 22

Mdulo 3.

Desenhando uma soluo OLAP


Objetivos
Compreender a formao da tabela de fatos Entender o que so as medidas Conhecer o que so as dimenses e como so organizadas Perceber a diferena entre os esquemas estrela e floco de neve Diferenciar as medidas naturais das calculadas

Contedo do mdulo
3.1 3.2 3.3 Introduo Construindo o data mart Esquema Estrela Tabela de Fatos Dimenses Relaes e Estrutura de uma dimenso Esquema Estrela Esquema Floco de Neve Pai Filho (Parent- Child) Dimenses Virtuais A dimenso Tempo

3.3.1 3.3.2

3.3.2.1 3.3.2.2 3.3.2.3 3.3.2.4 3.3.2.5 3.3.2.6 3.4 Medidas 3.4.1 3.4.2

Medidas Naturais Medidas Calculadas

Pgina 1 de 22

3.1. Introduo

Com o que vimos nos mdulos anteriores, podemos comear a definir o desenho do nosso banco de dados OLAP. Neste mdulo 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 mdulo, o leitor compreender como definir a tabela de fatos, como podem ser organizadas as dimenses e o que so as medidas. A estrutura que forma a Tabela de Fatos e as Dimenses podem ser vista como o plano ou a viso detalhada do cubo.

Pgina 2 de 22

Data Mart: so armazns de dados com informaes de interesse particular para um determinado setor da empresa. Data Warehousing: o conjunto de armazns de dados particulares (Data Mart) com informao de interesse para a empresa em geral.

Cada um dos exemplos a seguir so Data Mart (DM) Vendas Recursos Humanos Produo O Data Warehousing o conjunto desses DMs DM de Vendas + DM de Recursos Humanos + DM de Produo

3.2. Construindo o data mart


At agora analisamos os requerimentos do usurio e depuramos seus dados para a formao do data warehousing e neste mdulo comearemos a desenhar o modelo do data mart. Este modelo ser a etapa prvia montagem do nosso banco de dados OLAP. Nesta etapa modelaremos as tabelas relacionais em uma grande estrutura no padronizada, formada por uma tabela de fatos e tabelas menores que definiro as n-dimenses ou aberturas do nosso cubo, chamadas tabelas de dimenses. Para isso, devemos primeiro conhecer alguns conceitos que devem ser levados em considerao na construo do modelo.

3.3. Esquema Estrela


Para facilitar a anlise, 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 dimenses. Nas pontas da estrela esto as tabelas de dimenses que contm os atributos das aberturas que interessam ao negcio e que podem ser utilizadas como critrios de filtro e so relativamente pequenas. Cada tabela de dimenso est relacionada com a tabela de fatos por um identificador. As caractersticas de um esquema de estrela so:

Pgina 3 de 22

O centro da estrela a tabela de fatos. As pontas da estrela so as tabelas de dimenses. Cada esquema esta formado por apenas uma tabela de fatos. Geralmente um esquema totalmente no padronizado e pode estar parcialmente padronizado nas tabelas de dimenses.

No exemplo apresentado um esquema estrela considerando a necessidade de analisar como evolui a Admisso de Pacientes (Fato) por servio, pacientes e regio geogrfica ao longo do tempo.
Dimenso Servio Dimenso Paciente

Tabela de Fatos Admisso Pacientes

Dimenso Tempo

Dimenso Regio Geogrfica

3.3.1

Tabela de Fatos

O modelo dimensional divide o mundo dos dados em dois grandes tipos: as medidas e as dimenses destas medidas. As medidas so sempre numricas e so armazenadas nas tabelas de fatos e as dimenses contextuais so armazenadas nas tabelas de dimenses. A tabela de fatos a tabela primria do modelo dimensional e contm os valores do negcio que deseja analisar.

Pgina 4 de 22

Cada tabela de fatos contm as chaves externas que se relacionam com suas respectivas tabelas de dimenses e as colunas com os valores que sero analisados. Exemplos de Fatos Em um hospital: admisso de pacientes Em uma operadora telefnica: Trfego telefnico

Um fato um conceito de interesse primrio para o processo de tomada de decises e corresponde aos eventos que ocorrem de forma dinmica no negcio da empresa.

3.3.2

Dimenses

Desenharemos e construiremos cada dimenso baseada nos processos de negcio definidos pelo cliente. As dimenses organizam os dados em funo de uma rea de interesse para os usurios. Cada dimenso descreve um aspecto do negcio e proporciona o acesso intuitivo e simples aos dados. Uma dimenso oferece ao usurio um grande nmero de combinaes e interseces para analisar dados. As tabelas de dimenses so as companheiras das tabelas de fatos. Cada dimenso definida pela sua chave primria, que serve para manter a integridade referencial na tabela de fatos qual est relacionada. Um cubo requer a definio de pelo menos uma dimenso no seu esquema.

3.3.2.1

Relaes e Estrutura de uma dimenso

Cada nvel de uma dimenso deve ter correspondncia com uma coluna na tabela da dimenso. Os nveis so ordenados por grau de detalhe e so organizados em uma estrutura hierrquica. Cada nvel contm membros; os membros so os valores da coluna que define o nvel. Entre os membros e entre os nveis de uma dimenso existem relaes, estas podem ser entendidas como as relaes que existem em uma rvore

Pgina 5 de 22

genealgica onde os termos pai, filho, irmo, primo, etc. e indicam uma correspondncia entre elementos da rvore; e os membros da dimenso se comportam como familiares dentro da rvore genealgica. Pai: o membro do nvel imediatamente superior que se relaciona com o membro selecionado. Cada elemento apresenta apenas um pai. Filho: So os elementos do nvel inferior seguinte que se relacionam com o membro selecionado. Podem existir vrios filhos para um mesmo membro. Irmo: So os membros que esto no mesmo nvel do membro selecionado e apresentam o mesmo pai. Primo: So os membros que esto no mesmo nvel do membro selecionado, porm apresentam diferentes pais. Os primos apresentam pais que so irmos. Descendentes: So todos os membros que esto debaixo do nvel do membro selecionado, independente da quantidade de nveis que os separem. Ancestrais: So todos os membros que esto acima do nvel do membro selecionado. Um membro independente das relaes. Cada integrante da dimenso membro dela.

Pgina 6 de 22

Exemplos de dimenso Dimenso regio geogrfica


* PAS ** ESTADO *** CIDADE
ARGENTINA BUENOS AIRES MAR del PLATA LA PLATA BRASIL SO PAULO SO PAULO SORO CABA MINAS GERAIS BELO HORIZONTE URUGUAI MONTEVIDU MONTEVIDU

Exemplos de relaes Em uma dimenso regio geogrfica teramos as seguintes relaes entres nveis e entre membros: Pai: Brasil pai de So Paulo e Minas Gerais Filho: So Paulo e Minas Gerais so filhos de Brasil. Irmo: So Paulo e Minas Gerais so irmos um do outro; Argentina, Brasil e Uruguai tambm so irmos. Primo: Sorocaba primo de Belo Horizonte. Descendente: Todos os membros que estiverem debaixo de Brasil so seus descendentes, por exemplo, So Paulo, Minas Gerais, Sorocaba e Belo Horizonte so alguns dos seus descendentes. Ancestral: Sorocaba apresenta dois antepassados: So Paulo e Brasil.

As dimenses podem ser: Locais Compartilhadas As dimenses locais so aquelas definidas e utilizadas dentro de um mesmo cubo. As dimenses compartilhadas so as dimenses definidas independentemente dos cubos e podem ser utilizadas por vrios deles. Vantagens das dimenses compartilhadas

Pgina 7 de 22

Evitamos duplicar dimenses locais. Garantimos que os dados analisados estejam organizados da mesma forma em todos os cubos, que implica em um menor custo de manuteno. Desvantagens das dimenses compartilhadas Devem ser empregadas da mesma forma no cubos que as utilizarem. Uma mudana implica em que a dimenso dever ser modificada em todos os cubos.

Exemplos de Dimenso Compartilhada A dimenso Produto pode ser utilizada para o Data Mart Vendas e para o Data Mart Produo. Dessa forma, a dimenso produto uma dimenso compartilhada pelos dois Data Marts.

Ao definir uma dimenso, devemos prestar especial ateno aos requerimentos do cliente, pois uma definio equivocada da dimenso ou dos seus nveis pode implicar em no obter os resultados desejados. Se a definio das dimenses no for a correta, sero incorretas e inteis as agrupaes, as sumarizaes ou os filtros. Provavelmente voc acabar copiando dados para uma planilha de clculo como se no existisse o DM. Riscos de Dimenses Compartilhadas importante garantir que qualquer modificao ou mudana em uma dimenso compartilhada seja vlida para todos os cubos que a utilizarem.

3.3.2.2

Dimenses: Esquema Estrela

No esquema estrela cada dimenso est formada por apenas uma tabela no padronizada. O esquema denominado assim devido sua semelhana com uma estrela. Pelo fato das tabelas de dimenso no estarem padronizadas, conseguiremos uma menor quantidade de tabelas no modelo do data mart.

Pgina 8 de 22

Este um esquema onde as dimenses apresentam um esquema estrela.


Dimenso Servio Dimenso Paciente

Tabela de Fatos Admisso Pacientes

Dimenso Tempo

Dimenso Regio Geogrfica

3.3.2.3

Dimenses: Esquema Floco de Neve

O esquema floco de neve uma variao do esquema estrela onde alguma ponta da estrela explode em mais tabelas. O nome do esquema foi definido devido sua semelhana com um floco de neve. Neste esquema, as tabelas de dimenso floco de neve esto padronizadas para eliminar redundncia de dados. Diferente do esquema estrela, neste esquema os dados das dimenses so distribudos em mltiplas tabelas. Como vantagem do esquema destaca-se a economia de espao armazenamento em disco, porm com um aumento na quantidade de tabelas. As caractersticas a seguir so parte de um esquema floco de neve: A dimenso esta padronizada Os diferentes nveis esto armazenados em tabelas separadas Verifica-se economia de espao no

Pgina 9 de 22

A imagem abaixo mostra um esquema onde a dimenso regio geogrfica apresenta um esquema floco de neve.
Pas

Floco de neve Dimenso regio Geogrfica


Estado

Cidade

Servio

Admisso Paciente

Paciente

Tempo

Exemplo de Tabela Padronizada e Tabela No Padronizada Na imagem podemos ver que na tabela padronizada os dados nome do pas e nome do estado aparecero apenas uma vez nas tabelas Pas e Estado respectivamente. Caso contrrio, se a tabela no estiver padronizada, teremos redundncia de dados, pois sero repetidos os dados do Pas e do Estado para cada Cidade.
Padronizada Pas ID_Pas Pas Estado ID_ Estado Estado ID_Pas Regio Geogrfica No Padronizada

Cidade ID_ Cidade Cidade ID_Estado

ID_Pas Pas ID_Estado Estado ID_Cidade Cidade

Pgina 10 de 22

Estrela Quantidade de tabelas Menor Maior

Floco de neve

Melhora o desempenho Consultas Armazenamento Aumenta o espao

Aumenta a quantidade de vnculos entre tabelas provocando reduo do desempenho Economiza espao

3.3.2.4

Dimenses: Pai Filho (Parent Child)

Uma dimenso pai-filho uma dimenso onde o dado do Pai se relaciona com o Filho e ambos esto na mesma tabela de dimenso, isto , a dimenso se relaciona consigo mesma. Exemplos de Dimenso Pai - Filho A dimenso Conta Contbil onde uma conta imputvel faz parte de um Subgrupo e o Subgrupo, por sua vez, faz parte de um Grupo. Estes dados esto em apenas um Plano de Contas. A conta Ativo, contm os grupos Investimentos, Crditos e Caixa e o grupo Caixa contm Caixa e Fundo Fixo.

3.3.2.5

Dimenses Virtuais

As dimenses virtuais no precisam de um armazenamento fsico no cubo e so avaliadas no momento da consulta. Funcionam de forma similar s dimenses reais e so transparentes para o usurio.

Pgina 11 de 22

Exemplos de Dimenso Virtual Podemos ter uma dimenso Produto organizada da seguinte forma: Produto (Dimenso real) Fabricante Marca Tamanho Produto Se o usurio requer que suas anlises de informao sejam realizadas por Marca, utilizando a dimenso Produto ser necessrio selecionar cada fabricante para obter a informao da marca. Para evitar isso, podemos criar uma dimenso virtual onde a ordem dos nveis Fabricante - Marca estejam invertidas e que permita ver seus dados por Marca sem a necessidade de selecionar todos os fabricantes. Esta dimenso ser construda da seguinte forma: Produto_Marca (Dimenso virtual 1) Marca Fabricante Tamanho Produto Outra necessidade do usurio pode ser obter os totais ou filtros de tamanho sem importar a marca ou o fabricante, ento deve ser construda uma dimenso virtual que contenha apenas a coluna tamanho. Tamanho (Dimenso virtual 2) Tamanho

3.3.2.6

A dimenso Tempo

Mencionamos esta dimenso pois ela ocupa um lugar especial em cada data mart. importante lembrar que o tempo parte implcita da informao contida no data mart. Esta dimenso pode ser definida dividindo-a em diferentes hierarquias de tempo: Ano

Pgina 12 de 22

Semestre Ms

Exemplos de Dimenso Tempo

A definio da hierarquia ser realizada levando em considerao as necessidades apresentadas pela empresa. Devem ser considerados os perodos de tempo pelos quais a informao precisa ser analisada e a regularidade da carga de dados no cubo. Consideraes para esta dimenso: Nomes dos membros: Ao construir a dimenso tempo conveniente que os nomes dos membros sejam nicos. Dessa forma, se utilizarmos uma nomenclatura para a hierarquia MS que for Ms Ano, quando procurarmos um perodo necessrio identific-lo como Julho 2006. Assim no ser necessrio utilizar dois nveis da dimenso, conseguindo uma melhor qualidade nos relatrios. Caso contrrio, se o nome da hierarquia MS estiver formado apenas pelo nome do ms, para identificar o perodo Julho de 2006, necessrio selecionar primeiro o nvel Ano e depois o nvel Ms. Pode existir mais de uma: importante destacar que no necessariamente esta dimenso nica dentro do cubo, podendo ser necessrio montar mais de uma dimenso Tempo. Se for necessrio analisar a informao da empresa baseada no ano calendrio e realizar outra anlise baseada no ano fiscal (em empresas onde um diferente do outro), ser necessrio construir duas dimenses de tempo para o mesmo data mart.

3.4. Medidas
As medidas so os valores dos dados analisados. Uma medida uma coluna quantitativa, numrica na tabela de fatos. As medidas representam os valores que so analisados, como quantidade de pacientes admitidos ou ligaes realizadas. As medidas so:

Pgina 13 de 22

Valores que permitem analisar os fatos. Valores numricos, pois estes valores so as bases das quais o usurio pode realizar clculos. Se a medida for um valor no numrico necessrio codific-la para um valor numrico no processo de obteno de dados e decodific-la quando for necessrio visualizar seu valor original. As caractersticas a seguir so algumas das caractersticas das medidas: Devem ser numricas. Cruzam todas as dimenses em todos os nveis. As medidas podem ser classificadas em: Naturais Calculadas

Exemplos de Medidas Em um hospital, onde o fato Admisso de Pacientes as medidas podem ser: Pacientes Admitidos Pacientes Atendidos Em uma operadora telefnica, onde o fato Trfego Telefnico, as medidas podem ser: Ligaes Quantidade Ligaes Durao Exemplos de Medidas no numricas Suponhamos o fato Recursos Humanos, onde podemos ter a medida Sexo tomando os valores F ou M. Estes valores devem ser codificados em valores numricos durante o processo de transformao de dados (ETL). Dessa forma, por exemplo, temos 0=F e 1=M. Quando o usurio visualizar esta medida, os dados devem retornar aos seus valores originais (decodifica-los) para mostrar F ou M.

Pgina 14 de 22

3.4.1

Medidas Naturais

So as colunas numricas que desejamos analisar provenientes diretamente dos sistemas OLTP. Ao definir uma medida importante considerar qual ser a forma de agregao (agrupao da mesma) ao subir pela estrutura dimensional. Estas formas de agregao podem ser: Soma: a operao que soma os valores das colunas Contagem: realiza uma contagem dos valores Mnima: retorna um valor mnimo Mxima: proporciona o maior dos valores Contagem de Diferentes: conta os valores diferentes As agregaes so 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

So as medidas calculadas no cubo baseadas nos valores das medidas naturais. O sentido da expresso medidas calculadas muito amplo e engloba qualquer manipulao das medidas naturais que facilitem a anlise dos fatos. Em uma medida calculada possvel realizar Clculos Matemticos Expresses condicionais Alertas Estes trs tipos (clculos, condies e alertas) geralmente podem existir juntos dentro da mesma medida calculada.

Pgina 15 de 22

Clculo Matemtico Em um sistema de RH, podemos desejar medir a mdia de horas extras por ms. Definimos a medida calculada Mdia de Horas Extras que ser o resultado da realizao de Horas Extras dividido por Dias Trabalhados. Expresses condicionais Para a medida calculada anteriormente, Mdia de Horas Extras, necessrio verificar a condio de numerador diferente de zero para evitar que a diviso apresente erro. Se Dias Trabalhados diferente de zero, ento Mdia de Horas Extras ser igual a Horas Extras dividido por Dias Trabalhados. Se Dias Trabalhados igual a zero, ento Mdia 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 contrrio permanecer vazia. Podemos construir uma medida Cumprimento de Vendas que seja um alerta do tipo semforo e indique Vermelho: Se as unidades vendidas so menores do que as unidades oradas dividido por 5, isto , foi vendido menos de 20 % do previsto. Amarelo: Se o valor das unidades vendidas est entre unidades oradas dividido por 3 e unidades oradas dividido por 5 (o valor vendido esta entre 20 % e 80 % do previsto). Verde: Se no for cumprida nenhuma das condies anteriores, isto , foi vendido mais de 80 % do previsto.

Pgina 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 trs etapas:

Etapa 1 Construo das Dimenses Etapa 2 Montagem da Tabela de Fatos Etapa 3 Definio das Medidas Construo das Dimenses
Como primeiro passo, definiremos as dimenses pois elas oferecem as aberturas do cubo. Baseado nas definies surgidas nas reunies 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 Dimenses Tempo Filial X X X X X X X X X X X X

Medidas Vendas_Valor Vendas_Custo Vendas_Unidades Vendas_ValorTotal Vendas_Lucro Vendas_Mdia

Vendedor Cliente Produto X X X X X X X X X X X X X X X X X X

Se o trabalho for executado corretamente, deve existir uma coincidncia exata entre a definio das dimenses e os dados retirados das fontes transacionais. Caso no ocorra essa coincidncia, em alguma das duas etapas ocorreu um erro ou os dados de origem no esto corretos ou as dimenses foram mal definidas. Vamos comear pela Dimenso Tempo pois, como foi visto nesta unidade, a mais importante dentro de qualquer data mart. Nosso cliente precisa analisar os seus dados diariamente, ento necessrio definir os nveis:

Pgina 17 de 22

Ano Semestre Trimestre Ms Dia A tabela de dimenso estar formada:


Dimenso Tempo

* ** *** **** *****

Ano Semestre Trimestre Ms Dia

Dimenso Filial, usaremos um esquema estrela e a sua estrutura hierrquica ser:


Dimenso Filial

*
** *** **** *****

Filial Tipo Filial Pas Estado Cidade

Dimenso Vendedor, da mesma forma que a filial, ter um esquema estrela e estar definida pelos nveis:
Dimenso Vendedor

*
** ***

Filial Seo Vendedor

Dimenso Cliente, tendo todos os atributos de um cliente.

Pgina 18 de 22

Dimenso Cliente

*
** *** ****

Pas Estado Cidade Razo Social

Dimenso Produto, sendo construda de acordo com um esquema floco de neve. Nestes casos mantida a padronizao dos sistemas OLTP. Cada tabela contm os dados iniciais e sua relao com o resto. A dimenso ser padronizada pois usaremos mais tabelas para constru-la. Nosso cliente pode classificar seus produtos de acordo com a categoria, o departamento e a famlia de produto qual pertence.

Montagem da Tabela de Fatos


Aps definir as dimenses e seus nveis, realizaremos a montagem da tabela de Fatos. A tabela de fatos deve ter as colunas chave das tabelas de dimenses e as colunas de medidas. Primeiro devemos colocar as colunas chave da tabela em cada uma das tabelas de dimenses.

Pgina 19 de 22

Fat_Vendas ID_Data ID_Produto ID_Cliente ID_Vendedor

Definio das Medidas


importante lembrar que as medidas so os valores numricos que o usurio deseja analisar. Vimos que o nosso cliente precisa medir: O custo includo 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 no ser acrescentada tabela pois esta medida pode ser calculada a partir das medidas naturais vendas valor e vendas custo. Nosso modelo contar tambm com as medidas calculadas: Vendas_Lucro que ter a frmula Vendas_Valor menos Vendas_Custo Vendas_Mdia que ser o resultado da soma de Vendas_Unidades dividido por quantidade de dias, verificando a condio do numerador diferente de zero.

Pgina 20 de 22

Realizadas estas trs etapas, podemos ver o desenho completo do nosso data mart.

Lies Aprendidas
Um Data Mart adota um esquema estrela para maximizar o desempenho das consultas. As dimenses so categorias descritivas pelas quais as medidas podem ser separadas para anlise. A dimenso Tempo esta implcita em todo o Data Mart. As medidas so os dados numricos de interesse primrio para o cliente. Com as medidas calculadas possvel construir alertas.

Pgina 21 de 22

Perguntas de Reflexo
Os requerimentos esto definidos claramente? Conhecemos os fatos que desejamos analisar, os indicadores e as aberturas pelas quais desejamos realizar a anlise? Esta definio est de acordo com as tabelas auxiliares criadas e carregadas com dados dos sistemas OLTP? Sabemos se os usurios utilizaro as dimenses para navegar ou para filtrar? As dimenses desenhadas atendem as necessidades dos usurios de forma intuitiva e com facilidade de manipulao? J temos todas as medidas naturais com as aberturas requeridas? Est definida a forma de agregao, ao sair da granularidade mnima, para todas as medidas naturais? Esto definidas as frmulas ou critrios de todas as medidas calculadas? Esto documentadas corretamente todas as definies?

Pgina 22 de 22

Você também pode gostar