首页 问答 数据库设计中的“三范式”(Third Normal Form,简称3NF)是关系数据库规范化的核心理论
问题详情
  1. 第一范式(1NF):

    • 确保每列都是原子性的,即每一列都不可再分。

    • 表中的每一列都包含单一的值,而不是集合或数组。

  2. 第二范式(2NF):

    • 必须满足第一范式。

    • 所有非主键列都必须完全依赖于整个主键,而不是依赖于主键的一部分(对于复合主键的情况)。

  3. 第三范式(3NF):

    • 必须满足第二范式。

    • 所有非主键列都必须直接依赖于主键,而不是依赖于其他非主键列(即没有传递依赖)。

回答

假设我们有一个学生选课的表,包含以下字段:学号、学生姓名、课程号、课程名称、成绩。

这个表的主键是(学号,课程号),因为一个学生可以选择多门课程,一门课程可以被多个学生选择。

检查范式:

1NF:每个字段都是原子性的,满足。

2NF:非主键字段(学生姓名、课程名称、成绩)必须完全依赖于主键。但是,学生姓名只依赖于学号,而不依赖于课程号;课程名称只依赖于课程号。因此,存在部分依赖,不满足2NF。

为了满足2NF,我们可以将表拆分为:

  • 学生表(学号,学生姓名)

  • 课程表(课程号,课程名称)

  • 选课表(学号,课程号,成绩)

现在,每个表都满足2NF。

3NF:检查每个表是否满足3NF,即不存在传递依赖。

在学生表中,学号是主键,学生姓名直接依赖于学号,没有传递依赖,满足3NF。
在课程表中,课程号是主键,课程名称直接依赖于课程号,满足3NF。
在选课表中,主键是(学号,课程号),成绩依赖于整个主键,满足3NF。

因此,拆分后的表满足3NF。

版权:言论仅代表个人观点,不代表官方立场。转载请注明出处:https://www.stntk.com/question/215.html

发表评论
暂无评论

还没有评论呢,快来抢沙发~

点击联系客服

在线时间:8:00-16:00

客服QQ

70068002

客服电话

400-888-8888

客服邮箱

70068002@qq.com

扫描二维码

关注微信公众号

扫描二维码

手机访问本站