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
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral