当前位置:趣百图>常见问答>什么是数据库中的规范化?

什么是数据库中的规范化?

2023-03-19 22:52:26 编辑:join 浏览量:501

什么是数据库中的规范化?

规范化理论把关系应满足的规范要求分为几级,满足最低要求的一级叫做第一范式(宽贵1NF),在第一范式来自的基础上提出了第二范式(2NF),在第二范式的基础上又提出了第三范式(3NF),以后又提出了BCNF范式,4NF,5NF。范式的等级越高,应满足的约束集条件也越严格。

第一范式360问答(1NF)

在关系模查停伤师式R中中,如果每个属性值都是不可再操者附块立费则他案深分的原子属性,则称R是第一范式的关系[2]。例如:关系R(职工号,姓名,电话号码)中一个人可能有一个办公室电话增演和一个住宅电话号码,规范成为1NF的方法一般是将电话号码分为单位电话和住宅电话两个属性,即R(职工号,姓名,办公电话,住宅电话)。1NF是关系模式的最低要求。

第二范式(2NF)

如果关系模式R是1NF且其中的所有非主属性都完全函数依赖于关键字,则称关系R是属于第二范式的[2]。例:选课关系SC(SNO,CNO,GRADE,CREDIT)其中SNO为学号,CNO为课程号,GRADEGE为成绩,CREDIT为学分。由以上条件,关键字为组合关键字(SNO,CNO)。在应用中使用以上关系模式有以下问题:(1)术数据冗余,假设同一门课由4额走能绍著量0个学生选修,学分就重复40次;(2)更新复杂著攻判列头获束,若调整了某课程的学分,相应元组的CREDIT值都要更新,有可能会出现同一门课学分不同;(3)插入异常,如计划开新课,由于没人选修,没有学便通先养要元次析映例东号关键字,只能等有人选修才能把课程和学分存入;(4).删除异常,若孙境界须充克执许结电钱学生已经结业,从当前数据库删除选修记录,而某些课程新生尚未选修,则此门课程及学分记录无法保存。以上问题产生的原因是非主属性CREDIT仅函数依赖于CNO,也就是CREDIT部分依赖组合关键字(SNO,CNO)而不是完全依赖。解决方法是将以上关系分解成两个关系模式S征状饭续源亮磁C(SNO,CNO,GRADE)和C(CNO,CREDIT)。新关系包括两个关系模式,它们之间通过SC中的外键CNO相联系,需要时再进行自然联接,恢复原来的关系

第三范式(3NF)

如果关系模式R是2NF且其中的所有非主属性都不传递依赖于码,则称关系R是属于第三范式的[1]。例如关系模式S(SNO,SNAME,DNO,投华交难首伟投五DNAME,LOCAT丝田钟厂ION)中各属性分别代表学号、姓名、所在系、系名称、系地址。关键字SNO决定各照此鲜快个属性。由于是单个关键字,没有部分依赖的问题,肯定是2NF。但关系S肯定有大量的答冗余,有关学生所在系的几个属性DNO,DNAME,LOCATION将重复存储,插入、删除和修改时也将产生类似以上例的情况。原因在于关系中存在传递依赖,即SNO->DNO,DNO->LOCATION,因此关键字SNO对LOCATION函数决定是通过传递依赖SNO->LOCATION实现的。也就是说,SNO不直接决定非主属性LOCATION。解决方法是将该关系模式分解为两个关系S(SNO,SNAME,DNO)和D(DNO,DNAME,LOCATION),两个关系通过S中的外键DNO联系。

BC范式(BCNF)

如果关系模式R的所有属性(包括主属性和非主属性)都不传递依赖于R的任何候选关键字,那么称关系R是属于BCNF的。或者说关系模式R中,如果每个决定因素都包含关键字(而不是被关键字所包含),则R是B妈CNF[3]。通常七言相带认为BCNF是修正的第三范式,有时也称为扩充的第三范式。

标签:数据库,规范化

版权声明:文章由 趣百图 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.qubaitu.com/answer/79722.html
二维码