Relacionamentos no Power BI: como conectar tabelas e criar um modelo de dados eficiente

Um dos conceitos mais importantes e mais mal compreendidos por quem está começando no Power BI é o de relacionamentos entre tabelas. Saber criar e gerenciar relacionamentos corretamente é o que separa um relatório amador de um relatório profissional e preciso. Neste artigo iremos mostrar o que são relacionamentos no Power BI, como criá-los, quais são os tipos disponíveis e as boas práticas para montar um modelo de dados eficiente.

O que são relacionamentos no Power BI?

Relacionamentos são conexões que você cria entre duas tabelas do modelo de dados usando uma coluna em comum. Quando duas tabelas têm um relacionamento, o Power BI consegue filtrar automaticamente os dados de uma tabela com base nos filtros da outra, sem que você precise combinar as tabelas manualmente como faria no Excel com PROCV.

Por exemplo, se você tem uma tabela de Vendas e uma tabela de Clientes conectadas pelo campo ID do Cliente, ao selecionar um cliente no relatório, todos os visuais que mostram dados de vendas vão filtrar automaticamente apenas as vendas daquele cliente.

O modelo estrela: a estrutura ideal

O modelo de dados mais recomendado no Power BI é o modelo estrela (star schema). Nesse modelo, você tem uma ou mais tabelas fato no centro e várias tabelas dimensão ao redor, conectadas à tabela fato por relacionamentos.

  • Tabela fato: contém os dados transacionais, como as linhas de vendas, pedidos ou movimentações. Geralmente tem muitas linhas e poucas colunas descritivas.
  • Tabelas dimensão: contêm as informações descritivas, como a tabela de Clientes, de Produtos, de Vendedores e de Calendário. Geralmente têm menos linhas e mais colunas com atributos.

Esse modelo facilita a criação de medidas DAX e garante que os filtros se propaguem corretamente por todo o relatório.

Como criar um relacionamento no Power BI

Para criar um relacionamento, vá para a visualização de Modelo no Power BI Desktop (ícone de diagrama no painel esquerdo). Você vai ver todas as tabelas do seu modelo dispostas como caixas. Para criar um relacionamento, basta clicar na coluna de uma tabela e arrastar até a coluna correspondente na outra tabela.

Alternativamente, vá em Página Inicial > Gerenciar Relacionamentos > Novo e configure o relacionamento na janela que se abre.

Tipos de cardinalidade

A cardinalidade define a relação de quantidade entre as duas tabelas do relacionamento. Os tipos mais comuns são:

Muitos para um (*:1) — o mais comum

É o tipo mais comum e o recomendado no modelo estrela. Significa que para cada valor na tabela fato (lado muitos), existe um único valor correspondente na tabela dimensão (lado um). Por exemplo, muitas linhas de vendas podem ter o mesmo ID de cliente, mas na tabela de clientes cada ID aparece apenas uma vez.

Um para um (1:1)

Significa que cada valor de uma tabela corresponde a exatamente um valor na outra. Raramente necessário na prática. Se duas tabelas têm cardinalidade 1:1, geralmente vale a pena combiná-las em uma única tabela.

Muitos para muitos (*:*)

Significa que os valores se repetem nos dois lados do relacionamento. Esse tipo de relacionamento é complexo e pode gerar resultados inesperados. Sempre que possível, crie uma tabela intermediária para transformar o muitos para muitos em dois relacionamentos muitos para um.

Direção do filtro cruzado

A direção do filtro cruzado define em qual direção os filtros se propagam entre as tabelas. Existem duas opções:

  • Única: os filtros se propagam apenas da tabela dimensão para a tabela fato (do lado “um” para o lado “muitos”). Essa é a configuração padrão e recomendada.
  • Ambas: os filtros se propagam nas duas direções. Deve ser usado com cautela, pois pode causar ambiguidade nos cálculos DAX e resultados inesperados.

A tabela de calendário e por que ela é essencial

Uma das tabelas dimensão mais importantes em qualquer modelo Power BI é a tabela de calendário. Ela contém uma linha para cada dia do período analisado, com colunas como Ano, Mês, Trimestre, Semana e Dia da Semana.

Sem uma tabela de calendário conectada ao modelo, as funções de inteligência de tempo do DAX (como SAMEPERIODLASTYEAR e DATESYTD) não funcionam corretamente. Sempre crie e conecte uma tabela de calendário ao seu modelo.

Para criar uma tabela de calendário básica no Power BI, use a função DAX:

DOMINE EXCEL COMIGO

QUERO APRENDER EXCEL

Calendário = CALENDAR(DATE(2020;1;1); DATE(2024;12;31))

Relacionamentos inativos e a função USERELATIONSHIP

Em alguns modelos, você pode ter duas colunas de data em uma tabela fato, como Data do Pedido e Data de Entrega. Você pode criar relacionamentos para ambas com a tabela de calendário, mas apenas um pode estar ativo. Para usar o relacionamento inativo em uma medida DAX específica, use a função USERELATIONSHIP dentro do CALCULATE:

Vendas por Data Entrega = CALCULATE(
    [Total de Vendas];
    USERELATIONSHIP(Calendário[Data]; Vendas[Data Entrega])
)

Erros comuns ao criar relacionamentos

Os erros mais comuns são: criar relacionamentos na direção errada, usar colunas com valores duplicados no lado “um” do relacionamento (o que impede o relacionamento), ter valores na tabela fato que não existem na tabela dimensão (o que causa linhas em branco nos visuais) e criar relacionamentos muitos para muitos sem perceber.

Se você curtiu esse artigo onde mostramos como criar relacionamentos no Power BI e montar um modelo de dados eficiente, compartilhe com as suas redes sociais e não se esqueça de deixar um comentário aqui embaixo caso você tenha ficado com alguma dúvida.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *