1、对传统的关系模型(1NF)进行扩充
  引入了少数数据模型构造器,使它能表达比较复杂的数据类型,增强其结构建模能力。我们称这样的数据模型为复杂数据模型。按照它们进行扩充的侧重点,复杂数据模型可分为两种:
   - 一种是偏重于结构的扩充。首先出现的这类模型是嵌套关系模型(NF2)。它能表达"表中表",并且表中的一个域可以是一个函数(称为虚域)。
   - 另一种是侧重于语义的扩充。它支持关系之间的继承,也支持在关系上定义函数和运算符。但关系的结构仍然是一张平面表。"表中表"只能通过关系上定义的函数来模拟。
  总的来说,在复杂数据模型和支持它们的数据库系统里, 客观世界中的每一个实体都用一个元组和它的码(KEY)来表示。不支持太多的语义关联,不区分类和型。
  这种数据模型和数据库系统的主要缺点是不能保证客观世界中实体的确定性;实体的引用只能通过码和数据冗余来达到。其主要优点是支持这类模型的系统实现起来相对比较容易。

2、全新的数据构造器和数据处理原语
  提出全新的数据构造器和数据处理原语,以表达复杂的结构和丰富的语义。这类模型常常统称为语义数据模型。它们的特点是引入了丰富的语义关联(如ISA,ISP)。能更自然,更恰当地表达客观世界中实体间的联系。加上比较丰富的结构构造器(如TUPLE,LIST,SET等),因此它们也具有很强的结构表达能力。
  也许是由于它们比较复杂,在程序设计语言和技术方面没有相应的支持,计算机硬件也没有发展到一定的程度,因此,它们都没有在数据库系统实现方面有重大的突破。至多被当做数据库设计中概念建模的一种工具(如E-R模型)。

3、将上述语义数据模型和OO程序设计方法结合起来提出了面向对象的数据模型面向对象的数据模型吸收了面向对象程序设计方法学的核心概念和基本思想
  一个面向对象数据模型是用面向对象观点来描述现实世界实体(对象)的逻辑组织、对象间限制、联系等的模型。一系列面向对象核心概念构成了面向对象数据模型的基础。