O esquema em estrela (algumas vezes referenciado como esquema junção estrela) é o estilo simples de esquema do data warehouse. O esquema em estrela consiste de algumas tabelas de fatos (possivelmente apenas um, o que justifica o nome) referenciando qualquer número de tabelas de dimensão. O esquema em estrela é considerado um importante caso especial do esquema floco de neve.
(Source, Wikipedia - http://en.wikipedia.org/wiki/Star_schema)
- Este modelo funciona bem em um cenário de um evento único simplista. Mas, como o QlikView pode lidar com múltiplas fontes de dados a partir de muitas fontes de diferentes sistemas e arquivos, temos que trabalhar com vários cenários de eventos, ou muitas tabelas de fatos.
- No caso de várias tabelas de fatos o QlikView permite-nos criar uma tabela de link central que contém apenas as combinações de dados existentes
- Em vez de juntar (Join) as tabelas, as dimensões da fato podem ser CONCATENADAS para uma tabela de link central
- Esta tabela de link pode então ser ligada de volta as metricas da fato de um lado, e as tabelas de dimensão do outro

TABELA DE LINK
Quando eu uso uma tabela de ligação?
Quando existem campos comuns em várias tabelas (há uma chave sintética) mas a maioria dos campos de cada quadro NÃO são compartilhadas.
•Neste exemplo, uma concatenação de tabelas fato seria a solução preferível, embora uma solução básica tabela de ligação também é válido.
A maioria dos campos de cada tabela de fatos não são compartilhados
Como faço para criar uma tabela de link?
1. Criar um campo chave com os campos comuns
2. Coloque todos os outros campos com o campo chave de #1
3. Crie uma nova tabela com a mesma chave (key link) e os campos comuns separadamente
Usando DISTINCT
- Se todas as tabelas não compartilham os mesmos campos exatos, crie chaves separadas para cada tabela na tabela de ligação
TABELAS
Sales:
Load
Year & ‘_’ & Month & ‘_’ & Branch & ‘_’ & [Item Number] as SalesKey,
[Customer Number],
[Invoice Number],
[Order Number],
[Salesman Number],
[Invoice Date],
[Sales Amount],
[Sales Qty],
[Cost Amount],
[Margin Amount],
[Unit of Measure]
FROM Sales;
Inventory:
Load
Branch & ‘_’ & [Item Number] as InvKey,
[On Hand Qty]
FROM Inventory;
Purchasing:
Load
Year & ‘_’ & Month & ‘_’ & Branch & ‘_’ & [Item Number] as POKey,
[PO Number],
[Req Delv Date],
[PO Amount],
[Ordered Qty]
FROM Sales;
TABELA DE LIGAÇÃO ou TABELA DE LINK
LinkTable:
Load DISTINCT
Year & ‘_’ & Month & ‘_’ & Branch & ‘_’ & [Item Number] as SalesKey,
Branch & ‘_’ & [Item Number] as InvKey,
Year & ‘_’ & Month & ‘_’ & Branch & ‘_’ & [Item Number] as POKey,
Year,
Month,
[Branch],
[Item Number]
FROM Sales;
LinkTable:
Load DISTINCT
Null() & ‘_’ & Null() & Branch & ‘_’ & [Item Number] as SalesKey,
Branch & ‘_’ & [Item Number] as InvKey,
Null() & ‘_’ & Null() & Branch & ‘_’ & [Item Number] as POKey,
Null() as Year, Null() as Month,
[Branch],
[Item Number]
FROM Inventory;
LinkTable:
Load DISTINCT
Year & ‘_’ & Month & ‘_’ & Branch & ‘_’ & [Item Number] as SalesKey,
Branch & ‘_’ & [Item Number] as InvKey,
Year & ‘_’ & Month & ‘_’ & Branch & ‘_’ & [Item Number] as POKey,
Year,
Month,
[Branch],
[Item Number]
FROM Purchasing;
Resultado
O que é uma tabela de ligação (link)?
É uma tabela que armazena todas as combinações possíveis de valores
Quando eu uso uma tabela de ligação (link)?
Quando existe mais do que um campo em comum entre as tabelas.
Qual é o benefício?
Manter a integridade de sua aplicação.
Nenhum comentário:
Postar um comentário