第2章数据库系统的数据模型.docx
- 文档编号:11998408
- 上传时间:2023-06-03
- 格式:DOCX
- 页数:33
- 大小:35.86KB
第2章数据库系统的数据模型.docx
《第2章数据库系统的数据模型.docx》由会员分享,可在线阅读,更多相关《第2章数据库系统的数据模型.docx(33页珍藏版)》请在冰点文库上搜索。
第2章数据库系统的数据模型
第2章数据库系统的数据模型
第二章数据库系统的数据模型
本章主要内容
数据库是个具有一定数据结构的数据集合,这个结构是根据现实世界中事物之间的联系来确定的。
在数据库系统中不仅要存储和管理数据本身,还要保存和处理数据之间的联系,这种数据之间联系与就是实体之间的联系。
研究如何表示和处理这种联系是数据库系统的一个核心问题,用以表示实体以及实体之间联系的数据库的数据结构称为数据模型。
本章将着重介绍一下概念模型、层次模型、网状模型、关系模型、面向对象模型等数据库系统的数据模型的基本概念和设计方法,为后面的数据库设计打下基础。
2.1数据模型概述
数据模型(DataModel)是对现实世界数据特征的抽象,是用来描述数据的一组概念和定义。
为了把现实世界的具体事物抽象、组织为某一DBMS现实世界支持的数据模型,通常首先把现实世界中的客观对象抽象
认识抽象为概念模型,然后把概念模型转换为某一DBMS支持的数
据模型,这一过程如图2,1所示。
概念数据模型:
信息世界
数据模型按不同的应用层次可划分为两类:
转换
(1)概念数据模型(又称概念模型)
是一种面向客观世界、面向用户的模型,独立于计算逻辑数据模型:
DBMS支持的数据模型机系统的数据模型,完全不涉及信息在计算机中的表示,
只是用来描述某个特定组织所关心的信息结构。
概念模型是按用户的观点对数据建模,是用户和数据设计人员之间进行交流的工具,主要是用于数据库设计。
例如E,R模型、扩充E,R模型属于这一类模型。
(2)逻辑数据模型(又称数据模型)
是一种直接面向数据库系统的模型,主要用于DBMS的实现。
例如层次模型、网状模型、关系模型均属于这一类模型。
这类模型有严格的形式化定义,以便于在计算机系统中实现。
2.1.1数据模型的基本组成
数据模型是现实世界中的事物及其间联系的一种抽象表示,是一种形式化描述数据、数据间联系以及有关语义约束规则的方法。
通常一个数据库的数据模型由数据结构、数据操作和数据的约束条件三个部分组成。
(1)数据结构
是指对实体类型和实现间联系的表达实现。
它是数据模型最基本的组织部分,规定了数据模型的静态特性。
在数据库系统中通常按照数据结构的类型来命名数据模型,例如,采用层次型数据结构、网状型数据结构、关系型数据结构的数据模型分别称为层次模型、网状模型和关系模型。
(2)数据操作
是指对数据库进行的检索和更新(包括插入、删除和修改)两类操作。
它规定了数据模型的动态操作。
(3)数据的约束条件
数据的约束条件是一组完整性规则的集合,它定义了给定数据模型中数据及其联系应具
1
有的制约和依赖规则。
以确保数据库中数据的正确性、有效性和相容性。
2.1.2数据模型的发展
20世纪60年代后期,在文件系统基础上发展起来的层次模型、网状模型和关系模型等传统数据模型,这些传统数据模型都是在记录的基础上定义了各自数据的基本结构、操作和完整性约束条件以及不同类型记录间的联系。
传统数据模型在数据库产生以来得到了广泛的应用,但随着数据库应用系统使用范围的不断扩大,传统数据模型中这种过于面向机器实现、模拟现实世界的能力不足、语义贫乏等弱点日益突出,导致抽象级别更高、表达能力更强的新型数据模型即非传统数据模型的发展。
例如20世纪70年代后期产生的E,R数据模型是一种概念模型,它提供了丰富的语义和直接模拟现实世界的能力,且具有直观、自然、易于用户理解等优点。
以及CAD/CAM、CASE等专用概念数据模型的产生。
由于数据库新的应用不断扩大,对数据模型的要求也越来越多。
附着新一代数据库研究工作的不断深入,20世纪80年代以来又相继推出面向对象数据模型、基于逻辑的数据模型等新的模型。
下面几节我们将着重对概念模型、传统数据模型、面向对象数据模型进行讨论。
2.2E,R数据模型
概念模型是从现实世界到数据世界的一个中间层次,是数据库设计人员进行数据库设计的重要工具。
长期以来在数据库设计中广泛使用的概念模型当属是E,R数据模型。
2.2.1基本概念
E,R数据模型(即Entity-Relationshipdatamodel,实体,联系数据模型)是P.Chen(PeterPin-ShanChen)于1976年提出的一种语义数据模型。
E-R数据模型不同于传统数据模型,它不是面向实现,而是面向现实世界。
设计E-R数据模型的目标是有效和自然地模拟现实世界,而不是它在机器中如何实现,因此E-R数据模型只应包含那些对描述现实世界有普遍意义的抽象概念。
下面介绍一下E-R数据模型的3个抽象概念。
1)实体(Entity)
实体是客观存在的且可以区别的事物。
现实世界是由各种各位的实体组成。
实体可以是有生命的,也可以是无生命的;可以是具体的,也可以是抽象的;可以是物理上存在的,也可以是概念性的。
例如学生、教师、文化艺术、梦、兴趣等等都是实体。
所以凡是可以互相区别又可以被人们识别的事、物、概念等统统抽象为实体。
在数据库设计中,人们常常关心的是具有相同性质的实体的集合。
这种具有相同性质的一类实体的集合称为实体集。
例如全校学生的集合组成学生实体集。
实体集中的各个实体是借助实体标识符(称关键字)加以区别的。
在E,R数据模型中,也有型与值之分;实体集作为型来定义,而每一个实体是它的实例或值。
2)联系(Relationship)
实体之间会有各种关系,例如学生实体与课程实体之间可能有选课关系,教师实体与学生实体之间可能有讲授关系等。
这种实体与实体间的关系抽象为联系。
根据参与联系的实体个数n的不同,通常将联系分为如下几类:
(1)二元联系
只有两个实体参与的联系称为二元联系,这是现实世界大量存在的联系。
在二元联系中,E,R数据模型又把联系区分为一对一(1:
1)、一对多(1:
n)、和多对多(m:
n)三种。
一对一(1:
1)联系
若两个实体集中E、E中的每一个实体至多和另一个实体集中的一个实体有联系,则12
2
称E和E是一对一的联系,记为1:
1。
12
例如,学校实体集与校长实体集间的联系是一对一联系。
一对多(1:
n)联系
设两个实体集E、E,若E中每一个实体与E中任意个实体(包括零个)相联系,而1212
E中每个实体至多和E中一个实体有联系,则称E和E是一对多的联系,记为1:
n。
2112
例如,系实体集与教师实体集、班长与同学之间是一对多联系。
多对多(m:
n)联系
设两个实体集E、E,若E中每一个实体都和另一个实体集中任意个实体(包括零个)121
有联系,则称E和E是多对多的联系,记为m:
n。
12
例如,教师实体集T与课程实体集C间是一对多联系。
因为教师实体集T中的某个教师可能讲授一门课程或几门课程,也可能不讲课;因为课程实体集C中的一门课程可能由一个教师或几个教师讲授。
再如:
学生与课程、供应商与商品等
m:
n都是m:
n联系。
1:
1联系是1:
n联系的特例,而1:
n联系又是m:
n联系1:
n的特例。
它们之间是包含关系。
如图2,2所示。
1:
1
(2)多元联系
在E,R数据模型中,二元联系这种表示方法还可推广到多元联系,即参与联系的实体个数n?
3。
例如,三元联系也可区分1:
1:
1、1:
1:
p、1:
n:
p、m:
n:
p等联系。
(3)自反联系
表示同一个实体集两部分实体之间的联系,是一种特殊的二元联系。
这两部分实体之间的联系也可以区分为1:
1、1:
n和m:
n三种。
例如,在“人”这个实体集中存在夫妻之间的1:
1联系;教师实体集中为了描述领导与被领导关系,可用1:
n联系描述;在课程实体集中存在一门课程与另外一门或几门课程之间的预选课联系。
3)属性
实体或联系所具有的特征称为属性。
实体是由特征来表征和区分的,通常一个实体可以由多个属性来描述。
例如,学生具有姓名、学号等属性。
一个实体可以有若干个属性,但在数据库设计中通常只选择部分数据管理需要的属
性。
属性往往是来可再细分的原子属性,如姓名、性别等。
属性有型和值的区别。
例如,学生实体中的学号、姓名等属性名是属性型,而
“021231142”、“李定”等具体数据称为属性值。
每个属性值都有一定的变化范围,通常称属性取值的变化范围为属性值的域。
例如,
性别属性域是男、女,年龄属性域是1~200。
能唯一标识实体集中某一实体的属性或属性组称为实体集的标识关键字或称关键
字。
2.2.2E,R图
E,R图是E,R数据模型的图形表示法,是一种直观表示现实世界的有力工具,目前E-R图已用于数据库的概念设计。
3
1)E,R图的表示方法
用矩形框表示实体集,矩形框中是实体集名。
实体集名
用菱形表示联系,菱形框中是联系名。
与其相关的实体集之间用无向
边连接,连线边上标明联系类型。
联系
用椭圆表示属性,并用无向边连向与其相关的实体集或联系。
属性
在E,R图,为了突出实体集之间的联系,通常采用略去实体集或联
系的属性的E,R简图来表示。
上述提到的几种联系的E,R简图如图2,3、图2,4所示。
校长系部教师111m1m
人教师夫妻课程负责领导聘任教学预选
1nn1nn学校教师学生
图2,3二元联系E,R简图图2,4自反联系E,R简图
2)E,R图的构成规则
(1)画出实体集及它们之间的联系
如果实体集A中实体之间有联系A,A,则可根据联系类型的不同,分别用图2,
5的(a)、(b)、(c)表示。
m11AA-AAA-AAA-A
nn1
(a)A,A联系类型为1:
1(b)A,A联系类型为1:
n(c)A,A联系类型为m:
n
图2,5实体集A中实体之间的联系
如果实体集A和实体集B之间有联系A,B,则可根据联系类型的不同,分别用图
2,6的(a)、(b)、(c)表示。
AAA11m
A-BA-BA-B
1nn
BBB
(a)A,B联系类型为1:
1(b)A,B联系类型为1:
n(c)A,B联系类型为m:
n
图2,6实体集A和实体集B之间的联系
如果三个上实体集之间有联系,则可根据其联系类型画出E,R图。
为简单起见,
这里以三个实体集A、B、C及其联系A-B-C为例,根据它们之间联系类型的不同
分别用图2,7的(a)、(b)、(c)表示。
4
AAAA
1m11
A-B-CA-B-CA-B-CA-B-C
11np1npp
BCBCBBCC
(a)A-B-C联系类型为1:
1:
1(b)A-B-C联系类型为1:
1:
p(c)A-B-C联系类型为1:
n:
p(d)A-B-C联系类型为m:
n:
p
图2,7实体集A、实体集B和实体集C之间的联系
(2)画出实体集及联系的属性
用无向边把属性框连向与其相关的实体集或联系。
在E,R图中有些属性连线上加有短垂线,表示该属性是实体标识关键字或标识关键字的一部分。
例如学校和教师实体集间存在聘任联系,联系有“聘任日期”属性,则一个描述学校和教师实体集及其联系的E,R图如图2,8所示。
地址学校名称学校代码
学校
聘任日期聘任
教师
职称性别教师姓名教师代码
图2,8学校和教师实体集的E,R图
2.2.3扩充E,R数据模型
上述以实体、联系和属性三个抽象概念为基础的E,R数据模型是基本E,R数据模型,为了适应新的应用不断提出新需求和表达更丰富的语义,在基本E,R数据模型基础上发展成扩充的E,R数据模型(EER数据模型)。
EER数据模型引入了下列抽象概念。
职工1)依赖联系和弱实体集1在现实世界中,某些实体集间还存在一种特殊的联系――依赖联系。
例如,在
成员人事管理数据库中存放的职工实体集及其家庭成员实体集,前者以后者的存在为前提,家庭成员实体集依赖于职工实体集。
这种依赖另一个实体集的存在而存在的实n体集称为弱实体集,它们与其他实体集间的联系称为依赖联系,如右图所示。
家庭情况2)子类和超类
在EER数据模型中,为了简化联系的描述,引入了子类这一抽象概念。
有时,为了进一步描述一个实体集中某些实体的不同特征,从该实体集中取出一部分实体构成一个(或多个)新的实体集,称这个新实体集是原实体集的子类,而原实体集是新实体集的超类。
5
例如,一个系部的职工实体集,为区分他们不同的工作特点,可分为教师、教辅人员及管理人员三个子类实体集。
这三个子类都继承了其超类职工实体集中的姓名、性别、年龄等所有共同属性,也可增加各自特殊的属性和联系等。
其EER数据模型实例如图2,10所示。
年龄性别职工代码职工姓名
职工
管理人员教辅人员教师
行政级别学校团体
图2,10带有子类的实体集
3)聚集
在基本E,R数据模型中,只有实体集参与联系,不允许联系本身参与联系,在某种程度上限制了对现实世界更自然的描述。
在EER数据模型中,将联系视为参与联系的实体集组合而成新实体集,其属性为参与联系的实体的属性和联系的属性的并。
这种新实体集称为聚集。
这样联系也能以聚集的形式参与联系,图2,11是应用聚集的例子。
教师代码姓名单位编码系名
聚教师集系部
聘任日期聘任
合同号承担
科研项目
图2,11应用聚集的EER图
4)范畴
在描述现实世界时,有时要用到不同类型的实体组成的实体集,然而这在基本E,R数据模型中实体集的概念所不允许的,因此引入了范畴这一抽象概念。
设E、E、„E是n12n个不同类型的实体集,则范畴T可定义为:
T,E:
E:
?
:
E12n
E、E、„E称为T的超实体集。
例如,“银行账户”这个实体集的成员可能是单位,12n
也可能是个人,这种由不同类型实体组成的实体集称为范畴。
图2-12是个应用范畴的例子。
6
身份证号地址姓名单位名法人代表地点
个人单位
?
ψ
账户
m
账号开户
n
银行
图2-12应用范畴的EER图
图中圆圈中的?
表示“并”操作,表示范畴是超实体集(如单位实体集、个人实体集)并的子集。
范畴也继承了其超实体集的属性,但与子类有区别,子类是继承所有超实体集的属性,而范畴的继承是有选择性。
带有ψ符号的线段表示“特殊化”,如果账户是单位,则范畴――“账户”继承单位实体集的属性;如果账户是个人,则范畴――“账户”继承个人实体集的属性。
2.3层次数据模型
在现实世界中,有很多事物是按层次组织起来的。
例如,一个学校有若干系,一个系有若干班,一个班有若干学生。
其他如单位组织机构、图书的编码等都是层次型的。
2.3.1基本概念和结构
层次模型是按照层次结构的形式组织数据库数据的数据模型,即用树型结构表示实体集与实体集之间的联系。
其中用结点表示实体集,结点之间联系的基本方式是1:
n。
层次模型是数据库中使用得较早的一种数据模型,例如,IMS系统就是IBM公司推出的最有影响的一种典型的层次模型数据库管理系统,也是一个曾经被广泛使用的数据库系统。
下面介绍一下层次数据模型的基本概念和结构。
1)记录和字段
记录是用来描述某个事物或事物间关系的命名的数据单位,也是存储的数据单位。
它包含若干字段。
每个字段也是命名的,字段只能是简单的数据类型,例如整数、实数、字符串等。
图2-1是一个名为系的记录。
其中有四个字段:
系名、系号、系主任名、地点(都是字符串),这是记录的型的定义,即记录的数据模式。
图2-2是其一个实例。
系计算机系9李远科技大楼系名系号系主任名地点
图2-1记录的型图2-2记录的一个实例
7
2)双亲子女关系(Parent-Childrelationship,简称PCR)
这是层次数据模型中最基本的数据关系。
它代表了两个记录型之间一对多关系(1:
n)。
例如,一个系有多个班,就构成了如图2-3所示的双亲子女关系(即PCR型),在“1”方的记录型称为双亲记录,在“n”方的记录型称为子女记录。
图2-4是其一个实例。
计算机系系
1
n
计科0201班计科0202班计教0201班班
图2-3PCR型图2-4一个PCR实例
3)层次数据模式
利用PCR可以构成层次数据模式。
图2-5是一个层次数据模式的例子。
系图中,每个方框代表一个记录型,每条弧线代表一个PCR
型。
层次数据模式是一棵树,其数据结构特点为:
在每棵树中有且仅有一个结点无双亲(即根结点)。
班教研室,除根结点外的任何结点有且有一个双亲结点,但可以有
任意个子女结点。
树中无子女的结点称为叶结点。
学生教师
图3-5层次数据模式例子
一个层次数据模式可以有多个实例,如图2-6是图2-5数据模式的一个实例。
计算机系
计科0201班计科0202班计教0201班软件教研室硬件教研室
„„„„„
张三李四王五李定赵山周英胡恒丁伟孙立钱敏
如图2-6层次数据模式的一个实例
4)层次序列和层次路径
(1)层次序列
由于存储器是线性的,层次数据必须变换成线性形式才能存储。
层次数据模型采用树的先序遍历的次序(即从上向下、自左到右)作为存储次序。
这样所生成的序列称为层次序列。
如图2-6中层次数据模式的实例的层次序列如图2-7所示。
硬软计计计计件件教算张李科科王孙胡周钱丁教教„„„„„机0201三四02010202五英立敏恒伟研研系班班班室室
图2-7图2-6的层次序列
8
(2)层次路径
层次路径是用来指明从层次数据模式的根结点到目标结点的一条查询路径,通常用从根结点到目标结点路径上每个记录值的排序关键字表示。
2.3.2数据操作
数据库中的数据操作主要包括数据查询与更新两大类。
1)数据查询
在层次数据模型中,若要查找一个记录,须从根结点开始,按给定条件沿一个层次路径查找所需要的记录。
下面介绍3个查询操作命令。
(1)GU(GetUnique)
格式:
GU,查询条件,
按给定查询条件,沿层次路径查询所需要的记录。
该命令执行的结果是查找出满足条件的第一个条件。
例如,以图2-6为例,执行一个GU查询操作命令如下:
GU系(系名,’计算机系’),班(班名,’计科0202’),学生;
该命令表示查找计算机系计科0202班的第一个学生,即名叫“王五”的学生记录。
执行该命令后,王五这个学生记录就变成当前记录。
(2)GNP(GetNextwithinParent)
在当前记录的双亲下,按层次序列查找下一个满足条件的记录。
例如,查找计科0202班所有学生的记录的查询操作命令如下:
GU系(系名,’计算机系’),班(班名,’计科0202’),学生;/*找到王五的记录*/
WhilenotfaildoGNP学生;/*找到当前记录王五的双亲计科0202班的所有学生记录*/
(3)GN(GetNext)
从当前记录位置开始,按照层次序列,不受同一双亲的限制,查找当前记录的下一个满足条件的记录。
例如,查找计科0202班和计教0201班的所有学生记录的查询操作命令如下:
GU系(系名,’计算机系’),班(班名,’计科0202’),学生;
WhilenotfaildoGNP学生;/*找到计科0202班的所有学生记录*/
GN学生;/*找到计教0201班的第一个学生记录,即学生赵山*/
WhilenotfaildoGNP学生;/*找到计教0201班的所有学生记录*/
可以看出,GNP和GN命令通常跟在GU命令后面使用,先由GU命令定位到层次模型中的某个记录,再用GNP和GN命令查询所需记录。
2)更新操作
(1)数据插入(INSERT)
插入操作可先将插入数据写入系统I/O区,然后指定一个由根记录开始的插入层次路径,完成数据的插入操作。
(2)数据删除(DELETE)
删除操作是先用查询命令将待删除的记录定位为当前记录,再DELETE命令完成删除任务。
当删除一个记录时,则其所从属的所有子女记录都被删除。
(3)数据修改(REPLACE)
先用查询语句将要修改的记录定位为当前记录,并将该记录读到I/O区,在I/O区对数据进行修改,然后用REPLACE命令可将修改后的记录值写回到数据库中。
2.3.3数据约束
层次数据模型的数据约束主要是由层次结构的约束造成的。
9
(1)除了根结点外,任何其他结点不能离开其双亲结点而孤立存在。
这条约束表明了在插入一个子女记录时,必须与一个约束双亲记录相联系,否则不能插入;在删除一个记录时,其子女记录也将自动被删除。
这一约束为数据操作造成了不便。
(2)层次数据模型所体现的记录之间的联系只限于二元1:
n或1:
1的联系,这一约束了用层次模型描述现实世界的能力。
对于现实世界中存在的二元m:
n联系和多元m:
n:
p等复杂联系,就不能用层次模型直接进行表达了。
通常采用下列的分解法或虚拟记录法来解决这一问题。
例如,学生记录型和课程记录型是一个m:
n联系,将无法用层次模型直接表达学生与课程之间的多对多联系。
可以采用分解的方法,把一个二元m:
n联系分解成两个二元1:
n联系,如图2-8所示。
李四王五学生张三
网络安全数据库课程
型实例
(a)m:
n联系的型与实例
学生李四张三王五
课程网络安全网络安全数据库网络安全数据库
型实例
(b)按学生进行分解的型与实例
数据库网络安全课程
学生王五李四张三李四王五
型实例
(c)按课程进行分解的型与实例
图2-8m:
n联系的分解法
由上可以看出,这种分解法会导致大量的存储数据冗
课程学生余。
为了减少分解所带来的数据冗余,可以采用虚拟记录法
(IMS系统所采用的方法)。
虚拟记录法是在数据库中,如果有一个记录x要在多处
被引用,则只存储一份这样的记录,其他需要引用的地方用
(学生)v(课程)v其指针代替。
这种用指针代替的记录称为虚拟记录,记为
V.x。
图2-9表示学生和课程间的m:
n联系。
图2-9m:
n联系的虚拟记录法
10
(3)由于层次结构中的全部记录都是以有序树的形式组织起来,当对某些层次结构进行修改时,不允许改变原数据库中记录类型之间的双亲子女联系,这使得数据库的适应能力受到限制。
(4)虚拟记录的指针必须指向一个实际存在的记录。
有虚拟记录指向的记录不得删除。
(5)虚拟记录不能为根记录。
2.3.4层次数据模型的优缺点
层次数据模型的优点主要有:
层次模型结构简单、层次分明,便于在计算机内实现。
在层次结构中,从根结点到树中任一结点均存在一条唯一的层次路径,这为有效地
进行数据操纵提供了条件。
在层次结构中除根结点外所有结点有且只有一个双亲结点,故实体集之间的联系可
用双亲结点唯一地表示,因此层次模型DBMS对层次结构的数据有较高的处理效
率。
层次数据模型提供了良好的完整性支持。
层次数据模型的缺点主要有:
层次数据模型缺乏直接表达现实世界中非层次型结构的复杂联系,如多对多联系。
对插入或删除操作有较多的限制。
查询子女结
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第2章 数据库系统的数据模型 数据库 系统 数据模型