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