2.4 逻辑模型
在数据库技术领域中,数据库所使用的最常用的逻辑数据模型有层次模型、网状模型、关系模型、面向对象模型。这四种模型是按其数据结构而命名的,根本区别在于数据之间联系的表示方式不同,即数据记录之间的联系方式不同。层次模型是以“树结构”方式表示数据记录之间的联系;网络模型是以“图结构”方式表示数据记录之间的联系;关系模型是用“二维表”(或称为关系)方式表示数据记录之间的联系;面向对象模型是以“引用类型”方式表示数据记录之间的联系。
2.4.1 层次模型
层次数据模型是数据库系统中最早出现的数据模型,它用树形结构表示各类实体以及实体间的联系。现实世界中许多实体之间的联系本来就呈现出一种很自然的层次关系,如行政机构、家族关系等。层次模型数据库系统的典型代表是IBM公司的IMS(Information Management Systems),这是一个曾经广泛使用的数据库管理系统,如图2-7所示。
图2-7 层次模型实例
层次模型对父子实体集间具有一对多的层次关系的描述非常自然、直观、容易理解。层次模型具有两个较为突出的问题:首先,在层次模型中具有一定的存取路径,需按路径查看给定记录的值。其次,层次模型比较适合于表示数据记录类型之间的一对多联系,而对于多对多的联系难以直接表示,需进行转换,将其分解成若干一对多联系。
层次模型的主要优、缺点如下。
① 数据结构较简单;查询效率高。
② 提供良好的完整性支持。
③ 不易表示多对多的联系。
④ 数据操作限制多、独立性较差。
2.4.2 网状模型
现实世界中广泛存在的事物及其联系大都具有非层次的特点,若用层次结构来描述,则不直观,也难以理解。于是人们提出了另一种数据模型——网状模型,其典型代表是20世纪70年代数据系统语言研究会下属的数据库任务组(DataBase Task Group,DBTG)提出的DBTG系统方案,该方案代表着网状模型的诞生。典型的网络模型数据库产品:Cullinet软件公司的IDMS、Honeywell公司的IDSII、HP公司的IMAGE数据库系统。
网状模型是一个图结构,它是由字段(属性)、记录类型(实体型)和系(set)等对象组成的网状结构的模型。从图论的观点看,它是一个不加任何条件的有向图。在现实世界中实体型间的联系更多的是非层次关系,用层次模型表示非树形结构是很不直接的,采用网状模型作为数据的组织方式可以克服这一弊病。网状模型去掉了层次模型的两个限制,允许节点有多个双亲节点,允许多个节点没有双亲节点,图2-8所示是网状模型的一个简单实例。
图2-8 选课网状模型实例
网状模型是用图结构来表示各类实体集以及实体集间的系。网状模型与层次模型的根本区别是:一个子节点可以有多个父节点;在两个节点之间可以有多种联系。同样,网状模型对于多对多的联系难以直接表示,需进行转换,将其分解成若干一对多联系。
网状模型的主要优、缺点如下。
① 较为直接地描述现实世界。
② 存取效率较高。
③ 结构较复杂、不易使用。
④ 数据独立性较差。
2.4.3 关系模型
关系模型是最重要的一种基本模型。美国IBM公司的研究员E. F. Codd于1970年首次提出了数据库系统的关系模型。关系模型的建立,是数据库历史发展中最重要的事件。过去40多年中大量的数据库研究都是围绕着关系模型进行的。数据库领域当前的研究大多数是以关系模型及其方法为基础扩展、延伸的。
关系数据模型是目前最重要的也是应用最广泛的数据模型。简单地说,关系就是一张二维表,它由行和列组成。关系模型将数据模型组织成表格的形式,这种表格在数学上称为关系。表中存储数据。在关系模型中实体以及实体之间的联系都用关系也就是二维表来表示的。表2-2所示是用关系表表示的学生实体。
表2-2 关系模型实例表
关系模型的主要优缺点为:有坚实的理论基础;结构简单、易用;数据具有较强的独立性及安全性;查询效率较低。
自20世纪80年代以来,计算机厂商新推出的DBMS几乎都支持关系模型,非关系系统的产品大部分也加上了关系接口。由于关系模型具有坚实的逻辑和数学基础,使得基于关系模型的DBMS得到了最广泛的应用,占据了数据库市场的主导地位。典型的关系型的数据库系统有Oracle、MySQL、SQL Server、DB2、Sysbase等。
2.4.4 面向对象模型
尽管关系模型简单灵活,但还是不能表达现实世界中存在的许多复杂的数据结构,如CAD数据、图形数据、嵌套递归的数据等。人们迫切需要语义表达更强的数据模型。面向对象模型是近些年出现的一种新的数据模型,它是用面向对象的观点来描述现实世界中的事物(对象)的逻辑结构和对象间的联系等的数据模型,与人类的思维方式更接近。
所谓对象是对现实世界中的事物的高度抽象,每个对象是状态和行为的封装。对象的状态是属性的集合,行为是在该对象上操作方法的集合。因此,面向对象的模型不仅可以处理各种复杂多样的数据结构,而且具有数据和行为相结合的特点。目前面向对象的方法已经成为系统开发、设计的主要思路。
面向对象模型的优点如下。
① 适合处理各种各样的数据类型:与传统的数据库(如层次、网状或关系)不同,面向对象数据库适合存储不同类型的数据,例如图片、声音、视频,包括文本、数字等。
② 面向对象程序设计与数据库技术相结合:面向对象数据模型结合了面向对象程序设计与数据库技术,因而提供了一个集成应用开发系统。
③ 提高开发效率:面向对象数据模型提供强大的特性,例如继承、多态和动态绑定,允许用户不用编写特定对象的代码就可以构成对象并提供解决方案。这些特性能有效地提高数据库应用程序开发人员的开发效率。
④ 改善数据访问:面向对象数据模型明确地表示联系,支持导航式和关联式两种方式的信息访问。它比基于关系值的联系更能提高数据访问性能。
面向对象模型的缺点如下。
① 没有准确的定义:不同产品和原型的对象是不一样的,所以不能对对象做出准确定义。
② 维护困难:随着组织信息需求的改变,对象的定义也要求改变并且需移植现有数据库,以完成新对象的定义。当改变对象的定义和移植数据库时,它可能面临真正的挑战。
③ 不适合所有的应用:面向对象数据模型用于需要管理数据对象之间存在的复杂关系的应用,它们特别适合于特定的应用,例如工程、电子商务、医疗等,但并不适合所有应用。当用于普通应用时,其性能会降低并要求很高的处理能力。