BI: Introdução a Snowflake e Star Schema
Autor: Altieri Pereira | Publicado: 2014-04-22T19:30:00-07:00


Antes de criar um Data
Warehouse, você precisa conhecer alguns padrões de designer comumente
utilizados para DW, chamados “Star” e “Snowflake” Schema. Criados na década de
80, particularmente o Star Schema é largamente utilizado e se tornaram um
padrão informal para todos os tipos de aplicações BI.






Imagine uma aplicação de negócios comum, onde você precise
criar um relatório de vendas, que contenha produtos, fornecedores, endereço dos
fornecedores, clientes e alguns outros detalhes. Geralmente este tipo de
aplicação terá um banco normalizado e para um relatório simples como esse, você
precisará de relacionar várias tabelas, criar múltiplos Joins. Pense agora
nesse cenário, sabendo que muitas vezes este banco de dados terá tabelas com
nomes confusos e muitas vezes não explicativos.



Bancos normalizados são muito bem vindos para aplicações com
muitas transações, porem quando precisamos criar relatórios, isso pode tornar
em um pesadelo. Uma query que faça a junção de 10 tabelas por exemplo, pode
custar muito ao servidor quando são executadas.

Pense em outro fato, geralmente em uma empresa, os dados
para obter um relatório podem estar armazenado em sistemas distintos, o que
exige que seu relatório extraia dados de múltiplas fontes, o que é mais um
custo para consulta. Além de que, muitas vezes precisamos fazer uma análise
profunda das informações que estamos consultando, por exemplo, a sexo de uma
pessoa pode ser armazenada em uma base como letras “M”, “F” e em outra como
números “0”, “1”. 




Por estes problemas citados e por muitos outros, uma solução
de Business Inteligence tende a buscar uma forma mais explicativa de construção
do seu Data warehouse, este tipo de designer Star e Snowflake tende a ser
narrativo e menos normalizado, justamente focando em relatórios e análise de
dados.



Star Schema

Em uma modelagem “Star Schema” temos uma tabela central,
chamada de Fato. A tabela Fato serve de ligação entre as dimensões. No modelo
Star, as dimensões se ligam unicamente a Fato.



Como você pode ver na imagem abaixo, é fácil identificar
porque este modelo ganhou o nome de “Star Schema”:














Geralmente vamos conseguir visualizar uma “Star Schema” por
área de negócio. Nesse tipo de modelagem, pode perceber que algumas dimensões
serão compartilhadas entre as Fatos. Este tipo de dimensão é conhecida como
“Shared” ou “Conformed”. Durante muito tempo, um tabu muito grande entre criar
ou não este tipo de dimensão existiu entre os analistas de BI, porem hoje já se
chegou à conclusão que é uma boa pratica manter este tipo de dimensão
compartilhada.



Um modelo “Star Schema” é uma forma desnormalizada de
organização dos dados, porem bem mais eficiente para grandes volumes de dados
do que as formas normais.



Snowflake Schema


O designer Snowflake é menos utilizado atualmente, porem ele
pode ser mesclado com o modelo “Star Schema” utilizando uma forma hibrida. 

Em um modelo Snowflake, temos dimensões normalizadas. Veja
na imagem abaixo:











Veja como em “DimProduto”, temos uma ligação com
“DimCategoria”, então a fato não é a única tabela de ligação. Isto pode ser
eficiente para tratarmos dimensões que se repetem, porem deve ser utilizado com
cuidado quando estamos falando de BI. Uma ligação entre dimensões pode custar
vários ciclos de leituras ao disco, o que causa perca de performance e IO
desnecessário.



;) até mais