本讲主要内容
? 关系数据库的定义
? 关系模型的数据结构 ( 关系的基本性质 )
? 关系模型数据操作 ( 关系模型的特性操作,
关系模型的集合操作 )
? 关系模型的完整性规则 ( 实体完整性, 参照
完整性, 用户定义的完整性 )
? 关系数据库的设计( 关系数据库的设计方法,
需求分析, 概念结构设计, 逻辑结构的设计,
物理设计, 关系数据库规范化, 关系数据库
的设计实例 )
第七章


库 (




关系数据库的定义 (第 7章第 2讲)
在概念模型一节中介绍到实体之间是有联系的,联系
有一对一、一对多和多对多之分。
这里,将 实体之间的联系称为关系 。 描述实体之间
联系的方式就是关系模型 。 基于关系模型的数据库称为关
系数据库 。换句话说,在一个给定的现实世界领域中,相
应于所有实体及实体之间的联系的关系的集合就构成了一
个关系数据库。
关系数据库也有 型 和 值 之分。 关系数据库的型 也称
为 关系数据库模式,是对 关系数据库的描述,是 关系模式
的集合 。 关系数据库的值 也称为 关系数据库,是 关系的集
合 。关系数据库模式与关系数据库通常统称为关系数据库。
关系模型的数据结构 (第 7章第 2讲)
关系模型的数据结构是一个由 元组(行) 和 属性(列 )
组成的关系,也可直接称为 二维表或表 。如图所示。统称
为 关系数据库 。
① 关系
( relation):一个
关系对应一个二维表,
二维表名就是关系名 。
如图就是一个关系,
关系名为学生登记表 。
② 元组 (tuple):表
中的 一行即为一个元
组 。如图的学生登记
表有 6行,也就有 6个
元组。。
③ 属性 (attribute):
表中的 一列即为一个
属性 。如图的学生登
记表有 7列,对应 7个
属性 (学号,姓名,
性别,出生年月、籍
贯、系别和专业 )。
④ 键 (key):表中的
某个 属性组,它可以
唯一确定一个元组,
如图的学生登记表中
的学号,按照学生学
号的编排方法,每个
学生的学号 都不相同,
所以它可以唯一确定
一个学生,也就成为
本关系的 键 。
所有能够作为键的属
性都称为 候选键
(candidate key),
从多个候选键中选择
一个作为该关系的 主
键 (primary key),
组成主键的诸属性称
为 主属性,除了主属
性之外的属性都称为
非主属性,不包含在
任何候选键中的属性
称为 非键属性 。如果
一个关系的所有属性
都不是非键属性,则
称为 全键 。
⑤ 域 domain),属
性的取值范围 。如图
所示的学生登记表中
性别的域是 (男,女 ),
系别的域是一个学校
所有系名的集合。
⑥ 分量 (component,
元组中的一个 属性值 。
⑦ 关系模式
(relation schema):
二维表中的行定义就
是关系模式。一般表
示为,
关系名 (属性 1,属性
2,…,属性 n)。
例如,学生登记表的
关系模式可描述为:
学生 (学号,姓名,
性别,出生年月、籍
贯、系别,专业 )。
关系的基本性质 (第 7章第 2讲)
关系模型要求 关系必须是规范化 的,即要求
关系模式必须满足一定的 规范条件,这些规范条
件组成了关系的 6条基本性质, ① 分量必须取 原子
值,即每一个分量都必须是不可再分的数据项;
②列是同质 的,即每一列中的分量是同一类型的
数据,来自同一个域; ③ 不同的列可出自同一个
域,但不同的属性列要给予不同的属性名; ④ 任
意两个元组不能完全相同; ⑤ 列的顺序无关; ⑥
行的顺序无关。
关系模型的数据操作 (第 7章第 2讲)
关系模型的数据操作 采用 集合操作方式,
即操作的对象和结果都是集合。这种操作方式
也称为 一次一集合的方式 。相应地,非关系数
据模型的数据操作方式则为一次一记录的方式。
关系模型的数据操作分 特性操作 和 集合操
作 。
关系模型的特性操作 (第 7章第 2讲)
特性操作包括 投影、筛选 和 联结 三类操作。
① 投影 ( projection)
投影操作是指 从关系中垂直
地选择指定的列,消去一些
列,并重新安排列的顺序构
成新的关系。图示就是学生
登记表在属性, 学号, 和
,籍贯, 上的投影操作的结
果。
② 筛选 ( select)
筛选操作是指从关系中 水平
地选择出满足条件的元组子
集,构成新的关系。图示就
是从学生登记表中选择女学
生构成的新关系。
③ 联结 ( join)
联结操作是指将两个关系结
成一个新关系,是双目操作。
关系模型的集合操作 (第 7章第 2讲)
集合操作包括并、交和差。集合操作的特点是 只
能在属性来自相同的域值的关系中进行,操作结果的属
性数不变。
① 并 ( union)
并操作是指将两个关系的元组组成一个集合。
② 交 ( intersect)
交操作是指将两个关系中相同的元组组成一个集合。
③ 差 ( difference)
差操作是指将一个关系中不同于另一关系的元组组成
一个集合。
关系模型的完整性规则 (第 7章第 2讲)
关系模型的 完整性规则 是对关系的某种 约
束条件 。关系模型中可以有三类完整性约束:
实体完整性, 参照完整性 和 用户定义的完整性 。
其中 实体完整性和参照完整性 是关系模型必须
满足的完整性约束条件,被称作是关系的两个
不变性,应该 由关系系统自动支持 。
实体完整性 (第 7章第 2讲)
实体完整性 也称为 记录完整性 。一个基本关系通常
对应现实世界的一个 实体集 。例如,学生关系对应于学
生的集合。现实世界中的实体是可区分的,即它们具有
某种唯一性标识。相应地,关系模型中以主键作为唯一
性标识,主键中的属性即主属性不能取空值,所谓空值
就是, 不知道, 或, 无意义, 的值。如果主属性取空值,
就说明存在某个不可标识的实体,即存在不可区分的实
体,这与现实世界的应用环境相矛盾,
实体完整性规则规定基本关系的所有主属性都不能
取空值 。例如,学生登记关系, 学生 (学号,姓名,性
别,出生年月、籍贯、系别,专业 )” 中,(学号,姓名 )
为主键,则学号和姓名属性都不能取空值。
参照完整性 (第 7章第 2讲)
参照完整性 又称为 引用完整性 。现实世界中的实体
之间往往存在某种联系,在关系模型中实体及实体间的
联系都是用关系来描述的。这样就自然存在着关系与关
系间的引用。例如,有学生和成绩 2个关系,
学生 (学号,姓名,性别,专业号,年龄 )
成绩 (学号,课程名,学分 )
成绩关系引用了学生关系的主键, 学号,,则成绩
关系中的学号值必须是确实存在的学生的学号,即学生
关系中有该学生的记录。换句话说,成绩关系中 某些属
性的取值需要参照其它关系的属性取值,这就是 引用 。
参照完整性规则规定 不允许 引用 不存在的元组 。
用户定义的完整性 (第 7章第 2讲)
用户定义的完整性 又称为 字段完整性 。用
户定义的完整性 就是针对某一具体关系数据库的
约束条件,它反映某一具体应用所涉及的数据必
须满足的语义要求,例如,某个属性必须取唯一
值、某个非主属性也不能取空值、某个属性的取
值范围在 0~ 100之间等。
关系模型应提供定义和检验这类完整性的
机制,以便用统一的系统的方法处理它们,而不
要由应用程序承担这一功能。
关系数据库的设计方法 (第 7章第 2讲)
数据库设计 是指对于一个 给定的应用环境 (包括硬件
环境和操作系统、数据库管理系统等软件环境),如何 使用
这个环境来表达用户的要求,构造最优的数据库模式建立数
据库。
广义来说,数据库设计应包括 结构特性设计 和 行为特
性设计 两部分。 结构特性设计 是指确定数据库的数据模型。
行为特性设计 是指确定数据应用的行为和动作,应用的行为
体现在应用程序中,所以行为特性的设计主要是指应用程序
的设计。
狭义的说,数据库的设计就是 结构特性设计 。 新奥尔良
( New Orleans) 方法是一个比较著名的数据库设计方法。
新奥尔良( New Orleans)方法 (第 7章第 2讲)
新奥尔良( New Orleans)方法 主要内容为:
数据库设计分为 需求分析, 概念结构设计, 逻
辑结构设计 和 物理设计 四个阶段。
需求
分析 概念结构设计 逻辑概念设计
物理
设计
关系数据库的需求分析 (第 7章第 2讲)
需求分析就是对现实世界要处理的对象进行详细调查,
确定数据处理过程、收集数据处理过程中的基本数据以及确
定处理方法。需求分析的核心是, 数据,,, 处理, 和, 方
法, 。
?数据流图 是从, 数据, 和, 处
理, 两方面表达数据处理过程
的一种图形化的表示方法,如
图所示。
?在数据流图中,用 圆圈 表示 数
据处理,用 有向线段表示数据
的流动及流动方向,即数据的
来源和去向; 用, 书形框, 表
示要求在系统中存储数据 。实
际任何一个系统都可抽象出数
据流图。
数据流图 需求分析的基本步骤
第一步 资料收集 收集的内容包
括:数据、发生时间、步骤、规则、
约束条件、处理方法、处理过程等。
收集的形式包括:交谈、书面填表、
开调查会、实地考察、查看业务记
录等。
第二步 资料分析 资料分析的结
果是确定基本数据、绘出数据流图
和建立数据处理方法。基本数据主
要包括:数据项(数据名、类型、
长度、取值范围以及逻辑联系),
数据结构(数据项的有序集合)、需
存储的数据项等。数据处理方法是指
数据加工的计算公式。
第三步 需求成果 需求分析的成果
就产生需求说明书。一般需求说明书
应包含:任务目标、系统功能结构图、
数据流图、数据字典的雏形表格、数
据处理的方法、各种数据的统计表格
等。
关系数据库的概念结构设计 (第 7章第 2讲)
概念结构设
计 就是确定 概念
模型。 概念模型
用 E-R图表示。
第一步:设计局部 E-R
模型
第二步:设计全局 E-R
模型
关系数据库的逻辑结构的设计 (第 7章第 2讲)
逻辑结构的设计 就是将 概念模型转化为逻辑结构 。
不同的数据库模型可以向所有种类的数据库模型进行转
换。
E-R模型向关系模型转换的规则是,
一个实体类型转换为一个关系模式,实体的属性就
是关系的属性, 实体的键( Key)就是关系的键 。比上
图所示的 E-R模型可转化为三个关系模式。
材料(材料号、规格、库存量)
零件(零件号、规格、数量、价格)
产品(产品号、规格、数量、价格)
关系数据库的逻辑结构设计步骤如下,
第一步 导出关系模式 导出关系模式就是将 E-R图按规则转换成关
系模式。
第二步 规范化处理 规范化处理依据关系数据库规范化理论对关系
模式进行规范,除异常、改善完整性、一致性和存储效率。
第三步 模式评价 模式评价就是对检查设计的数据库模式是否满足
用户的要求,包括功能评价和性能评价。
第四步 优化模式 优化模式就是从使用效能的角度对数据库模式进
行修改。优化的方式有合并、分解关系模式等。优化与应用程序的
编程以及应用程序的使用有直接关联。
第五步 设计成果 设计成果就是形成逻辑结构设计说明书。逻辑设
计说明书应包含关系模式说明、物理设计指南和应用设计指南。
E-R模型向关系模型转换的规则
关系数据库的逻辑结构设计步骤
关系数据库的物理设计 (第 7章第 2讲)
? 物理设计 就是对已确定的逻辑数据库结构,利用 DBMS所提供的方法
和技术,以较优的 存储结构、数据存储路径、合理的数据存放位置
及存储分配,设计出一个高效可实现的 物理数据库结构 。
? 物理设计离不开 DBMS,对不同的数据库系统其 DBMS是不一样的,其
DBMS提供的方法、技术也不一样。因此,物理结构设计没有固定的
准则。这里给出物理结构设计应 考虑的几个问题,
① 存储容量
数据容量的大小要视数据库的数据量以及数据库使用的时限而定。
② 存储的位置
一般情况下,数据库存储的位置影响着应用程序访问的时间。
③ 缓存容量
DBMS的运行是需要缓存支持的。合理的安排缓存大小,可以提高开发
程序的运行效率,也可以提高数据库的运行安全。
关系数据库规范化 (第 7章第 2讲)
? 关系数据库是关系的集合,规范化就是研究如何以多种组合中选取
一个适合的、性能好的关系集合,减少数据冗余和便于维护 。
? 规范化主要基于 范式( Normal Form,NF) 的概念。 关系模式满足
的条件称为范式 。
① 1NF ② 2NF ③ 3NF
如果关系模式中的关系 R,其所有属性的值域中的每个值不可再分解,则
称 R满足 第一范式( 1NF) 。不符合 1 NF的关系,就无法进行关系运算。
比如:学生(学号,姓名,数学成绩,外语成绩,…… )
虽然它是非 1 NF的关系,在学生表中套有成绩表,而且成绩项是枚举量,
除非所有的课程全部列出,否则无法完整表示。但即使全部列出也不实用,空
间浪费较大,又不可改选课程,为此可将成绩表从学生表中分离出来,变为两
个符合 1 NF的关系,如下,
学生(学号,姓名)
成绩(课程名,得分)
如果关系 R满足 1 NF,且 R中每个非主属性完全依赖于主键属性,则称 R满
足 第二范式( 2NF) 。比如:一个, 学生社团, 的关系如下,
学生社团(学号,姓名,性别,社团代号,社团名称)
这里的学生社团关系满足 1 NF,但不满足 2 NF,这是因为社团名称只依赖
于社团代号,而与学号无关。 不满足 2 NF关系,会引起数据冗余和插入、删除
的异常现象。 上述学生社团关系可分为满足 2NF的关系,即,
学生(学号,姓名,性别)
社团(社团代号,社团名称)
学生社团(学号,社团代号)
2,且非主键属性都不传递依赖主键属性,则 R满足 第三
范式( 3NF) 的关系。
比如:学生(学号、授课教师号、课程号)表中如果一个教师只能讲授一
门课程,而一门课程由若干教师讲授,一个学生选定了一个固定的教师,则该
学生表就满足 3NF。而假如一个教师只能讲授一门课程,而一门课程只能由一
个教师讲授,则该学生表就不满足 3 NF。
关系数据库的设计实例 (第 7章第 2讲)
? 某一 出版社信息系统的数据库的设计 。经过需求分析,得知该系统
应包含作者的信息、书的销售信息、书的出版信息,书的分类信息
和作者的笔名(一个作者可有多个笔名)信息。
? 经过概念结构设计和逻辑结构设计,得出该信息系统的数据库的数
据模式如下,
① 实体
② 关系
③ 关系模式
作者 (作者编号,姓名,通信地址)
书 (书号,书名,页数,售价)
分类 (分类码,分类名称)
印数 (书号,版数,印数,出版日期)
销售 (书号,年月,销售数)
笔名 (作者编号,笔名)
书和作者之间是多对多的关系
分类和书之间一对多的关系
作者和笔名之间是一对多的关系
书和印数之间是一对多的关系
书和销售之间是一对一的关系
笔名是个枚举量
作者 (作者编号,姓名,通信地址)
书 (书号,分类码,书名,页数,售价)
作者与书 (作者编号,书号,作者序位)
分类 (分类码,分类名称)
销售 (书号,年月,销售数)
印刷 (书号,版数,印数,出版日期)
笔名 (作者编号,笔名)