等级三级数据库历年真题论述题详解[3]

文章作者 100test 发表时间 2007:04:06 21:07:57
来源 100Test.Com百考试题网


计算机等级考试训练软件《百宝箱》

  (l)、为了维护数据库的参照完整性,当删除被参照关系的元组时,系统可能采取哪些做法?(15分)
  (2)、若有学生关系S(S#,SNAME,SEX,AGE),其主键为S#;选课关系SC(S#,C#,GRADE),其主键为(S#,C#),且S.S#=SC.S#。假定学生号为‘01001’的学生离开学校不再回来了,为此若删除关系S中S#=‘01001’的元组时,如果关系SC中有4个元组的S#=‘01001’,应该选用哪一种做法?为什么?(15分)

答案:
  (1)、为了维护数据库的参照完整性,当删除被参照关系的元组时,系统可能采取如下三种做法(每种做法得5分):
  l)级联删除(cascades):即,当删除被参照关系的元组时,同时将参照关系中所有外键值与被参照关系中要被删除元组的主键值相等(相对应)的元组一起删除。
  2)拒绝删除(restricted):即,只当参照关系中没有任何元组的外键值与被参照关系中要被删除的元组的主键值相等(相对应)时,系统才执行该删除操作,否则拒绝执行该删除操作。
  3)置空值删除(nullfies):即,当删除被参照关系的元组时,同时将参照关系中所有与被参照关系中要被删除元组的主健值相等(相对应)的外键值都置为空值。
  (2)、对于本题的情况,应该选用第一种做法。即,将关系SC中S#=‘01001’的4个元组也一起删除。(得10分)
因为当一个学生离开学校不再回来,他的个人信息记录若从S关系中删除了,那么他的选课信息记录就没有保存的必要,也应随之从SC关系中删除。(得5分)



相关文章


等级三级数据库历年真题论述题详解[2]
等级三级数据库历年真题论述题详解[1]
等级三级数据库历年真题论述题详解[4]
等级三级数据库历年真题论述题详解[3]
计算机等级三级网络技术实战练习五[1]
等级三级数据库历年真题论述题详解[5]
计算机等级三级网络技术实战练习五[3]
计算机等级三级网络技术实战练习五[2]
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛