数据库设计的三个参考范式。
现在所给出的三个参考范式值能够说是一种思路,在实际之中不可能完全按照设计范式的要求做。
一、第一范式(单表)
数据表中每一个列的内容不可再分。现在假设定义一个用户信息表,包含有如下字段:
所以此时联系方式列的内容依然可以再分,这样的设计就不符合于第一设计范式,合理的做法应该如下:
实际上第一范式的核心意义就在于使用常用的数据类型:NUMBER、DATE、VARCHAR2、CLOB
二、第二设计范式(多对多)
数据表中不存在非关键字段对任意一候选关键字段的部分函数依赖。
对于此概念有两个层次的解释:
1、先通过函数关系来进行描述,现在假设设计一张订单表
2、函数依赖指的是某几个字段的集合是否可以推倒出其他列的内容
如果要想更好的理解第二范式,那么最好是通过一个实际案例来说明,例如:现在定义一个学生选课系统,每个学生针对课程可以有一个成绩,于是此时按照第一范式设计
三、第三设计范式(一对多)
数据表之中不存在非关键字段对任意一候选关键字段传递函数依赖。
现在一个学校有多个学生,如果现在使用第一设计范式,学校信息重复,如果使用第二设计范式,可以描述出一个学校有多个学生,但同时又会描述出一个学生属于多个学校,那么此时就可以使用第三设计范式。
这就是之前一直在讲解的dept----emp关系。