identificacao de objetos exclusivamente atraves de suas propriedades estruturais e comportamentais motivou a definicao de identificadores unicos de objetos, que persistem no tempo de forma independente ao estado interno do objeto.A identidade de objetos elimina as anomalias de atualizacao e de integridade referencial, uma vez que a atualizacao de um objeto sera automaticamente refletida nos objetos que o referenciam e que o identificador de um objeto nao tem seu valor alterado.Objetos ComplexosOs objetos complexos sao formados por construtores (conjuntos, listas, tuplas, registros, colecoes, arrays) aplicados a objetos simples (inteiros, booleanos, strings). Nos modelos orientados a objetos, os construtores sao em geral ortogonais, isto e, qualquer construtor pode ser aplicado a qualquer objeto. No modelo relacional este nao e o caso, visto que so e possivel aplicar o construtor de conjuntos as tuplas e o construtor de registro a valores atomicos.A manutencao de objetos complexos, independente de sua composicao, requer a definicao de operadores apropriados para sua manipulacao como um todo, e transitivos para seus componentes. Exemplos destas operacoes sao: a atualizacao ou remocao de um objeto e copia profunda ou rasa.EncapsulamentoO encapsulamento possibilita a distincao entre a especificacao e a implementacao das operacoes de um objeto, alem de prover a modularidade que permite uma melhor estruturacao das aplicacoes ditas complexas, bem como a seguranca dentro do sistema. Em banco de dados se diz que um objeto esta encapsulado quando o estado e oculto ao usuario e o objeto pode ser consultado e modificado exclusivamente por meio das operacoes a ele associadas.Existe uma certa discussao sobre as consultas em banco de dados quando esta incorporada a nocao de encapsulamento: Deve-se tornar visivel apenas as operacoes e deixar ocultos os dados e as implementacoes ? E interessante relaxar o encapsulamento apenas para as consultas ? Como deve ser realizada a otimizacao de consultas em SGBDOO com encapsulamentos ?Tipo de ObjetosO tipo de objeto pode ser visto como a descricao ou especificacao de objetos. Um tipo possui duas partes, interface (visivel para o usuario do tipo) e implementacao (visivel so para o usuario construtor do tipo).Existem varias vantagens em se ter um sistema de tipos em um modelo de dados. Alem de modularidade e seguranca, do ponto de vista da evolucao do sistema os tipos sao especificacoes do comportamento que podem ser compostos e modificados incrementalmente, para formar novas especificacoes.ClassesUm conjunto de objetos que possui o mesmo tipo (atributos, relacionamentos, operacoes) pode ser agrupado para formar uma classe. A nocao de classe e associada ao tempo de execucao, podendo ser vista como uma representacao por extensao, enquanto que o tipo e uma representacao intencional. Cada classe tem um tipo associado, o qual especifica a estrutura e o comportamento de seus objetos. Assim, a extensao da classe denota o conjunto dos objetos atualmente existentes na classe e o tipo prove a estrutura destes objetos.HerancaHeranca e um mecanismo que permite ao usuario definir tipos de forma incremental, por refinamento de outros ja existentes, permitindo composicao de tipos em que as propriedades de um ou mais tipos sao reutilizadas na definicao de um novo tipo. De fato, ela