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

Responder a