考虑以下四个关系模式。对于每个模式,列出了所有非平凡的功能依赖性。带下划线的属性是各自的主键。
- 模式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)是正确的。
这个问题的测验