别带我乱学了 2023-04-20 22:59 采纳率: 0%
浏览 14

关于范式的疑问,为什么是2NF?

1. 设有关系模式:学生修课(学号,姓名,所在系,性别,课程号,课程名,学分,成绩)。设一个学生可以选多门课程,一门课程可以被多名学生选。一个学生有唯一的所在系,每门课程有唯一的课程名和学分。每个学生对每门课程有唯一的成绩。
(1) 请指出此关系模式的候选码。
(2) 写出该关系模式的极小函数依赖集。
(3) 该关系模式属于第几范式?并简单说明理由。
(4) 若不是第三范式的,请将其规范化为第三范式关系模式,并指出分解后的每个关系模式的主码和外码。
答:(1)候选码:(学号,课程号)
(2)学号→姓名,学号→所在系,学号→性别,课程号→课程名,课程号→学分,
(学号,课程号)→成绩
(3)属于第二范式,因为存在部分函数依赖:
为什么属于第二范式?他有部分函数依赖,2NF不是消除了非主属性对主属性的部分函数依赖吗?学号→姓名这不是部分函数依赖吗?

  • 写回答

3条回答 默认 最新

  • 创意程序员 2023-04-21 09:01
    关注

    对于2NF,关系模式中的非主属性必须完全函数依赖于主键。在此关系模式中,学号是主键,但是存在非主属性部分函数依赖的情况,如学号→姓名,因此不满足2NF。但是,2NF并不要求消除所有的部分函数依赖,而是要求消除非主属性对主键的部分函数依赖。因此,该关系模式仍然属于2NF。
    因此,需要将关系模式进行规范化,将非主属性部分函数依赖于主键的属性拆分出来,得到以下两个关系模式:
    学生(学号, 姓名, 所在系, 性别)
    课程(课程号, 课程名, 学分)
    学生选课(学号, 课程号, 成绩)
    其中,学生和课程是主键,学生选课中的主键是(学号,课程号),学号和课程号分别是学生选课和学生、课程之间的外键。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月20日

悬赏问题

  • ¥15 java代码写在记事本上后在cmd上运行时无报错但又没生成文件
  • ¥15 关于#python#的问题:在跑ldsc数据整理的时候一直抱这种错误,要么--out识别不了参数,要么--merge-alleles识别不了参数(操作系统-linux)
  • ¥15 PPOCRLabel
  • ¥15 混合键合键合机对准标识
  • ¥100 现在不懂的是如何将当前的相机中的照片,作为纹理贴图,映射到扫描出的模型上
  • ¥15 魔霸ROG7 pro,win11.息屏后会显示黑屏,如图,如何解决?(关键词-重新启动)
  • ¥15 有没有人知道这是哪里出了问题啊?要怎么改呀?
  • ¥200 C++表格文件处理-悬赏
  • ¥15 Windows Server2016本地登录失败
  • ¥15 复合卡卡号轨道写入芯片卡