《数据库系统概论》 -- 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不是候选码

图解

时间: 2024-10-14 05:36:34

《数据库系统概论》 -- 6关系数据理论的相关文章

数据库 chapter 6 关系数据理论

第六章 关系数据理论 本章详细讲解关系规范化理论,它既是关系数据库的重要理论基础也是数据库设计的有力工具,规范化理论为数据库设计提供了理论的指南和工具. 规范化理论虽然是以关系模型为背景,但是它对于一般数据库逻辑设计同样具有理论上的意义. 一个关系模式应当是一个五元组: R(U,D,DOM,F) 1)       关系名R,它是符号化的元组语义: 2)       一组属性U: 3)       属性组U中属性所来自的域D: 4)       属性到域的映射DOM: 5)       属性组U上

数据库--关系数据理论

关系数据理论 本文为复习数据库整理的资料. 参考: https://blog.csdn.net/prdslf001001/article/details/80336835 https://www.bilibili.com/video/av73467859/ https://www.bilibili.com/video/BV1eE411a79r/ 一.数据冗余导致的问题 1)冗余存储:信息被重复存储,导致浪费大量存储空间. 2)更新异常:当重复的信息的一个副本被修改,所有副本都必须进行同样的修改.

关系数据理论之第一范式

常用的数据库的逻辑数据模型有:层次模型.网状模型.关系模型.面向对象模型.对象关系模型:数据模型是从计算机的观点出发对数据建模的,主要用于DBMS的实现.数据模型通常由数据结构.数据操作.完整性约束三部分组成.各个含义如下: 数据结构:描述数据库的组成对象以及对象之间的联系.它描述的内容有两类:一类是与对象的类型.内容.性质有关,例如关系模型中的域.属性.关系等:一类是与数据之间联系有关的对象,例如网状模型中的系型(Set Type).数据库系统中,人们常按照数据结构的类型来命名数据模型. 数据

数据库系统概论(一)关系数据理论--关系模式

一个关系模式可能存在的问题 1.数据冗余度过大,浪费存储空间 系主任张明不需要重复出现,可以另建立中间表存储各系主任信息 2.更新异常 更新时维护数据完整性代价过大,更换计算机系主任时必须修改每一个学生元祖 3.插入异常 该插入的数据插不进去 4.删除异常 不该删除的信息也删掉了,如把所有学生信息删除,则系主任的信息也被一并删除了 关系模式问题的原因 存在不合理的数据依赖 解决方式是把单一模式分解成多个模式 数据依赖 属性集合U = {Sno,Sdept,Mname,Cno,Grade} U的函

数据库系统之关系数据理论——多值依赖到底是什么

自己在家捣鼓了很久还是没弄明白什么是多值依赖,今天网课老师留了题“举出三个多值依赖的例子”,最后看了老师的例子,听了讲解,终于弄明白了怎么判断,怎么举例,什么是多值依赖. 先放上多值依赖的定义: 设R(U)是属性集U上的一个关系模式.X,Y,Z是U的子集,并且Z=U-X-Y.关系R(U)中多值依赖X→→Y成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值,有一组Y的值,这组值仅仅决定于x的值而与z值无关. 看概念是很抽象生硬,不便于理解的,通过几个例子来让我们进行最通俗的讲解. 例1:

关系数据理论

写在前面,???∈?符号的区分: ?:包含于 ?:包含于或等于 ?:不包含于或等于 ∈:属于   ?:不属于 ?和∈的区别:"包含于"用于说明集合与集合之间的关系,"属于"用于说明集合与元素之间的关系. 什么是好的关系模式(表结构)? 不好的关系模式会有什么问题? 怎样把不好的关系模式转化为好的? 这就是下面要学的──关系数据库的规范化理论 本节要点: 函数依赖 码 范式 1NF 2NF 3NF 首先看4个定义. 1         函数依赖 定义1: 设R(U)是

关系数据理论之第二范式

对于一个关系,既然其中的属性值(也就是数据)能够组合到一起,则它们之间就必须会有一定的依赖关系,而这就是数据依赖,数据依赖是一个关系内部属性与属性之间的一种约束关系.例如学校对学生信息的管理中,学号是学生存在的表示,这个学生的信息(例如姓名.专业.年级.成绩等)的组合使用"学号"这个关键属性进行约束的,所以学生的信息属性值对学号具有依赖关系.其中,主要的数据依赖有两种:函数依赖和多值依赖.函数依赖的一般定义如下: 假设R(U)是属性集U上的关系模式,X,Y是U的子集.对于R(U)的任意

4 关系数据理论

一.函数依赖 设R(U)是属性U上的关系模式,X,Y是U的子集,若对于R(U)的任意一个可能的关系r,r中不可能存在另个元祖在X上的属性值相等,而在Y上的属性值不等,则成X函数确定Y或Y函数依赖与X. 1.完全函数依赖 在R(U)中,如果X->Y,并且对X的任何一个真子集X,都有X不依赖于Y,则称Y对X完全函数依赖. 2.部分函数依赖 在R(U)中,如果X->Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖. 3.传递函数依赖 在R(U)中,如果X->Y,Y不依赖与X,Y依赖于Z,则称

2016.6.14 关系数据理论之范式

(1)2NF(没有部分依赖) **若R属于1NF,且每一个非主属性完全函数依赖于任何一个候选码,则R属于2NF. (2)3NF(非主属性不可以传递依赖于码) **设关系模式R<U,F>属于1NF,若R中不存在这样的码X,属性组Y及非主属性Z使得X->Y,Y->Z成立,则称R<U,F>属于3NF. **每一个非主属性既不传递依赖于码,也不部分依赖于码. (3)BCNF(扩展的第三范式) **没有非主属性 **关系模式R<U,F>属于1NF,若X->Y且Y