对于数据库中范式的理解

关系型数据库通过三大范式,建立冗余较小,结构合理的数据库。

以下是我对范式的一些理解,请大家指正。

1.第一范式。

第一范式是最基本的范式。其中的所有字段都是!不可再分!的原子。

例:我们访问一个学生在校的住址时如果要确定到床位,那就要如下表所示:

学生住宿信息表


学号

宿舍楼

宿舍号

床位

1610000001

3

121

1

1610000002

3

121

2

1610000003

3

121

3








如果我们要确定到床位,表中只到宿舍,那就不是第一范式。

2.第二范式。

第二范式是在第一范式的基础上更进一层。要确保其中每一列都与主键相关(一个表中只有一个主键)。

例:如下表,其中宿舍人数和主键学号不相关,不符合要求。

学生住宿信息表

学号

宿舍楼

宿舍号

床位

宿舍人数

1610000001

3

121

1

6

1610000002

3

121

2

6

1610000003

3

121

3

6

可以将宿舍人数分开到另一个表中形成两个表使其都满足第二范式。



学生住宿信息表

学号

宿舍楼

宿舍号

床位

1610000001

3

121

1

1610000002

3

121

2

1610000003

3

121

3






 


宿舍信息表

宿舍号

学号

宿舍楼

人数

121

1610000001

3

6

121

1610000002

3

6

121

1610000003

3

6

3.第三范式。

在第二范式的基础上更近一层。要确保每一列都要与主键!直接!相关。

例:如上图的宿舍信息表学号与主键不直接相关,应改为如下表:

宿舍信息表

宿舍号

宿舍楼

人数

121

3

6

121

3

6

121

3

6

想要对 范式理解透彻需要对具体的例子进行训练,只看概念是不够的。

猜你喜欢

转载自blog.csdn.net/qq_38497634/article/details/78975090