Arquitetura / Modelagem, Banco de Dados

Modelagem dimensional

Diversos sistemas computacionais são utilizados para auxiliar atividades e apoiar em decisões. Estes sistemas utilizam dados que são armazenados em repositórios a partir de dois modelos básicos: Relacional e Multidimensional.

A modelagem relacional representa o banco de dados a partir de uma coleção de relações para suportar o processamento de transações online (OLTP). São otimizados para processar consultas que podem afetar uma pequena parte do banco, bem como transações que envolvam inserções e alterações.

Já a modelagem multidimensional, ou dimensional, é a técnica de modelagem de banco de dados para o auxílio às consultas do Data Warehouse nas mais diferentes perspectivas. A visão multidimensional permite o uso mais intuitivo para o processamento analítico online (OLAP) e é modelado a partir de tabelas sumarizadas (fatos) e tabelas descritivas (dimensões). Detalhamento a seguir…


Modelagem dimensional
Modelagem dimensional é a técnica de projeto lógico de banco de dados mais usada no desenvolvimento de data warehouses, embora também possa ser aplicada ao projeto de sistemas de informações operacionais. Na verdade, ela busca apresentar os dados em um formato que seja intuitivo e ao mesmo atenda a acessos com um alto desempenho (Kimball, 1998).

Um modelo dimensional é composto por uma tabela com uma chave composta, denominada tabela de fatos, e um conjunto de tabelas menores conhecidas como tabelas de dimensão, que possuem chaves simples (formadas por uma única coluna). Na verdade, a chave da tabela de fatos é uma combinação das chaves das tabelas de dimensão. Isto faz com que a representação gráfica do modelo dimensional assemelhe-se a uma estrela. Por este motivo, o modelo também é conhecido como modelo estrela (Kimball, 1998).

A ideia fundamental da modelagem dimensional baseia-se no fato de que quase todo tipo de dado do negócio pode ser representado como uma espécie de cubo de dados, onde as células do cubo contêm os valores medidos e os lados do cubo definem as dimensões naturais dos dados (Harrison, 1998). A Figura 1 contém um exemplo de um cubo com 3 dimensões: produto (conjunto de produtos comercializados pela empresa), mercado (área de atuação) e tempo (período de tempo de atuação). Modelos dimensionais reais do mundo dos negócios geralmente possuem entre 4 e 15 dimensões.

Fig1

A seguir são definidos os elementos que compõem o modelo dimensional (Kimball, 1998).

Tabela de Dimensões. Uma dimensão é uma coleção de atributos textuais que são altamente correlacionados entre si. Os atributos textuais que descrevem coisas são organizados dentro das dimensões. Em uma base de dados de varejo são comuns dimensões como produto, armazém, cliente, promoção e tempo. A Figura 2 apresenta exemplos de dimensões: mercado, produto e tempo, de um histórico de negócios. Uma dimensão é dita conformada quando pode ser compartilhada por duas ou mais tabelas de fatos. Um exemplo de dimensões conformadas seria um caso que contivesse duas tabelas de fatos: uma de vendas realizadas e outra de vendas previstas, e que compartilhasse as mesmas dimensões: produto, mercado e de tempo.

Tabela de fatos. A tabela de fatos sintetiza o relacionamento existente entre as diversas dimensões. Isto ocorre porque a chave da tabela de fatos é a associação das chaves primárias das tabelas de dimensões. Geralmente este tipo de tabela possui um ou mais fatos numéricos que ocorrem na combinação de chaves que define cada registro. A tabela Histórico de Negócios, ilustrada na Figura 2, é um exemplo de tabelas de fatos.

Atributos X Fatos
Atributos. Geralmente são campos de textos, os quais descrevem uma característica de uma coisa tangível. Os atributos mais comuns são as descrições de produtos. O sabor é um exemplo de atributo do produto. Não se mede o atributo sabor de um produto. Se for necessário criar um produto com um novo sabor, cria-se um novo registro de produto.

Atributos de dimensões oferecem o conteúdo da maioria das respostas solicitadas pelos usuários. Pode-se dizer que a qualidade do data warehouse é medida pela qualidade dos atributos das dimensões. Uma tabela de dimensão contém muitos campos textos descrevendo os membros de uma dimensão particular. A meta do data warehouse é criar atributos de tabelas de dimensão com as seguintes características: eloquente, descritivo, completo, qualidade garantida, indexado, disponível e documentado. Exemplos de atributos são apresentados pela Figura 2, tais como: descrição de produto, produtor, marca, cor, tamanho e nível, da tabela de dimensão de produtos.

Fig2

Fatos. Um modelo dimensional faz distinção entre fatos e atributos. Um atributo é usualmente alguma coisa que é conhecida com antecedência. Um fato é uma observação do mercado. Muitos fatos no mundo dos negócios são numéricos, embora alguns possam conter texto. Algumas vezes, um valor numérico como “preço padrão” parece ser um atributo da dimensão produto, pois é uma constante conhecida antecipadamente. Mas, em um exame mais cuidadoso, verifica-se que o atributo preço padrão sofre alteração durante o ano, o que leva a alterá-lo na fase de projeto para um fato. Uma típica e correta decisão a ser tomada é considerar quase todos os campos numéricos de pontos flutuantes como fatos. Exemplos de fatos tais como: reais, unidades e preço (custo), da tabela histórico de negócios, podem ser verificados na Figura 2.

Técnicas de modelagem dimensional
Algumas técnicas de modelagem dimensional são apresentadas a seguir (Kimball, 1998).

Snowflaking. Uma dimensão é dita estar snowflaked quando os campos de baixa cardinalidade de uma dimensão compuseram uma outra tabela, a qual foi ligada com a tabela original com chaves artificiais. O snowflake (ilustrado na Figura 3 pelas tabelas dimensão cliente e subdimensão região) é feito para salvar espaço em disco, mas não é recomendado para ambientes de data warehouse por tornar a sua apresentação mais complexa (por aumentar o número de tabelas) e para consultas com processamento mais pesado (por aumentar a necessidade de junção de tabelas para se obter a informação), acarretando maior tempo de resposta.

Fig3

Star Schema. O nome “estrela” se dá devido à disposição em que se encontram as tabelas, sendo a tabela fato centralizada relacionando-se com diversas outras tabelas de dimensão. Veja um exemplo da estrutura do Star Schema na figura 4:

Fig4

Nesse modelo os dados são desnormalizados para evitar joins entre tabelas, diminuindo o tempo de consultas, no entanto devido a repetição de dados, utiliza mais espaço em disco. A vantagem desse modelo é a eficiência na extração de dados, o que é um grande diferencial em se tratando de um data warehouse.

Leiam também sobre ETL (Extração, Transformação e Carga).
Kimball University: As 10 Regras Essenciais para a Modelagem de Dados Dimensional

Referências:
Kimbal, R. et al. The Data Warehouse Lifecycle Toolkit: Expert Methods for Designing, Developing, and Deploying Data Warehouses. John Wiley & Sons, New York, 1998.

Bruzarosco, Donizete Carlos, André Vinícius Castoldi, and Roberto Carlos dos Santos Pacheco. “Criando data warehouse com o modelo dimensional.” Acta Scientiarum. Technology 22 (2000): 1389-1397.

Harrison, T.H. Intranet data warehouse, Berkeley, 1998.

Links:
Kimball Group
Business Intelligence (Diversos Links)

IN1903FINcapanema

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s