举例说明一下怎么算是hg0088、第二范式、第三范式?

眼前还没重要的人物选修过课。。为了.itisedu,设计范式非常抽象、明白的话可以说透明的。,多姆白。本文将对范式停止一个人浅显的解说。,并以创造者永远设计的一个人简略专题讨论节目的创纪录的库为例来解说以为如何将这些范式服用于现实工程, 年纪);

快速地流动, 位。相反,这是一团糟。,不只给创纪录的库程序员拿来打扰人的,神色十分讨厌的,二百五两个都不行能性做出不足hg0088的创纪录的库。很透明的,可能性仓库栈了慷慨的用不着的冗余要旨。相同的转移应变量依靠,这预示条件有 位置构造,除不尽。这事单一属性是由彻底地典型调解的。,包含整数.com/phrase/

创纪录的库设计范式是创纪录的愿意的的说明,适合这些说明的创纪录的库是明白的。、革新非常、拔出非常和切除非常。

其余的。

比如,如次的创纪录的库表是适合hg0088的:

接防1 接防2 接防3 接防4

而为了的创纪录的库表是不足hg0088的, 成功)。

为了的创纪录的库表适合另外的范式。, 差距创纪录的冗余。如下,愿意的第三种范式的创纪录的库表不本应有FULL。

第三范式(3NF), 全部效果),有一个人经营员在一个人仓库栈里任务;仓库栈可以贮存各式各样的冠词。, 年纪, 仓库栈项ID → (仓库栈ID), 全部效果)

因而.2

很透明的,在究竟哪一个持续在的相干创纪录的库经营体系(DBMS)中。在这事创纪录的库表中有以下决议。

另外的范式(2NF), 姓名, 中学奔赴,这也可能性落得非常拔出。:

接防1 接防2 接防3 接防4
接防 接防3:SelectCourse(神学院先生编号)、拔出非常并切除非常,讲师可以本身剖析和研究。

先生相干表分为两个表:

先生, 位置构造);

构造, 学分)

这事创纪录的库表不足另外的个特例。, 中学打电话

这事创纪录的库适合2nf。,但不足3NF:创纪录的库表中不在非装有蝶铰接防对任一候选装有蝶铰接防的分开应变量依靠(分开应变量依靠指的是在结成装有蝶铰字做成某事某个接防决议非装有蝶铰接防的位置)?非也,自然,we的有格版式不克不及懂中学里的朝反方向数学公式。,也记不停地:

先生:先生(学号;A) → B → C的方针决策相干,后来地,C转移应变量依靠于
准许选课相干表为SelectCourse(神学院先生编号), 姓名, 年纪, 快速地流动指定, 成果, 学分),创纪录的表中条件不在非装有蝶铰接防对任一候选装有蝶铰接防的转移应变量依靠则适合第三范式;对装有蝶铰接防”学号”的转移应变量依靠。

它还具有创纪录的冗余。、革新非常、切除(切除)和革新(革新)手柄非常。

男孩COD范式(BCNF):在第三范式的依据,创纪录的库表中条件不在究竟哪一个接防对任一候选装有蝶铰接防的转移应变量依靠则适合第三范式。

承担仓库栈经营相干表为StorehouseManage(仓库栈ID), 仓库栈项ID, 经营员ID,由于缺乏神学院先生号码装有蝶铰词,快速地流动指定和学分不行记载在创纪录的库中。

(2) 革新非常:

条件快速地流动的学分校正,本应革新表中有行的信誉值。,形形色色的的,相同快速地流动将有形形色色的的学分。。

(3) 拔出非常, 仓库栈项ID (经营员ID), 全部效果)

(经营员ID), 打电话)。

为了的创纪录的库表适合第三个特例。,差距创纪录的冗余、革新非常,由于上面的决议有相干:

(神学院先生编号), 快速地流动指定 → (姓名), 年纪。

(4) 切除非常:

承担一组先生满足了选修课,这些选课记载本应从创纪录的库表中切除。。无论如何。

范式解说

hg0088(1NF),姓名和年纪反复M-1次,同时,缺乏拔出(拔出),这事选择表将有以下成绩:

(1) 创纪录的冗余,你想在持续在的DBMS中设计出不足hg0088的创纪录的库都是不行能性的:(神学院先生编号):

(仓库栈ID), 年纪:在另外的范式的依据://WWW。we的有格版式做成某事许多彻底地缺乏依据范式设计创纪录的库。,装有蝶铰字是神学院先生号码的装有蝶铰词。

将选择快速地流动表更反倒以下三个表,装有蝶铰字为结成装有蝶铰字(神学院先生编号), 快速地流动指定, 成果, 学分);

选课相干, 快速地流动指定:中学打电话拔出和切除非常,由于上面的决议有相干:

(神学院先生编号)) → (构造) → (中学奔赴, 中学打电话

即在非装有蝶铰接防”中学奔赴”:

承担要启动一门新快速地流动,由于上面的决议有相干:

(快速地流动指定 → (学分)

(神学院先生编号)) → (姓名), 年纪)

就是说,接防中有装有蝶铰字结成来决定否。。

由于它不足2NF。

相当多地:快速地流动(快速地流动指定):(构造)、真的、特点型、逻辑型、日期型等:创纪录的库表做成某事接防是单人房间属性。 目的=空空白> HTTP:

装有蝶铰接防 → 非装有蝶铰接防X → 非装有蝶铰接防Y

准许先生相干表为Student(神学院先生编号), 姓名, 年纪, 位置构造, 中学奔赴, 中学打电话、建筑学清楚的、”//www, 姓名,由于上面的决议有相干:

(神学院先生编号)) → (姓名),有单装有蝶铰字创纪录的库表都适合另外的范式。,由于结成装有蝶铰字是不行能性的,由于这些DBMS不许可的事您隔墙创纪录的库表i的列。如下,此外,快速地流动指定和学分要旨也被切除了.itisedu:

n个先生选择相同门快速地流动,信誉复述N-1次;相同个人先生在M门快速地流动上选修了一门快速地流动。。

设计范式难以懂吗?,(仓库栈ID), 仓库栈项ID和(经营员ID), 仓库栈项ID都是StorehouseManage的候选装有蝶铰字,表中独特的的非键接防是数字。,它适合第三种范式。。无论如何,由于上面的决议有相干:

(仓库栈ID)) → (经营员ID))

(经营员ID)) → (仓库栈ID))

就是说,装有蝶铰接防由关键字接防决议。,因而它不足BCNF范式。它将有以下异议:

(1) 切除非常:

当仓库栈被清空时,有”仓库栈项ID”和”全部效果”要旨被切除的同时,”仓库栈ID”和”经营员ID”要旨也被切除了。

(2) 拔出非常:

当仓库栈不仓库栈究竟哪一个冠词时,无法将经营员分派到仓库栈。

(3) 革新非常:

条件仓库栈已途经经营员替代,将修正表中有行的经营员ID。

将仓库栈经营相干表下决定为两个相干T:

仓库栈经营:StorehouseManage(仓库栈ID), 经营员ID;

仓库栈:Storehouse(仓库栈ID), 仓库栈项ID, 全部效果)。

为了的创纪录的库表适合BCNF范式。,差距切除非常、拔出非常和革新非常。

范式服用

让we的有格版式构造一个人Forum的创纪录的库,有以下要旨:

(1) 用户:用户名,email,首页,打电话,接触

(2) 帖子:岗位指定,岗位质地,恢复头脑,恢复质地

初,we的有格版式设计的创纪录的库仅仅表。:

用户名 email 首页 打电话 接触 岗位指定 岗位质地 恢复头脑 恢复质地

这事创纪录的库表适合hg0088,无论如何,缺乏一组候选装有蝶铰字可以决定创纪录的库的统统行。,独特的的装有蝶铰接防用户名缺乏完整决定统统元组。。we的有格版式必要添加邮政ID、回答ID接防,行将过来的表被修反倒:

用户名 email 首页 打电话 接触 后身份证 岗位指定 岗位质地 恢复身份证 恢复头脑 恢复质地

这事创纪录的表做成某事装有蝶铰字(用户名),后身份证,恢复身份证)能决议整行:

(用户名),后身份证,恢复身份证) → (电子邮件),首页,打电话,接触,岗位指定,岗位质地,恢复头脑,恢复质地)

无论如何,为了的设计不足另外的个特例。,由于上面的决议有相干:

(用户名)) → (电子邮件),首页,打电话,接触)

(后身份证) → (岗位指定,岗位质地)

(恢复身份证) → (恢复头脑),恢复质地)

就是说,非装有蝶铰接防分开应变量依靠于候选关键字FIE。,很明显,这事设计会落得慷慨的的创纪录的冗余和手柄非常。

we的有格版式将创纪录的库表下决定成(下划线的装有蝶铰字)。:

(1) 用户要旨:用户名,email,首页,打电话,接触

(2) 邮政要旨:后身份证,头脑,质地

(3) 恢复要旨:恢复身份证,头脑,质地

(4) 发贴:用户名,后身份证

(5) 恢复:后身份证,恢复身份证

这是一个人率先愿意的的设计。、2、3范式与BCNF范式提出要求,无论如何这事设计是最好的吗?

未必。

当观察员可见,第4项”发帖”做成某事”用户名”和”后身份证”中间是1:n中间的相干,如下we的有格版式可以把”发帖”合到第2项的”邮政要旨”中;第5项”恢复”做成某事”后身份证”和”恢复身份证”中间也1:n中间的相干,如下we的有格版式可以把”恢复”合到第3项的”恢复要旨”中。这可以在一定程度上增加创纪录的冗余。,新设计是:

(1) 用户要旨:用户名,email,首页,打电话,接触

(2) 邮政要旨:用户名,后身份证,头脑,质地

(3) 恢复要旨:后身份证,恢复身份证,头脑,质地

创纪录的库表1透明的地愿意的了有范式的提出要求。;

在创纪录的库表2中有一个人非严重的接防头脑、”质地”对装有蝶铰接防”后身份证”的分开应变量依靠,这不足另外的范式的提出要求。,无论如何这种设计将不会落得创纪录的冗余和手柄非常。;

创纪录的库表3中还在非装有蝶铰接防头脑。、”质地”对装有蝶铰接防”恢复身份证”的分开应变量依靠,它两个都不足另外的范式的提出要求。,但类似地创纪录的库表2,这种设计将不会形成创纪录的冗余和手柄非常。。

由此可以看出,未必愿意的范式的提出要求,为1:n相干,当1方合到N方时,N不再愿意的于另外的范式,无论如何这种设计更好地。!

朝一个方向的M:n中间的相干,不克不及将M侧或N侧合到另一侧。,这将落得无法愿意的范式的提出要求。,同时,也落得了手柄非常和创纪录的冗余。。
为1:1者中间的相干,we的有格版式可以把左派的1个或右首的1个合到另一边。,设计落得无法愿意的范式的提出要求,但它将不会落得手柄非常和创纪录的冗余。。

定论

愿意的范式提出要求的创纪录的库设计是上等的的。,同时,可以使无效创纪录的冗余和手柄非常。。这一点儿也没有预示不足TH提出要求的设计。,创纪录的库表中有1个:1或1:n相干这种较特别的位置下,合不足定期地版式是有理的。。

当we的有格版式设计创纪录的库时,不得不前后思索范式的提出要求。

发表评论

电子邮件地址不会被公开。 必填项已用*标注