5 Replies Latest reply: Nov 6, 2014 8:55 PM by Pablo Labbe RSS

    Chave única

    Edson martins

      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?@@

        • Re: Chave única
          Luciano Vasconcelos

          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.

          • Re: Chave única
            Yuri Nicolett

            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)

            • Re: Chave única
              Márcio Rodrigo Campestrini

              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 hic falando sobre o assunto: Synthetic Keys

              • Re: Chave única
                Pablo Labbe

                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,

                 

                pablolabbe

                • Re: Chave única
                  Pablo Labbe

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