Em 17/02/2012 14:57, Alexsander Rosa escreveu:
> Na minha opinião, código de CLIENTE e número de PEDIDO são chaves
> naturais, mesmo que alguns pensem que são artificiais. Explico: desde o
> final do século retrasado, muito antes da invenção do computadores,
> comerciantes armazenavam fichas de papel com dados de seus clientes,
> geralmente em fichários. Muitas destas fichas tinham pré-impresso, pela
> gráfica, um número em um canto superior. Este número acabava virando o
> código do cliente.

        Isso não muda a definição, "muitas destas" não significam todas, logo 
não pode ser considerada chave natural. Uma chave natural identifica uma 
entidade em qualquer lugar, não apenas numa empresa específica.

        O João pode estar na ficha de número 10 no botequim do Araújo, mas na 
ficha 320 do Armazém do Tonhão. Este código não acompanha o João, não 
faz parte dele, não pode ser chave natural. Ele é um código criado na 
empresa para representar o João porque por acaso no momento do cadastro 
ele estava na folha 10, esta é exatamente a definição de chave artificial.

        O fato é que chaves artificiais não são do demônio e a boa prática pede 
que se evite tanto quanto possível as chaves artificiais, não que se 
extingua. É claro que isto deve ser feito com lógica e bom senso. O que 
estou defendendo é que é o fato de se usar chaves artificiais só torna o 
modelo opaco, porque a realidade do mundo real é efetivamente opaca e 
não tem como se fugir disto.

        Se a definição de chave artificial foi criada é exatamente porque é 
impossível modelar bancos de dados apenas com chaves naturais e a 
definição do Leandro ainda a pouco foi infeliz porque eu duvido que 
alguém o consiga, mesmo que seja bem modelado e tenha todo o tempo, 
recursos, etc etc... possíveis.

--
Shander Lyrio
http://about.me/shander
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a