文档详情

第6章〔1–2〕DataBase.ppt

发布:2017-05-06约4.48千字共33页下载文档
文本预览下载声明
An Introduction to Database System 6.2 规范化 6.2.1 函数依赖 6.2.2 码 6.2.3 范式 6.2.4 2NF 6.2.5 3NF 6.2.6 BCNF 6.2.7 多值依赖 6.2.8 4NF 6.2.9 规范化小结 6.2.3 范式 范式是符合某一种级别的关系模式的集合。 关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式。 范式的种类: 第一范式(1NF) 第二范式(2NF) 第三范式(3NF) BC范式(BCNF) 第四范式(4NF) 第五范式(5NF) 6.2.3 范式 各种范式之间存在联系: 某一关系模式R为第n范式,可简记为R∈nNF。 6.2 规范化 6.2.1 函数依赖 6.2.2 码 6.2.3 范式 6.2.4 2NF 6.2.5 3NF 6.2.6 BCNF 6.2.7 多值依赖 6.2.8 4NF 6.2.9 规范化小结 6.2.4 2NF 1NF的定义 如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF。 第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。 但是满足第一范式的关系模式并不一定是一个好的关系模式。 6.2.4 2NF 例: 关系模式 SLC(Sno, Sdept, Sloc, Cno, Grade) Sloc为学生住处,假设每个系的学生住在同一个地方。 函数依赖包括: (Sno, Cno) f Grade Sno → Sdept (Sno, Cno) P Sdept Sno → Sloc (Sno, Cno) P Sloc Sdept → Sloc 6.2.4 2NF SLC的码为(Sno, Cno) SLC满足第一范式。 非主属性Sdept和Sloc部分函数依赖于码(Sno, Cno) SLC不是一个好的关系模式 (1) 插入异常 假设Sno=”95102”,Sdept=”IS”,Sloc=”N”的学生还未选课,因课程号是主属性,因此该学生的信息无法插入SLC。 (2) 删除异常 假定某个学生本来只选修了3号课程这一门课。现在因身体不适,他连3号课程也不选修了。因课程号是主属性,此操作将导致该学生信息的整个元组都要删除。 SLC不是一个好的关系模式 (3) 数据冗余度大 如果一个学生选修了10门课程,那么他的Sdept和Sloc值就要重复存储了10次。 (4) 修改复杂 例如学生转系,在修改此学生元组的Sdept值的同时,还可能需要修改住处(Sloc)。如果这个学生选修了K门课,则必须无遗漏地修改K个元组中全部Sdept、Sloc信息。 6.2.4 2NF 原因 Sdept、 Sloc部分函数依赖于码。 解决方法 SLC分解为两个关系模式,以消除这些部分函数依赖 SC(Sno, Cno, Grade) SL(Sno, Sdept, Sloc) 6.2.4 2NF 函数依赖图: 6.2.4 2NF 1. 2NF的定义 定义6.6 若关系模式R∈1NF,并且每一个非主属性都完全函数依赖于R的码,则R∈2NF。 例:SLC(Sno, Sdept, Sloc, Cno, Grade) ∈1NF SLC(Sno, Sdept, Sloc, Cno, Grade) ∈2NF SC(Sno, Cno, Grade) ∈ 2NF SL(Sno, Sdept, Sloc) ∈ 2NF 6.2.4 2NF 2. 2NF的判定 ①R∈1NF 。 ②找出函数依赖X→Y。 ③找出R的所有候选码、主属性、非主属性。 ④判断是否每个非主属性都完全函数依赖于码。 例1 考察关系模式C(Cno,Cname,Ccredit) 例2 考察关系模式S(Sno,Sname,Sdept,Sage) 例3 考察关系模式SC(Sno,Cno,Grade) 6.2.4 2NF 任意一个二目关系必为2NF。 采用投影分解法将一个1NF的关系分解为多个2NF的关系,可以在一定程度上减轻原1NF关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。 将一个1NF关系分解为多个2NF的关系,并不能完全消除关系模式中的各种异常情况和数据冗余。 6.2 规范化 6.2.1 函数依赖 6.2.2 码 6.2.3
显示全部
相似文档