Modelagem de Dados
Atualizado: 5 de ago.
A modelagem trata do relacionamento entre tabelas, isto é, da relação (conexão lógica) gerada a cada par de tabelas, para que os dados dessas tabelas se interliguem através de dados comuns. Isso traz várias vantagens para a estrutura de dados e desepenho do banco de dados e/ou do relatório, tratando-se de POWER BI.
Alguns motivos para usarmos relacionamentos:
Evitar a redundância de dados nas tabelas;
Traz leveza ao modelo de dados;
Economida de estaço e processamento;
Facilita a criação de relatórios, melhorando os processos de busca e análise de dados.
O Que é Modelo de Dados?
O modelo de dados é a estrutura central dos dados das tabelas, em outras palavras, é o recurso que determina a organização, padronização e relação entre os dados dos diferentes conjuntos de dados no seu relatório. Sem um bom modelo é impossível obter um relatório funcional e confiável.
O relacionamento entre as tabelas se dá a partir de conexões entre campos comuns A CADA PAR de tabelas.
Para definir os relacionamentos (ou cardinalidade) é importante ter em mente a classificação das tabelas.
Um ponto importante para gerar um bom modelo de dados é identificar o perfil das tabelas, que podemos classificar as tabelas como:
Tabelas Dimensão
Tabelas Fato
Classificação das Tabelas
Tabelas Dimensão
Geralmente conhecidas como tabela de "Cadastro", isto é, tabelas que armazenam dados característicos e descritivos de pessoas, objetos, produtos, categorias, lojas (matriz e filiais), etc.
Exemplo de Tabela Dimensão: a dTabLivros traz o cadastro dos livros. Observe que o Id e o Título dos Livros NÃO se repetem.

Tabelas Fato
Geralmente conhecidas como Tabelas “Narrativas” ou “Históricas”, isto é, são tabelas que armazenam dados com histórico de vendas, movimentação financeira, atendimentos, movimentação de estoque, dentre outros.
Outra característica é que são tabela extensas, com grande volume de dados, elevado número de atualizações.
Os dados dessas tabelas é que, geralmente, serão analisados nos relatórios, e alimentarão os gráficos e demais visuais estatísticos.
Exemplo de tabela FATO: a tabItensDaVenda é a tabela que armazena os dados de histórico de vedas de Livros. Observe que os títulos e os Ids SE repetem, sempre que vendidos, nessa tabela.

*Observe que o IDLivro SE repete na tabela Fato, porém NÃO se repete na tabela Dimensão
Esquema de Modelagem Tipo Estrela
Como dito anteriormente, o tipo de modelagem mais comum em BI é a do tipo estrela (???!!!!).
Nesse modelo existirá uma única tabela Dimensão centralizando as conexões com as demais tabelas FATO do modelo.
É importante destacar que o modelo Estrela nem sempre será a melhor opção. Como já comentado neste artigo, o modelo sempre dependerá do conjunto de dados e tabelas existentes no modelo.
Nesse sentido não devemos nos prender a um único modelo, no caso do modelo estrela, e sim observar as tabelas disponíveis no modelo de dados.
Esquema de Modelagem Tipo Estrela - Exemplos

Fonte das Imagens: site Caderno de Prova - https://cadernodeprova.com.br/esquema-estrela-star-schema/
Um-para-Um
Considerando dois conjuntos de dados (tabelas) A e B, significa que para cada linha (registro) da tabela A só, e somente só, haverá nenhum ou apenas um registro correspondente na tabela B.
É uma relação estabelecida entre duas tabela Dimensão

Um-para-Muitos
Considerando dois conjuntos de dados (tabelas) A e B, significa que para cada linha (registro) da tabela A haverá nenhum, um, ou mais de um registros correspondentes na tabela B.

Muitos-para-Muitos
Tipo de relacionamento, ou cardinalidade, onde vários registros de uma Tabela A, encontra paridade em vários registros na Tabela B, e vice e versa.
Em outras palavras, considerando dois conjuntos de dados (tabelas) A e B, significa que para cada linha (registro) da tabela A haverá nenhum, um ou mais de um registros correspondentes na tabela B, e vice versa.
Mas vale destacar que, tecnicamente, não existe relacionamentos de Muitos – para – Muitos. Ou pelo menos NÃO SÃO criados de forma direta.
Embora o POWER BI permita esse tipo de relacionamento, essa carinalidade gera uma alteração no volume de registros, trazendo para o relatório uma alteração nos resultados apresentados.
As tabelas abaixo exemplificam uma relação (cardinalidade) de Muitos - para - Muitos, de forma direta.
Como comentado anteriormente, essa não é a melhor forma, pois isso causará problemas na estrutura de dados, e o modelo será corrompido:
Haveria a necessidade de repetir valores várias vezes em colunas diferentes.
Ficará praticamente impossível realizar buscas bidirecionais eficientes, filtrar ou agregar dados de forma coerente.
A exclusão ou alteração de registros implicaria na atualizar múltiplas linhas, aumentando muito o risco de erros e dados órfãos.

A melhor solução, quando for necessário gerar uma relação (cardinalidade) de Muitos – para – Muitos, é acrescentar uma terceira tabela.
Vamos considerar dois conjuntos de dados, sendo A representanto a dTabLivros, e B representando a tabela dTabAutor. Havendo a necessidade de criar uma relação entre ambas, que seria de Muitos - para - Muitos, visto que:
Um autor pode escrever vários livros
Um livro pode ser escrito por vários autores
Criamos uma terceira tabela C representando fTabEscreve. Essa terceira tabela também pode ser chamada de “Tabela Bridge”, ou Tabela Ponte. Veja o exemplo abaixo:

Assista o vídeo abaixo, onde explicaremos e exemplificaremos as funções desse artigo.
Para seguir os exemplos propostos, baixe o aquivo Excel localizado no link abaixo:
Caso não tenha o POWER BI Desktop instalado sua máquina, baixe-o atráves do botão abaixo:
Criando Exemplo de Modelo de Dados e Cardinalidade entre Tabelas
1 - Crie uma instância do POWER BI clicando no ícone do POWER BI, criado após a instalação

Após abrir o Power BI, será apresentada a tela abaixo:

2 - Clique no botão em destaque (Relatório em Branco), e a tela abaixo será apresentada:

O próximo passo é importar os dados da base baixada no início desse artigo, uma pasta Excel chamada EstudoSobreFuncoes.
3 - Para importar os dados da base, clique no botão "Pasta de Trabalho do Excel", como destacado na tela abaixo:

Para realizar a importação, siga os passos abaixo
4 - Clique no botão destacado na imagem acima: Pasta de Trabalho do Excel
5 - Na tela que será apresenta, selecione a pasta Excel "BaseLivraria" e clique no botão Abrir, como apresentada na tela abaixo:

6 - Na próxima tela selecione TODAS as tabelas, e clique no botão "Carregar". Observe a tela abaixo:

Observe que todas as tabelas serão carregadas para o POWER BI

Observe o destaque no botão "Aplicar alterações". Esse botão não precisa ser clicado, pois a alterações, no caso a carga de dados, já está em processamento.
Vamos a modelagem de dados:
7 - Clique que no botão "Exibição de Modelo".

A partir de agora vamos iniciar a análise sobre modelo
Observe que o próprio POWER BI procura auxiliar, sugerindo conexões entre as tabelas.

As representações de cardinalidade no POWER BI são:

8 - Para desfazer uma relação clique com o botão direito do mouse sobre a linha da relação exitente, e selecione a opção "Excluir".

Observe o resultado:

9 - Para estabelecer uma relação (ou cardinalidade) entre duas tabelas, observer o campos comuns entre as tabelas e arraste um para cima do outro.
Na sequência a tela "Novo Relacionamento" será apresentada, como exposto na tela abaixo:

Identificação dos pontos destacados:
Na Tela de Modelo de Dados
1 - Campo IdGenero da tabela TabGenero. Esse é o campo comum entre a TabGenero e TabLivros.
2 - Campo IdGenero da tabela TabLivros. Esse é o campo entre a tabela TabLivros e TabGenero.
Na tela "Novo Relacionamento", temos os seguintes pontos:
1 - Campo IdGenero da tabela TabLivros;
2 - Campo IdGenero da tabela TabGenero;
3 - Cardinalidade definida como Muitos - para - Um (o mesmo que Um - para - Muitos), mas traz as opções de Um - para - Um, e Muitos - para -Muitos, como alternativa. Mas estas não serão selecionadas, mantendo a Muitos - para - Um;
4 - Direção do Filtro Cruzado definido como Único, isto significa que TabGenero (Tabela Dimensão) filtrará TabLivros (Tabela Fato, quando TabGenero é a referência). Quando selecionado Ambos, significa que a relação do filtro será de TabGenero para TabLivro, e vice e eversa;
5 - "Ativar este Relacionamento", quando selecionado, significa que é a relação válida entre as tabelas.
Obs.: Existem situações em que a relação estará destivada, e a linha da cardinalidade ficará tracejada.
Quando for o caso a relação só será reconhecida através uma função DAX USERELATIONSHIP.
Na tela abaixo apresenta uma relação ATIVA:

A tela abaixo apresenta uma Cardinalidade INATIVA

Observe a tela abaixo e veja a análise que faremos sobre a cardinalidade (ou relação) estabelecida entre TabGenero e TabLivros:

Vamos observar e definir os pontos em destaque:
Os números 1 e 2 representam que a relação entre TabGenero(1) e TabLivros(*) é de Um - Para - Vários
O número 3 representa filtro é um único sentido, isto é, TabGenero filtra TabLivros.
Os números 4 representam o campo comum entre as tabelas.
Chaves Primária (Primary-key) e Estrangeira (Foreign-key)
Como comentado em alguns pontos anteriores desse artigo, os relacionamentos serão sempre entre campos comuns e/ou equivalentes entre cada par de tabelas.
Os campos comuns serão sempre no mesmo tipo, ou de tipos compatíveis, como por exemplo:
Texto - Texto
Número - Número
Data - Data
E, de acordo com a forma que se apresentam na tabela, serão classificados como Chave-Primária ou Chave-Estrangeira.
O que são chaves primárias e estrangeiras
As chaves são de extrema importância para banco de dados relacionais, pois definem como as relações entre as tabelas acontecerão.
Para entendermos melhor os conceitos seguintes, vamos sempre ter em mente que estamos falando de duas tabelas: A e B.
Chave Primária (ou Primaty-key, ou PK): É a chave que torna um registro EXCLUSIVO na tabela de dados. Garante que não haverá duas ou mais linhas exatamente iguais na mesma tabela (tabela dimensão).
Por exemplo, o RG e/ou CPF tornam cada pessoa física única diante do estado. Na empresa em que trabalhamos, academia ou faculdade que frequentamos temos a matrícula, que torna cada funcionário ou aluno dentro da instituição únicos.
Exemplo de Tabela Dimensão e Identificação da Chave Primária:

Observe que o Id do Autor não se repete.
Chave Estrangeira (ou Foreign-Key, ou FK): É a chave garante a ponte entre duas tabelas, identificando na segunda tabela um registro vindo da primeira tabela. Ela serve de ponte entre duas tabelas.
Os dados vindos da tabela dimensão podem, ou não, se repretirem na segunda tabela. A segunda tabela será uma tabela FATO, tendo como refrência a primeira tabela, tabela Dimensão.
Exemplo de Tabela FATO com identificação da Chave Estrangeira:

Os relacionamentos sempre serão entre par de tabelas, mas uma tabela pode formar par com várias tabelas.
Chave Composta (ou Chave Primária Composta)
É formada por duas ou mais colunas (limite aceitável são três colunas), para representar uma chave primária.
Por exemplo, alguns orgãos de Estado necessitam das passoes físicas três informações: Nome Completo, Data de Nascimento e Nome da Mãe. Esses três dados, juntos, são pacazes de identificar uma pessoa física, tornado única em um banco de dados.
Esse recurso é capaz de manter a integridade dos dados em relacionamentos de Muitos - para - Muitos.
Gostou? Deixe seus comentários. Se torne membro do nosso canal no YouTube e nos siga em nossas redes sociais.
Linkd In: linkedin.com/company/learnbiacademy
Facebook: https://www.facebook.com/learnbiacademy
Instagram: https://www.instagram.com/learnbiacademy
Grande abraço.
Até o próximo artigo.


Comentários