单选题
基于如下两个关系S和SC。
S(sno,sname,age),主码为sno,各属性含义依次为学号、姓名、年龄。
sno | sname | age |
001 | Tom | 20 |
002 | Justin | 19 |
003 | Bill | 21 |
004 | Susan | 20 |
…… | …… | …… |
SC(sno,cno,grade),各属性含义依次为学号、课程号、分数。
sno | cno | grade |
001 | c1 | 80 |
001 | c2 | 91 |
002 | c2 | 75 |
002 | c3 | 78 |
…… | …… | …… |
单选题
假设一个学生可以选修多门课程,而一门课程也可以被多个学生选修,则关系SC的主码是
A) sno B) eno C) (sno,cno) D) (sno,cno,grade)
【正确答案】
C
【答案解析】[解析] 在表SC中,无论是sno还是cno都无法单一地去区别记录,只有(sno,cno)能够唯一的识别记录,充当主码。
单选题
下列关于数据完整性的描述中,错误的是
A) 为了保证实体完整性,关系SC中的sno和cno均不能为空值(NULL)
B) 任意删除关系SC中的元组不会破坏参照完整性规则
C) 任意删除关系S中的元组不会破坏参照完整性规则
D) 更新关系S中的元组有可能破坏参照完整性规则
【正确答案】
C
【答案解析】[解析] 参照完整性的意思是,如果一个表包含一个外键列,那么会发现这个列中的每一个值(除了空,如果允许为空)都在关联表或参照表的主键里。如果删除S表中的元组,包含外键列的表SC在这个列中的每一个值并不都在关联表或参照表的主键里,因为有的已经被删除。S表中是以sno为主码,若任意删除某元组,即删除了某位学生的学号信息,势必会产生参照完整性的不完整。