2012/2/17 Shander Lyrio <[email protected]>: > > Até onde estudei sobre bancos de dados, para ser considerada uma > entidade precisamos ter uma chave que o identifique, seja natural ou > artificial.
Não, a artificial, como diz o nome, é apenas um artifício físico, que por limitações do SQL aparece para o usuário. Idealmente, somente o DBA a veria. Ela não identifica a tupla (lógica), tanto que não garante unicidade; apenas identifica o registro (físico). Sem identificação, não é entidade, nem relação. > Natural quando o atributo faz parte do objeto modelado e > artificial quando não. Isto é bonito filosoficamente, já discutimos > sobre isto e você não conseguiu me dar uma chave natural fiável para um > Cliente que é uma entidade super comum. Quem conseguiria analisar ela > bem? Ela não é uma entidade? Consegui, como não? Mas não existe solução genérica, é sempre conforme os requisitos e regras organizacionais (vulgo ‘de negócios’). > Quem desenvolve sistemas para vários clientes, com regras diferentes > percebe rapidamente, que ser generalista resolve os problemas mais > facilmente e sem dor, um índice unique é muito mais simples para > garantir unicidade Só que não garante unicidade… e tenho cabelos brancos por isso… é simples: sem chave natural, é só ir inserindo as mesmas informações, vez após vez, e pronto. Cadê a unicidade? Se, por acaso, o sistema confere algo para evitar essa multiplicação de dados, esse algo é a chave natural… > de que convencer o cliente que ele tem que cadastrar > diversas informações que não serão usadas no negócio dele Aí o problema é um modelo genérico para um cliente com necessidades específicas. Pode ser que não valha a pena atender suas necessidades, mas essa é uma decisão de negócio de correr os riscos de negócio decorrentes da modelagem inespecífica. > No geral, são muito mais raros os sistemas feitos para rodar em apenas > um cliente. Na tua experiência, acredito… _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
