- 电子商务数据库技术与应用
- 周宏
- 4205字
- 2025-02-26 15:09:09
1.2 数据模型
在现实生活中,人们经常会使用各类模型,如建筑模型、飞机模型和商业沙盘模型等。这些模型有利于人们了解现实世界某一事物的结构、组织形态、内部特征、整体与局部的关系,以及它的运动与变化等多元信息。
计算机不能直接处理现实世界中的具体事物,所以,必须将具体事物转换成计算机能够处理的数据。数据库是模拟现实世界中某应用环境(一个企业或部门)所涉及的数据的集合,这个集合可以包含一部分信息(用用户视图模拟),也可以包含全部信息(用概念视图模拟)。它不仅要反映数据本身的内容,而且要反映数据之间的联系。数据库对现实世界的模拟是通过数据模型来进行的。
1.2.1 数据模型的概念
为了借助计算机处理现实世界中的具体事物,往往要对客观事物加以抽象概括,提取其主要特征并将其归纳成一个简单而清晰的轮廓,从而使复杂的问题变得易于处理,这就是“建模”——建立模型的概念。
数据模型(Data Model)就是一种对客观事物抽象化的表现形式,是计算机世界对现实世界的抽象、表示和处理的工具,是数据库系统的核心和基础。
建立数据模型的基本要求是:模型要尽可能真实地反映现实世界,否则就没有意义了;要易于理解,模型要和人们对外部事物的认识相一致;要便于实现,因为数据最终要由计算机来处理。
1.2.2 信息的三个世界
DBMS软件在任何计算机上的应用都是基于某种数据模型的,因此,要把现实世界中的具体事物抽象并组织为各种与DBMS相对应的数据模型,这是两个世界间的转换,即从现实世界到计算机世界。在实际操作中,这种转换是不能够直接执行的,还需要一个中间过程,这个中间过程就是信息世界,如图1-2所示。

图1-2 信息的三个世界
通常,人们会首先将现实世界中的客观对象抽象为某种信息结构。这种信息结构可以不依赖于具体的计算机系统,也不与具体的DBMS相关,因为它不是具体的数据模型,而是概念级模型,一般将其简称为概念模型(Conceptual Model);然后,再把概念模型转换为计算机上具体的DBMS支持的数据模型,即逻辑数据模型(Logic Data Model)和物理数据模型(Physical Data Model),一般将它们统称为数据模型。数据模型的抽象过程要经过两级抽象和转换,即经历了现实世界、信息世界和计算机世界三个不同的世界。
在这三个世界间的两种转换过程就是数据库设计中的两个设计阶段。从现实世界抽象到信息世界的过程是概念结构设计阶段。从信息世界抽象到计算机世界的过程是数据库的逻辑结构设计阶段,其任务就是把概念结构设计阶段设计好的概念模型转换为与选用的DBMS所支持的数据模型相符合的逻辑结构。为一个给定的逻辑数据模型选取一个适合应用要求的物理结构的过程是数据库的物理设计阶段。
1.2.3 数据模型的三要素
数据模型通常由数据结构(Data Structure)、数据操作(Data Control)和完整性约束(Integrity Rules)三要素组成。
1.数据结构
数据结构描述的是系统的静态特性,是所研究对象的类型的集合。由于数据结构反映了数据模型最基本的特征,因此,人们通常都按照数据结构的类型来命名数据模型。传统的数据模型有层次模型、网状模型和关系模型。
2.数据操作
数据操作描述的是系统的动态特性,是各种对象实例允许执行的操作的集合。数据操作主要分为更新和检索两大类,更新包括数据的插入、删除和修改等操作。
3.完整性约束
完整性约束的目的是保证数据的正确性、有效性和相容性,例如,在关系模型中,任何关系都必须满足实体完整性和引用完整性这两个条件。
1.2.4 常见的数据模型
1.层次模型
(1)基本原理
现实世界中的许多事物之间的联系可用一种层次结构来表示,如一个图书馆的藏书由不同类型的书构成,一个类型的书又由不同的书籍构成。层次数据模型就是根据现实世界中存在的这些层次结构特点而建立的一种数据模型。
可以将层次模型(Hierarchical Model)看作一棵以记录型为结点的有向树,每一个结点都是一个由若干数据项组成的逻辑记录型,用有向边来表示实体集之间的一对多联系。这样,层次模型就将整个数据库的结构表示成一个有序树的集合了。可以将其中的逻辑记录型看作逻辑记录的集合的名字,一个逻辑记录代表一个实体,逻辑记录由字段组成,用字段值表示实体的属性值。
【例1-1】层次模型的例子如图1-3所示。

图1-3 层次模型
图1-3所示为一个出版社、编者和书籍的层次状模型的例子。它由出版社、编者、副编者和书籍等实体组成。记录类型出版社P是根节点,由P#(出版社编号)、PN(出版社名称)和PL(出版社负责人)组成。根节点有一个子节点书籍B。书籍B由B#(书籍编号)、BN(书名)和BD(出版日期)组成,有两个子节点,分别是编者、副编者。编者A由A#(编者编号)、AN(姓名)及AGE(年龄)组成。副编者VA由V#(副编者号)、VN(姓名)组成。
层次模型只能表示一对多的联系,而现实世界中事物之间的联系往往是很复杂的,既有一对多的联系,也有多对多的联系。为了反映多对多的联系,层次模型引入了一种辅助数据结构——虚拟记录类型和逻辑指针。
(2)层次模型的特点
①数据结构
●树型结构(一对多关系)只有一个无双亲的根结点,其他结点有且只有一个双亲。
●表示多对多关系时,需将其转换成一对多关系。
●表示非树形结构时,需先将其转换成树形结构。
②操纵与完整性约束。
●不能插入无双亲的子结点。
●双亲结点被删除时,子结点将随之一起被删除。
●更新操作时,要保证数据的一致性。
(3)层次模型的优缺点
①优点
●比较简单,只需很少命令就能操纵数据库,比较容易使用。
●结构清晰,结点间联系简单,只要知道每个结点的双亲结点,就可知道整个模型结构。现实世界中的许多实体间的联系都呈现一种很自然的层次关系,所以,用其表示行政层次或家族关系时,会很方便。
●提供了良好的数据完整性支持。
②缺点
●不能直接表示两个以上的实体之间的复杂联系和实体型间的多对多联系,只能通过引入冗余数据或创建虚拟结点的方法来解决这个问题,易产生不一致性。
●对数据的插入和删除的操作限制太多。
●必须通过双亲结点查询子结点。
2.网状模型
(1)基本原理
现实世界中的事物之间的联系大多是非层次关系的,用层次模型表示这种关系会很不直观,网状模型(Network Model)则克服了这一弊病,可以清晰地表示这种非层次关系。网状模型突破了层次模型的两点限制:允许结点有多于一个的父结点;可以有一个以上的结点没有父结点。这样以逻辑记录型为结点所形成的有向网络结构被称为网状模型。
网状模型中的每一个结点都代表一个记录类型,联系则用链接指针来实现。在网状模型中,子女到双亲的联系不是唯一的,所以,应在网状模型中的每一对父结点与子结点之间的联系都指定名字,这种联系被称为系。系中的父结点被称为首记录型或主记录型,子结点则被称为属记录型。
【例1-2】网状模型的例子如图1-4所示。

图1-4 网状模型
(2)网状模型的特点
①数据结构
●网状模型中每个结点都表示一个记录型(实体),每个记录型可包含若干个字段(实体的属性),结点间的连线表示记录类型(实体)间的父子关系。
●允许多个结点无双亲,同时也允许结点有多个双亲。
●允许结点间有多个联系(复合联系)。
②数据操纵与完整性约束
●允许插入无双亲的子结点,允许只删除双亲结点。
●更新操作较简单,修改数据时可直接表示出非树形结构,而无需像层次模型那样增加冗余结点,因此,修改操作时只需更新指定记录。
(3)网状模型的优缺点
①优点
●能更为直接地描述客观世界,可表示出实体间的多种复杂联系。
●具有良好的性能和存储效率。
②缺点
●结构复杂,其DDL语言极其复杂。
●数据独立性差,由于实体间的联系本质上是通过存取路径表示的,因此应用程序在访问数据时要指定存取路径。
3.关系模型
(1)基本原理
关系模型(Relational Model)是一种发展较晚的模型,1970年美国IBM公司的研究员E.F.Codd首次提出了数据库系统的关系模型。1977年IBM公司研制的关系数据库的代表System R开始运行,其后又对其进行了不断的改进和扩充,出现了基于System R的数据库系统SQL/DB。20世纪80年代以来,计算机厂商新推出的数据库管理系统几乎都支持关系模型,非关系系统的产品也都加上了关系接口。关系数据库已成为目前应用最广泛的数据库系统,如现在广泛使用的小型数据库系统FoxPro、Access,大型数据库系统Oracle、Informix、Sybase及SQL Server等都是关系数据库系统。数据库领域当前的研究工作也都是以关系方法为基础的。
关系模型流行的主要原因在于关系模型对数据及数据联系的表示非常简单,无论是数据还是数据间的联系都可用关系来表示;关系模型支持用高度非过程化的说明型语言表示数据的操作;同时,关系数据模型具有严格的理论基础——关系代数。
关系模型以二维表结构来表示实体与实体之间的联系。关系模型的数据结构是一个由“二维表框架”组成的集合。每个二维表又可被称为关系(Relation)。在关系模型中,操作的对象和结果都是二维表。
在关系模型中,基本数据结构就是二维表,不用像层次或网状那样的链接指针,记录之间的联系是通过不同关系中同名属性来体现的。例如,要查找购买了“数据库基础与Access应用教程习题及上机指导”的订单,可以先在书籍信息表中根据书名找到书籍标准号“978-7-115-30604-3”,然后,在订单信息表中找到“978-7-115-30604-3”编号对应的订单即可。在上述查询过程中,同名属性书籍标准号起到了连接两个关系的纽带作用,由此可见,关系模型中的各个关系模式不是孤立的,也不是随意拼凑的一堆二维表,而是被一个个属性连接起来的。
关于关系模型的内容将在第3章作深入介绍。
(2)关系模型的特点
①数据结构
●关系模型与层次模型、网状模型不同,它是建立在严格的数学概念之上的。
●关系模型的数据结构是一个由“二维表框架”组成的集合,每个二维表又可被称为关系,所以关系模型是“关系框架”的集合。
②数据操纵与完整性约束
●数据操纵主要包括查询、插入、删除和修改数据,这些操作必须满足关系的完整性约束条件,即实体完整性、参照完整性和用户定义的完整性。
●在非关系模型中,操作对象是单个记录,而关系模型中的数据操作则是集合操作,操作对象和操作结果都是关系,即若干元组的集合。
●用户只要指出“干什么”,而不必详细说明“怎么干”,从而大大地提高了数据的独立性,提高了用户的生产率。
(3)关系模型的优缺点
①优点
●与非关系模型不同,它有较强的数学理论根据。
●数据结构简单、清晰,用户易懂易用,不仅可用关系描述实体,而且,可用关系描述实体间的联系。
●关系模型的存取路径对用户透明,所以它具有更高的数据独立性和更好的安全保密性,而且,简化了程序员的工作和数据库的建立和开发工作。
②缺点
●由于存取路径对用户透明,查询效率往往不如非关系模型,因此为了提高性能,必须对用户的查询表示进行优化,这就增加了开发数据库管理系统的负担。