Assunto hoje é modelagem de dados, vou mostrar como criar dimensões a partir da tabela fato.
Entenda melhor o conceito de dimensão e fato:
- As dimensões definem uma entidade de negócio, ou seja, possuem o cadastro ou descrição do fato, são sempre identificadas por um código único, geralmente possuem muitas colunas e poucas linhas, e são utilizadas para filtrar valores da tabela fato. Exemplo: Produto, Cliente, Fornecedor, Conta Bancária, Máquinas, Centro de Custo, Calendário, etc.
- As tabelas fatos são as que possuem movimentações e eventos históricos, estão atreladas a uma data, e é composta das chaves das dimensões e valores quantitativos, além disso, possuem poucas colunas e muitas linhas, exemplo, vendas, títulos pagos, movimentações bancárias, ordens de produção, entregas, estoques, pedidos, chamados.
Regras básicas de modelagem:
- Sempre tente utilizar o esquema estrela, ou seja, dimensão ligadas a fatos
- Nunca relacione duas tabelas fatos entre si diretamente.
Os dados que serão utilizados neste artigo, são compostos de 03 tabelas, frete, despesas e região.
Transformação do Tabelão
Começaremos importando a tabela de fretes, e para esta análise inicial não é necessária nenhuma transformação, apenas importe e clique em fechar e aplicar.
Para descobrir quais são as dimensões de um tabelão, analise se a informação varia ao longo do tempo ou não.
Por exemplo, Região Cliente:
Veja que há um único valor de região para cada cliente, isso leva a crer que a região do cliente é uma característica que deve estar presente na tabela de cliente.
Da mesma forma, ao analisar o “idResponsavel”, nota-se que ele não é um atributo da tabela de cliente, pois existe mais de um “idResponsável” por cliente.
Dica: a comparação deve ser feita sempre id com id.
Feita a análise prévia, pode-se então começar a criar as tabelas, primeiro, desabilite a carga do tabelão, e em seguida, a partir dela crie as referências que irão armazenar as novas tabelas.
Crie 04 referências, conforme a imagem da figura 04, cada referência irá armazenar uma nova tabela.
Na primeira referência, nomeie como “dCliente”, e em Página Inicial > Escolher Colunas, marque as colunas relativas aos atributos do cliente, conforme destacado abaixo.
Agora selecionando a coluna “idCliente”, coluna que identifica os clientes, clique com o botão direto do mouse e escolha a opção de remover duplicatas.
Faça os mesmos procedimentos para as tabelas, “dResponsvel”, “dVeiculos”.
As tabelas dVeiculos e dResponsável devem conter respectivamente as colunas marcadas abaixo.
Lembrando: Esse procedimento de criar dimensões através da tabela fato, sempre é realizado quando não é possível o acesso ao banco, ou quando não é possível obter as dimensões de outra forma, como extração do ERP, por exemplo.
Agora na última referência, renomeie como “fFrete”, em seguida escolha as colunas destacadas abaixo e as colunas “valorfrete”, “ValorMercadoriaCD1”, “ValorMercadoriaCD2”, “ValorMercadoriaCD3”.
Selecionando as colunas “ValorMercadoriaCD1”, “ValorMercadoriaCD2”, “ValorMercadoriaCD3”, vá em Adicionar Coluna > Padrão > Adicionar, isso irá criar uma coluna com a soma desses valores. Renomeie a coluna de soma como “ValorTotalMercadoria”.
Agora selecione novamente as colunas de “ValorMercadoriaCD1”, “ValorMercadoriaCD2”, “ValorMercadoriaCD3” e acionando o botão direito do mouse, escolha a opção transformar colunas em linhas.
Renomeie a coluna atributo como “CentroDistribuicao” e a coluna de valores como “ValorMercadoria”.
Selecione a coluna “CentroDistribuicao” e em Tansformar > Extrair > Texto após o delimitador, para manter nessa coluna apenas o nome do CD.
Na guia Adicionar Colunas > Coluna Personalizada, faça a conta destacada abaixo:
([ValorMercadoria] * [ValorFrete]) / [ValorTotalMercadoria]
Renomeie a nova coluna como “ValorFreteCD”.
Remova as colunas “ValorFrete”, “ValorTotalMercadoria”, “idFrete”, “NotaFiscal”.
Desnormalizando a Tabela Região
Importe a tabela de região para poder desnormalizá-la para as tabelas dCliente e dResponsavel.
Selecione a tabela dCliente, clique em Página Inicial > Combinar > Mesclar Consultas, e configure conforme mostrado abaixo.
Na nova coluna criada, clique nas setas destacadas na imagem abaixo e selecione a região, nomeie a coluna expandida como “RegiaoCliente”.
Repita o processo com a tabela “dResponsavel”, em seguida desabilite a carga da tabela “dRegiao”.
Importando a Tabela de Despesas
Importe a tabela Resultado e renomeie com “fDespesas”, em seguida, selecionando as colunas ano e mês clique no botão direito do mouse, escolha opção mesclar colunas, altere o tipo da nova coluna criada para data.
Em “Escolher Colunas”, mantenha apenas as colunas marcadas abaixo.
A modelagem está quase pronta, pode clicar em fechar e aplicar.
Criando a dCalendario
Para este caso, vá em página inicial > Nova tabela> dCalendario = CALENDARAUTO()
Isso irá gerar uma lista de datas.
Após criar a dCalendario, faça os relacionamentos conforme mostrado abaixo.
Criando Alguns Cálculos
Alguns cálculos para finalizar nossa modelagem.
Despesas =SUM ( fDespesas[DespesasTotal] )
Faturamento =
SUM ( fFretes[ValorFreteCD] )
Resultado =
[Faturamento] – [Despesas]
Resultado % =
DIVIDE ( [Resultado]; [Faturamento] )
Total Mercadoria =
SUM ( fFretes[ValorMercadoria] )
Pronto, finalizamos o nosso modelo.
![](https://xperiun.com/wp-content/uploads/2021/06/Figura-20-Visual-Final.png)
Espero que tenha gostado. Até a próxima!
PS: Para não perder o conteúdo completo da próxima live , entre no nosso canal do Telegram! Aviso tudo por lá!
Abraços,
Leonardo.