1. 目的:研究一种模式,让数据库不发生修改异常,删除异常和插入异常,而且冗余要尽量的小,一个关系(表)只描述一个概念,本质就是概念的单一化
2.函数依赖通俗理解:一个属性决定了另外一个属性,举例:爸爸这个角色,唯一确定了性别男
函数依赖是从数学角度来定义的,在关系中用来刻画关系各属性之间相互制约而又相互依赖的情况。 函数依赖普遍存在于现实生活中,比如,描述一个学生的关系,可以有学号、姓名、所在系等多个 属性,由于一个学号对应一个且仅一个学生,一个学生就读于一个确定的系,因而当“学号”属性 的值确定之后,“姓名”及“所在系”的值也就唯一地确定了, 此时, 就可以称“姓名”和 “所在系”函数依赖于“学号”,或者说“学号”函数决定“姓名”和“所在系”
3.求属性集合X(X含于集合U)的函数依赖集F的闭包XF+
通俗理解就是:根据给定的集合X,运用Armstrong公理,能够推导出的所有依赖关系所包含的属性的集合
举个例子就好理解了:
U={A,B,C,D,E} F={AB→C,B→D,C→E,EC→B,AC→B}
1.X={AB} 求(AB)F+
现在X中有AB,首先AB自己就能决定自己,再从F中找左部为A,B,AB能够决定什么,,发现AB→C B→D
根据Armstrong公理,AB→C,C→E,那么有AB→E(传递律) 所以AB能够决定的集合有{A,B,C,D,E}
所以AB关于F的函数依赖集闭包就是{A,B,C,D,E}(根据AB,能推导出结果的集合)
2.X={EC},求(EC)F+
按照与1中一样的方法,EC能够决定自身,那么(EC)F+包含了E,C
再从F中找,发现,EC→B,B→D,所以 (EC)F+={B,C,D,E}
4.函数依赖集的等价
假设F和G是2个函数依赖集,如果F+=G+,称F和G等价
5.范式 定义关系的结构的性质
有1NF,2NF,3NF,BCNF,4NF,5NF,条件越来越严格
5.1 第一范式(1NF):关系上所有元祖所有属性都取原子值
(第一范式有许多问题,比如插入异常,删除异常,更新异常)
5.2 第二范式(2NF):如果R满足第一范式的条件,而且它的所有非主属性都完全函数依赖于任一关键字,那么R满足第二范式条件。
5.3 第三范式(3NF),满足第二范式的前提下,R的任何一个非主属性都不传递函数依赖于任何关键字,那么R满足第三范式条件