在了解范式之前我们先了解下数据库中关于码的概念
1.码
1.1 超码
能够唯一标识元组的某一属性或属性组,任何包含超码的超集也是超码,这里唯一标识元组可以简单的理解为根据某一个字段或几个字段的值,查询出某一行特定的数据
1.2 候选码=候选键
从超码中选出的最小的码,即其任何真子集都不能满足唯一性(确定一个元组)。即属性不可再删减。
1.3 主码=主键
从候选码中选出一个作为主码。
2.范式(NF)
范式:符合某一种级别的关系模式的集合,简而言之就数据库表设计的标准级别,范式有1NF,2NF,3NF,BCNF,4NF等,高级别的范式包含低级别的范式。数据库的设计一般到3NF或者BCNF即可。
2.1 1范式(1NF)
1范式:关系中的表的属性不可再分割。
举个简单的例子,有个学生表,有以下字段,sid,sname,address,sid为主键,sname为学生姓名,address为地址,地址的数据可能包括省份,城市,街道之类的。日后可能我们需要单独统计有个城市有多少学生之类的,而将这么多信息合成一个属性,即不符合第1范式,属性应该分割成省份,城市等多个字段,来满足业务要求。
2.2 2范式(2NF)
2范式:消除非主属性对候选键的部分函数依赖。即非主属性对候选键完全函数依赖
函数依赖:简单的说,如果对于每个x属性或属性组都有对应的确切的y值与之对应,则称Y函数依赖于x。记做 x->y
完全函数依赖:有x->y,但对于x的任意真子集都不存在x’->y,称之为完全函数依赖。比如有一张成绩表,

本文介绍了数据库的码和范式概念,详细讲解了1NF(第一范式)、2NF(第二范式)、3NF(第三范式)和BCNF(Boyce-Codd范式),并通过实例说明各范式的应用和作用,强调了数据库设计在性能和扩展性之间的平衡选择。
最低0.47元/天 解锁文章
8860

被折叠的 条评论
为什么被折叠?



