- 1、本文档共79页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库ACCESSSQLsqlserver数据库保护
第五章 数据库保护 5.1数据库完整性 5.2数据库安全性 5.3数据库并发控制 5.4数据库恢复 5.1.1 数据库完整性的含义 概念:数据库的完整性是指保护数据库中数据的正确性、有效性和相容性,防止错误的数据进入数据库造成无效操作。 比如年龄属于数值型数据,只能含0,1,…9,不能含字母或特殊符号; 月份只能用1~12之间的正整数表示; 表示同一事实的两个数据应相同,否则就不相容,如一个人不能有两个学号。 显然,维护数据库的完整性非常重要,数据库中的数据是否具备完整性关系到数据能否真实地反映现实世界。 1.实体完整性的定义 实体完整性约束是指任何基本表的主关键字中的每一个属性列都不能取空值,而主关键字本身又有“取值唯一”的含义,所以基本表的主关键字非空且取值唯一。 实体完整性约束是由系统规定的,每个基本表都必须满足的约束,用户所要做的就是定义每个基本表的主键,即告诉DBMS该基本表的主键是由哪些属性组成的。用 PRIMARY KEY 约束来完成。 2.参照完整性的定义 根据参照完整性规则,用户只要定义了某一关系的外码,系统就会控制外码的值要么为空,要么等于被参照关系中某一个主键的值,这就是系统对外码的约束。 利用Foreign Key约束可以定义参照完整性 3.用户定义完整性 实体完整性和参照完整性都是由系统规定的,而用户定义的完整性则是由用户根据具体的应用环境自己规定的一些特殊的约束条件。前面说过的Unique约束、Check约束和Not null/null约束都可以用来定义用户定义完整性。 触发器 触发器可以看作是一类特殊的存储过程,触发器中规定用户在对数据库表(关系)执行插入(insert)、删除(delete)和修改(update)等更新操作时,数据库系统应该执行什么相关的操作以保证数据的完整性。它在满足某个特定条件时自动触发执行。 为触发器运行而自动派生的两个视图——inserted,deleted 建立触发器的语句 触发器举例 在仓库表上建立一个触发器 wh_trigger,当向该表中插入元组时,引发触发器,显示提示语句 插入了一个仓库元组 例2:定义一个触发器,使得当删除部门记录时,同时将所属所有职工记录的部门号字段值置为空值NULL: 例3.创建一个名为ins_student的触发器,要求在向学生表插入元组后引发该触发器,如果在”班级”表中插入元组中出现的班级号,则提示用户”班级号输入有误“,并且回滚事务 CREATE TRIGGER ins_student ON 学生 AFTER INSERT IF(SELECT COUNT(*) FROM 班级,Inserted WHERE 班级.班级号=Inserted.班级号)=0 BEGIN PRINT ‘班级号输入有误!’ ROLLBACK TRANSACTION END 5.1.2 完整性约束的检查和处理 完整性约束定义实际上规定了用户对数据库进行更新操作时所应满足的条件,因此,查询操作不会改变数据库的内容,也就不可能破坏数据库的完整性。因此当用户对数据库执行更新操作时,系统都要检查操作有没有违背相应的完整性约束条件。 一般来说,当用户执行的操作违背实体完整性和用户定义完整性约束时,DBMS将拒绝执行该操作,而对于那些违背参照完整性约束的操作,DBMS将视情况不同有不同的处理。 1.外键空值问题 学生(学号,姓名,年龄,性别,所在系); 课程(课程号,课程名,先行课); 考试(学号,课程号,成绩). 其中考试表中的学号、课程号,是外码,分别参照了 学生表中的学号,和课程表中的课程号; 而考试表的主码是学号和课程号的组合码;根据主键 非空的原则,考试表中的学号、课程号均不能为空。 2.删除被参照关系元组的问题 当删除被参照关系的某个元组时,如果参照关系中有若干个元组的外键值与被参照关系删除元组的主键值相同时可以采用如下三种策略。 级联方式(CASCADES):允许删除被参照关系的元组,但要将参照关系中所有外键值与被参照关系中要删除元组主键值相同的元组一起删除,如果参照关系同时又是另一个关系的被参照关系,则这种操作会继续级联下去。 受限方式 (RESTRICT):当参照关系中没有任何元组的外键值与要删除的主键值相同时,系统才进行删除操作,否则拒绝删除操作。 置空方式(SET NULL):允许删除被参照关系的元组,但参照关系中相应元组的外键值应置空。 3.修改被参照关系中主键值的问题 有些关系数据库系统中,主键是不允许修改的,如果要修改 主键的值,只能先删除要修改主键所对应的元组,然后插入 具有新主键值的
您可能关注的文档
最近下载
- 2023神经重症监护患者脑水肿的急性治疗指南(完整版).pdf VIP
- 2025-2026年初中信息技术安徽初二水平会考真题试卷 .pdf VIP
- (新课标)新高教版中职信息技术(基础模块)上册1.2《认识信息系统》说课稿.docx
- 高一自主招生数学试题及标准答案.docx VIP
- 四措两案标准模板.doc
- 2025年初中信息技术初二水平会考真题试卷 含答案考点及解析 .pdf VIP
- 重庆西南大学附属中学体育馆结构设计-建筑结构.PDF
- 红楼梦英文版(杨宪益译)_精品.doc
- 2025年初中信息技术初二水平会考真题含答案考点及解析 .pdf VIP
- 2024年初中信息技术会考试题含答案.doc
文档评论(0)