《数据库系统概论》 -- 6关系数据理论

关系模式五元组

R<U,D,DOM,F>

         R--关系名

         U--属性(组)

         D--U中的属性所来自的域

         DOM--属性到域的映射

         F--U中的数据依赖(函数依赖、多值依赖、连接依赖等)

数据依赖不良会带来的危害

数据冗余

更新异常

插入异常

删除异常

函数依赖

概念         X,Y是R的子集,不存在任意两个元组在X上的取值相等,而在Y上的取值不等,称Y函数依赖于X,记作X→Y。

关系举例         Student(Sno,Sname,Cno,Cname,Sdept,Dept_manager,Grade)

理解         不存在同一个X有多个Y。Sno→Sdept,Sdept→Dept_manager

分类

         平凡的函数依赖     X→Y, Y⊆X。(Sno,Sname) →Sname/*无意义,不讨论*/

         非平凡的函数依赖         X→Y, Y⊈X。Sno→Sname

         相互函数依赖         X→Y, Y→X。Sno→Sname, Sname→Sno/*适用于不允许重名的情况*/

         完全函数依赖         X→Y, Y不依赖于X的任一真子集。

         部分函数依赖         X→Y, Y亦可依赖于X的某一真子集。

         传递函数依赖         X→Y, Y不依赖于Z, Y→Z。

候选码     对于R<U,F>,U中有子集K,且,则K为候选码

主码         有多个候选码时,选一个作为主码

主属性     任意一个候选码中的属性,均为主属性

全码         U不存在子集候选码,U唯一确定自身,则为全码

多值依赖

定义

         对于R<U,F>,U有子集X,Y,Z,且Z=U-X-Y,如果对于给定的t(X,Z)值,对应的一组Y值的取值只与X值有关,而与Z值的变化无关,则称Y多值依赖于X,记作X→→Y

         如果Z为空值,则称平凡的多值依赖

举例

         Teaching(Course, Teacher, Course_Book)

                   /*课程-老师-教材书*/

理解

         一个老师可以带多门课程,一本教材可以被多个课程使用(如《数据结构》可被数学、计算机使用),解决了2NF的传递依赖

         每门课程有固定的一群老师,有固定的使用教材书,所以同一个课程,同一本教材所对应的老师组,不会因为教材而改变

性质

         对称性:若X→→Y,则X→→Z

         传递性:若X→→Y, Y→→Z,则X→→Z-Y

         函数依赖是特殊的多值依赖

         若X→→Y,X→→Z,则X→→YZ,X→→Y∩Z,X→→Y-Z,X→→Z-Y

1NF

定义         R<U,F>中每一个分量必须是不可再分的数据项

2NF

定义         R<U,F>∈1NF,且每一个非主属性完全依赖于任何一个候选码

理解         不能存在部分依赖于任一候选码的非主属性

反例         S-L-C(Sno, Sdept, Cno, Cname, Grade)

理解         候选码:(Sno,Cno)

                   因为Sno→Sdept,所以非主属性Sdept部分依赖于候选码(Sno, Cno)

3NF

定义         非主属性不可传递函数依赖于任一候选码

理解         非主属性之间不可有依赖关系

反例         S-L(Sno, Sdept, SAddress) /*SAddress为学生宿舍楼号,一个系一栋楼*/

理解         候选码:Sno

                   因为Sno→Sdept, Sdept→SAddress,所以

BCNF

定义         R<U,F>∈1NF,若X→Y且Y⊈X时,X必包含候选码

其他         由Boyce, Codd提出,在第三范式的基础上改进,故也称修正的第三范式/扩充的第三范式

理解         所有的非平凡函数依赖的决定属性(组)必须包含候选码

反例         STC(Student, Teacher, Course) /*每个老师教一门课,每门课由多个老师教,每个学生选多个课程*/

理解         候选码(Student, Teacher, Course)

                   因为Teacher→Course,但是Teacher不是候选码

4NF

定义         R<U,F>∈1NF,如果对于R的每个非平凡多值依赖X→→Y(Y⊈X),X必包含候选码

理解         所有非平凡多值依赖的决定属性(组)必须包含候选码

反例         WSC(Warehouse, Saver, Commodity) /*仓库,保管员,商品*/

理解         Warehouse→→Saver,但是Warehouse不是候选码

图解

 

posted @ 2017-09-09 10:45  yc紫日  阅读(430)  评论(0编辑  收藏  举报