2
respostas

Modelagem

Segue uma mudança que gerou duvidar se pode ou não e oq mudaria!
Olist_Pagamento/ID_Pedido <1---1> Olist_Pedido/ID_Pedido

Foi criada automaticamente pelo PBI, porem oq mudaria se eu trocasse para Olist_itens_pedidos/ID_Pedidos?????
Nessa mudança ele automaticamente criaria a cardinalidade certa de 1 <---> * (Um para muitos)

Ja criaria até o modelo desejado que seria o -->>Star Schema <<--

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas

Olá, Michael! Tudo bem?

Sua dúvida é muito pertinente e toca em um dos pontos mais sensíveis da modelagem de dados no Power BI: a granularidade e o sentido dos dados.

Ao trocar a relação, você não está apenas mudando linhas no diagrama, mas alterando como o Power BI entende o seu negócio. Vamos analisar o que acontece nessa troca:

1. Entendendo a Cardinalidade Original

A relação que o Power BI criou automaticamente entre Olist_Pagamento e Olist_Pedido como 1:1 indica que, para cada pedido registrado, existe exatamente um registro de pagamento. Isso ocorre quando a tabela de pagamentos não detalha parcelas ou métodos diferentes para um mesmo ID.

2. O que muda ao conectar com Olist_itens_pedidos?

Ao conectar a tabela de Pagamentos diretamente à de Itens, você está saltando uma etapa lógica. Note que:

  • Granularidade: Um único pedido (ID_Pedido) pode conter vários itens diferentes (ex: uma camiseta e um boné). Na tabela de itens, o ID_Pedido aparece várias vezes (um para muitos: $1:*$).
  • Consequência: Se você relacionar Pagamento com Itens, o Power BI pode acabar "duplicando" o valor do pagamento para cada item do pedido em um cálculo de soma simples, o que geraria um resultado financeiro errado.

3. O Caminho para o Star Schema

Você mencionou o Star Schema (Esquema Estrela), que é de fato a melhor prática. Para chegar nele com esses dados do Olist, a estrutura ideal costuma ser:

  1. Tabela Fato: Olist_itens_pedidos (onde acontecem as vendas).
  2. Tabelas Dimensão:
    • Olist_Produtos (conectada por ID_Produto).
    • Olist_Pedidos (conectada por ID_Pedido). Aqui, a tabela de pedidos guarda o cabeçalho (data, cliente, status).
    • Olist_Pagamentos (conectada à tabela de Pedidos ou servindo como uma Fato auxiliar).

Qual o impacto real?

Se você conectar Pagamentos a Itens e a cardinalidade virar 1:M ou M:M:

  • Filtros: O filtro aplicado em Pagamentos (ex: filtrar por "Cartão de Crédito") fluirá para os itens, o que parece correto.
  • Ambiguidade: Você pode criar um caminho circular ou redundante se Pedidos também estiver conectado a Itens. O Power BI deixará uma dessas linhas pontilhada (inativa).

Conclusão: O ideal é manter a tabela de Pedidos como o "elo" central. Os pagamentos referem-se ao pedido como um todo, enquanto os itens detalham o que foi comprado. Conectar Pagamentos diretamente a Itens pode mascarar a realidade de que um pagamento quita o carrinho inteiro, e não um item isolado.

Faz sentido para a análise que você está construindo? Tente observar se a soma total de pagamentos bate com o total de vendas após essa mudança!

Faz todo sentido, fazendo alguns teste com medidas e calculos observei valores errados. Chegue a entender o pq deveria estar ligado Pagamentos à pedidos. Obrigado