A tradução literal dessa palavra é “juntar”, “unir”. Os JOINs vão nos permitir fazer exatamente isso: juntar as nossas tabelas Fato e Dimensão, de forma a complementar as informações umas das outras

Sem o conceito de tabelas separadas, teríamos uma única tabela gigante chamada TudoMisturado. Cada vez que alguém comprasse um MP3 Player, o banco de dados ficaria assim:

VendaID Data Cliente Endereço Cliente Produto Cor do Produto Peso do Produto Fabricante
1 01/01 João Rua A, 10 MP3 Player Prata 0.5kg Contoso
2 01/01 Maria Rua B, 20 MP3 Player Prata 0.5kg Contoso
3 02/01 João Rua A, 10 TV LED Preto 10kg Litware

O Problema disso:

  1. Repetição (Peso): Note como repetimos "MP3 Player", "Prata", "0.5kg" e "Contoso" várias vezes. Se tivermos 1 milhão de vendas, vamos escrever esses textos 1 milhão de vezes. Isso gasta muito espaço.
  2. Manutenção (Pesadelo): Se a "Contoso" mudar de nome para "Contoso Inc.", teríamos que buscar e substituir em 1 milhão de linhas. Se errar uma, o relatório quebra.

Para evitar isso, "quebramos" essa informação em tabelas especializadas. É por isso que no banco de dados vemos DimProduct (Só dados do produto), DimCustomer (Só dados do cliente) e FactSales (Só os fatos da venda).

Isso economiza espaço e deixa tudo organizado.

Vamos supor que seu chefe pediu um relatório, ele não quer ver: "O Cliente 50 comprou o Produto 10". Ele não sabe quem é 50 nem o que é 10. Ele quer ler "O João comprou o MP3 Player".

Ai que entra o JOIN…

Ele diz ao banco de dados:

"Pegue o ID do produto que está na tabela de Vendas, vá até a tabela de Produtos, encontre esse mesmo ID e traga o Nome e a Cor para mim."

RESUMO: