- 1、本文档共58页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
例:学生-选课数据库Student关系为被参照关系,其主码为Sno。SC为参照关系,外码为Sno。若SC的Sno为空值:表明尚不存在的某个学生,或者某个不知学号的学生,选修了某门课程,其成绩记录在Grade中。与学校的应用环境是不相符的,因此SC的Sno列不能取空值。第37页,共58页,星期六,2024年,5月2.在被参照关系中删除元组时出现违约操作的情形删除被参照关系的某个元组(student)而参照关系有若干元组(SC)的外码值与被删除的被参照关系的主码值相同第38页,共58页,星期六,2024年,5月违约反应的策略级联删除(CASCADES)受限删除(RESTRICTED)置空值删除(NULLIFIES)这三种处理方法,哪一种是正确的,要依应用环境的语义来定第39页,共58页,星期六,2024年,5月级联删除将参照关系中外码值与被参照关系中要删除元组主码值相对应的元组一起删除受限删除当参照关系中没有任何元组的外码值与要删除的被参照关系的元组的主码值相对应时,系统才执行删除操作,否则拒绝此删除操作第40页,共58页,星期六,2024年,5月置空值删除删除被参照关系的元组,并将参照关系中与被参照关系中被删除元组主码值相等的外码值置为空值。第41页,共58页,星期六,2024年,5月例:要删除Student关系中Sno=‘950001’的元组,而SC关系中有4个元组的Sno都等于950001。级联删除:将SC关系中所有4个Sno=‘950001’的元组一起删除。如果参照关系同时又是另一个关系的被参照关系,则这种删除操作会继续级联下去受限删除:系统将拒绝执行此删除操作。第42页,共58页,星期六,2024年,5月置空值删除:将SC关系中所有Sno=950001的元组的Sno值置为空值。在学生选课数据库中,显然第一种方法和第二种方法都是对的。第三种方法不符合应用环境语义。第43页,共58页,星期六,2024年,5月3.在参照关系中插入元组时出现违约操作的情形需要在参照关系中插入元组,而被参照关系不存在相应的元组违约反应受限插入递归插入第44页,共58页,星期六,2024年,5月受限插入仅当被参照关系中存在相应的元组,其主码值与参照关系插入元组的外码值相同时,系统才执行插入操作,否则拒绝此操作。递归插入首先向被参照关系中插入相应的元组,其主码值等于参照关系插入元组的外码值,然后向参照关系插入元组。第45页,共58页,星期六,2024年,5月例:向SC关系插入(99001,1,90)元组,而Student关系中尚没有Sno=99001的学生受限插入:系统将拒绝向SC关系插入(99001,1,90)元组递归插入:系统将首先向Student关系插入Sno=99001的元组,然后向SC关系插入(99001,1,90)元组。第46页,共58页,星期六,2024年,5月4.修改被参照关系中主码的问题两种策略不允许修改主码允许修改主码第47页,共58页,星期六,2024年,5月允许修改主码策略违约操作要修改被参照关系中某些元组的主码值,而参照关系中有些元组的外码值正好等于被参照关系要修改的主码值要修改参照关系中某些元组的主码值,而被参照关系中没有任何元组的主码值等于参照关系修改后的外码值第48页,共58页,星期六,2024年,5月违约反应(1)修改的关系是被参照关系:与删除类似级联修改受限修改置空值修改第49页,共58页,星期六,2024年,5月级联修改修改被参照关系中主码值同时,用相同的方法修改参照关系中相应的外码值。受限修改拒绝此修改操作。只当参照关系中没有任何元组的外码值等于被参照关系中某个元组的主码值时,这个元组的主码值才能被修改。置空值修改修改被参照关系中主码值,同时将参照关系中相应的外码值置为空值。第50页,共58页,星期六,2024年,5月例:将Student关系中Sno=950001的元组中Sno值改为960123。而SC关系中有4个元组的Sno=950001级联修改将SC关系中4个Sno=950001元组中的Sno值也改为960123。如果参照关系同时又是另一个关系的被参照关系,则这种修改操作会继续级联下去。第51页,共58页,星期六,2024年,5月受限修改只有SC中没有任何元组的Sno=950001时,才能修改Student表中Sno=950001的元组的Sno值改为960123。置空值修改将Student表中Sno=950001的元组的Sno值改为960123。而将S表中所有Sno=950001的元组的Sno值置为空值。在
文档评论(0)