发布网友
共2个回答
懂视网
表2 不符合第二范式的例子:
学号 | 姓名 | 年龄 | 课程名称 | 成绩 | 学分 |
因为学生有多门课程,所以把学号和课程名称作为表的联合主键。该表姓名、年龄仅依赖主关键字一部分的属性学号,成绩、学分仅依赖主关键字一部分的属性课程名称,不符合第二范式。
这个表明显说明了两个事务:学生信息, 课程信息;
存在问题:
修正:
表2.1 学生
学号 | 姓名 | 年龄 |
表2.2 课程
课程名称 | 学分 |
表2.3 选课关系
学号 | 课程名称 | 成绩 |
满足第2范式只消除了插入异常。
表3 不符合第三范式的例子:
学号 | 姓名 | 年龄 | 所在学院 | 学院联系电话 |
关键字为单一关键字"学号";
存在依赖传递: (学号) → (所在学院) → (学院地点, 学院电话)
存在问题:
修正:
表3.1 学生
学号 | 姓名 | 年龄 | 所在学院 |
表3.2 学院
所在学院 | 学院联系电话 |
数据库三范式
标签:
热心网友
数据库三范式如下:
第一范式(1NF):强调的是列的原子性,即数据库表的每一列都是不可分割的原子数据项。
第二范式(2NF):要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性。(在1NF基础上消除非主属性对主键的部分函数依赖)
第三范式(3NF):任何非主属性不依赖于其它非主属性。(在2NF基础上消除传递依赖)