下一页
计算机软件基础
The software basic
of computer
主讲:赵英良
西安交通大学
计算机教学实验中心
第 12单元
关系数据库
及数学基础
下一页
上一页
停止放映
第 2页
上节内容总结(一)
? 一基本知识
? 1.什么是数据库及相关概念 ( 数据, 库, 系统 ),
? 功能 ( 高级的用户接口, 查询和优化, 数据目录管理,
并发控制, 恢复功能, 完整性约束检查, 访问控制 ),
? 数据的定义, 建立和维护, 管理, 通信
? 特点 ( 最小冗余, 可以以最优方式提供数据共享, 数
据的独立性, 实现数据的统一管理 )
? 2.数据库管理的四个发展阶段 ( 手工管理阶段, 文件
系统阶段, 数据库系统阶段, 分布式数据库系统阶
段 ),
– 发展趋势 ( 可视化、多媒体、面向对象的处理、
交叉平台、开放式 )
? 3.常见的数据库系统
下一页
上一页
停止放映
第 3页
上节内容总结(二)
? 二 数据模型
? 1.数据加工的三个领域 ( 现实, 概念, 数据 ),
? 2.实体模型 ( 实体, 属性, 总体, 个体,
? 总体间的关系 ), E-R图
? 3.数据模型,
? 数据模型的三种类型 ( 层次, 网络, 关系 )
? 三 数据库系统的结构
? 1.数据库系统的组成
? 2.数据库的三种视图 ( 用户, 全局, 物理视图 )
? 三级模式结构 (用户、逻辑、存储模式)
? 四 计算模式
? 单主机、分布式 Client/Server、网络计算模式)
下一页
上一页
停止放映
第 4页
教学目标
? 了解关系数据库有关概念
? 了解关系运算、关系代数
? 了解关系模型的数学定义
? 了解关系的规范化理论
下一页
上一页
停止放映
第 5页
教学要求
? 了解关系数据库有关概念
– 数据库记录, 字段, 类型, 值域
? 了解关系运算, 关系代数
– 选择运算, 投影运算, 联结运算
– 关系的并, 交, 差, 选择, 投影等运算
? 了解关系模型的数学定义
? 了解关系的规范化理论
– 第一范式, 第二范式, 第三范式
下一页
上一页
停止放映
第 6页
本单元涉及内容
? 第 7章 关系数据库系统基础
– 7.1 关系模型的数学定义和关系代数
?7.1,1 关系模型的数学定义
?7.1,1 关系代数及关系运算
– 7.3 关系数据库理论
?7.3,1 概述
?7.3,2 数据依赖
?7.3,3 规范化
下一页
上一页
停止放映
第 7页
一、关系模型的数学定义和关系代数
? 关系 DB是建立在关系理论和关系
代数严格的数学基础之上 。 前面
介绍了基于 RDBS上的关系运算,
下面对关系数据模型进行较为严
格的数学定义和描述 。
下一页
上一页
停止放映
第 8页
1.关系模型的数学定义
? (1)域, 元组和关系
? 域 ( Domain) 同类型值的集合 。 例如, 整数集合, 字
母集合等 。
? 元组 ( Tuple) 设有一组域 D1,D2,…,Dn,则以下集合
中的每个元素 (d1,d2,…,dn)称为一个 元组 (n元组 );每
个 di值称为一个分量,
D1xD2 x… xDn = {(d1,d2,…,dn)|di? Di,i=1,2,…,n}
? 关系 ( Relation) D1xD2 x… xDn 的子集称为域 D1,
D2, …, Dn 上的一个关系 。
下一页
上一页
停止放映
第 9页
(2)笛卡尔乘积
? 设 D1,D2,…,Dn为 n个任意集合。定义 D1,D2,…,Dn的
笛卡尔乘积为,
D1xD2?...?Dn={(d1,d2,…,dn)| di ? Di,i=1,2,…,n}
可读作,
笛卡尔乘积中的每一个元素 (d1,d2,…,dn)叫做一个 n元
元组,元组中的 di称为该元组的 第 i个分量 。
元组中个分量 di的位置不能任意颠倒,因为 di ? Di 。
下一页
上一页
停止放映
第 10页
举例
? 设有三个集合,NAME,AGE,SEX
NAME AGE SEX NAS
? ? =刘王 2120 男女 NAME AGE SEX
刘 21 男
刘 21 女
刘 20 男
刘 20 女
王 21 男
王 21 女
王 20 男
王 20 女
NAME ?AGE ?SEX =
{( d1,d2,d3) |di ? Di,i=1,2,3}
其中 (刘,21,男 )是一个 元组,刘,21,男分别
为 3个分量,
一个元组
从 NAS中选出与刘有关的元组,就构成
一个 关系 。
下一页
上一页
停止放映
第 11页
(3)n元关系
? 笛卡尔乘积 D1?D2?...?Dn的任何有限子集
称为 域 (集合 )D1,D2,…,Dn上的一个 n元关
系 。
? 将 n元关系看成一个有 n列元素的二维表,
给 表 中 的 每 一 列 起 一 个 名 字 叫 属性
( Attribute), 则 n元关系有 n个属性 。
在同一个关系中, 属性名必须是唯一的 。
属性的取值范围 Di( i=1,2,…,n)称为 值
域 。
下一页
上一页
停止放映
第 12页
(4)关系模式
? 一个关系的属性名表称为该关系的关系模式,其记
法为:
<关系名 >(<属性名 1>,<属性名 2>,…,<属性名 n>)
? 例如关系 SHOP个关系模式为,
SHOP(店名,地址,经办人,电话 )
? 关系模式的集合,称为 关系数据库模式
? 注意,关系模式是型,关系是值,关系模式
是静态的,关系是动态的。
? 关系数据库模式 =数据结构 +关系操作 +完整性约束
下一页
上一页
停止放映
第 13页
(5)完整性约束
数据在语义上的约束,称为完整性约束
? 实体完整性,一个实体能与其他实体区分
开来,要求关系的主属性非空
? 参照完整性 (引用完整性)一个关系中的
属性在另一个关系中也有反映,并且它们
的值应该相等。
? 用户定义完整性,用户定义的取值条件等。
下一页
上一页
停止放映
第 14页
(6)关系模型
数据模型是用来描述数据的一组概念和定义。
? 关系模型 是以集合论中的关系的概念发展起来的数据模型
? 在某数据处理工作中的所有关系模式及其属性名, 关键字的
汇集 。 (关系数据库模式 )
? 例如, 某大学采用计算机管理教学工作 。 涉及到三类实体:
教师, 课程, 学生, 同时教师和课程, 课程和学生之间都有
联系 。 从而确定了以下关系模式:
teachers( 工作证号, 单位, 姓名, 职称 )
students( 学号, 班级, 姓名 )
subjects( 课程号, 课程名称, 学分 )
t_S(工作证号, 课程号, 教室 )
s_s(学号, 课程号, 成绩 )
及其属性名 ( 班级, 姓名等 ) 和关键字 ( 学号等 ) 。
下一页
上一页
停止放映
第 15页
(7)关系数据库
? 对应于一个关系模型的所有 关系
(表) 的集合称为 关系数据库
(值) 。
? 例如,前述的 STUDENTS,PE等就
是关系数据库。
下一页
上一页
停止放映
第 16页
2.数据库管理系统中的关系模型
? (1)关系模型
是数学化的模型,它把数据看作二维表
中的元素,表就是其关系。其 特点 是:
– 表中每一列属性都是不能再细分的基
本单元
– 不允许有重复的列
– 不允许有相同的记录
– 行、列次序均无关
下一页
上一页
停止放映
第 17页
关系概念的图解
关系(库名) SHOP
店 名 地 址 经办人 电话
解放路食品店 解放路 262号 李国基 2-5036
桃园商场 桃园路 6号 张山 6-6161
香香瓜果店 北大街 26号 王宏 3-6201
白塔干鲜果店 西大街 56号 宋良 3-3637
北大街果品店 北大街 231号 林青 3-1116
关系框架

库结构
元组

记录
属性(字段)
属性
?电话?的

下一页
上一页
停止放映
第 18页
(2)关系的其它概念
? 这样的二维表被称为数据库文件
? 表中行被称为 记录 ( Record) 或 元组
? 列称为 字段 ( Field) 或 属性
? 表的第一行是字段名的集合, 被称为 库
结构 (关系框架或库结构 )
? 列中的元素为该字段 (属性 )的值,且值总
是限定在某个值域 (domain)内
下一页
上一页
停止放映
第 19页
(3)关键字( Key)
? 候选关键字 ( Candidate Key) ( 候选码 )
在给定关系中, 具有唯一标识特性的一个或多个属
性被称为该关系的候选关键字 。 例如, 学生关系
中的学号 。
? 主关键字 ( Primary Key) ( 主码 )
有时候选关键字多于一个, 从中选取一个作为操作
的根据, 称其为主关键字 。
? 外码
假设有两个关系, 第一个关系中除候选码之外的一
组属性, 又成为第二个关系中的候选码, 则称第
一个关系中的这组属性为外码 。 第一个关系称为
参照关系, 第二个关系称为 被参照关系 。
下一页
上一页
停止放映
第 20页
(4)基本数据类型
? 数据是程序的必要组成部分, 也是程序处理
的对象, 数据类型体现数据结构的特点,
– 数据间的逻辑关系 ( 线性, 非线性的 )
– 数据在计算机中的存储方式 ( 顺序存储,
链表存储 )
– 数据的运算 提供的数据类型越丰富, 说
明这种语言的数据结构越丰富, 处理功能
也就越强 。
下一页
上一页
停止放映
第 21页
字段类型( 10种)规则
? 文本类型 最大长度 255个字符,用于存放文本数据
? 备注类型 最大长度 65535个字符,用于存放不同于文
本数据的文本信息(可以是特殊字符)。
? 数值类型 长度可以是 1,2,4,8,16个字节,分别用
来存放不同精度要求的数值数据。
? 日期 /时间 长度是 8个字节,用来存放日期和时间
类型 日期形式为,yy/mm/dd ; 时间形式为:
hh:mm:ss
? 货币类型 8个字节,最多包含 4位小数。
? 自动编号 4个字节
? 是 /否 1位;存放,真,( True) 和,假,( False)
? OLE对象 最大长度 1GB; 用于存放超级链接地址。
? 查阅向导 4个字节,允许使用另一个表中某字段的值来
定义当前字段的值。
下一页
上一页
停止放映
第 22页
3、关系代数
? 在介绍关系代数之前,先介绍一些有关的符
号及其含义。
– P ? Q P并且 Q 与
– P ? Q P或 Q 或
– a ? A a是集合 A中的元素( a属于 A)
– a ? A a不属于 A
– A ? B 集合 A和集合 B的 并
– A ? B 集合 A和集合 B的 交
– A ? B 集合 A包含 于集合 B中
– A ? B 集合 A真包含 于集合 B中
下一页
上一页
停止放映
第 23页
同类关系
? 同一关系模式(关系框架)填以不同的
值所生成的诸关系称为 同类关系 。
? 同类关系之间可以进行下列运算:
– 并、交、差运算
– 选择运算
– 投影运算
– 关系的 笛卡尔乘积运算
– 自然联结运算
下一页
上一页
停止放映
第 24页
并运算
? 并运算 如果 R和 S为 同类关系,则它们
的并记为 R ∪ S,仍然是 R和 S的同类
关系,由属于 R或属于 S的元组组成。
记为:
R ∪ S={ t|t∈R ? t∈S }
? 示意图为:
R ∪ S
下一页
上一页
停止放映
第 25页
交运算
? 交运算 同类关系 R和 S的交记为 R ∩ S,由
既属于 R又属于 S的元组组成。记为:
R ∩ S = { t| t ? R ? t ? S }
? 示意图为:
R S
R ∩ S
下一页
上一页
停止放映
第 26页
差运算
? 差运算 同类关系 R和 S的差记为 R-S,
由属于 R而不属于 S的元组组成;记为:
R-S = { t| t?R ? t?S }
? 示意图为:
R S
R-S
下一页
上一页
停止放映
第 27页
并运算举例
? 有同类关系 R和 S,如下所示:
名称 颜色 长度
的确良 白 1000
华达呢 黑 2000
名称 颜色 长度
的确良 黑 2000
华达呢 黑 2000
名称 颜色 长度
的确良 白 1000
的确良 黑 2000
华达呢 黑 2000
关系 S
关系 R∪ S
关系 R
下一页
上一页
停止放映
第 28页
交运算举例
关系 R∩ S
名称 颜色 长度
华达呢 黑
2000
名称 颜色 长

的确良 白
1000
华达呢 黑
2000
名称 颜色 长度
的确良 黑 2000
华达呢 黑 2000
关系 S关系 R
下一页
上一页
停止放映
第 29页
差运算举例
名称 颜色 长度
的确良 白 1000
关系 R-S
名称 颜色 长度
的确良 白 1000
华达呢 黑 2000
名称 颜色 长度
的确良 黑 2000
华达呢 黑 2000
关系 S关系 R
下一页
上一页
停止放映
第 30页
选择运算数学表示
? 设 f( t)是一逻辑函数,其自变量 t为元组变量,函
数值只能取逻辑值 ? 真 ? ( True)或 ? 假 ?
( False),则关系 R关于焕数 f( t)的选择运算定义
为:
?f( R) ={ t|t ?R ? f( t) = True }
? 例如,从关系 STUDENTS中选择出三好学生候选名单。
可记为,
EXC_ST = ?f(STUDENTS)
其中 f(t)为,
操评 =?优 ’,AND.数学 +英语 +自控原理 >=270
下一页
上一页
停止放映
第 31页
投影运算数学表示
? 设 R为 K元关系,Ai1,Ai2,…,Aim分别是 R的第
i1,i2,…,im个属性 (i,j?K,j=1,…,m),
ti1,ti2,…,tim是元组的第 i1,i2,…,im个 属性值,
则关系 R在属性序列 Ai1,Ai2,…,Aim上的投影是一
个 m元关系,其属性集合为 {Ai1,Ai2,…,Aim},记为,
?i1,i2,…,im(R)=
{ t|t=(ti1,ti2,…,tim)?(t1,t2,…,tk)?R }
例如,投影生成新关系 ENGLISH
ENGLISH= ? 2,3,7(STUDENTS)
? 属性值的子集
下一页
上一页
停止放映
第 32页
关系的笛卡尔乘积运算
? 设 R为 K1元关系,S为 K2元关系,则 R和 S的笛卡尔
乘积 R ? S是一个 (K1+K2)元元组集合,其中元
组的前 K1个分量来自 R,后 K2个分量来自 S。 R ?
S是所有满足这个条件的元组的集合。
? 例,设有关系 R和 S如下所示,其笛卡尔乘积为:
质料 颜色 单价 式样 品种 规格
涤 卡 蓝 16.00
华达呢 黑 43.00
毛 涤 褐 20.00
男 中山装 中
女 裤 子 小
女 大 衣 大
下一页
上一页
停止放映
第 33页
笛卡尔乘积运算举例
关系 R?S
质 料 颜色 单 价 式样 品 种 规 格
涤 卡 蓝 16.00
涤 卡 蓝 16.00
涤 卡 蓝 16.00
华达呢 黑 43.00
华达呢 黑 43.00
华达呢 黑 43.00
毛 涤 褐 20.00
毛 涤 褐 20.00
毛 涤 褐 20.00
男 中山装 中
女 裤 子 小
女 大 衣 大
男 中山装 中
女 裤 子 小
女 大 衣 大
男 中山装 中
女 裤 子 小
女 大 衣 大
下一页
上一页
停止放映
第 34页
自然联结运算数学表示
? 设 K1元关系 R与 K2元关系 S有相同的属性名
B1,B2,…,Bn,则关系 R和关系 S的自然联结记为,
R S = ?<R?S中所有不重复的属性表 >(?f(R?S))
其中 f(R?S)为一逻辑函数,当 t1?R,t2 ?S,t1和 t2
中同名属性值相等时,该函数的函数值为
? 真 ? (True)。
? 例如,选三好优秀生的自然联结运算可记为:
ST_MARK = STUDENTS PE =
?1,2,3,4,5,6,7,8,12(?f(STUDENTS ? PE))
? 按属性名相同的原则建立联结
下一页
上一页
停止放映
第 35页
条件 连接运算举例
下一页
上一页
停止放映
第 36页
4、数据库中的关系运算
? 这里从数据库操作的角度讨论关
系运算 。 包括:
– 选择运算 针对元组
– 投影运算 针对属性
– 联结运算
– 自然联结运算
下一页
上一页
停止放映
第 37页
学生关系 STUDENT
STUDENT
1 2 3 4 5 6 7 8
学号 姓名 班级 性别 操行 数学 英语 自控原理
8612101沈小平 自控 86 女 优 85 76 76
8612162 陆华 自控 86 女 优 96 92 95
8612104 王华 自控 86 女 优 91 92 99
8612106 郭勇 自控 86 男 优 89 96 96
8612107 魏明 自控 86 男 优 89 85 82
…… …… …
下一页
上一页
停止放映
第 38页
选择运算
? 概念,从指定关系中选择出符合条件的元
组 ( 记录 ) 组成一个新的关系 。
? 举例,从 STUDENTS关系中,选出三好学生候
选人名单,条件是,操行为 ‘ 优 ’,其它三门
功课的总成绩不低于 270分 。
? 选择运算条件,
CP=“操行 =?优 ’ AND 数学 +英语 +自控原理
>=270"
下一页
上一页
停止放映
第 39页
优秀学生关系 EXC_ST
EXC_ST
1 2 3 4 5 6 7 8
学号 姓名 班级 性别 操行 数学 英语 自控原理
8612162 陆华 自控 86 女 优 96 92 95
8612104 王华 自控 86 女 优 91 92 99
8612106 郭勇 自控 86 男 优 89 96 96
满足,“操行 =‘优’ AND 数学 +英语 +自控原理 >=270"
下一页
上一页
停止放映
第 40页
选择运算举例
记录的集合
A,B,C、
D,E,F、
G,H,G、
……
X,Y,Z
选择运算(选取小于 H且跳过
间隔的两个记录的那些记录)
A、
D、
G
下一页
上一页
停止放映
第 41页
投影运算
? 概念,从指定关系的属性 ( 字段 ) 集合
中选取部分属性组成同类的一个新关系 。
由于属性减少而出现的重复元组被自动
删除 。
? 举例,生成学生英语成绩关系 ENGLISH,
只包含 ? 姓名 ?, ? 班级 ?, ? 英语 ?
三项属性 。
下一页
上一页
停止放映
第 42页
英语成绩关系 ENGLISH
姓名 班级 英语
陆华 自控 86 92
王华 自控 86 92
郭勇 自控 86 96
ENGLISH
下一页
上一页
停止放映
第 43页
投影运算举例
记录的集合:
1,A1(a1,a2,a3,a4,a5,a6)
2,A2(a1,a2,a3,a4,a5,a6)
3,A3(a1,a2,a3,a4,a5,a6)
……
10,A10(a1,a2,a3,a4,a5,a6)
1,A1(a1,a3,a5)
2,A2(a1,a3,a5)
3,A3(a1,a3,a5)
……
10,A10(a1,a3,a5)
投影运算 (选择记
录中奇数的属性,
组成新的记录 )。
下一页
上一页
停止放映
第 44页
联结运算
? 概念,将两个关系中的元组按指定条件进行
组合,生成一个新的关系 。 组合的原则是从
两个关系元组的广义笛卡尔乘积中选取满足
条件的元组 。
? 笛卡尔乘积的含义为,
两个关系 Am和 Bn的笛卡尔乘积是一个元组集
合 Cmxn。 关系 C中属性个数为 A和 B的属性之
和 。
? 在广义笛卡尔乘积的基础上加条件
下一页
上一页
停止放映
第 45页
笛卡尔乘积举例
? 举例,设关系 A和关系 B的内容分别如下,
求关系 C=AxB。
关系 A 关系 BX Y Z U V
x1 y1 1
x2 y2 2 u1 v11 v2
关系 C=AxB X Y Z U V
x1 y1 1 u1 v1
x1 y1 1 1 v2
x2 y2 2 u1 v1
x2 y2 2 1 v2
下一页
上一页
停止放映
第 46页
自然联结
? 概念,对于两个有公共属性的关系, 把
其中公共属性值相同的元组挑选出来,
构成一个新的关系, 称之为自然联结 。
? 自然连接的特点:
– 关系 A和关系 B中有同名属性;
– 构成新关系的条件是关系 A和 B中同名
属性值相等;
– 形成新关系的属性集合是关系 A,B属
性集合的并集 。
? 按公共属性值相同的原则建立联结
下一页
上一页
停止放映
第 47页
体育关系 PE
1 2 3
学号 姓名 体育
8612162 陆华 良
8612104 王华 良
8612106 郭勇 优
PE
下一页
上一页
停止放映
第 48页
自然联结举例
? 设有体育成绩关系 PE。 三好学生的标准之一是体育
成绩达到优或良 。 将 PE和 STUDENTS关系合并, 生成
新的关系 ST_MARK,并从中选出三好学生简况表 。 如
下图所示 。
学号 姓名 班级 性别 操行 数学 英语 自控原理 体育
8612162 陆华 自控 86 女 优 96 92 95 良
8612104 王华 自控 86 女 优 91 92 99 良
8612106 郭勇 自控 86 男 优 89 96 96 优
? 定义查询条件:
操行 =“优,,AND.数学 +英语 +自控原理 >=270
AND
(体育 ="优 ".OR.体育 ="良 ")
下一页
上一页
停止放映
第 49页
二、关系的规范化理论基础
? 如何评价关系模型的好坏,这关系到如何设计关系模型
(关系框架)的至关重要的问题。以 SCT关系为例说明存
在的问题:
SCT关系是由 S#(学号),C#(课程号),GRADE(成绩)、
TNAME(教师姓名),TAGE(教师年龄),OFFICE(办公
室)属性组成。
SCT关系 (学生课程教师关系)
S# C# GRADE TNAME TAGE OFFICE
S1 C1 90 周 45 301
S1 C2 91 刘 39 302
S1 C3 85 刘 39 302
S1 C4 87 王 51 301
S2 C1 92 周 45 301
S3 C1 75 周 45 301
S3 C2 56 刘 39 302
下一页
上一页
停止放映
第 50页
关系模式的存储异常问题
? 在上述 SCT关系中,至少存在下列问题:
– 数据冗余 如果某门课程有 100个学生选修,
就要出现 100个元组(记录),相应的教这门
功课的教师的姓名、年龄、办公室也要出现
100次。
– 更新异常 对 SCT关系中的元组进行修改,可
能导致出现存储数据不一致的情况。例如,
要修改第一元组中的 OFFICE值时,将 ‘ 301?
改为 ‘ 303?,会出现周老师的办公室号码不
一致,除非修改所有周老师元组(记录)中
的办公室号码。
下一页
上一页
停止放映
第 51页
关系模式的存储异常问题(续)
? 插入异常 如果某课程决定由张老师担任,
但在还不知道哪些学生选修前,无法将张老
师的记录插入关系中。因为,在 SCT关系中
( S#,C#)是主关键字,在 C#不确定的情况
下,根据关系模型的实体完整性规则,不允
许主关键字中出现空值。因此,在 C#不确定
的情况下,不能插入该记录。
? 删除异常 如果要删除某门课程的所有成绩,
则会将教这门功课的教师信息也删除掉。例
如,若要删除 ‘ C4?的元组,结果会丢失王老
师的有关信息。显然,这是不希望发生的事
情。
下一页
上一页
停止放映
第 52页
关系的规范化举例
? 显然,SCT关系的性能是很差的。如果将 SCT关
系分解为两个子关系 SC和 CT,即
SC( S#,C#,GRADE),CT( C#,TNAME,TAGE,OFFICE)
上述存储异常问题将消失。
S# C# GRADE
S1 C1 90
S1 C2 91
S1 C3 85
S1 C4 87
S2 C1 92
S3 C1 75
S3 C2 56
SC关系
C# TNAME TAGE OFFICE
C1 周 45 301
C2 刘 39 302
C3 刘 39 302
C4 王 51 301
CT关系
下一页
上一页
停止放映
第 53页
产生储异常问题的原因
? 为什么会产生存储异常的问题呢?
? 这与每个关系模式中个属性值之间的联系有关。在
SCT关系中,( S#,C#)是主关键字,它们的值唯
一决定其它所有属性的值,形成一种 依赖关系 。
? TANME,TAGE,OFFICE的属性值由课程号 C#决定,
与学号 S#无直接联系。把无直接联系的教师属性和
学生学号放在一起,就产生了存储异常的问题。因
此,模式设计时强调 ? 独立的联系,独立表达 ? 。
这是一条设计原则。将 SCT分解为 SC,CT,就符合
这条设计原则。
? 通常,将结构较简单的关系取代结构较复杂关系
(简单和复杂是指数据相关性而言)的过程称为关
系的规范化。当然,这个过程既不能增加,也不能
丢失信息,称之为 ? 无损连接 ? 。
下一页
上一页
停止放映
第 54页
关系 BORROW
8212102 陆华 自控 86 女生宿舍 206 6201 自控原理 93.07.06
0621 张山 自控教研室 花园路 312号 6201 自控原理 93.03.02
0621 张山 自控教研室 花园路 312号 3104 数据处理 93.04.04
0621 张山 自控教研室 花园路 312号 5112 晶体管电路 93.06.05
8212103 何白 自控 86 女生宿舍 206 5112 晶体管电路 93.07.06
借书证号 姓名 单位 住址 书号 书名 日期
下一页
上一页
停止放映
第 55页
关系 BICYCLE
品 名 厂 家 厂 长 产 地 年产量 单 价
黄山牌 26男车 黄山自行车厂 刘同利 合肥 20000 336.00
黄山牌 26坤车 黄山自行车厂 刘同利 合肥 23000 326.00
红旗牌 24坤车 海河自行车厂 王山 天津 76000 310.00
大象牌 28男车 生发自行车厂 丁三元 广州 10000 310.00
大象牌 28加重 生发自行车厂 丁三元 广州 50000 340.00
大象牌 28跑车 生发自行车厂 丁三元 广州 10000 371.00
大象牌 26男车 生发自行车厂 丁三元 广州 30000 320.00
大象牌 26坤车 生发自行车厂 丁三元 广州 50000 320.00
大象牌 24坤车 生发自行车厂 丁三元 广州 10000 305.00
下一页
上一页
停止放映
第 56页
数据依赖
? 概念,描述同一关系内各属性之间的相互关
系被称为数据依赖。
? 类型,数据依赖有许多种类型,这里只介绍
函数依赖, 完全函数依赖 和 传递依赖 的概念。
下一页
上一页
停止放映
第 57页
函数依赖
? 定义,在关系 R中,如果每个属性(或属性组)
A的值只有一个属性 B的值与之对应,就称属性 B
函数依赖于属性(或属性组) A,( p214)
记为,A ? B。
读作,,A函数决定 B” 或 ? B函数依赖于 A”。
? 例关系 BORROW中,各属性之间的函数依赖可描
述为:
借书证号 ? 姓名
借书证号 ? 单位
借书证号 ? 住址
书号 ? 书名
(借书证号,书号) ? 日期
下一页
上一页
停止放映
第 58页
主属性、非主属性
? 定义,如果关系模式 R中的某属性 A是候
选关键字的一部分,则称 A是关系模式 R
中的 主属性,反之则为 非主属性 。
? 例如关系 BORROW中,候选关键字只有一
个( 借书证号,书号 ),所以,? 借书
证号 ? 和 ? 书号 ? 组是 主属性,其它属
性都是 非主属性 。
下一页
上一页
停止放映
第 59页
完全函数依赖
? 定义,如果非主属性 B函数依赖于构成某个候选关
键字的一组主属性 A,而不函数依赖于 A的任何一
个真子集,则称 B完全函数依赖于 A;反之,则称 B
部分函数依赖于 A。记为:
A ? B
? 定义的另一种形式:设在关系 R中,A和 B是 R的不
同属性子集,C是 A的真子集,若对于 R中的任一可
能关系,有 A ? B,但 C ? B,则称 B完全函数
依赖于 A。若 A ? B,且 C ? B,则称 B部分函数
依赖于 A。
?
下一页
上一页
停止放映
第 60页
完全函数依赖举例
? 关系 BORROW中,只有属性 ? 日期 ? 完全函数依
赖于关键字( {借书证号,书号 }),其它非主
属性都是部分函数依赖于关键字。
这里 {借书证号,书号 }是主属性,? 日期 ? 是
非主属性,? 借书证号 ? 和 ? 书号 ? 都是 {借
书证号,书号 }的真子集,因有 {借书证号,书
号 }?日期,而
借书证号 ? 日期,书号 ? 日期(不函数
依赖),所以,
{借书证号,书号 } ? 日期?
下一页
上一页
停止放映
第 61页
传递函数依赖
? 定义, 设有关系模式 R,而 X,Y,Z 是 R的三个不
同属性子集,并且有,Y ? X,Z-Y ≠ ?, Z-X
≠ ?,Y-X ≠ ? 。 如果 X ? Y,Y ? Z,则
称 Z传函数递依赖于 X。
记为,X ? Z
? 举例,关系 BICYCLE中的 ? 厂长 ? 和 ? 产地 ?,传
递函数依赖于 ? 品名 ? 。
因为,
品名 ? 厂家,厂家 ? 厂长
品名 ? 厂家,厂家 ? 产地
所以,厂长、产地传递函数依赖于品名。
t
品名 ? 厂长,品名 ? 产地t t
下一页
上一页
停止放映
第 62页
关系规范化 ——范式
? 关系规范化有不同的标准,将规范标准称之为 范
式 。可以把范式看成是满足某种条件的关系模式
的集合(或用范式定义消除数据冗余的程度)范
式分为,(范式:规范标准 )
– 第一范式 ——1NF
– 第二范式 ——2NF
– 第三范式 ——3NF
– Boyce-Codd范式 ——BCNF
– 第四范式 ——4NF
– 第五范式 ——5NF
它们满足下列关系:
5NF ? 4NF ? BCNF ? 3NF ? 2NF ? 1NF
下一页
上一页
停止放映
第 63页
第一范式 ——1NF
? 定义,所有符合关系定义(二维表格)的关系被
称为规范关系,或称为第一范式,记为 1NF。
或曰:
? 每个属性都必须是原子值,即仅仅是一个简单值
而不含内部结构。
? 如果关系模式 R的每个关系的各个属性值都是基
本数据项,则称 R为第一范式。
? 为了与规范关系相互区别,将关系的某些属性有
重复组或空白值的关系(二维表)称为非规范关
系。去掉重复组,填写空白值,就可以变为 1NF
的关系。
下一页
上一页
停止放映
第 64页
表示借书关系的表
8212102 陆华 自控 86 女生宿舍 206 6201 自控原理 93.07.06
0621 张山 自控教研室 花园路 312号 6201 自控原理 93.03.02
3104 数据处理 93.04.04
5112 晶体管电路 93.06.05
8212103 何白 自控 86 女生宿舍 206 5112 晶体管电路 93.07.06
借书证号 姓名 单位 住址 书号 书名 日期
该关系是非规范化的关系
下一页
上一页
停止放映
第 65页
1NF的关系 BORROW
8212102 陆华 自控 86 女生宿舍 206 6201 自控原理 93.07.06
0621 张山 自控教研室 花园路 312号 6201 自控原理 93.03.02
0621 张山 自控教研室 花园路 312号 3104 数据处理 93.04.04
0621 张山 自控教研室 花园路 312号 5112 晶体管电路 93.06.05
8212103 何白 自控 86 女生宿舍 206 5112 晶体管电路 93.07.06
借书证号 姓名 单位 住址 书号 书名 日期
该关系是 1NF的关系
关系 BORROW
下一页
上一页
停止放映
第 66页
规范化为 1NF的举例
S# CITY P#
S1 北京 P1
P2
S2 上海 P1
P2
S# CITY P#
S1 北京 P1
S1 北京 P2
S2 上海 P1
S2 上海 P2
属性 P有
重复组的
处理
上海
上海
上海
上海
2
2
姓名 地址 电话
林 A4 326910
王 A1 326831
吴 A3
张 A2
姓名 地址
林 A4
王 A1
吴 A3
张 A2
姓名 电话
林 326910
王 326831
属性电话
有空白值
的处理
下一页
上一页
停止放映
第 67页
第一范式的讨论
? 关系 BORROW虽然满足了 1NF,但还存在不规范的问题。
– 数据冗余 一个学生要借 10本书,他的有关信息
要重复存放 10次;
– 插入问题 若某学生没借过书,则有关信息无法插
入;因为,作为主关键字(借书证号,书号)的
? 书号 ? 无值;
– 删除问题 若某学生归还了借阅的全部图书,则有
关他的信息将全被删除(丢失)。
? 结论:
作为关系模式来说,在某些应用中,只满足 1NF还不
够,还要进一步规范化。
下一页
上一页
停止放映
第 68页
第二范式 ——2NF
? 定义, 如果关系模式 R为第一范式,并且任一非主属
性都完全函数依赖于 R的任一候选关键字,则称 R为第
二范式,记为 2NF(或曰,满足 1NF,且每个非关键字属
性都由整个关键字决定,而不是由关键字的部分来决
定 ).
? 关系 BORROW不是第二范式,因为其属性 ? 姓名 ?,
? 单位 ?, ? 住址 ?, ? 书名 ? 都不完全函数依赖于
唯一的候选关键字 {借书证号,书号 }。
? 作下列投影运算,就可将其分解为 2NF的关系:
READER = ?借书证号、姓名、单位、住址( BORROW)
BOOK = ? 书号、书名( BORROW)
BORROW = ? 借书证号、书号、日期( BORROW)
下一页
上一页
停止放映
第 69页
2NF的关系 ( a) READER关系
借书证号 姓 名 单 位 住 址
8612101 陆华 自控 86 女生宿舍 206
0621 张山 自控教研室 花园路 312号
8612103 何白 自控 86 女生宿舍 206
8603211 李维 自控 86 男生宿舍 101
下一页
上一页
停止放映
第 70页
2NF的关系 ( b)关系 BOOK
书号 书 名
6201 自控原理
3104 数据处理
5112 晶体管电路
0116 机械制造
0229 金相分析
下一页
上一页
停止放映
第 71页
2NF的关系 ( c)关系 BORROW
借书证号 书 号 日 期
8612102 6201 93.07.06
0621 6201 93.03.02
0621 3104 93.04.04
0621 5112 93.06.05
8612103 5112 93.07.06
8603211 0116 93.05.05
8603211 0229 93.05.05
下一页
上一页
停止放映
第 72页
第三范式 ——3NF
? 如果关系模式 R满足 2NF,并且其任何一个
非主属性都不传递函数依赖于任何候选关
键字,则称 R为第三范式,记为 3NF。
? 例关系 BICYCLE满足第二范式,但不满足第三范
式,因为:
品名 ? 厂长,品名 ? 产地
? 去掉其中的传递函数依赖关系,即可得到满足第
三范式的关系。
? 例如,新关系 BICYCLE和( c)新关系
BICYCLE_PLANT。
t t
下一页
上一页
停止放映
第 73页
第三范式 ——3NF 举例
品 名 厂 家 厂 长 产 地 年产量 单 价
黄山牌 26男车 黄山自行车厂 刘同利 合肥 20000 336.00
黄山牌 26坤车 黄山自行车厂 刘同利 合肥 23000 326.00
红旗牌 24坤车 海河自行车厂 王山 天津 76000 310.00
大象牌 28男车 生发自行车厂 丁三元 广州 10000 310.00
大象牌 28加重 生发自行车厂 丁三元 广州 50000 340.00
大象牌 28跑车 生发自行车厂 丁三元 广州 10000 371.00
大象牌 26男车 生发自行车厂 丁三元 广州 30000 320.00
大象牌 26坤车 生发自行车厂 丁三元 广州 50000 320.00
大象牌 24坤车 生发自行车厂 丁三元 广州 10000 305.00
(a)关系 BICYCLE
下一页
上一页
停止放映
第 74页
第三范式 ——3NF 举例
? 经投影操作:
BICYCLE= ?品名、厂家、年产量、单价( BICYCLE),得
品 名 厂 家 年产量 单 价
黄山牌 26男车 黄山自行车厂 20000 336.00
黄山牌 26坤车 黄山自行车厂 23000 326.00
红旗牌 24坤车 海河自行车厂 76000 310.00
大象牌 28男车 生发自行车厂 10000 310.00
大象牌 28加重 生发自行车厂 50000 340.00
大象牌 28跑车 生发自行车厂 10000 371.00
大象牌 26男车 生发自行车厂 30000 320.00
大象牌 26坤车 生发自行车厂 50000 320.00
大象牌 24坤车 生发自行车厂 10000 305.00
(b)新关系 BICYCLE
下一页
上一页
停止放映
第 75页
第三范式 ——3NF 举例
? 经投影操作:
BICYCLE_PLANT=?厂家,厂长,产地 (BICYCLE),得
厂 家 厂 长 产 地
黄山自行车厂 刘同利 合肥
海河自行车厂 王山 天津
生发自行车厂 丁三元 广州
(c)新关系 BICYCLE_PLANT
新关系 (b)BICYCLE和 (c)BICYCLE_PLANT
满足第三范式的关系。
下一页
上一页
停止放映
第 76页
综合举例 -SCT关系
? SCT关系是由 S#(学号),C#(课程号),GRADE(成绩)、
TNAME(教师姓名),TAGE(教师年龄),OFFICE(办公室)
属性组成。
SCT关系 (学生课程教师关系)
S# C# GRADE TNAME TAGE OFFICE
S1 C1 90 周 45 301
S1 C2 91 刘 39 302
S1 C3 85 刘 39 302
S1 C4 87 王 51 301
S2 C1 92 周 45 301
S3 C1 75 周 45 301
S3 C2 56 刘 39 302
SCT是 1NF,而不是 2NF。因为( S#,C#)是 SCT的候选关键字,
TNAME是非主属性,C#是( S#,C#)的一个真子集,C#?TNAME。
下一页
上一页
停止放映
第 77页
SCT从 1NF分解为 2NF
? 将 SCT关系进行无损连接分解为两个子关系 SC和 CT,即
SC( S#,C#,GRADE),CT( C#,TNAME,TAGE,OFFICE)
,即得到两个 2NF关系。
S# C# GRADE
S1 C1 90
S1 C2 91
S1 C3 85
S1 C4 87
S2 C1 92
S3 C1 75
S3 C2 56
SC关系
C# TNAME TAGE OFFICE
C1 周 45 301
C2 刘 39 302
C3 刘 39 302
C4 王 51 301
CT关系
CT还有冗余,TAGE传递依赖
于 C#,可再进行分解。
下一页
上一页
停止放映
第 78页
CT从 2NF分解为 3NF
对 CT再作投影分解:
CT=?C#,TNAME( CT),TO= ?TNAME,
OFFICE( CT),得两个满足 3NF的关系:
CT关系 TO关系
C# TNAME
C1 周
C2 刘
C3 刘
C4 王
TNAME TAGE OFFICE
周 45 301
刘 39 302
王 51 301
下一页
上一页
停止放映
第 79页
总结
5NF
4NFBCNF
3NF
1NF
2NF
关系世界(规范与非规范关系)?
一般而言,分解到 3NF就能满足应用需要。范式级别越高,产
生的新关系就越多,数据查询时就不得不进行大量的联结运算。
?非规范关系消去重复组或空白
变为 1NF关系;
? 1NF关系中消去非主属性对候选
关键字的部分依赖变为 2NF关系;
? 再消去非主属性对候选关键字的
传递依赖变成 3NF;
? 随之消去所有部分依赖就变成
BCNF关系;
? 若消去函数依赖以外的所有多值
依赖,就变成 4NF关系;
? 最后,消去所有不按候选关键字
进行连接运算的连接相关性,得
到 5NF关系。
下一页
上一页
停止放映
第 80页
作业、思考题
p221
1,思考题:
7.1,7.3,7.4
2、作业题:
7.5
下一页
上一页
停止放映
第 81页
结束语
? 欢迎参加到中心网站, 软件基础, 课程的
学习讨论中来。
? 中心网址:
http,//ctec.xjtu.edu.cn
? 课件下载地址,
ftp,//ctec.xjtu.edu.cn
? 我的 E-mail地址,
LZQ_2668634@263.net
谢谢,再见!