2010/1/4 Andre Fernandes <fernandes.an...@gmail.com>: > Isso não > significa que a chave artificial precise estar desprovida de significado.
André, pelo contrário, uma chave artificial _por definição_ é desprovida de significado. Por definição, chave natural é dada pela natureza do que se quer modelar, enquanto a artificial é criada na própria base, sem ter relação com o mundo real. Por exemplo, o CNPJ é uma chave artificial para o sistema que a gera; para todo mundo fora da Receita, é natural. E deve ser natural para todos os sistemas da Receita além daquele que o gera. > Uma chave primária tem de ser a forma de buscar na tabela usada > primariamente e que identifica o registro. Não exatamente. Pode haver várias formas de buscar, muitas podem nem ser chaves, nem sequer indexadas. E uma tupla pode ser identificada por n chaves, sem que uma seja mais correta, melhor ou mais importante que as outras. A necessidade duma chave entre outras ser escolhida como primária não tem mais sentido. Foi herdada pelo SQL de modelos pré-relacionais. > Isso significa que criar uma > chave artificial numa tabela de pedidos pode ter um sentido, é a > identificação de qual o pedido do cliente e quando o mesmo ligar, será > solicitada essa chave (número do pedido) para achar o mesmo. Ou seja, já virou uma chave natural, ao menos para o cliente. Veja de outra maneira: imagine que o cliente perdeu o número do pedido. O que se faz, perde-se o pedido? Não, há outras informações, que o cliente talvez nem precise decorar ou anotar, que identificarão o pedido. Cada conjunto de informações que sirva para isso será uma chave. > Antes que mencionem que podemos ter alguma alteração em chaves primárias > naturais (mudanças de regras de negócio, por exemplo), essa não seria uma > boa justificativa para não usá-las visto a teoria Relacional não proibir > alterações de chaves primárias. O argumento é prático, não conceitual. E cai com a possibilidade de ON UPDATE CASCADE. -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (11) 3854 7191 gTalk: xmpp:leand...@jabber.org +55 (11) 9406 7191 ICQ/AIM: aim:GoIM?screenname=61287803 BRAZIL GMT-3 MSN: msnim:chat?contact=lean...@dutra.fastmail.fm Sent from Sao Paulo, SP, Brésil _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral