购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.2 数据模型

1.2.1 数据模型的概念

现实生活中人们经常使用各类模型,如建筑模型、飞机模型、商业沙盘模型等。这些模型能够帮助人们把握和了解现实世界某一事物的结构、组织形态、内部特征、整体与局部的关系以及它的运动与变化等多元信息。

与此类似,为了用计算机处理现实世界中的具体事物,人们往往要抽象化客观事物,提取其主要特征,并将其归纳成一个简单清晰的轮廓,从而使复杂的问题变得易于处理,这就是“建模”——建立模型的概念。数据模型(Data Model)就是客观事物抽象化的一种表现形式,是计算机世界对现实世界的抽象、处理和表示的工具,是数据库系统的核心和基础。

数据模型建立的基本要求是:首先,模型要真实地反映现实世界,否则就没有实际意义;其次,要易于理解,模型要和人们对外部事物的认识相一致;最后,要便于实现,因为数据最终是由计算机来处理的。

1.2.2 信息的三个世界

各种计算机上运行的DBMS软件都是基于某种数据模型的,因此需要把现实世界中的具体事物抽象化、组织成与各种DBMS相对应的数据模型,这是两个世界间的转换,即从现实世界到机器世界。但是这种转换在实际操作中,是不能够直接执行的,还需要一个中间过程,这个中间过程就是信息世界,如图1-2所示。

图1-2 信息的三个世界

人们通常首先将现实世界中的客观对象抽象为某种信息结构,这种信息结构可以不依赖于具体的计算机系统,也不与具体的DBMS相关,因为它不是具体的数据模型,而是概念级模型,一般将其简称为概念数据模型(Conceptual Data Model,CDM);然后再把概念数据模型转换成计算机上具体的DBMS支持的数据模型,即逻辑数据模型(Logic Data Model,LDM)和物理数据模型(Physical Data Model,PDM)。数据模型经过两级抽象和转换,经历了现实世界、信息世界和机器世界三个不同的世界。

1.2.3 数据模型的三要素

数据模型通常由数据结构(Data Structure)、数据操作(Data Operation)和完整性约束(Integrity Rules)三要素组成。

1.数据结构

数据结构描述的是系统的静态特性,是所研究对象类型的集合。由于数据结构反映了数据模型最基本的特征,因此,人们通常都按照数据结构的类型命名数据模型。传统的数据模型有层次模型、网状模型和关系模型。

2.数据操作

数据操作描述的是系统的动态特性,是对各种对象实例可执行的操作的集合。数据操作主要分更新和检索两大类,更新包括数据的插入、删除、修改等操作。

3.完整性约束

完整性约束的目的是保证数据的正确性、有效性和相容性。例如,在关系模型中,任何关系都必须满足实体完整性和引用完整性这两个条件。

1.2.4 常见的数据模型

1.层次模型(Hierarchical Model)

(1)基本原理。在现实世界中许多事物之间的联系可用一种层次结构表示出来。如一个图书馆的藏书由不同类型的书构成,一个类型的书又由不同的书籍构成。层次模型就是根据现实世界中存在的这些层次结构特点而提出的一种数据模型。

层次模型可以看作一棵以记录型为结点的有向树,每一个结点是一个由若干数据项组成的逻辑记录型,用有向边来表示实体集之间的一对多联系。这样,层次模型把整个数据库的结构表示成一个有序树的集合。其中,逻辑记录型可以看作逻辑记录的集合的名字,一个逻辑记录代表一个实体,逻辑记录由字段组成,用字段值表示实体的属性值。

【例1-1】 层次模型的例子。

图1-3 层次模型

图1-3描述的是一个层次模型的例子。它由出版社、编者、副编者、书籍等实体组成。出版社P是根节点,由P# (出版社编号)、PN (出版社名称)、PL (出版社负责人)组成。根节点有一个子节点书籍B。书籍B由B# (书籍编号)、BN (书名)、BD(出版日期)组成,它有两个子节点,分别是编者、副编者。编者A由A# (编者编号)、AN (姓名)、AGE (年龄)组成。副编者VA由V# (副编者号)、VN (姓名)组成。

层次模型只能表示一对多的联系,而现实世界中事物之间的联系往往是很复杂的,既有一对多的联系,也有多对多的联系。为了反映多对多的联系,层次模型引入一种辅助数据结构——虚拟记录类型和逻辑指针,将其转换成一对多的联系。

(2)层次模型的特点。

①数据结构。

a.树型结构(一对多关系)只有一个无双亲的根结点,其他结点有且只有一个双亲。

b.表示多对多关系需要转换成一对多关系。

c.表示非树形结构需要先转换成树形结构。

②操纵与完整性约束。

a.不能插入无双亲的子结点。

b.子结点会在双亲结点被删除时一起被删除。

c.更新操作时要保证数据的一致性。

(3)层次模型的优缺点。

①优点:

a.比较简单,只需很少的命令就能操纵数据库,使用容易。

b.结构清晰,结点间联系简单,只要知道每个结点的双亲结点,就可知道整个模型结构。现实世界中许多实体间的联系本来就呈现出一种很自然的层次关系,用其表示企业内的行政层次或家族间的关系很方便。

c.为数据完整性提供了良好的支持。

②缺点:

a.不能直接表示两个以上的实体之间的复杂联系和实体型间的多对多联系,只能通过引入冗余数据或创建虚拟结点的方法来解决,容易导致数据的不一致性。

b.对数据的插入和删除的操作限制太多。

c.查询子结点必须通过双亲结点。

2.网状模型(Network Model)

(1)基本原理。现实世界中事物之间的联系更多是非层次关系的,用层次模型表示这种关系很不直观,网状模型解决了这一问题,可以清晰地表示这种非层次关系。网状模型突破了层次模型的两点限制,即:允许结点有多于一个的父结点;可以有一个以上的结点没有父结点。这样以逻辑记录型为结点所形成的有向网络结构就称为网状模型。

网状模型中的每一个结点代表一个记录类型,联系则用链接指针来实现。因为在网状模型中子女到双亲的联系不是唯一的,所以在网状模型中对每一对父结点与子结点之间的联系都要指定名字,这种联系称为系。系中的父结点称为首记录型或主记录型,子记录型称为属记录型。

【例1-2】 网状模型的例子。

图1-4 网状模型

(2)网状模型的特点。

①数据结构。

a.网状模型中每个结点表示一个记录型(实体),每个记录型可包含若干个字段(实体的属性),结点间的连线表示记录型(实体)间的父子关系。

b.允许多个结点无双亲,同时也允许结点有多个双亲。

c.允许结点间有多个联系(复合联系)。

②数据操纵与完整性约束。

a.允许插入无双亲的子结点,允许只删除双亲结点。

b.更新操作较简单,修改数据时,可直接表示非树形结构,无须像层次模型那样增加冗余结点。因此,修改操作时只需更新指定记录即可。

(3)网状模型的优缺点。

①优点:

a.能更为直接地描述客观世界,可表示实体间的多种复杂联系。

b.具有良好的性能和存储效率。

②缺点:

a.结构复杂,其数据定义语言极其复杂。

b.数据独立性差,由于实体间的联系本质上是通过存取路径表示的,因此应用程序在访问数据时要指定存取路径。

3.关系模型(Relational Model)

(1)基本原理。关系模型是出现较晚的一种模型,1970年美国IBM公司的研究员埃德加·弗兰克·科德(Edgar Frank Codd)首次提出了数据库系统的关系模型。1977 年IBM公司研制的关系数据库的代表System R开始运行,之后,System R被不断地改进和扩充,出现了基于System R的数据库系统SQL/DB。20世纪80年代以来,计算机厂商新推出的数据库管理系统几乎都支持关系模型,非关系系统的产品也都加上了能够对接关系模型的接口。关系数据库已成为目前应用最广泛的数据库系统,如现在广泛使用的小型数据库系统FoxPro、Access,大型数据库系统Oracle、Informix、Sybase、SQL Server等都是关系数据库系统。数据库领域当前的研究工作也都以关系方法为基础。

关系模型流行的主要原因在于关系模型对数据及数据联系的表示非常简单,无论是数据的联系还是数据间的联系都用关系来表示;关系模型支持用高度非过程化的说明型语言表示数据的操作;同时,关系模型具有严格的理论基础——关系代数。

关系模型用二维表结构表示实体与实体之间的联系。关系模型的数据结构是一个“二维表框架”组成的集合。每个二维表又可称为关系(Relation)。在关系模型中,操作的对象和结果都是二维表。

因此,在关系模型中,基本数据结构就是二维表,不用像层次模型或网状模型那样有链接指针,记录之间的联系是通过不同关系中的同名属性来体现的。例如,要查找购买《群体智能与大数据分析技术》的订单,可以先在书籍信息表中根据书名找到书籍的ISBN “9787566822925”,然后在订单信息表中找到“9787566822925”编号对应的订单即可。通过上述查询过程,同名属性ISBN起到了连接两个关系的纽带作用。由此可见,关系模型中的各个关系模式不是孤立的,也不是随意拼凑的,而是由一个个属性连接起来的。

(2)关系模型的特点。

①数据结构:

a.关系模型与层次模型、网状模型不同,它是建立在严格的数学概念之上的。

b.关系模型的数据结构是一个“二维表框架”组成的集合,每个二维表又可称为关系,所以关系模型是“关系框架”的集合。

②数据操纵与完整性约束:

a.数据操纵主要包括查询、插入、删除和修改数据,这些操作必须满足关系的完整性约束条件,即实体完整性、参照完整性和用户定义的完整性。

b.在非关系模型中,操作对象是单个记录,而关系模型中的数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合。

c.用户只要指出“干什么”,而不必详细说明“怎么干”,这样的操作大大提高了数据的独立性和用户的生产效率。

(3)关系模型的优缺点。

①优点:

a.与非关系模型不同,它有较强的数学理论根据。

b.数据结构简单、清晰;用户易懂易用;不仅用关系描述实体,而且用关系描述实体间的联系。

c.关系模型的存取路径对用户透明,从而具有更强的数据独立性和安全保密性,也简化了程序员在数据库建立和开发方面的工作。

②缺点:由于存取路径对用户透明,查询效率往往不如非关系模型。因此,为了提高性能,必须对用户的查询进行优化,这增加了开发数据库管理系统的负担。 cS/BpimHt4otNx145kwkETCA5pyhhECjfcwDDDz1snvq29R8fNQ4Hiv1uW4BAXYa

点击中间区域
呼出菜单
上一章
目录
下一章
×

打开