第2章数据模型概要

上传人:今*** 文档编号:107465202 上传时间:2019-10-19 格式:PPT 页数:118 大小:1.05MB
返回 下载 相关 举报
第2章数据模型概要_第1页
第1页 / 共118页
第2章数据模型概要_第2页
第2页 / 共118页
第2章数据模型概要_第3页
第3页 / 共118页
第2章数据模型概要_第4页
第4页 / 共118页
第2章数据模型概要_第5页
第5页 / 共118页
点击查看更多>>
资源描述

《第2章数据模型概要》由会员分享,可在线阅读,更多相关《第2章数据模型概要(118页珍藏版)》请在金锄头文库上搜索。

1、,第 2 章 数据模型,本章内容: 传统数据模型 关系数据模型 对传统数据模型的评价 E-R数据模型 UML E-R数据模型,数据模型是描述数据、数据间的联系、数据的语义以及数据一致性约束的概念工具的集合。 由于现有的数据库管理系统均是基于某种数据模型实现的。因此,了解数据模型的基本概念是学习数据库课程的基础。,引言,数据模型可分为两类: 一类是概念数据模型,是现实世界的第一层抽象。也是一种高层数据模型。 概念模型用来表示现实世界中实体以及实体间的联系。强调语义表达能力。 因此,模型中的概念应该简单、清晰、易于用户理解。概念模型是用户和数据库人员之间进行交流的工具。最著名的概念模型是“实体-联

2、系(E-R)模型(或简称E-R模型)”。,引言,引言,另一类是直接面向数据库逻辑结构的数据模型,称为“基本数据模型”或“结构数据模型”,是现实世界的第二层抽象,是一种低层模型。例如, 层次数据模型(或简称层次模型)、网状数据模型(或简称网状模型)、关系数据模型(或简称关系模型)、面向对象数据模型(或简称对象模型)。这类模型有严格的形式化定义, 便于在计算机系统中实现。,关系模型是一种低层模型,它是用表的集合来表示数据和数据间的联系。多数数据库管理系统都是基于关系模型的。 在数据库应用中,通常是先用E-R模型在高层对数据建模,然后再将其转换为低层的关系模型。,引言,2.1 传统数据模型 2.1.

3、1层次数据模型 (hierarchical data model) 层次数据模型是一种用树型(层次)结构表示数据及数据间联系的数据模型。 特点:是以记录为节点的有向树,且满足以下条件: 有且仅有一个节点没有双亲节点,即根节点。 其他节点有且仅有一个双亲节点。,2.1.1 层次数据模型,层次数据模型的例子,任何一个给定的记录值只有按其路径查看时,才能显出它的全部意义,没有一个子女记录值能够脱离双亲记录值而独立存在。,记录和字段 记录是用来描述某个事物或事物间关系的命名的数据单位,也是存储的数据单位。一个记录包含若干字段。 每个字段也是命名的,字段只能是简单数据类型(整数、实数、字符串等)。,2.

4、1.1 层次数据模型,记录的型(记录的数据模式),记录的一个实例,2.1.1 层次数据模型,一个系通常有若干个班级,系和班级的这种“一对多(1:N)”关系在层次数据模型中用双亲子女关系(PCR)表示。图中“1”和“N”表示“1个”系有“多个”班级。,双亲子女关系的型,2.1.1 层次数据模型,假如,计算机系的学生由4个班级组成,则图表示一个双亲子女实例。,双亲子女关系的实例,2.1.1 层次数据模型,利用双亲子女关系,可以构成层次数据模式。,2.1.1 层次数据模型,图表示一个系由若干个班级和教研组组成;一个班级由若干个学生组成;一个教研组由若干个教师组成。,层次数据模型的例子,非层次关系表示

5、问题。 M:N 假设一个学生可以选修多门课程,而一门课程可以由多个学生选修,那么学生和课程之间的这种选修关系是一种“多对多(M:N)”的联系(非层次关系)。, 虚拟记录,2.1.1 层次数据模型, 在层次数据模型中M:N也用双亲子女关系(PCR)表示。由于不允许一个记录有多个双亲,需要复制记录,导致冗余。如下图:,2.1.1 层次数据模型,2.1.1 层次数据模型,一个记录是两个以上PCR的子女,冗余结点法优点: 结构清晰,允许结点改变存储位置。 冗余结点法缺点: 需要额外空间,易产生数据不一致。,用虚拟记录表示前面的联系,解决了冗余。,2.1.1 层次数据模型,为避免这一情况,只存一份记录,

6、其它引用该记录的地方用指针代替 这种用指针代替的记录称为虚拟记录。,层次数据模型常用的实现方法: 邻接法 链接法,2.1.1 层次数据模型,略。,层次数据模型的优点: 能直观地描述客观世界; 记录之间的联系通过指针来实现,查询效率较高。 层次数据模型的缺点: 只能直接表示一对多的联系,不能直接表达多对多的联系; 数据的查询和更新较复杂。(如查询子女结点必须通过双亲结点),2.1.1 层次数据模型,2.1.2 网状数据模型(network data model),特点:网状数据模型是一种用有向图表示数据及数据之间联系的数据模型。其中每个结点表示一个记录类型(实体) ,每个记录类型可有若干个字段(

7、实体的属性) ;结点间的连线表示记录类型之间的一对多联系(箭头表示从箭尾的记录类型到箭头的记录类型间联系是1:N联系)。,班级 - 学生系,2.1.2 网状数据模型,学号 姓名 系别,课程号 课程名 学分,学号 课程号 成绩,s-sc,c-sc,学生,课程,选课,学生/选课/课程的网状数据模型, 网状数据模型常用的实现方法: 单向链接、双向链接、环状链接、向首链接等。,2.1.2 网状数据模型,网状模型的优点: 网状模型中,能够更为直接地描述现实世界,如一个结点可以有多个双亲结点,结点之间可以有多种联系(突破了层次数据模型的限制); 不同记录之间的联系通过指针实现; 多对多(M:N)联系也容易

8、实现(一个M:N联系可拆成两个1:N联系),查询效率较高;,2.1.2 网状数据模型,网状数据模型的缺点: 结构较复杂,且随着应用环境扩大,数据库结构将变得更复杂,不便于修改数据库的结构,不利于最终用户掌握; 网状模型的DDL、DML复杂,编写应用程序困难,用户不易掌握和使用。,2.1.2 网状数据模型,2.2 关系数据模型,关系数据模型是目前使用最广泛的一种数据模型。利用二维表的集合来表示数据和数据间的联系。表中的每一行称为一个元组(对应记录),表中的每一列称为一个属性(对应字段),如图所示。,关系数据模型中的二维表,Compare with,2.2 关系数据模型,2.2 关系数据模型,关系

9、数据库中的数据是以表的形式存放,一个关系对应一张表,表中的每一行对应不同的记录,表中的每一列对应不同的属性。 表中不允许有重复记录,列名惟一,行序和列序可以任意。,2.2 关系数据模型,(a),(b) 部门关系表,属性和域 属性-用来描述事物特征。 例如:学生的姓名、学号、性别、出生年月等。 域-属性的取值范围。 例如:姓名的取值范围是合法姓名的集合。 学号的域是若干位数字组成的字符串的集合。 性别的域是男,女 注意:关系数据模型中,所有的属性都应是不可再分的 原子数据的集合。 关系数据模型中,允许某些属性值为空,即NULL。,2.2.1 关系的基本概念和定义,关系和元组 设有一关系R,R上有

10、属性: A1,A2,An 其对应域分别为: D1,D2,Dn 则关系R可表示为: R (A1/D1,A2/D2,An/Dn) 其中:n为关系R的属性个数,也称为关系的目。 同一关系中,不允许有同名属性,但不同属性可有相同的域。,2.2.1 基本概念及定义,关系R某个时刻的值用r表示 ,它是n目元组的集合,即: r = t1,t2,tm 每个元组t可表示为: t = , viDi , 1i n 即 ti D1D2 Dn, 1 i n,2.2.1 基本概念及定义,键 键(或候选键)如果关系的某一个属性或属性组的值唯一地决定其它所有属性的值。而其任 何真子集无此性质,则这个属性或属性组称为该 关系的

11、键。 例:学生关系中,学号就是候选键。,2.2.1 基本概念及定义,超键-与上相同,区别仅在于其真子集也 具此性质。,主键-一个关系R可有多个候选键,若选中 一个作为Key,则它就是主键,其它称候补键, 每个元组的主键值应是唯一的。,全键-由所有属性组成的键,称为全键。,2.2.1 基本概念及定义,外键-引用其它关系的Key或本关系的Key, 称为外键。,例:COURSE(课程号,课程名,学分,开课时间, 先修课程号) GRADE (学号,课程号,成绩) 其中: 的主键是课程号。 的主键是学号+课程号。 中先修课程号是引用本关系的键,是外键。 中学号、课程号是引用STUDENT关系和 COUR

12、SE中的键,也是外键。,2.2.1 基本概念及定义,主属性-包含在候选键中的属性,称为主属性。,非主属性-不包含在候选键中的属性,称非主属性。,2.2.1 基本概念及定义, 关系数据模型是用关系描述事物间联系的,且 这种联系通常都隐含在它们的公共属性中,尤其是外键中。 因此,关系数据模型不能显示地表示这种事物间的联系,是这种模型的一个缺点。,2.2.1 基本概念及定义,关系模式R(A1/D1,A2/D2,,AN/DN)中, R的任何一个元组 t 应满足条件: t D1 D2 Dn,满足上述条件的元组是合乎语法的,但,并不是每个合乎语法的元组都能成为R的元组,它还要受到语义上的限制。,2.2.2

13、 约束,如,一个大学生的年龄在5岁100岁之间。 身高3米 这就是语义上的限制。数据的语义不但限制 属性的值,而且还会制约属性间的关系。,例:在一个R中,作为主键的属性或属性组, 其值不为空或不重复出现等等。 语义施加在属性间的限制,称为完整性约束。,2.2.2 约束,关系数据模型的完整性约束共分为4类: 域完整性约束 域完整性约束是最简单、最基本的约束。 属性值应是域中的值,属性的值能否为空, 由问题的语义决定。,例:考试分数(成绩)的取值范围是0100。,2.2.2 约束,2. 实体完整性约束 每一个关系都应有一个主键,用来唯一识别 一个元组的。它的值不能为空,否则无法区分和识别元组,这就

14、是实体完整性约束。,2.2.2 约束,3. 引用完整性约束 这是指不同关系之间或同一关系的不同元组 间的约束。设关系R有一外键FK,则其某一元组 t的外键值为tFK。,设FK引用关系R的主键Pk,R可以是R, 也 可以不是R。引用完整性约束要求tFK遵守下面约束: tPK (t为R中某一元组) tFK NULL 即外键要么是空缺,要么是引用实际存在的主键值。,2.2.2 约束,假定现在往职工关系 中插入一个元组: (“WH7”,”E9”,1400) 请问是否有问题?,仓库,职工,2.2.2 约束,利用引用完整性约束就可以解决这类问题。,由于仓库号是仓库关系的候选键,同时是职工 关系的外键。在定

15、义职工关系的仓库号字段时,只 要说明外键约束: 仓库号 CHAR(4)NOT NULL REFERENCES 仓库(仓库号),有了以上的约束,系统就会自动检查相应的记录是否存在,从而保证数据的引用完整性。,2.2.2 约束,4. 一般性完整性约束,用户为了满足特定的要求而做的一些与数据 完整性有关的规定。,2.2.2 约束,2.2.3 操作 关系数据模型提供了两类操作: 关系代数操作(relational algebra operations) 关系演算(relational calculus) 2.2.3.1 关系代数操作 选择操作 一元关系运算。按给定条件从关系中挑选满足条件的元组组成的集合 。 语法格式: (),订购单关系,例: 职工号=“E3”(订购单),2.2.3 操作,订购单关系,例: 职工号=“E3”(订购单),结果如下:,2.2.3 操作, 投影操作 一元关系运算。从关系中挑选指定的属性组成的新关系。 语法格式:(),2.2.3 操作,订购单关系,2.2.3 操作,订购单关系,例: 职工号,供应商号(订购单),结果:,2.2.3 操作,订购单关系,例: 订购单号,供应商号( 职工号=“E3” (订购单),嵌套使用的情况:, 选择指定的属性,形成一个 可能含有重复行的表格; 删除重复行,形

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号