三大范式:
答:范式可以避免数据冗余,减少数据库的空间,减轻维护数据完整性的麻烦。但是!!!!操作比较困难,因为需要多个表联系起来才能得到所需要的数据,并且!!!!范式越高性能就会越差!所以在一般项目中,用的最多的也就到3NF,性能好并且容易管理数据。
解释第一范式:上图案列,联系方式含有email和phone,这样就失去了【每一个属性都是原子项,不可分割】的要求。所以我们应该怎么办?详细分呗,将联系方式拆成电话+电子邮箱。
-
再介绍第二范式
-
第二范式解释:第二范式首先它是在第一范式的基础上不能存在部份依赖关系!!!,如上图所示,我们将学生和课程当作主键,如果学生和课程能 唯一 确定教材,那才算的上要求;但是我们这里只通过课程一项就确定了教材,这就叫做部份依赖,所以不满足。那怎么办?分成两个表。用课程单独对应教材。(例子虽然不太合适,但是我相信你对此已经有了解了。) -
再介绍第三范式
-
第三范式解释:我们假设 一个教师他就对应一个教师职称(举例而已!就像手纹能识别一个人,但是一个身份证也可以识别一个人,这里手纹指的是教师,身份证就是学生+课程,回归话题!!!),那教师依赖于学生+课程,而教师职称又依赖于老师,那这不就是纯纯的递归依赖?第三范式的任务是啥!!!干掉递归依赖!