📜  门| GATE CS 2018 |简体中文第64章

📅  最后修改于: 2021-06-29 03:36:09             🧑  作者: Mango

考虑以下四个关系模式。对于每个模式,列出了所有非平凡的功能依赖性。带下划线的属性是各自的主键。

  • 模式I:注册( rollno ,课程)
    “课程”字段是包含学生已注册的课程集的集合值属性。
    非平凡的功能依赖
    罗尔诺→课程
  • 模式II:注册( rollno,coursid ,电子邮件)
    非平凡的功能依赖性:
    rollno,课程ID→电子邮件
    电子邮件→rollno
  • 方案III:注册( rollno,courseid ,分数,成绩)
    非平凡的功能依赖性:
    Rollno,课程编号,→标记,等级
    标记→等级
  • 模式IV:注册( rollno,courseid ,学分)
    非平凡的功能依赖性:
    罗尔诺,课程编号→学分
    学员→学分

上面的哪个关系模式是在3NF中而不在BCNF中?

(A)模式I
(B)模式二
(C)模式III
(D)模式IV答案: (B)
解释:

  • 模式I:注册( rollno ,课程)
    “课程”字段是包含学生已注册的课程集的集合值属性。
    非平凡的功能依赖
    罗尔诺→课程
    由于rollno是主键,因此该关系在BCNF和3 NF中都存在。
  • 模式II:注册( rollno,coursid ,电子邮件)
    非平凡的功能依赖性:
    rollno,课程ID→电子邮件
    电子邮件→rollno
    由于{ rollno,coursid }是主键,因此rollno和coursid是主要属性。电子邮件是非主要属性。
    功能缺陷(FD) rollno,courseid→电子邮件位于BCNF和3NF中,但是FD电子邮件→rollno违反了BCNF的规则,因为电子邮件不是超级密钥。但是它满足了3 NF的规则,因为rollno是主要属性。
    因此,总的来说,这种关系是在3 NF中,而在BCNF中则不是。
  • 方案III:注册( rollno,courseid ,分数,成绩)
    非平凡的功能依赖性:
    Rollno,课程编号,→标记,等级
    标记→等级
    由于rollno,Courseid是主键,所以rollno和Courseid是主要属性,而mark和grade是非主要属性。
    FD rollno,课程编号,→标记,等级满足BCNF以及3 NF。
    FD标记→等级不能满足3 NF的要求,因为nither标记是超键,也不是等级是主要属性。因此,aslo不能出现在BCNF中。
    因此,总体而言,该关系不是在3 NF中,也不在BCNF中,而是不违反2 NF的规则,因此只能在2 NF中。
  • 模式IV:注册( rollno,courseid ,学分)
    非平凡的功能依赖关系:
    罗尔诺,课程编号→学分
    学员→学分
    由于rollno,courseid是主键,因此rollno和courseid是主要属性,而credit是非主要属性。
    FD rollno,课程编号→学分满足BCNF以及3 NF。
    FD课程编号→信用违反2 NF的规则,因此不能在2 NF中。
    因此,总体而言,这不在2 NF,3 NF和BCNF中。但这仅在1 NF中。

因此,仅方案II位于3 NF中,而不在BCNF中。
选项(B)是正确的。
这个问题的测验