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:
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:
ProductKey (ex: 25).ProductKey (ex: 25) e o nome "MP3 Player".