一范式和二范式哪个规范程度高

送温暖 1个月前 已收到1个回答 举报

為變乖 3星

共回答了385个问题采纳率:90.9% 评论

这个不是数据结构的内容,属于数据库设计的范畴。规范化设计数据库可以减少数据冗余,减少数据插入、更新异常。

1范式,2范式,3范式,bc范式,4范式,5范式是规范化标准。

比如:目前的所有商用数据库设计出来的表至少必须满足第一范式(1nf:即满足表的所有属性都是不能再分解的原子属性)。

2范式-5范式这些标准多是根据表的属性间的不同程度的函数依赖(从1nf到5nf逐步提高标准)来区分的。由数据库设计者把握设计出来的数据库规范化到什么程度。理论上满足的规范化程度越高,设计出来的数据库越有效、稳定。但有时候考虑到数据查询、表连接的频率问题,不得不反规范化,减低满足的标准才能提高程序执行效率。

简单的讲可以这样理解:

第一范式:指表中的属性都是原子属性,不能再拆分了。

第二范式:在第一范式的基础上,要求非主属性都完全函数依赖于主键。

第三范式:在第二范式的基础上,要求要求没有非主属性传递依赖于主键。

BC范式:在第三范式基础上,要求所有非主键属性都必须依赖于主键。

第四范式:在BC范式基础上,要求表中存在的多值依赖都必须是对主键函数依赖。

第五范式:在第四范式的基础上,继续拆分表格,消除多值依赖。

在一个表中:

主属性:所有包含在候选码里的属性。

非主属性:不包含在候选码里的属性。

候选码:一个或者一组可以唯一标识一条记录且不含多余属性的属性。

函数依赖:表中属性X的值可以唯一确定Y的值,则说:X确定Y,或Y依赖于X(记作X->Y)。

传递依赖:X->Y,Y->Z。则可以说Z传递依赖于X。

多值依赖:一个属性的值可以确定一组属性。(函数依赖是一种特殊的多值依赖,依赖的整组属性只有1个,而不是多个)

(例如假设有一个人事资料的数据表,我们根据表中记录的一个人的姓名,我们可以查到他的年龄即有: 姓名->年龄。在没有同名存在的情况下,姓名就是这个表的候选键(码),因为姓名可以唯一确定一条记录的其他属性,例如:姓名->(性别、年龄、职位),同时我们把姓名选为该表的主键(含主属性)。姓名以外的其他属性即为非主属性。有时候一个表可以有多个候选键,则需要选择其中一组作为主键,所有候选键包括的属性都是主属性。)

以上内容都是根据自己理解信手敲出。并没有严谨的校对教科书的概念。如有疏漏错误实属正常,如有人补漏改错不胜荣幸。

16小时前

16
可能相似的问题

热门问题推荐

Copyright © 2024 微短问答 All rights reserved. 粤ICP备2021119249号 站务邮箱 service@wdace.com