狠狠撸

狠狠撸Share a Scribd company logo
第五讲 关系数据库设计理论 本讲主要介绍数据库的设计理论和方法,以解决如下问题:给定一批需要在数据库中管理的数据,如何设计出存放这批数据的关系,使得数据库管理系统能够方便高效地管理这批数据,同时易于被用户使用。
引例 假设有 100 个学生,这些学生同属一个专业,该专业为一年制,每个同学选修同样的 20 门课程。现欲对各学生的以下数据进行管理: 学号,姓名,性别,年龄,专业编号,专业名称,课程编号,课程名称,成绩 自然想到用以下关系模型来存放这些数据: 学生(学号,姓名,性别,年龄,专业编号,专业名称,课程编号,课程名称,成绩) 从而得到如下关系:
学生关系 … … … … … … … … … 67 会计 20 理财 01 20 女 陈百 100 理财 理财 … 理财 理财 专业名称 李二 张一 … 张一 张一 姓名 85 计算机 01 01 19 男 2 91 会计 20 01 20 男 1 … … … … … … … 78 英语 02 01 20 男 1 80 计算机 01 01 20 男 1 成绩 课程名称 课程编号 专业编号 年龄 性别 学号
对学生关系的分析 … … … … … … … … … 67 会计 20 理财 01 20 女 陈百 100 理财 理财 … 理财 理财 专业名称 李二 张一 … 张一 张一 姓名 85 计算机 01 01 19 男 2 91 会计 20 01 20 男 1 … … … … … … … 78 英语 02 01 20 男 1 80 计算机 01 01 20 男 1 成绩 课程名称 课程编号 专业编号 年龄 性别 学号
问题 … … … … … … … … … 67 会计 20 理财 01 20 女 陈百 100 理财 理财 … 理财 理财 专业名称 李二 张一 … 张一 张一 姓名 85 计算机 01 01 19 男 2 91 会计 20 01 20 男 1 … … … … … … … 78 英语 02 01 20 男 1 80 计算机 01 01 20 男 1 成绩 课程名称 课程编号 专业编号 年龄 性别 学号 冗余度大 插入异常 删除异常
问题产生的原因 一个关系中的属性相互之间存在联系,我们称之为数据依赖。不良的数据依赖是产生上述问题的原因。 数据依赖可分为函数依赖和多值依赖两种。
函数依赖 函数依赖 定义:设 R(U) 是属性集 U 上的一个关系模式, X,Y 是 U 的子集,若对关系模式 R(U) 的任何一个当前关系,不可能有两个元组在属性集 X 上的值相同而在属性集 Y 上的值不同,则称 X 函数决定 Y 或 Y 函数依赖于 X ,记作 X  ?   Y 。 函数依赖是对于现实世界的断言,它不能被证明,而必须由数据库的设计者仔细考察属性的含义(语义)来获得。
平凡函数依赖与非平凡函数依赖 定义 若 X 函数 决定 Y ,且 Y 不包含在 X 中,则称 X 非平凡决定 Y ,或 Y 非平凡函数依赖于 X 。否则称 X 平凡决定 Y ,或 Y 平凡函数依赖于 X 。 找出下述关系模式的所有函数依赖关系 学生(学号,姓名,性别,年龄,专业编号,专业名称,课程编号,课程名称,成绩)
找出下述关系模式的所有函数依赖关系 学生(学号,姓名,性别,年龄,专业编号,专业名称,课程编号,课程名称,成绩)
函数依赖的类型 完全函数依赖和部分函数依赖 若 X ? Y ,且对 X 的任何一个真子集 X’ 都有 X  Y ,则称 X 完全函数决定 Y ,或 Y 完全函数依赖于 X 。记作 X  Y 。否则称 X 部分函数决定 Y ,或 Y 部分函数依赖于 X ,记作: X  Y 。 传递函数依赖 若对于属性集 X 、 Y 、 Z ,有 X  ?  Y , Y  X , Y  ? Z ,则称 X 传递函数决定 Z ,或 Z 传递函数依赖于 X ,记作 X  Z 。 t f p
区分下述关系模式的所有函数依赖关系的类型 学生(学号,姓名,性别,年龄,专业编号,专业名称,课程编号,课程名称,成绩)
码、主属性与非主属性 码:对于关系模式 R(U) , K 包含于 U 中,若 K  U ,则称 K 为 R(U) 的码。 主属性与非主属性:包含在码中的属性为主属性,否则为非主属性。 R(U,D,DOM,F) f
找出下述关系模式的码并进行属性分类 学生(学号,姓名,性别,年龄,专业编号,专业名称,课程编号,课程名称,成绩)
范式 范式的概念 满足某些确定的约束条件的关系的集合,称之为范式。按照约束条件的严格程度,将范式分为不同的级别。
规范化 所谓关系的规范化,是将一个低级的关系模式通过投影运算转化为若干个属于高一级范式的关系模式集合的过程。 低级范式的关系模式 关系模式 1 关系模式 k 高级范式 规范化
函数依赖范畴中的范式 在函数依赖的范畴中,范式按级别高低依次是 1NF , 2NF , 3NF 和 BCNF 。 1NF 若一个关系的所有属性都是原子属性,则该关系属于第一范式。 85 物理 c3 80 数学 c2 … .. … … … 英语 课程名 90 分数 课程号 c1 成绩 张山 姓名 s1 学号
第二范式 (2NF) 2NF 若关系 R∈1NF ,且 R 中不存在非主属性对码的部分函数依赖,则称 R∈2NF 。 例题: 学生( 学号 ,姓名,性别,年龄,专业编号,专业名称, 课程编号 ,课程名称,成绩 )
第三范式 (3NF) 3NF 若关系 R∈2NF ,且 R 中不存在非主属性对码的传递函数依赖,则称 R∈3NF 。 例题: 学生( 学号 ,姓名,性别,年龄,专业编号,专业名称)
BC 范式 (BCNF) BCNF 若关系 R 中任何非平凡函数依赖的左面均包含了 R 的一个码,则称关系 R∈BCNF 。 例题: SCP( 学生,课程,名次 ) 语义:每个学生每门课有一定的名次,每门课程的每一名次只有一名学生。 判断该范式是否为 BCNF STC( 学生,教师,课程 ) 语义:每一教师只教一门课,每门课有多个教师教,某个学生选定某门课就对应一个固定的教师。
关系的规范化 1NF ? 2NF 学生( 学号 ,姓名,性别,年龄,专业编号,专业名称) 学生( 学号 ,姓名,性别,年龄,专业编号,专业名称, 课程编号 ,课程名称,成绩) 学生选课( 学号 , 课程编号 ,成绩) 课程( 课程编号 ,课程名称) 投影 破坏非主属性对码的部分函数依赖 不丢失属性 维持原有数据间的关系
关系的规范化 2NF ? 3NF 学生( 学号 ,姓名,性别,年龄,专业编号,专业名称) 学生( 学号 ,姓名,性别,年龄,专业编号) 学生( 专业编号 ,专业名称) 投影 破坏非主属性对码的传递函数依赖 不丢失属性 维持原有数据间的关系
关系的规范化 3NF ? BCNF STC (学生,教师,课程) ST (学生,教师) TC (教师,课程) 投影 确保每一个函数依赖的决定因素中含有码 不丢失属性 维持原有数据间的关系
多值依赖引例 假设一门课由多个教师讲授,他们使用同一套 参考书。 请思考:该关系属于第几范式?它的码是什么?该关系完美吗? … … … 高等数学 高等代数 微分方程 高平 王行军 数学 普通物理学 力学原理 物理学试验 参考书 B 李明 刘华 教师 T 物理 课程 C
多值依赖引例 假设一门课由多个教师讲授,他们使用同一套 参考书。 X Z Y 本关系的码是全码,属 BCNF ,存在数据冗余,修改复杂等诸多问题! … … … 高等数学 高等代数 微分方程 高平 王行军 数学 普通物理学 力学原理 物理学试验 参考书 B 李明 刘华 教师 T 物理 课程 C
多值依赖的定义 定义 : 设 R(U) 是属性集 U 上的一个关系模式, X,Y,Z 是 U 的子集,且 Z=U-X-Y ,若对于 R 的任一关系 r,r 在 (X,Z) 上的每一个值,对应一组 Y 的值,且这组 Y 的值与 Z 的取值无关,则称 X 多值决定 Y ,或 Y 多值依赖于 X 。记为: X  Y 。
多值依赖的性质 多值依赖具有对称性 若 X  Y ,则 X  Z 。 函数依赖是多值依赖的特殊情况 若 X  Y ,而 Z 为空集,则称 X  Y 为平凡多值依赖。 如(课程,教师)
第四范式( 4NF ) 定义: 设 R(U) 是属性集 U 上的一个关系模式, R(U) 属于 1NF ,若对于 R(U) 上的任何非平凡多值依赖 X  Y , X 都包含有 R(U) 的码,则关系模式 R(U) 属于 4NF 。 思考题: CTB( 课程,教师,参考书 ) 属不属于 4NF  ?
解决方法 CTB( 课程,教师,参考书 ) CT( 课程,教师 ) CB( 课程,参考书 ) 投影 消去非平凡且非函数依赖的多值依赖 不丢失属性 维持原有数据间的关系
模式设计的方法学 模式设计的标准 分解的等价性 属性的保持 数据的保持 依赖的保持 模式设计应遵循的原则 反映客观世界,满足应用需要 冗余度小 最大限度的避免异常
关系模式分解的标准 分解的定义 关系模式 R(U,F) 的分解就是用一组关系模式 ρ= (R 1 (U 1 , F 1 ) , R 2  (U 2  , F 2 )   ,…, R k  (U k  , F k )   ) 取代 R ,其中:  U=U 1 ∪U 2  ∪ … ∪ U k  且不存在   u i  包含 u j F i 是 F 在 u i 上的投影 标准一:无损连接分解 设 ρ= (R 1 (U 1 , F 1 ) , R 2  (U 2  , F 2 )   ,…, R k  (U k  , F k )   ) 是对关系模式 R(U,F) 的分解, F 是 R 上的函数依赖集,若对于 R 的每一个满足 F 的关系 r ,下式成立: r=∏ R1 (r) ∞ ∏   R2  (r)   ∞   … ∞  ∏   Rk  (r)   则称分解 ρ 是无损连接分解。 式中, ∏  表示投影,∞表示自然连接。
分解标准(续) 标准二:保持函数依赖的分解 设 ρ= (R 1 (U 1 , F 1 ) , R 2  (U 2  , F 2 )   ,…, R k  (U k  , F k )   ) 是对关系模式 R(U , F) 的分解, F 是 R 上的函数依赖集,  F i 是 F 在 U i 上的投影,若 F 所逻辑蕴含的函数依赖,一定也由分解得到的某个关系模式的函数依赖 F i 所逻辑蕴含,则称分解 ρ 是保持函数依赖的分界。 标准三:既满足无损连接,又保持函数依赖。
模式分解的标准与范式的关系 若仅仅要求分解具有无损连接性,那么模式分解一定能够达到 4NF 。 若要求分解保持函数依赖,那末模式分解一定能够达到 3NF ,但不一定能够达到 BCNF 。 若要求分解既具有无损连接性,又保持函数依赖,那末模式分解一定能够达到 3NF ,但不一定能够达到 BCNF 。 在实际的工程应用中,通常要求设计的数据库模式达到 3NF 。

More Related Content

Viewers also liked (6)

香港六合彩
香港六合彩香港六合彩
香港六合彩
tigao
?
香港六合彩
香港六合彩香港六合彩
香港六合彩
tigao
?
O HolocaustoO Holocausto
O Holocausto
silasco
?
tareatarea
tarea
tat
?
Like A Rolling Stone
Like A Rolling StoneLike A Rolling Stone
Like A Rolling Stone
shihfang Ma
?
香港六合彩
香港六合彩香港六合彩
香港六合彩
tigao
?
香港六合彩
香港六合彩香港六合彩
香港六合彩
tigao
?
O HolocaustoO Holocausto
O Holocausto
silasco
?
tareatarea
tarea
tat
?
Like A Rolling Stone
Like A Rolling StoneLike A Rolling Stone
Like A Rolling Stone
shihfang Ma
?

香港六合彩