- 1、本文档共44页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7.3 数据库的完整性控制 1.数据库的完整性 数据库的完整性: 是指数据的正确性、有效性和相容性。 正确性指数据的真实合法性; 有效性指数据的值是否属于所定义的有效范围; 相容性指表示同一事实的多个数据必须一致。 说明: 完整性是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出。 数据库完整性约束条件: 加在数据库数据之上的语义约束条件。 完整性检查: 而DBMS中检查数据是否满足完整性条件的机制。 7.3 数据库的完整性控制 DBMS中执行完整性检查的子系统称为“完整性子系统”,主要功能有: 对事务的执行进行监控,检测事务的操作是否违反了完整性约束条件。 对违反完整性约束条件的操作采取相应的措施以保证数据的完整性。 DBMS的完整性控制机制应具有三个方面的功能: (1)定义功能: 提供定义完整性约束条件的机制。 (2)检查功能: 检查用户发出的操作请求是否违背完整性约束条件 (3)防范功能: 如果发现用户的操作请求使数据违背了完整性约束条件, 采取一定的动作来保证数据的完整性。 7.3 数据库的完整性控制 完整性控制的规则: 一条完整性规则可用五元组 (D,O,A,C,P)来表示: (1)D(Data) 约束作用的数据对象; (2)O(Operation) 触发完整性检查的数据库操作,即当用户发出什么操作请求时需要检查该完整性规则,是立即检查还是延迟检查; (3)A(Assertion) 数据对象必须满足的断言或语义约束,这是规则的主体; (4)C(Condition) 选择A作用的数据对象值的谓词; (5)P(Procedure) 违反完整性规则时触发的过程。 如: 在“讲师工资不得低于1000元”的约束中: D 约束作用的对象为工资Sal属性 O 插入或修改职工元组时 A Sal不能小于1000 C 职称=‘讲师 (A仅作用于职称=讲师的记录) P 拒绝执行该操作 7.3 数据库的完整性控制 完整性的语义约束和检查 实现方式有两种:一种是通过定义和使用完整性约束规则,另一种是通过触发器和存储过程来实现。 分为以下几种: (1)立即执行约束:检查是否违背完整性约束的时机通常是在一条语句执行完后立即检查。 (2)延迟执行约束:完整性检查延迟到整个事务执行结束后再进行,检查正确方可提交。 (3)在事务的某些特定检查点检查。 (4)在一个维护操作请求之后且执行之前检查。 (5)在DBA或审计员发出检查请求时。 7.3 数据库的完整性控制 完整性约束条件 作用的对象: 关系、元组、列 静态约束:是指数据库每一确定状态时的数据对象所应满足的约束条件,它是反映数据库状态合理性的约束。 动态约束:是指数据库从一种状态转变为另一种状态时,新、旧值之间所应满足的约束条件,它是反映数据库状态变迁的约束。 7.3 数据库的完整性控制 SQL中的完整性约束 1、基本表的约束 (1)主码约束 PRIMARY KEY (列名表) (2)外码约束 FOREIGN KEY (列名表) REFERENCE 目标表[(列名表)] [ON DELETE 参照动作] [ON UPDATE 参照动作] 参照动作: NO ACTION、CASCADE、RESTRICT、 SET NULL、SET DEFAULT 7.3 数据库的完整性控制 实现参照完整性要考虑的问题: ① 在被参照关系中删除元组 这时主要有三种不同的策略: 级联删除(CASCADE) 受限删除(RESTRICT) 置空值删除(SET NULL) ② 修改被参照关系中主码 若允许修改主码,主要有三种不同的策略: 级联修改(CASCADE) 受限修改(RESTRICT) 置空值修改(SET NULL) 7.3 数据库的完整性控制 (3)检查约束 CHECK (条件表达式) 2、域约束 CREATE DOMAIN 域名 域类型 CHECK (条件) 例: 3、断言 注意:CHECK子句只对定义它的表起作用,对其它表不起作用 例: 当约束条件涉及多个表、使用聚集操作时应使用断言。 CREATE ASSERTION 断言名 CHECK (条件) 例: 7.4 触发器 触发器:当对相关表执行INSERT、UPDATE、DE
您可能关注的文档
最近下载
- 《solidworks三维模板设计规范》.pdf
- 【清华大学】2023中国股票风险因子模型白皮书.pdf
- 水泥安全技术说明书msds.doc
- 南京恒生制药有限公司乙醇储罐安全现状评价 12.29(修改稿).doc
- Dell戴尔Dell EMC PowerEdge R740 安装和服务手册.pdf
- 《学前儿童游戏指导》教案 第13课 智力游戏的类型与智力游戏的组织与指导.docx
- Anritsu安立 MS2690A MS2691A MS2692A信号分析仪操作手册.pdf
- 管道修复方案.docx VIP
- 2024年九年级中考数学复习:创新题型——新定义问题 刷题练习题汇编(Word版,含答案).docx
- 《学前儿童游戏指导》教案 第6课 表演游戏的组织与指导.docx
文档评论(0)