MySQL基础语法,mysql3大范式

MySQL基础语法,mysql3大范式,MySQL学习之三大范式详解小白篇

本文详细介绍了MYSQL数据库学习中三种范式的规则。有需要的朋友可以借鉴一下,希望对大家的数据库学习有帮助。

: 目录

1.范式基础1.1范式2的概念。三种范式2.1范式的概念2.2三种范式的例子1。第一范式的变换2。第二范式的转变。第三范式的转变

1.范式基础

1.1范式的概念

目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、Bath-Cod范式(BCNF)、第四范式(4NF)和第五范式(5NF)。

当然,一般情况下,满足前三种范式,我们就可以设计出更标准化的数据库。

要遵循后一种范式,首先要遵循前一种范式的要求。例如,第二范式必须遵循第一范式,第三范式必须遵循第二范式,等等。

2.三大范式

2.1三大范式概念

第一范式(1NF):每列不能拆分。

第二范式(2NF):在第一范式的基础上,非主键列完全依赖于主键,但不是主键的一部分。

第三范式(3NF):在第二范式的基础上,非主键列只依赖主键,不依赖其他非主键。

2.2三大范式举例

例如,如果我们有一个表,后面的示例将通过三种范例将该表转换为标准表:

1.进行第一范式的改造

第一范式(1NF):

每个列都不可以再拆分

我们可以看到表中有一列是可以细分的,就是部门。因此,把他变换成第一范式就变成了:

2.进行第二范式的改造

第二范式(2NF):在第一范式的基础上,非主键列完全依赖于主键,但不是主键的一部分。

这第二种范式很难理解,所以我们先来理解几个概念:

1.函数依赖:如果唯一的B属性的值可以通过A属性(属性组)来确定,那么B依赖于A,比如上图中的名字就完全依赖于学号。

2.完全函数依赖:如果A是一个属性组,B的属性值的确定需要依赖于属性组A中的所有属性值.分组指的是多个字段,所以比如我们想知道一个分数,就必须依靠学号和课程名称这两个属性来确定一个分数,而其他属性不能确定某个分数。

3.部分函数依赖:如果A是一个属性组,那么B的属性值的确定依赖于属性组A的一些字段,比如学号和课程名称是一个属性组,那么只需要学号就可以确定学生姓名。

4.传递函数依赖:如果使用属性A(属性组),可以确定属性B的唯一值,然后由属性B的值确定属性C的唯一值,比如一个学号确定一个部门名称,一个部门名称对应一个部门负责人。

5.主键:在一个表中,如果一个属性或属性组完全依赖于其他所有属性,那么这个属性就叫做这个代码的表,比如上图中由学号和课程名称组成的属性组。

事实上,第二个范式是,它也可以被理解为

基于第一范式消除非主键对主键的部分依赖。

那么我们上图中的主键就是学号和课程名称组成的属性组。对于上图,我们可以看到除了分数之外的一切都部分依赖于主键,所以我们可以进行如下图所示的修正:

第二范式转换后,一个表被分成两个表,于是我们发现第二范式实际上为我们消除了很多冗余的部分。比如转型前,张无忌的部门负责人名字在表中出现了三次,而转型后的两个表中只出现了一次。

3.进行第三范式的改造

第三范式(3NF):在第二范式的基础上,非主键列只依赖主键,不依赖其他非主键。

根据第二点中提到的概念,将其修改为:

以上是MySQL学习三大范式的细节。关于MySQL三大范式的更多信息,请关注我们的其他相关文章!

MySQL基础语法,mysql3大范式