您的位置:首页 > 数据库

关系数据库的理论

2013-01-01 15:38 155 查看

概念

元组

表中的一行就是一个元组。

候选码

若关系中的某一属性或属性组的值能唯一的标识一个元组,而其任何真子集都不能再标识,则称该属性组为(超级码)候选码。候选码(超级码)就是可以被选为主码的属性或属性组。当一个关系有N个属性或属性组可以唯一标识时,则说明该关系有N个候选码,可以选定其中一个作为主码。

主码

一个元组可以有多个候选码,我们选择一个候选码来表示元组,这个候选码就是主码。主码就是主关键字,主关键字(primary key)是表中的一个或多个字段,它的值用于惟一地标识表中的某一条记录。

主属性

候选码中的属性就是主属性,一个候选码可能包含多个主属性。

非主属性

一个元组不是候选码的属性就是非主属性。



函数

描述

函数就是由一个X可以等到一个Y。

平凡函数和非平凡函数

平凡函数,属性A和属性B之间是一个自然的关系,归属拥有关系,就是属性A包含属性B。非平凡函数就是属性和属性之间没有什么关系,通过主键将他们联系在了一起。

完全函数依赖和部分函数依赖

元组的主关键字如果有多个属性,如果,主关键字内的一个属性(只要是关键字的真子集就行)和其他非关键字的属性具有函数的关系,那么这种关系叫做部分函数依赖,简单点说部分函数依赖就是,主键中的部分属性可以唯一的推出某个非主属;如果关键字内的一个属性(同上)和其他非关键字的属性不具有函数的关系,那么这种关系叫做完全函数依赖。

只有当关键字是组合属性时,讨论部分函数依赖才有意义,当关键字是单属性时,表中只有完全函数依赖这一种关系。



传递函数关系

简而言之:x—>y,y!—>x,y—>z,但是x!z。这个就是传递函数。

小结

我们在设计一个关系表的时候,表中的函数依赖关系越单一越好,如果一个表中存在多种函数关系,那么就有可能造成数据冗余、插入异常、删除异常或更新异常。关系模式有严格的函数关系,所以较科学,值得信赖。



三范式

第一范式

表中字段之间都是非平凡函数,不存在重复的列。

第二范式

一个表中只有完全函数依赖关系,没有部分函数依赖关系。

第三范式

消除传递依赖函数,就是说一个数据库表中字段不包含其他表中的字段

第一范式和第二范式的目的

第一范式和第二范式的目的是一样的,就是一个表(或称为关系)只描述一个实体或者实体间的联系。减少表中属性之间的函数关系。



总结

上面描述表中的属性间的函数关系只是一部分,还有其他的函数关系,范式以减少表中属性之间的函数关系为因,来确定新的范式,所以,范式也不只上面描述的3种,但我们一般用到第三3种范式就行了,注意:后一级范式的内容包含了上一级范式的内容。其他范式还有BC范式、第四范式和第五范式。范式是依据属性间的函数关系得出来,范式是一个标准,设计的依据。

我们以函数(也就是数学)的角度证明了关系模型的科学性,这一点也是关系模型比层次模型、网状模型等模型好的地方。关系模型的数据库有了这些科学的理论基础后,完美的解决了数据插入异常、删除异常和更新异常。这也就是我们为什么要学习这些,为了就是通过运用这些理论设计出一个安全、高效和不出错的数据库。

后续

第一范式:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: