文档介绍:数据库系统概论 An Introduction to Database Systems
黔 南 民 族 师 范 学 院 计 算 机 科 学 系
黔南民族师范学院计算机科学系
数据库系统概论
An Introduction to Database System
第六章 关系数据理论
第六章 关系数据理论
问题的提出
规范化
数据依赖的公理系统
* 模式的分解
小结
数据库设计的基本步骤
问题的提出
关系数据库逻辑设计
针对具体问题,如何构造一个适合于它的数据模式。(应该设计多少个关系模式、每个关系模式由哪些属性构成、关系模式之间的联系)
设计目标:避免出现①过多数据冗余②更新异常③插入异常④删除异常
解决方案:数据库逻辑设计的工具──关系数据库规范化理论。
关系模式的形式化定义与数据依赖
关系模式的五元组组成:
R(U, D, DOM, F)
R: 关系名
U: 组成该关系的属性名集合
D: 属性组U中属性所来自的域
DOM: 属性向域的映象集合
F: 属性间数据依赖的集合
数据依赖:定义关系内部属性值间的相互关连(主要体现于值的相等与否),它是数据库模式设计的关键。
简化关系模式R为:
R(U, F)
当且仅当U上的一个关系r满足F时,r称为关系模式 R(U, F)的一个关系
数据依赖分类
数据依赖类型(函数依赖、多值依赖)
函数依赖(Functional Dependency,简记为FD)
关系R上的FD指:如果R的两个属性在属性A1,A2,…,An上一致(这些属性上对应分量相同),则它们在其它分量B上的值也必定相同。
记做 A1A2…An→B 即 A1,A2,…,An函数决定B
如果属性集A1,A2,…,An函数决定多个属性,即
A1A2…An→B1,A1A2…An→B2, …,A1A2…An→Bm
则这个FD集合可缩写为: A1A2…An→B1B2Bm
数据依赖对关系模式的影响
[例]建立一个描述学校教务的数据库:
学生的学号(Sno)、所在系(Sdept)、系主任姓名(Mname)、课程名(Cname)、成绩(Grade)
用单一关系模式描述 : Student <U、F>
U ={Sno, Sdept, Mname, Cname, Grade}
说明:1、一个系有若干学生,而一个学生只属于一个系。
2、一个系只有一名(正职)负责人—系主任。
3、一个学生可选多门课程,每门课程有若干学生选修。
4、每个学生选每门课有一个成绩。
数据依赖对关系模式的影响(续)
则Student属性组U上的一组函数依赖F为:
F={Sno→Sdept, Sdept→Mname, (Sno, Cname)→Grade}
Sno
Cname
Sdept
Mname
Grade
数据依赖对关系模式的影响
Student表示例
Sno
Sdept
Mname
Cno
Grade
S1
计科系
张明
C1
95
S2
计科系
张明
C1
90
S3
计科系
张明
C1
88
S4
计科系
张明
C1
70
…
…
…
…
…
问题: 数据冗余:系主任名重复出现
更新异常:系主任更换,则需更换所有学生相应信息
插入异常:如某系刚成立,没有学生,则不能插入系的相关信息
删除异常:删除所有学生信息,则删除一个系的信息