执行SQL语句:SELECT * FROM R WHERE sno IN (SELECT sno FROM S WHERE cno=“c1”)的结果中的元数和元组数分别应是 当删除R中某个学生的记录时,要求同时删除该学生的选课信息。则在定义S的外键时应使

admin2007-05-27  42

问题 执行SQL语句:SELECT * FROM R WHERE sno IN (SELECT sno FROM S WHERE cno=“c1”)的结果中的元数和元组数分别应是
当删除R中某个学生的记录时,要求同时删除该学生的选课信息。则在定义S的外键时应使用的短语是

选项 A、ON DELETE CASCADES
B、ON DEL ETE RESTRICTED
C、ON UPDATE CASCADES
D、ON UPDATE RESTRICTED

答案A

解析 当关系中的某个属性(或属性组)虽然不是该关系的主键或只是主键的一部分,但却是另一个关系的主键时,称该属性(或属性组)为这个关系的外键。当执行删除操作时,一般只需要检查参照完整性规则。如果是删除被参照关系中的行,检查被删除行在主键属性上的值是否正在被相应的被参照关系的外键引用,若不被引用,可以执行删除操作;若正在被引用,有三种可能的做法:拒绝删除、空值删除和级联删除。本题就是级联删除,级联删除(CASCADES)将参照关系中与被参照关系中要删除元组主键值相同的元组一起删除。受限删除(RESTRICTED)只有参照关系中没有元组与被参照关系中要删除元组主键值相同时才执行删除操作,否则拒绝。置空值删除(SET NULL)删除被参照关系中的元组,同时将参照关系中相应元组的外键值置为空。正确答案为选项A。
转载请注明原文地址:https://kaotiyun.com/show/7fyZ777K
0

最新回复(0)