Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Chave única

Ola pessoal tudo bem?

Pelo que eu entendi de criar uma chave unica,

-é uma boa pratica

-é bom evitar chave sintética

-existem algumas maneiras de resolver chave sintética, JOIN, Concatenate, Link Table

Existe uma maneira de resolver a chave sintética que seja melhor em todos os casos?

Quais seriam as vantagens e desvantagens de cada uma dessas opções?@@

Labels (3)
1 Solution

Accepted Solutions
nicolett_yuri

Tabela sintética pode ser um problema na sua aplicação por gerar resultados não esperados em seus relatórios e também por diminuir a performance de sua aplicação. É aconselhável não deixar que essas tabelas se formem em sua aplicação.

O melhor em todos os casos não existe, cada caso é um caso e pode ser resolvido de uma ou de N maneiras diferentes.

ANSI JOIN

Pode ocorrer perde de dados (Ex: Vendas x Orçamentos - Existem clientes que foram orçados e não venderam, como tratar esse caso?)

Pode se tornar um problema se as tabelas não tem um relacionamento um-para-um (1:1)

CHAVES CONCATENADAS

Mesmo problema do ANSI JOIN

CONCATENATE (TABELAS)

Em alguns casos você pode perder associações importantes em sua modelagem

LINK TABLE

Mais trabalhoso de ser implementado

Maior tempo de execução de script

Peso um pouco maior na performance de utilização (em relação aos outros casos)

Opinião: Eu procuro utilizar, na maioria das vezes, LinkTable. Me adaptei bastante e consigo resolver 99% das modelagens. (PS: mas LinkTable não faz milagre)

View solution in original post

5 Replies
lucianosv
Specialist
Specialist

Bom dia.

Vou aqui colocar apenas a minha opinião, no entanto têm pessoas na comunidade com conhecimento maior:

É realmente uma boa pratica, no entanto não é somente bom evitar chave sintética. A chave sintética pode alterar os resultados e com certeza alterará tempos de resposta de carga e de objetos. Para mim é proibitivo.

Quanto a maneiras de resolver chave sintética, cada situação é diferente.

Eu gosto de trabalhar com concatenação, no entanto sempre carregando um campo que marca a origem dos dados.

nicolett_yuri

Tabela sintética pode ser um problema na sua aplicação por gerar resultados não esperados em seus relatórios e também por diminuir a performance de sua aplicação. É aconselhável não deixar que essas tabelas se formem em sua aplicação.

O melhor em todos os casos não existe, cada caso é um caso e pode ser resolvido de uma ou de N maneiras diferentes.

ANSI JOIN

Pode ocorrer perde de dados (Ex: Vendas x Orçamentos - Existem clientes que foram orçados e não venderam, como tratar esse caso?)

Pode se tornar um problema se as tabelas não tem um relacionamento um-para-um (1:1)

CHAVES CONCATENADAS

Mesmo problema do ANSI JOIN

CONCATENATE (TABELAS)

Em alguns casos você pode perder associações importantes em sua modelagem

LINK TABLE

Mais trabalhoso de ser implementado

Maior tempo de execução de script

Peso um pouco maior na performance de utilização (em relação aos outros casos)

Opinião: Eu procuro utilizar, na maioria das vezes, LinkTable. Me adaptei bastante e consigo resolver 99% das modelagens. (PS: mas LinkTable não faz milagre)

Marcio_Campestrini
Specialist
Specialist

Boa tarde

Concordo com o explanado pelo Yuri. Passei a utilizar LinkTable e consigo resolver quase todos os problemas que enfrento com tabela sintética.

Para enriquecer a discussão, segue um texto do Henric Cronström falando sobre o assunto: Synthetic Keys

Márcio Rodrigo Campestrini
pablolabbe
Luminary Alumni
Luminary Alumni

Eu uso Link Tables em modelos de dados com múltiplas tabelas fatos.

Quando tenho somente uma fato com suas dimensões, e existem chaves compostas entre elas, e crio a chave única através de concatenação das colunas que fazem parte da chave.

Abraço,

Pablo Labbe

pablolabbe
Luminary Alumni
Luminary Alumni

Não esqueça de indicar as resposta uteis ou corretas para encerrar o post.