1、20:16:10,1,第二章 数据模型,2.1 数据模型概述2.2 ER数据模型 2.3 层次数据模型 2.4 网状数据模型 2.5 关系数据模型本章小结,20:16:10,2,2.1 数据模型概述,数据模型(Data Model)是对现实世界数据特征的抽象,是用来描述数据的一组概念和定义。数据模型分为两类: 概念数据模型(又称概念模型) 逻辑数据模型(又称数据模型)概念模型是对现实世界的第一层抽象,与具体的计算机系统、DBMS无关。逻辑数据模型的设计则与DBMS有关。,数据模型转换过程,20:16:10,4,2.1.1 数据模型的基本组成,数据模型的基本组成要素包含三个方面:数据结构数据操作
2、数据约束条件,20:16:10,5,2.1.1 数据模型的基本组成(续),(1)数据结构 它是指对实体类型和实体间联系的表示方法。它是数据模型最基本的组成部分,规定了数据模型的静态特性。根据数据结构的不同,数据模型分为层次模型、网状模型和关系模型三种。,20:16:10,6,2.1.1 数据模型的基本组成(续),(2)数据操作数据操作是指对数据库进行的检索(即查询)和更新两大类操作。其中,更新操作又包括插入、删除和修改。数据操作规定了数据模型的动态特性。,20:16:10,7,2.1.1 数据模型的基本组成(续),(3)数据的约束条件数据的约束条件是一组完整性规则的集合。它定义了给定数据模型中
3、数据及其联系应具有的制约和依赖规则。 比如,规定学号不能重复,学号不能为空,20:16:10,8,2.2 ER数据模型,2.2.1 基本概念2.2.2 ER图 2.2.3 扩充ER数据模型,20:16:10,9,2.2.1 基本概念(续),ER数据模型(即Entity-Relationship data model,实体联系数据模型)是一种基于语义的数据模型,它不是面向计算机实现的,而是面向现实世界的,是用来描述客观世界中事物与事物之间的关联的。,20:16:10,10,2.2.1 基本概念(续),E-R模型是数据库设计的初始阶段, E-R模型是计算机专业人员与普通用户沟通的桥梁。在这个阶段专
4、业人员可以通过通俗易懂的E-R图来准确地描述用户的需求信息,从而为后续的数据库逻辑结构设计做准备。,20:16:10,11,2.2.1 基本概念(续),通过E-R模型,计算机专业人员可以确定系统需要管理哪些对象,这些对象分别具有哪些特性,对象和对象之间具有哪些联系?,20:16:10,12,2.2.1 基本概念(续),1、实体(Entity) 实体是客观存在的且可以区别的事物。 2、联系(Relationship) 实体与实体间的关系抽象为联系。,20:16:10,13,2.2.1 基本概念(续),根据联系所涉及的实体集的个数,联系分为三种:(一)二元联系 只有两个实体集参与的联系称为二元联系
5、。(二)多元联系 有三个及以上的实体集参与的联系称为多元联系。(三)自反联系 表示同一个实体集两部分实体之间的联系,是一种特殊的二元联系。,20:16:10,14,2.2.1 基本概念(续),根据实体间的对应方式,联系又可以分为三种:(1)一对一联系(2)一对多联系(3)多对多联系,20:16:10,15,(1)一对一(1:1)联系若两个实体集中E1、E2中的每一个实体至多和另一个实体集中的一个实体相联系,则称E1和E2是一对一的联系,记为1:1。例如,学校实体集与校长实体集间的联系是一对一联系。,2.2.1 基本概念(续),20:16:10,16,2.2.1 基本概念(续),一对多(1:n)
6、联系 设两个实体集E1、E2,若E1中每一个实体都与E2中的多个实体(包括0个和1个)相联系,而E2中每个实体最多只能和E1中一个实体相联系,则称E1和E2是一对多的联系,记为1:n。,20:16:10,17,2.2.1 基本概念(续),多对多(m:n)联系 设两个实体集E1、E2,若E1中每一个实体都和E2实体集中的多个实体(可以是0个,1个)相联系,反之亦然,则称E1和E2是多对多联系,记为m:n。,20:16:10,18,2.2.1 基本概念(续),3、属性实体或联系所具有的特征称为属性。 实体是由特征来表征和区分的,通常一个实体可以由多个属性来描述。例如,学生具有姓名、学号等属性。一个
7、实体可以有若干个属性,但在数据库设计中通常只选择部分数据管理需要的属性。属性往往是不可再细分的原子属性,如姓名、性别等。,20:16:10,19,2.2.1 基本概念(续),属性有型和值的区别。 例如,学生实体中的学号、姓名等属性名是属性型,而“021231142”、“李定”等具体数据称为属性值。每个属性值都有一定的变化范围,通常称属性取值的变化范围为属性值的域。 例如,性别属性域是男、女,年龄属性域是1200。能唯一标识实体集中某一实体的属性或属性组称为实体集的标识关键字、关键字或码。,20:16:10,20,2.2.2 ER图,ER图是ER数据模型的图形表示法,是一种直观表示现实世界的有力
8、工具,目前E-R图已用于数据库的概念设计。1)ER图的表示方法,实体集名,联系,属性,ER简图举例:,20:16:10,21,2)ER图的构图规则,(1)画出实体集及它们之间的联系 如果实体集A中实体之间有联系AA,则实体间联系如下图:,20:16:10,22,2)ER图的构图规则(续),如果实体集A和实体集B之间有联系AB,则实体间联系如下图:,20:16:10,23,2)ER图的构图规则(续),如果三个上实体集A、B、C之间有联系A-B-C,则实体间联系如下图:,20:16:10,24,(2)画出实体集及联系的属性,用无向边把属性框连向与其相关的实体集或联系。 例如学校和教师实体集间存在聘
9、任联系,联系有“聘任日期”属性,则一个描述学校和教师实体集及其联系的ER图如下图所示。,20:16:10,25,2.2.3 扩充ER数据模型,1)依赖联系和弱实体集 在现实世界中,某些实体集间还存在一种特殊的联系依赖联系。,例如,在人事管理数据库中存放的职工实体集及其家庭成员实体集,前者以后者的存在为前提,家庭成员实体集依赖于职工实体集。这种依赖另一个实体集的存在而存在的实体集称为弱实体集,它们与其他实体集间的联系称为依赖联系,如右图所示。,20:16:10,26,2)子类和超类,为了进一步描述一个实体集中某些实体的不同特征,从该实体集中取出一部分实体构成一个(或多个)新的实体集,称这个新实体
10、集是原实体集的子类,而原实体集是新实体集的超类。,20:16:10,27,例如,一个系部的职工实体集,为区分他们不同的工作特点,可分为教师、教辅人员及管理人员三个子类实体集。其EER数据模型实例如下图所示。,20:16:10,28,几个ER事例,部门ER,20:16:10,29,医院病房 管理ER,20:16:10,30,系,20:16:10,31,20:16:10,32,2.3 层次数据模型,2.3.1 基本概念和结构 2.3.2 数据操作 2.3.3 数据约束 2.3.4 层次数据模型的优缺点,20:16:10,33,2.3.1 基本概念和结构,层次模型是按照层次结构的形式组织数据库数据的
11、数据模型,即用树型结构表示实体集与实体集之间的联系。 其中用结点表示实体集,结点之间联系的基本方式是1:n。,20:16:10,34,2.3.1 基本概念和结构,(一)记录和字段 记录是用来描述某个事物或事物间联系的数据单位,也是存储的数据单位。 它包含若干字段,每个字段只能是简单的数据类型,例如整数、实数、字符串等。,20:16:10,35,2.3.1 基本概念和结构,图(a)记录的型,例如:图(a)是一个名为系的记录。,图(b)记录的一个实例,20:16:10,36,(二)双亲子女关系(简称PCR),这是层次数据模型中最基本的数据联系。它代表了两个记录型之间一对多关系(1:n)。 例如,系
12、和班级之间的联系就构成了双亲子女联系,在“1”方的记录型称为双亲记录,在“n”方的记录型称为子女记录。图(b)是其一个实例。,20:16:10,37,(三)层次数据模型的特点及实例,利用PCR可以构成层次数据模型。下图是一个层次数据模型的例子。,20:16:10,38,(三)层次数据模型的特点及实例,层次数据模型是一棵树,其数据结构特点为:每棵树仅有一个结点无双亲结点,即根结点。除根结点外的任何结点有且只有一个双亲结点,但可以有任意个子女结点。树中无子女的结点称为叶结点。,20:16:10,39,层次数据模型的一个实例,20:16:10,40,(四)层次序列和层次路径,(1)层次序列 层次数据
13、模型采用树的先序遍历的次序(即从上向下、自左到右)作为存储次序。这样所生成的序列称为层次序列。上例中的层次数据模型的实例的层次序列如下图所示。,20:16:10,41,(四)层次序列和层次路径(续),(2)层次路径层次路径是用来指明从层次数据模型的根结点到目标结点的一条查询路径,通常用从根结点到目标结点路径上每个记录值的排序关键字表示。,20:16:10,42,2.3.2 数据操作,1)数据查询 在层次数据模型中,若要查找一个记录,须从根结点开始,按给定条件沿一个层次路径查找所需要的记录。,下面介绍3个查询操作命令。(1)GU(Get Unique)格式:GU查询条件该命令执行的结果是查找出满
14、足条件的第一个记录。例如,GU 系(系名计算机系),班(班名计科0202),学生;,20:16:10,44,(2)GNP(Get Next within Parent)在当前记录的双亲下,按层次序列查找下一个满足条件的记录。例如,查找计科0202班所有学生的记录的查询操作命令如下: GU 系(系名计算机系),班(班名计 科0202),学生; While not fail do GNP 学生;,2.3.2 数据操作,20:16:10,45,(3)GN(Get Next) 从当前记录位置开始,按照层次序列,不受同一双亲的限制,查找当前记录的下一个满足条件的记录。,2.3.2 数据操作,20:16:
15、10,46,例如,查找计科0202班和计教0201班的所有学生记录的查询操作命令如下: GU 系(系名计算机系),班(班名计科0202),学生; While not fail do GNP 学生; GN 学生; While not fail do GNP 学生;,20:16:10,47,2)更新操作,(1)数据插入(INSERT) 插入操作可先将插入数据写入系统I/O区,然后指定一个由根记录开始的插入层次路径,完成数据的插入操作。,20:16:10,48,2)更新操作,(2)数据删除(DELETE) 删除操作是先用查询命令将待删除的记录定位为当前记录,再用DELETE命令完成删除任务。当删除一
16、个记录时,则其所从属的所有子女记录都被删除。,20:16:10,49,2)更新操作,(3)数据修改(REPLACE) 先用查询语句将要修改的记录定位为当前记录,并将该记录读到I/O区,在I/O区对数据进行修改,然后用REPLACE命令可将修改后的记录值写回到数据库中。,20:16:10,50,2.3.3 数据约束,层次数据模型的数据约束主要是由层次结构的约束造成的。 (1)除了根结点外,任何其他结点不能离开其双亲结点而孤立存在。 这条约束表明了在插入一个子女记录时,必须与一个双亲记录相联系,否则不能插入;在删除一个记录时,其子女记录也将自动被删除。这一约束为数据操作造成了不便。,20:16:1
17、0,51,2.3.3 数据约束,(2)层次数据模型所体现的记录之间的联系只限于二元1:n或1:1的联系,这一约束降低了用层次模型描述现实世界的能力。 对于现实世界中存在的二元m:n联系和多元m:n:p等复杂联系,就不能用层次模型直接进行表达了。通常采用分解法或虚拟记录法来解决这一问题。,20:16:10,52,分解法,例如,学生和课程是一个m:n联系,无法用层次模型直接表达这种多对多的联系。可以采用分解的方法,分解成两个1:n联系。,20:16:10,53,分解法,20:16:10,54,虚拟记录法,分解法会导致大量的存储数据冗余。为了减少分解所带来的数据冗余,可以采用虚拟记录法(IMS系统所
18、采用的方法)。,虚拟记录法是在数据库中,如果有一个记录x要在多处被引用,则只存储一份这样的记录,其他需要引用的地方用其指针代替。这种用指针代替的记录称为虚拟记录,记为V.x。右图表示学生和课程间的m:n联系。,20:16:10,55,2.3.4 层次数据模型的优缺点,层次数据模型的优点主要有:结构严谨、层次分明,便于在计算机内实现。从根结点到树中任一结点均存在一条唯一的层次路径,这为有效地进行数据操纵提供了条件。在层次结构中除根结点外,其他结点有且只有一个双亲结点,故实体集之间的联系可用双亲结点唯一地表示,因此层次模型DBMS对层次结构的数据有较高的处理效率。,20:16:10,56,2.3.
19、4 层次数据模型的优缺点(续),层次数据模型的缺点主要有:层次数据模型缺乏直接表达现实世界中非层次型结构的复杂联系,如多对多联系。对插入或删除操作有较多的限制。查询子女结点必须通过双亲结点,程序设计人员必须指定查找路径。,20:16:10,57,2.4 网状数据模型,2.4.1 基本概念和结构 2.4.2 数据操作 2.4.3 数据约束 2.4.4 网状数据模型的优缺点,20:16:10,58,2.4.1 基本概念和结构,为了克服层次模型不能直接描述非层次型联系的局限,20世纪60年代末出现了网状数据模型。但对于二元m:n联系和多元m:n:p联系也不能直接表示,而是采用联系记录这个辅助数据结构
20、,来将实体集间的m:n联系转换成两个1:n联系。,20:16:10,59,4)联系记录,例如学生记录与课程记录之间的m:n联系可通过引入联系记录学生选课记录,将其转换为两个1:n联系。如下图所示。,20:16:10,60,2.4.4 网状数据模型的优缺点,网状数据模型的优点主要有: 能够更为直接地描述现实世界。具有存取效率高等良好性能。 网状数据模型的缺点主要有: 数据结构比较复杂,不便于终端用户掌握。其数据定义语言(DDL)、数据操作语言(DML)较为复杂,用户掌握使用较为困难。,20:16:10,61,2.5 关系数据模型,2.5.1 基本概念 2.5.2 关系数据模型的数据结构 2.5.
21、3 数据操作 2.5.4 数据约束 2.5.5 关系数据模型的优缺点,20:16:10,62,2.5.1 基本概念,1)属性和域 在现实世界中,要描述一个事物,常常取其若干特征来表示。这些特征称为属性。例如,大学生可用姓名、学号、性别、系别等属性来描述。每个属性对应一个值的集合,作为其可以取值的范围,称为属性的域。例如性别的域是男,女,成绩的域是0,100等。,20:16:10,63,2.5.1 基本概念(续),2)关系和元组 一个对象可以用一个或多个关系来表示。假设R为一个关系,它有属性A1、A2、An,其对应的域分别为D1、D2、Dn, 则关系R可表示为: R(A1,A2,An)元组是关系
22、中各个属性的一个取值的集合。,20:16:10,64,2.5.1 基本概念(续),3)键 关系中的某一属性或属性组的值唯一地决定其他所有属性的值,也就是唯一决定一个元组,而其任何真子集无此性质,则称这个属性或属性组为该关系的候选键或候选码,简称键或码。,20:16:10,65,2.5.2 关系数据模型的数据结构,1)关系数据模型的描述功能 (1)用二维表格表示实体集及其属性 设实体集R有属性A1、A2、An,实体集的型可用一个二维表的框架表示。见表(a)。表中每一元组表示实体集的值,见表(b),20:16:10,66,关系举例,学生情况表,20:16:10,67,(2)用二维表描述实体集间的联
23、系,关系模型不仅可用二维表表示实体集,而且可以用二维表描述实体集间的联系。 例如,在图书管理中经常用“读者登记表”和“图书登记表”分别存储读者和图书信息,如下表所示。,20:16:10,68,(2)用二维表描述实体集间的联系(续),由于借书人与图书之间是m:n联系,在前面用层次模型或网状模型将是一项复杂的事情。在这里用二维表“借书登记表”来表示借书人和图书两个实体集之间的联系则十分简便,如下表所示。,20:16:10,69,2)关系的性质,关系是一个二维表,表中的每一行对应一个元组,表中的每一列有一个属性名且对应一个域。 列是同质的,即每一列的值来自同一个域。关系中的每一个属性是不可再分解,即
24、所有域都应是原子数据的集合。关系中任意两个元组不能完全相同。关系中行的排列顺序、列的排列顺序是无关紧要的。每个关系都由关键字的属性集唯一标识一个元组。,关系是一个简单的二维表,其主要性质为:,20:16:10,70,2.5.5 关系数据模型的优缺点,1)关系数据模型的优点 关系模型有坚实的数学理论基础。在关系模型中,二维表不仅能表示实体集,而且能方便地表示实体集间的联系。关系数据模型中数据的表示方法统一、简单,便于计算机实现,用户操作简单。 数据独立性高。,20:16:10,71,2.5.5 关系数据模型的优缺点(续),2)关系数据模型的缺点关系数据模型的主要缺点是查询效率较低。不能以自然的方
25、式表示实体集间的联系、语义信息不足、数据类型过少等弱点。因此自20世纪80年代后期以来,陆续出现了以面向对象数据模型为代表的新的数据模型。,20:16:10,72,课堂练习,1、学生社团可以接纳多名学生参加,每个学生可以参加多个社团,从社团到学生之间的联系类型是( ) A.多对多 B.一对一 C.多对一 D.一对多,20:16:10,73,课堂练习,2、反映现实世界中实体及实体间联系的概念模型是( ) A.关系模型 B.层次模型 C.网状模型 D.E-R模型,20:16:10,74,课堂练习,3、公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从职员到部门的联系类
26、型是( ) A.多对多 B.一对一 C.多对一 D.一对多,20:16:10,75,课堂练习,4、关系数据模型的三个组成部分中,不包括( )A.完整性规则 B.数据结构 C.故障恢复 D.数据操作,20:16:10,76,课堂练习,5、在关系模型中,关系中的任意两个元组( ) A.不能全同 B.可以全同 C.必须全同 D.是不可分割的,20:16:10,77,课堂练习,6、在数据库系统中,把可以相互区别的客观事物称为( ) A属性 B字段 C文件 D实体,20:16:10,78,课堂练习,7、下列关于E-R模型的说法中,正确的是( )A.依赖于计算机硬件和DBMSB.独立于计算机硬件,依赖于D
27、BMSC.独立于计算机硬件和DBMSD.依赖于计算机硬件,独立于DBMS,20:16:10,79,课堂练习,8、 DB、DBMS和DBS三者之间的关系是( )A.DB包括DBMS和DBS B.DBS包括DB和DBMSC.DBMS包括DB和DBS D.不能相互包括,20:16:10,80,ER图例题,学生与教师管理教学系统中,(1)有若干学生包括:学号,姓名,性别,年龄(2)有若干教师包括:教师号,姓名,性别,年龄,职称(3)有若干课程包括:课程号,课程名,学时,学分(4)一门课程只安排一名教师任教,一名教师可教多门课程,教师任课包括使用教材属性。(5)一门课程有多名学生选修,每名学生可选多门课
28、程,学生选课包括考试成绩属性。 根据上述描述设计一个完整的E-R图,要求画出实体和属性。,20:16:10,81,课堂练习,设一个海军基地要建立一个舰队管理信息系统,它包括如下信息:舰队:舰队名称、基地地点、舰艇数量舰艇:舰艇编号、舰艇名称武器:武器名称、武器生产时间官兵:官兵证号、姓名一个舰队拥有多艘舰艇,一艘舰艇属于一个舰队;一艘舰艇安装多种武器,一种武器可安装在多艘舰艇上,一艘舰艇有多个官兵,一个官兵只属于一艘舰艇。请根据上述描述绘制一个E-R图,要求画属性。,20:16:10,82,课后作业,建立关于系、学生、班级、专业、社团等信息的一个关系数据库,一个系有若干个专业,每个专业有若干个班,每个班有若干个学生,每个学生可以参加若干个社团,每个社团有若干学生,学生参加某社团有个入会年份属性。学生的属性有:学号,姓名,出生年月,性别班级的属性有:班号,人数,入校年份系的属性有:系名,系办公室,系主任专业的属性有:专业号,专业名社团的属性有:社团名,成立年份,地点,人数请根据上述描述画出该数据库的E-R图。,