题目
有如下三个关系,其关系模式[1]如下: 学生 (学号, 姓名, 性别, 年龄, 所在系), 主码: 学号; 课程 (课程号, 课程名, 学分, 开课学期), 主码: 课程号; 选修 (学号, 课程号, 成绩), 主码: 学号+课程号。 这三个关系说明如下: 一个学生可以选修多门课程,一门课程可以被多个学生所选修,学生和课程是多对多关系。 问:选修关系中的学号和课程号必须是来自学生关系的学号和课程关系的课程号,下列描述正确的是A. 学生关系和选修关系均为被参照关系课程关系为参照关系B. 学生关系和课程关系均为参照关系选修关系为被参照关系C. 学生关系和课程关系均为被参照关系选修关系为参照关系D. 选修关系和课程关系均为被参照关系学生关系为参照关系
有如下三个关系,其关系模式[1]如下: 学生 (学号, 姓名, 性别, 年龄, 所在系), 主码: 学号; 课程 (课程号, 课程名, 学分, 开课学期), 主码: 课程号; 选修 (学号, 课程号, 成绩), 主码: 学号+课程号。 这三个关系说明如下: 一个学生可以选修多门课程,一门课程可以被多个学生所选修,学生和课程是多对多关系。 问:选修关系中的学号和课程号必须是来自学生关系的学号和课程关系的课程号,下列描述正确的是
A. 学生关系和选修关系均为被参照关系 课程关系为参照关系
B. 学生关系和课程关系均为参照关系 选修关系为被参照关系
C. 学生关系和课程关系均为被参照关系 选修关系为参照关系
D. 选修关系和课程关系均为被参照关系 学生关系为参照关系
题目解答
答案
C. 学生关系和课程关系均为被参照关系
选修关系为参照关系
解析
本题考查数据库中参照关系和被参照关系的概念。解题的关键在于理解参照关系和被参照关系的定义,即参照关系中的外码必须来自被参照关系的主码。
1. 明确参照关系和被参照关系的定义
在数据库中,若关系R1中的某个属性或属性组不是R1的主码,而是另一个关系R2的主码,则称该属性或属性组为R1的外码,此时R1称为参照关系,R2称为被参照关系。
2. 分析题目中的关系
- 已知学生关系(学号,姓名,性别,年龄,所在系),主码是学号。
- 课程关系(课程号,课程名,学分,开课学期),主码是课程号。
- 选修关系(学号,课程号,成绩),主码是学号 + 课程号。
- 并且选修关系中的学号和课程号必须分别来自学生关系的学号和课程关系的课程号。
3. 确定参照关系和被参照关系
- 对于选修关系中的学号,它不是选修关系的主码,而是学生关系的主码,所以选修关系是参照关系,学生关系是被参照关系。
- 对于选修关系中的课程号,它不是选修关系的主码,而是课程关系的主码,所以选修关系是参照关系,课程关系是被参照关系。
综上,学生关系和课程关系均为被参照关系,选修关系为参照关系。