📜  DBMS第四范式和第五范式介绍(1)

📅  最后修改于: 2023-12-03 15:30:24.143000             🧑  作者: Mango

DBMS第四范式和第五范式介绍

什么是范式

在数据库设计中,范式是一种规范,是用来评价一个关系数据库模式的质量和优劣的标准。范式越高,表的冗余数据和信息冗余就越小,表越容易更新,数据也越安全。目前最为流行的是关系型数据库里面的6个范式。

第四范式

第四范式是指在满足第三范式的基础上,进一步排除非关键字段对候选关键字的部分函数依赖,即消除同一关系模式中的多值依赖。

函数依赖

在关系型数据库中,函数依赖表示一个关系中的一个属性值唯一确定另一个属性值的关系。比如,如果存在一个关系R(x, y),其中x和y是属性,那么属性y是由属性x函数决定的,记为x -> y。这样,当我们知道x的值时,就可以唯一确定y值。但是,y不一定可以唯一确定x的值,因为x和y之间的依赖关系是单向的。

多值依赖

多值依赖发生在一个关系表中,某些非主属性能够接受多个同类信息时,这时应该把这些多个信息拆分成独立的关系表,然后通过主属性关联起来。比如,如果一个学生在一学期中选修了多门课程,那么这些选修课程就应该被分解到另一个关系表中,用学号和课程号关联上。

消除多值依赖

在第三范式,我们利用代数法则和Join操作,将非关键字段与候选关键字的部分依赖关系消除,在第四范式中,我们将同一关系模式中的多值依赖关系消除。消除多值依赖的方法是,将多值属性分解为一个独立的关系表,通过主键和其他属性建立联系。

第五范式

第五范式是指在满足第四范式的基础上,进一步排除候选关键字之间的依赖关系,即消除同一表中的联合依赖。

联合依赖

联合依赖是指在一个关系表中,多个候选关键字组合起来唯一决定了一个非关键字的属性。比如,假设有一个关系表,其中包括学号、课程号和教师号三个候选关键字,而一个成绩就是由这三个字段的组合决定的,成绩就是那个字段,那么这条属性的依赖关系就是联合依赖。

消除联合依赖

消除联合依赖的方法是,将属性分解为两个关系表,其中一个表的主键是候选关键字组合的子集,另一个表的主键是候选关键字剩余的部分和非键属性。因此,可以通过代数法则和Join操作来消除联合依赖。

综合

第四范式和第五范式都是在第三范式的基础上进一步优化关系数据库设计,消除了更多的冗余数据和信息冗余,使得数据更加安全、一致和易于维护。但是,在实际的数据库设计中,仍然需要根据具体的业务需求和数据库层面的优化,综合考虑使用不同的范式来进行设计。