当前位置:首页 > MySQL教程 > 正文内容

数据库四个范式你又相识若干【MySQL教程】,范式,mysql

搜教程4年前 (2019-12-01)MySQL教程153
本篇文章给人人带来的内容是关于数据库四个范式,有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。

1、1NF(第一范式)

第一范式是指数据库表中的每一列都是不可分割的基础数据项,统一列中不能有多个值,即实体中的某个属性不能有多个值或许不能有反复的属性。

假如涌现反复的属性,就能够须要定义一个新的实体,新的实体由反复的属性构成,新实体与原实体之间为一对多关联。第一范式的形式请求属性值不可再分裂成更小部份,即属性项不能是属性组合或是由一组属性构成。

简而言之,第一范式就是无反复的列。比方,由“职工号”“姓名”“电话号码”构成的表(一个人能够有一部办公电话和一部移动电话),这时候将其范例化为1NF能够将电话号码分为“办公电话”和“移动电话”两个属性,即职工(职工号,姓名,办公电话,移动电话)。

2、2NF(第二范式)

第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必需先满足第一范式(1NF)。第二范式(2NF)请求数据库表中的每一个实例或行必需能够被唯一地辨别。为完成辨别一般须要为表加上一个列,以存储各个实例的唯一标识。

假如关联模子R为第一范式,而且R中的每一个非主属性完整函数依靠于R的某个候选键,则称R为第二范式形式(假如A是关联形式R的候选键的一个属性,则称A是R的主属性,不然称A是R的非主属性)。

比方,在选课关联表(学号,课程号,结果,学分),症结字为组合症结字(学号,课程号),但由于非主属性学分仅依靠于课程号,对症结字(学号,课程号)只是部份依靠,而不是完整依靠,因而此种体式格局会致使数据冗余以及更新非常等题目,解决办法是将其分为两个关联形式:门生表(学号,课程号,分数)和课程表(课程号,学分),新关联经由过程门生表中的外症结字课程号联络,在须要时举行衔接。

3、3NF(第三范式)

假如关联模子R是第二范式,且每一个非主属性都不通报依靠于R的候选键,则称R是第三范式的形式。

以门生表(学号,姓名,课程号,结果)为例,个中门生姓名无重名,所以该表有两个候选码(学号,课程号)和(姓名,课程号),故存在函数依靠:学号——>姓名,(学号,课程号)——>结果,唯一的非主属性结果对码不存在部份依靠,也不存在通报依靠,所以属性属于第三范式。

4、BCNF(BC范式)

它构建在第三范式的基础上,假如关联模子R是第一范式,且每一个属性都不通报依靠于R的候选键,那末称R为BCNF的形式。

假定堆栈治理关联表(堆栈号,存储物品号,治理员号,数目),满足一个治理员只在一个堆栈事情;一个堆栈能够存储多种物品,则存在以下关联:

(堆栈号,存储物品号)——>(治理员号,数目)

(治理员号,存储物品号)——>(堆栈号,数目)

所以,(堆栈号,存储物品号)和(治理员号,存储物品号)都是堆栈治理关联表的候选码,表中唯一非症结字段为数目,它是相符第三范式的。然则,由于存在以下决议关联:

(堆栈号)——>(治理员号)

(治理员号)——>(堆栈号)

即存在症结字段决议症结字段的状况,因而其不相符BCNF。把堆栈治理关联表分解为两个关联表堆栈治理表(堆栈号,治理员号)和堆栈表(堆栈号,存储物品号,数目),如许这个数据库表是相符BCNF的,并消除了删除非常、插进去非常和更新非常。

5、4NF(第四范式)

设R是一个关联模子,D是R上的多值依靠鸠合。假如D中存在凡多值依靠X->Y时,X必是R的超键,那末称R是第四范式的形式。

比方,职工表(职工编号,职工孩子姓名,职工选修课程),在这个表中,统一个职工能够会有多个职工孩子姓名,一样,统一个职工也能够会有多个职工选修课程,即这里存在着多值现实,不相符第四范式。假如要相符第四范式,只须要将上表分为两个表,使它们只要一个多值现实,比方职工表一(职工编号,职工孩子姓名),职工表二(职工编号,职工选修课程),两个表都只要一个多值现实,所以相符第四范式。

1 、第一范式(1NF)
在任何一个关联数据库中,第一范式(1NF)是对关联形式的基础请求,不满足第一范式(1NF)的数据库就不是关联数据库。
所谓第一范式(1NF)是指数据库表的每一列(即每一个属性)都是不可分割的基础数据项,统一列中不能有多个值,即实体中的某个属性不能有多个值或许不能有反复的属性。简而言之,第一范式就是无反复的列。
2、 第二范式(2NF)
第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必需先满足第一范式(1NF)。第二范式(2NF)请求数据库表中的每一个实例或行必需能够被唯一地辨别。为完成辨别一般须要为表加上一个列,以存储各个实例的唯一标识。员工信息表中加上了员工编号(emp_id)列,由于每一个员工的员工编号是唯一的,因而每一个员工能够被唯一辨别。这个唯一属性列被称为主症结字或主键、主码。
第二范式(2NF)请求实体的属性完整依靠于主症结字。所谓完整依靠是指不能存在仅依靠主症结字一部份的属性,假如存在,那末这个属性和主症结字的这一部份应当分离出来构成一个新的实体,新实体与原实体之间是一对多的关联。为完成辨别一般须要为表加上一个列,以存储各个实例的唯一标识。简而言之,第二范式就黑白主属性依靠于主症结字。
3 、第三范式(3NF)
满足第三范式(3NF)必需先满足第二范式(2NF)。在满足第二范式的基础上,切不存在通报函数依靠,那末就是第三范式。简而言之,第三范式就是属性不依靠于别的非主属性。

以上就是数据库四个范式你又相识若干的细致内容,更多请关注ki4网别的相干文章!

扫描二维码推送至手机访问。

版权声明:本文由搜教程网发布,如需转载请注明出处。

本文链接:https://www.sojiaocheng.cn/15571.html

标签: 范式mysql
分享给朋友:

“数据库四个范式你又相识若干【MySQL教程】,范式,mysql” 的相关文章

cookie属性和要领剖析【MySQL教程】,cookie,ie,解析

cookie属性和要领剖析【MySQL教程】,cookie,ie,解析

cookie属性详解 在chrome掌握台中的resources选项卡中能够看到cookie的信息。 一个域名下面能够存在着很多个cookie对象。 name字段为一个cookie的称号。 value字段为一个cookie的值。 domain字段为能够接见此cookie的域名。...

MySQL存储历程 游标 错误处理的示例代码【MySQL教程】,MySQL,错误,游标

MySQL存储历程 游标 错误处理的示例代码 --set_account_data 从新生成用户编号 BEGIN DECLARE temp_id INT(8); /*用户id*/ DECLARE t...

MySQL ODBC 3.51 Driver设置时涌现Access Denied的问题解决【MySQL教程】,Driver,MySQL,3.51

MySQL ODBC 3.51 Driver设置时涌现Access Denied的问题解决【MySQL教程】,Driver,MySQL,3.51

MySQL ODBC 3.51 Driver - Access Denied 同事反应在应用效劳器上设置MySQL ODBC 3.51 Drive时,测试衔接MySQL数据库时报下面毛病: ERROR [HYT00] [MySQL][ODBC 3.51 Driver]Access d...

MySQL挑选适宜的引擎及引擎转换的详解【MySQL教程】,MySQL,引擎,选择

我们怎样挑选适宜的引擎?这里简朴归结一句话:“ 除非须要用到某些InnoDB不具备的特征,而且没有其他要领能够替换,不然都应该优先挑选InnoDB引擎。” 除非万不得已,不然不发起夹杂运用多种存储引擎,不然能够带来一系列庞杂的题目以及一些潜伏的BUG。 运用差别引擎斟酌的几大要素:...

怎样竖立可打印中文的数据库【MySQL教程】,数据库,中文,打印

平常的数据库的字符型数据的编码都是 latinl,这是不支撑中文的 而支撑中文的字符编码是utf-8和gbk 要想让数据库里的表能够显现中文就必须在竖立数据库的时刻指定字符编码 1 create database bb charset=utf8; 或许 1 1 create d...

MySQL表数据文件破坏致使数据库没法启动详解【MySQL教程】,MySQL,导致,损坏

一、题目日记 2017-08-31 14:18:05 4122 [Note] InnoDB: Database was not shutdown normally! 2017-08-31 14:18:05 4122 [Note] InnoDB: Starting crash recovery...