怎样区分关系数据库中的六个范式

怎样区分关系数据库中的六个范式,第1张

这六个范式是逐步加强,数据库设计时,满足的范式越高,理论上讲,数据冗余就越少,并且越不容易出问题。。。实际上嘛。。就不说了。。总之,一般设计数据库时要求满足第三范式第一范式的意思就是每列都不可再分,且每个表中的每列都是不重复的,只有满足了第一范式才叫关系型数据库。先满足第一范式才能满足第二范式,第二范式的意思是表中的每行必须唯一,也就是说,要有能唯一标识每行的列(或几个列也行)满足第二范式才能满足第三范式,第三范式是的意思是要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。鲍依斯-科得范式,也就是BC范式,在第三范式的基础上,消除传递依赖(传递依赖。。这个还有个定义问题:比如A->B,B->C,则A与C之间的依赖就是传递依赖)第四范式,(不废话了,反正前提是先满足前一个范式,下面也一样),消除多值依赖(多值依赖就是存在一对多的关系,间接和直接的都可能有)第五范式,这个就比较扯了,细分成第四范式以后表已经很碎了,第五范式还要求更碎。。。第五范式的目标还是消除多值依赖,不过所消除多值依赖的更难以发现,官方的说法是:保证在第四范式中存在的任何可以分解为实体的三元关系都被分解。 晕不?

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

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个,而不是多个)

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

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

1NF:不说实体直接说表。若一个表中的所有列不能再拆分,则满足1NF。

例:客户目录表----客户编码、客户名称、家庭地址、工作单位、联系电话 非1NF

原因:联系电话可以分为家庭电话、单位电话、移动电话等等。

2NF:满足1NF的同时,每个列只能依赖于候选主键,不能依赖于不是非候选主键的列。

例:销售明细表----顾客编码、商品编码、商品名称、销售单价、销售数量、销售金额非2NF

原因:候选主键是顾客编码+商品编码,所有其它列都依赖于候选主键,但商品名称又依赖于

商品编码,因此此表不是2NF

3NF:满足2NF的同时,不能存在传递依赖。

传递依赖---A依赖于B,B又依赖候选主键,A传递依赖候选主键

例:销售明细表----顾客编码、商品编码、销售单价、销售数量、销售金额非3NF

(这里设销售单价不依赖商品编码,可以降价、打折等)

原因:候选主键是顾客编码+商品编码,所有其它列都依赖于候选主键,但销售金额又依赖于

销售单价+销售数量,形成了销售金额-->销售单价+销售数量-->候选主键,成了传递依

赖关系。因此,此表不满足3NF。去掉销售金额就是3NF了。

至于BCNF以上基本就不适用了。NF太高需要大量连接查询,数据库的性能急剧下降,不可取。

数据库中的最小关系系统通常是指满足范式的关系模式。范式是一组规则,用于检查关系模式中的属性之间的依赖关系是否满足标准化的要求。一般来说,范式越高,关系模式的结构越严谨,数据冗余越少,数据的安全性和完整性也越高。

以下是判断数据库中最小关系系统的步骤:

1 根据实际需求设计关系模式,包括实体、属性、关系等。

2 对于每个关系模式,检查是否满足第一范式。第一范式要求每个属性都是原子性的,即不可再分解为更小的数据项。

3 检查是否满足第二范式。第二范式要求关系模式中的每个非主属性都完全依赖于主键,而不是依赖于主键的一部分。

4 检查是否满足第三范式。第三范式要求关系模式中的每个非主属性都不依赖于其他非主属性。

5 针对具体的数据应用场景和需求,可以考虑使用更高级别的范式,如BCNF、4NF、5NF等。

通过以上步骤,可以判断数据库中的关系模式是否满足最小关系系统的要求。如果不满足,需要进行设计和调整,以确保数据的准确性、一致性和完整性。

关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴德斯科范式(BCNF)、第四范式(4NF)和第五范式(5NF)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多要求的称为第二范式(2NF),其余范式以次类推。一般说来,数据库只需满足第三范式(3NF)就行了。 第一范式 无重复的列 第二范式 属性完全依赖于主键 第三范式 属性不能传递依赖于主属性(属性不依赖于其它非主键属性)

以上就是关于怎样区分关系数据库中的六个范式全部的内容,包括:怎样区分关系数据库中的六个范式、数据结构中的1范式,2范式,3范式,bc范式,4范式,5范式。怎么理解希望解释的直白些。、sql 范式 1NF=>2NF=>3NF=>BCNF=>4NF=>5NF 问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9367847.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存