Banco de Dados
Implementação da identidade de objetos Em SGBDOOs, objetos possuem identidade baseada na existência, mas isso não é automático num SGBDR
Com um SGBDR (ou quando usam-se arquivos para a persistência), pode-se usar uma de duas alternativas:
Identidade baseada na existência
O SGBDR gera um identificador único (OID) para cada registro O OID é armazenado numa coluna adicional e é a chave primária da tabela
Identidade baseada em valor
Uma combinação de atributos identifica cada registro
As duas alternativas podem ser misturadas num mesmo esquema
Vantagens da identidade baseada na existência
A chave primária é um atributo único, pequeno e uniforme em tamanho Algumas tabelas não possuem uma combinação de atributos que possa ser chave primária
Desvantagens da identidade baseada na existência
Alguns SGBDs poderão não oferecer a geração de identificadores únicos A geração de identificadores únicos pode necessitar de acesso a dados globais, interferindo assim com o controle de concorrência e deixando a aplicação potencialmente mais lenta
Pode complicar a depuração das aplicações
Já que os OIDs não possuem semântica em nível de aplicação
Vantagens da identidade baseada em valor
As chaves primárias possuem semântica clara em nível de aplicação, facilitando a depuração e manutenção do BD
A distribuição do BD pode ser mais fácil
Porque não há geração centralizada de identidade
Mas manter a unicidade das chaves pode não ser simples
Desvantagens da identidade baseada em valor
Chaves primárias podem ser mais difíceis de alterar
Devido à propagação causada por chaves estrangeiras usadas em associações e herança
A propagação poderá não ser suportada automaticamente pelo SGBD
Recomendações
Usar identidade baseada na existência para esquemas maiores
(com mais de 30 classes)
Não precisa incluir o OID como atributo no modelo UML
Caso contrário,