关系型数据库三范式

版权声明:转载注明出处 https://blog.csdn.net/jy02268879/article/details/82152481

1NF:所有属性都是不可分的基本数据项

比如:

个人信息表中有字段:id,姓名,性别,地址。

如果还需要把地址拆分成:省、市、区。则不满足1NF的定义。

2NF:满足1NF,并且每个非主属性完全依赖于码

要求实体的属性完全依赖于主关键字。

所谓完全依赖是指不能存在仅依赖主关键字一部分的属性, 如果存在,那么这个属性和主关键字的这一部分应该分离出来形成
一个新的实体。

比如说学生成绩表中

主键 studentId、courseId

(studentId、courseId、姓名,性别,省、市、区、分数、院校id、院校地址、院校电话)

那么该表如果有只依赖studentId,而不依赖courseId的属性,比如学生个人信息,则应该把学生个人信息分离出来形成新的实体。

符合2NF的设计应该是

学生表:

(studentId、姓名,性别,省、市、区、院校id、院校地址、院校电话 )

学生成绩表:

(studentId、courseId、分数 )

3NF:满足2NF,不存在非主属性对码的传递函数依赖

上述学生表就需要拆

学生表:

(studentId、姓名,性别,省、市、区、院校id )

院校信息表

(院校id、院校地址、院校电话 )

猜你喜欢

转载自blog.csdn.net/jy02268879/article/details/82152481