Esta pergunta é sobre inteligência de negócios com SQL Server 2008 R2.
Se você tem uma pessoa chamada Jim Brown com sua data de nascimento e número de seguro social ( SSN ) localizados em três sistemas de origem diferentes.
Você usa uma chave substituta que deve conter o aniversário de Jim e o SSN depois de mesclar três linhas de dados em uma única linha na fase ETL?
Uma chave substituta é um valor exclusivo atribuído pelo sistema para identificar uma ocorrência de entidade. Uma chave natural é o que o negócio usa para identificar uma ocorrência de entidade. Os sistemas de origem, bem como seu banco de dados de BI/integração de dados, podem usar qualquer um dos tipos para identificar a ocorrência da entidade - como Jim Brown em seu exemplo. No sistema de origem, chamamos o que o sistema de origem usa para identificar a ocorrência da entidade de chave de origem . Portanto, se você puder ter 3 sistemas de origem diferentes, cada um contendo Jim Brown, cada um terá uma chave de origem diferente além da chave natural - que você identificou como SSN + data de nascimento. O ambiente de preparação de BI, que o ETL usa, incluirá uma tabela de mapa de chaves que mapeará cada chave de origem para a chave substituta designada para o banco de dados de BI. Então por exemplo:
Quando uma transação contra Jim Brown for processada, ela virá da fonte usando a chave source. Diga seu sistema A com a chave de origem 12345 com uma atualização para um dos outros campos. O ETL procura a chave de origem no mapa de chaves e a encontra, e sabe aplicar essa transação à linha em Person com uma chave substituta de 1.
Se você tivesse apenas 1 sistema de origem, a vida seria fácil. Mas você tem 3. É aqui que entra a chave natural, pois você sabe que pode identificar Jim em qualquer sistema usando essas 2 características que nunca mudam e são verdadeiras sobre ele. Agora, digamos que você integre o Sistema D. A primeira transação chega para Jim Brown no sistema D, e a chave de origem do sistema D é AB2945. Agora, quando o ETL procura no mapa de chaves, ele não o encontra. Mas como você sabe que tem vários sistemas que podem conter uma pessoa, o ETL também faz uma pesquisa na tabela Person para a chave natural e pronto - uma correspondência. Agora o ETL insere uma nova linha no mapa de chaves para o System D também para Jim Brown.
Então, em resumo, você sempredeseja usar uma chave substituta como a PK na tabela do banco de dados BI ao fazer a integração de dados da mesma entidade lógica entre muitas fontes. Você o mapeará para a chave de origem usando uma tabela de mapa de chaves e evitará duplicatas procurando a chave natural na tabela BI (junto com uma chave exclusiva alternativa na chave natural para garantir que não haja duplicatas). Agora, há muitos outros detalhes para resolver - como sua chave natural é realmente única, você deseja armazená-la em seu mapa de chaves para evitar pesquisas em Pessoa, você precisa lidar com chaves de fonte compostas, você mantém um histórico de mudanças de chave de fonte, você rastreia um sistema de registro e sistemas de referência, como você lida com a reutilização de chave de fonte (um problema potencialmente muito complicado por si só), etc. Mas este breve resumo dá a você uma ideia das diferenças entre , substituto, e chaves de origem e onde usar cada um no cenário de BI. Eu espero que isso ajude...
Você está misturando chave substituta e chave natural. Se você estiver usando dados atuais (ou seja, "dados de aplicativo") como uma chave, seria uma chave natural (composta, neste caso). Mas um campo GUID ou Identity seria substituto.
Há algumas coisas a considerar nesta situação. Em primeiro lugar, a combinação de aniversário e SSN sempre será única? Somente você e o domínio de sua empresa podem responder a essa pergunta, infelizmente não nós.
A outra consideração é que isso provavelmente não será sequencial. A beleza de usar uma coluna de identidade como uma chave é que ela será sequencial (desde que você não faça nenhuma inserção de identidade por qualquer motivo). Quando as inserções em um índice clusterizado não são sequenciais, você terá divisões de página e possivelmente fragmentação severa.
Espero que esses pontos o ajudem e, embora não sejam uma resposta definitiva como a maioria das coisas, "depende".