百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> 标准化历程主要为克制数据库逻辑构造中的什么?
分享文章到:

标准化历程主要为克制数据库逻辑构造中的什么?

发布时间:09/01 来源:未知 浏览: 关键词:

标准化历程主要为克制数据库逻辑构造中的插入非常、删除非常乃至冗余度大的缺陷。数据库标准化能够让数据库设计者更好地理解组织内部当前的数据构造,终究得到一系列的数据实体。数据库标准化通过对数据库表的设计,可以有效落低数据库冗余程度。

数据库标准化历程

关系数据库的标准化说的通俗一些就是对表的标准化。

标准化的必要性:

按照项目的需求,我们会创立响应的数据库表格来完成项目中的数据的储备。这已经成为做项目的牢固流程了,但是在真正的开端处置业务需求的时候,就会意识到本人的表格设定的不合理,致使数据的反复储备,插入非常,删除非常,更新非常等问题,这时就需要来从新的计划表格,既白费时间,又耗损人力财力,十分不划算,因此标准化是十分有必要的,所以今天就在这里教给大家标准表的办法。

在教标准化数据库办法此前,先给大家介绍知识:

关键知识点函数依靠

定义大概有些难以懂得,我在这里简便的说明一下:函数依靠描写的是两个汇合之间的一种映射关系,这种映射关系与函数是一样的,例如 y = x^2,在这里关于x来说,一个x就对应一个y值,但是不存在,一个x对应多种y值的状况,所以就可以说y函数依靠于x,然而关于y来说,存在一个y值对应多个x值的状况,所以说x并不函数依靠于y。这就是函数依靠。

接下来我们介绍几种非凡的函数依靠:

完全函数依靠

定义:

假如X->Y,并且关于任意一个X的真子集X’都不存在,X’->Y,那么我们就说 X->Y这种函数依靠属于完全函数依靠。

简便的说明一下: 函数z = x + y,关于z来说:z函数依靠于x和y,但是z并不独自依靠于x或独自依靠于y,这就说明z函数依靠于x和y的这种依靠就是完全函数依靠。

部分函数依靠:

定义:

假如X->Y,但是Y不完全依靠于X,则称这种依靠为部分完全依靠。 也就是说:函数z = x + 0y 是可以看成 ,也就是说z函数依靠于x和y,但是z又独自依靠于x,那么这就是部分函数依靠。

传递函数依靠:

定义:

假如X->Y, Y -> Z ,并且不成立,Y->X也不成立。则称Z传递函数依靠于X。

这个比力简便,函数组z = x^2, x = 2y可以化简为z = 4y ^2,很容易看出:z是函数依靠于x,x依靠于y,并且z->x不成立,这就是传递函数依靠。

关键知识点之二-----键

候选键:一个属性(字段)或一个属性组(多个字段)能够完全决议于关系模式(表)中的其他属性(字段)。也就是说其他属性(字段)完全依靠于该属性(字段)或属性组(多个字段)。

主键:假如候选键多于一个,则选中其中一个作为主键。被选做主键的属性或属性组在该关系模式(表)中的每一个元祖(行)中的值是不同意反复和取值为null的。

主属性:报完在任何一个候选键中的属性,称为主属性。假如候选键是由多个属性共同组成的,那么这些属性组中每一个属性都是主属性。

非主属性:不包括在任何键中的属性称为非主属性。

外键:某属性或属性组在当前关系模式(表)中不是主键,但是另一个关系模式(表)中充当主键的身份,则称该属性或属性组为外键。

在介绍完了上述的根本知识点之后,我们来开端学习数据库表的标准历程:

想要标准表,就第一需要一个标准,来衡量表可否已经标准。这个标准就是----范式。

范式一共有六种:第一范式(1NF),第二范式(2NF),第三范式(3NF),BC范式(BCNF),第四范式(4NF),第五范式(5NF)。

在上面六中范式中,在一样的状况下我们需要将表标准到BCNF就已经十分完善了,在真正的项目中其实只需要到达3NF就足够了。

接下来重点介绍前4中范式:

第一范式:关系模式R中的所有属性都是不成分的数据项。

简便来说就是只要你能把表建出来,这个表就已经知足了第一范式了。例如student表(student_id, course_id, student_name, age, sex, grade, sdept, sdept_director),在这个表中很明显grade这一项是受student_id, course_id,共同决议的,所以应当让这两项结合做为主键。

第二范式:在知足第一范式的根基上,知足非主属性都完全依靠于R的主键。

这就需要用到前面讲的内容了,要推断非主属性可否完全依靠于主键。假如不知足就重 更换表的构造。例如student表(student_id, course_id, student_name, age, sex, grade, sdept_id, sdept_director)由于student_id, course_id两项结合做为主键,但是关于其他的字段name, age, sex这些 属性来说,它们是完全依 赖于student_id这一属性的,所以它们关于student_id, course_id共同作为主键是部分 依靠的。这就不知足第二范式的定义了,所以应当把 grade拿出来,将这一个大表拆成 两份小表:student(student_id, name, age, sex, sdept_id, sdept_director), student_score(student_id, course_id, grade);

第三范式:在知足第二范式的状况下去除传递依靠。

例如:student表(student_id, student_name, age, sex, sdept, sdept_director),很明显每一个专业决议一个专业主任,所以sdept_director传递依靠于student_id,所以应当再拆分一个表student(student_id, student_name, age, sex)和sdept(sdept_id, sdept_name, sdept_director),这样就知足了第三范式。

BC范式:在知足第三范式的状况下,再知足一下三点:

1、所有的主属性完全依靠于其他不包括本人的候选键;
2、所有的非主属性完全依靠于每一个候选键;
3、没有任何属性完全函数依靠于任何一组非主属性。

此前的三个范式都是对非主属性停止各种束缚,BC范式是在他们根基上,再对主属性停止束缚,解决了主属性之间的部分依靠的问题,乃至不存在主属性完全依靠于非主属性的问题。 我们的student表 student(student_id, student_name, age, sex),主键是student_id,所以主属性是student_id,很明显前两条都已经知足,由于学生的姓名大概反复,所以student_id与student_name之间没有函数依靠关系,所以student表知足BC范式。

以上就是数据库的标准化历程

相关引荐:《mysql教程》

以上就是标准化历程主要为克制数据库逻辑构造中的什么?的具体内容,更多请关注百分百源码网其它相关文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有153人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板