imagem artigo

Introdução à Modelagem Dimensional

Escrito por Uiliam Venério
 em 26 de novembro de 2020

A modelagem dimensional é um dos principais elementos de um projeto de Business Intelligence e neste artigo vamos tratar dos conceitos que envolvem este tipo de modelagem e que servem de base para conseguirmos projetar corretamente um Data Warehouse (DW). Para absorver melhor o conteúdo desde artigo recomendamos a leitura do artigo “O BI ao longo da história”, que servirá como introdução ao mundo do BI.

Atualmente, mesmo com o surgimento de novas ferramentas, do self-service BI e com diversas possibilidades de arquiteturas utilizadas para análise de dados, podemos dizer que o DW ainda é uma estrutura muito importante no armazenamento e organização dos dados analíticos de uma organização, principalmente quando tratamos de empresas com diversas fontes de dados e sistemas transacionais. Também é verdade que muitas dessas novas ferramentas, como o Power BI, permitem conexões diretamente em bases de dados relacionais, dispensando a utilização de um DW, porém, ainda há um detalhe importante a se considerar, a necessidade da criação de um modelo dimensional.

Para trabalhar de maneira eficiente e dentro dos conceitos básicos de uma aplicação de business Intelligence é preciso criar o que chamamos de modelo dimensional, que permite modelar/estruturar as entidades de um banco de dados (tabelas e relacionamentos), a fim de tornar o modelo mais eficiente do ponto de vista analítico, visando o alto desempenho de acesso das informações por parte do negócio e não apenas a eficiência tecnológica no armazenamento dos dados.

Criar um modelo dimensional é um exercício que exige o desprendimento de muitas das regras que aprendemos na “modelagem tradicional” de banco de dados. Na construção de um banco de dados transacional, utilizados por sistemas como ERPs, CRMs ou PDVs, há uma busca constante por otimização dos volumes trabalhados, buscando evitar anomalias e redundância de dados, existindo até um conjunto de regras para a chamada normalização dos dados. Assim, uma base dados normalizada deve ser livre de anomalias e redundâncias.

Para surpresa de muitos, quando falamos de modelagem dimensional, também chamada de multidimensional, precisamos deixar de lado as regras de normalização de banco de dados e pensar em um modelo que atenda às necessidades do negócio. Ou seja, o modelo deve possuir tabelas e relacionamentos que façam sentido na hora da extração dos dados e apresentação para o cliente final. Os dados devem estar organizados de maneira que facilitem a extração e o cruzamento de informações. Em um modelo dimensional (desnormalizado) o foco está na consulta, já em um banco de dados normalizado temos o foco em inserir, alterar e deletar os dados.

Outro ponto importante é ter um modelo que consiga ser interpretado pela área de negócios. Ao contrário do acontece muitas vezes no modelo transacional, as entidades do modelo dimensional devem fazer sentido para o negócio, utilizando termos e nomenclaturas coerentes para os clientes. É muito comum encontrarmos campos ou tabelas genéricas em sistemas transacionais, com nomes como “X100”, “TB78”, que não fazem nenhum sentido para o negócio. Nesses casos é preciso utilizar nomenclaturas amigáveis e que sejam facilmente compreendidas pelo cliente.

É muito comum ouvirmos que uma das etapas mais importante de um projeto de BI e também onde a maioria dos projetos falha é no processo de ETL e isso realmente é verdade, sem a execução correta da extração, transformação e carga dos dados, não vamos conseguir obter as informações para apresentar os dashboards na ferramenta de visualização para o cliente final. O que muitos esquecem é que o sucesso do processo de ETL também depende do desenho correto do modelo dimensional, uma vez que, não adianta extrair os dados das fontes e “jogar” em tabelas com a mesma estrutura do banco transacional.

A construção de um modelo dimensional bem desenhado deve ter como princípio a simplicidade, afinal modelos muito complexos tentem a ser problemáticos a longo prazo, tornando-se “pesados” e de difícil manutenção, então aqui podemos aplicar uma regra básica, “se está muito complexo, está errado”, ou seja, modelagens muito complexas precisam ser reavaliadas e simplificadas.

Quando falamos de DW e modelagem dimensional, dois autores são referência, Ralph Kimball e Bill Inmon. Os dois possuem visões ligeiramente diferentes sobre a constituição de um DW. Segundo definição apresentada por Inmon em 1996, um DW seria uma coleção de dados centralizada, parte da arquitetura de BI da empresa, de onde os Data Marts (DM) consomem os dados. Já Kimball, definiu em 1998, que o DW é formado logicamente por um conjunto de Data Marts, logo os DM nascem primeiro, sendo desenvolvidos separadamente, observando-se dimensões conformes.

Mesmo com duas vertentes tratando de maneiras diferentes a organização de um DW através de Data Marts, os elementos de uma modelagem dimensional são convergentes. Em 2001 Carlos Barbieri publicou que “O modelo dimensional disponibiliza itens necessários para modelar assuntos onde uma série de entradas (dimensões) estarão ligadas à algumas poucas métricas (fatos), criando uma notação legível e objetiva”. Reforçando assim os principais elementos da modelagem dimensional: fatos, dimensões, métricas e atributos.

A modelagem de um Data Warehouse pode ser aplicada em sistemas de bancos de dados “tradicionais”, como Microsoft SQL Server, PostgreSQL ou Oracle, porém os principais serviços de nuvem já oferecem serviços criados especialmente para este fim, como é o caso do Amazon Redshift e do Azure Synapse Analytics (anteriormente SQL Data Warehouse). O que não muda, independente da tecnologia de armazenamento são os conceitos básicos, onde criamos dois tipos distintos de tabelas, as fatos, que armazenam medidas numéricas associadas aos eventos do negócio e as dimensões, que representam os assuntos do negócio, tratando a perspectiva de análise do negócio, sendo entendida também, como os filtros da informação.

Agora que já temos uma ideia melhor sobre os conceitos de modelagem dimensional, vamos deixar para o segundo artigo para falarmos um pouco mais sobre os tipos de modelagem, abordando assuntos, como Star Schema, Snowflake e Granularidade. Até lá!

Quer fazer parte do nosso time? #VemPraDBC

Confira nossas vagas em: https://dbc.compleo.com.br/

por Uiliam Venério Analista BI
Menu - DBC Company

Compartilhe

Compartilhar no facebook
Compartilhar no whatsapp
Compartilhar no twitter

Este post tem um comentário

  1. Rafael Monzolli

    Gostaria de parabeniza-los pelo artigo! É muito interessante e bem escrito, sem dúvidas me ajudou muito! Espero que ajude tantas pessoas como me ajudou.

    Alias gostaria de sugerir um conjunto de artigos que falem um pouco mais na pratica como estruturar uma base/análise de dados na AWS ou Azure. Sem dúvidas vai bombar!

    Abração

    Rafael Monzolli

Deixe um comentário!

E participe da conversa.

Veja Também

Ferramentas de automação tendências para 2021
Olá, tudo bem? É a minha primeira vez escrevendo aqui no nosso blog, então vou iniciar esse post me apresentando. Meu nome...
Modelagem Dimensional – Star Schema e Snowflake Schema
Agora que já aprendemos os conceitos básicos da modelagem dimensional, no artigo “Introdução à Modelagem Dimensional”, podemos nos aprofundar no tema, abordando...