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不属于X,时X必含有码,则R<U,F>属于BCNF

**每一个决定因素都包含码。

**一个满足BCNF的关系模式有:

①所有非主属性对每一个码都是完全函数依赖;

②所有主属性对每一个不包括它的码也是完全函数依赖;

③没有任何属性完全函数依赖于非码的任何一组属性;

④例子:

(S,J)->T,    (S,T)->J,    T->J

(S,J),(S,T)都是候选码

STJ是3NF,因为没有任何非主属性对码传递依赖或部分依赖,但STJ不是BCNF,因为T是决定因素,但是T不包括码。

(4)多值依赖

** 多值依赖(MVD):关系模式R(U),U是属性集,在U(X,Y,Z)中,当一对(X,Z)值可以对应一组Y值时,Y值仅仅取决于X值,而与Z值无关。即表示为,X->->Y。

**平凡的多值依赖:若X-->Y,而Z为空,则称X-->Y为平凡的多值依赖。

**多值依赖具有以下性质:

①对称性:若X->->Y,则X->->Z,其中Z=U-X-Y;

②传递性:若X->->Y,Y->->Z,则X->->Z-Y;

③函数依赖可以看作是多值依赖的特殊情况:即若X->Y,则X->->Y;

④若X->->Y,X->->Z,则X->->Z,则X->->YZ;

⑤若X->->Y,X->->Z,则X->->Y交Z;

⑥若X->->Y,X->->Z,则X->->Y-Z,X->->Z-Y;

**多值依赖和函数依赖的区别:

①多值依赖的有效性与属性集的范围有关。

②若函数依赖X->Y在R(U)上成立,则对于任何Y‘属于Y均有X->Y’成立。而多值依赖X->->Y,若在R(U)上成立,却不能断言对于任何Y‘属于Y有X->->Y‘成立。

(5)4NF

**4NF就是限制关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖。

**4NF所允许的非平凡的多值依赖实际上是函数依赖。

**如果只考虑函数依赖,则属于BCNF的关系模式规范化已经是最高的了;如果考虑多值依赖,则属于4NF的关系模式规范化程度是最高的。

(6)规范化小结:

2NF:消除非主属性对码的部分函数依赖

3NF:消除非主属性对码的传递函数依赖

BCNF:消除主属性对码的部分和传递函数依赖

4NF:消除平凡且非函数依赖的多值依赖

时间: 2024-10-10 02:59:00

2016.6.14 关系数据理论之范式的相关文章

数据库 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).数据库系统中,人们常按照数据结构的类型来命名数据模型. 数据

关系数据理论

写在前面,???∈?符号的区分: ?:包含于 ?:包含于或等于 ?:不包含于或等于 ∈:属于   ?:不属于 ?和∈的区别:"包含于"用于说明集合与集合之间的关系,"属于"用于说明集合与元素之间的关系. 什么是好的关系模式(表结构)? 不好的关系模式会有什么问题? 怎样把不好的关系模式转化为好的? 这就是下面要学的──关系数据库的规范化理论 本节要点: 函数依赖 码 范式 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,则称

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

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

《数据库系统概论》 -- 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_man

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

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