数据库系统原理第五章——完整性控制

上传人:kms****20 文档编号:51652402 上传时间:2018-08-15 格式:PPT 页数:19 大小:116KB
返回 下载 相关 举报
数据库系统原理第五章——完整性控制_第1页
第1页 / 共19页
数据库系统原理第五章——完整性控制_第2页
第2页 / 共19页
数据库系统原理第五章——完整性控制_第3页
第3页 / 共19页
数据库系统原理第五章——完整性控制_第4页
第4页 / 共19页
数据库系统原理第五章——完整性控制_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《数据库系统原理第五章——完整性控制》由会员分享,可在线阅读,更多相关《数据库系统原理第五章——完整性控制(19页珍藏版)》请在金锄头文库上搜索。

1、第5章 数据库完整性5.1 概述 1、定义 数据的正确性,有效性和相容性。 (防止不符合语义的数据的I/O) 2、功能 1)完整性要求定义; 2)监督事务执行,测试是否违反完整性限制条件; 3)若发生违反情况,则进行相应处理(拒绝、报告、纠正)。 5.2 完整性约束条件 1、基本概念 定义 施加于DB中数据之上的语义限制条件 约束对象 列级、元组级、关系级1 约束对象状态 静态:反映DB状态合理性的约束。 动态:反映DB状态变迁的约束。 约束时机(Immediate constraints) (1)立即约束 一条语句执行完后立即检查。 (2)延迟约束(deferred constraints)

2、 事务执行结束后检查。 转帐,从A到B后,帐才能平,才能进行检查。 2、静态列级约束 对一个列的取值域的约束。 数据类型约束 类型、长度、单位、精度 如XM为C型,长8位;YL为I型,长3位。 数据格式约束 如工作证号前2位表示省,后3位表示县,后4位表示单位顺序号 ,后5位表示个人顺序号。2 值域约束 CJ100,NL150,XB=男,女 空值约束 是否允许空值列。 如CJ可为空。 其它约束(如:列的排序、是否唯一等等) 3、静态元组约束 对一个(仅一个)元组中各列值间联系的约束。 如:总额单价 工龄=0 AND GRADE=1000);11例5:ALTER TABLE TEACHERDRO

3、P CONSTRAINT C1;ALTER TABLE TEACHERADD CONSTRAINT C2 CHECK(SAL+DEDUCT=2000 AND SAL=1000); 例6:域的使用CREATE DOMAIN GenderDomain CHAR(2)CHECK (VALUE IN(男,女); 或者 CREATE DOMAIN GenderDomain CHAR(2)CONSTRAINT C3 CHECK (VALUE IN(男,女);ssex GenderDomain, 例7:ALTER DOMAIN GenderDomainDROP CONSTRAINT C3;124、ORACL

4、E完整性 1)实体完整性 CREATE TABLE student (XH NUMBER (8), XM VARCHAR(8), YL NUMBER(3), Constraint PK-XH PRIMARY KEY (XH); 一旦定义了主码,则DBMS自动进行完整性检查: 主码不能为空; 主码值须唯一。132)参照完整性 语句FOREIGN KEY :指定外码属性REFERENCES:指定外码对应主码ON DELETE CASCADE:指定捆绑删除要求例:CREATE TABLE SC(XH NUMBER (8),KH NUMBER (3), CJ NUMBER (3),CONSTRAINT

5、 FK_SCXHFOREIGN KEY (XH) REFERENCES student (XH)ON DELETE CASCADE,CONSTRAINT FK_SCKHFOREIGN KEY (KH) REFERENCES course (KH)ON DELETE CASCADE); 14 说明: SC中外码为XH,KH。 对应student主码为XH。 对应course主码为KH。 当修改student中XH时,先检查SC中有无元组XH值与之相等 ,若有,则不能执行该修改;当修改course中KH,先检查SC中 有无元组的KH值与之相等,若有,则不能执行该修改。 当删除student或cou

6、rse某元组时,则先在SC中找到相应元组 ,进行捆绑删除。3)用户定义完整性 列值非空(NOT NULL) 列值唯一(UNIQUE) CREAE TABLE COURSE ( KH NUMBER (3), KM VARCHAR (20) CONSTRAINT U1 UNIQUE, XS NUMBER (2); 15其中:CONSTRAINT U1 UNIQUE:KM唯一,约束名为U1。 列值范围限制 例: XB VARCHAR(2) CONSTRAINT CNS_XB1 CHECK(XB IN(男,女); 例: GZ NUMBER(8.2) CONSTRAINT CNS_GZ1 CHECK(G

7、Z1000.00); 例:CRETATE TRIGGER UPDATE-CJBEFORE INSERT OR UPDATE ON CJFOR EACH ROWWHEN(:NEW.KH=001)AS BEGINIF :NEW.CJ50THEN:NEW.CJ :=50;ENDIFEND16说明: 利用触发器,当对SC中进入插入元组和修改CJ值时,若为 001号课程,则CJ50时一律自动改为50分。 定义触发器语句为CREATE OR REPLACE TRIGGER。 (先定义后使用) CREATE TRIGGER语句定义触发器的约束条件。 一条完整性规则可以用一个五元组(D,O,A,C,P)来形式

8、化 地表示,其中: D: 数据对象Data O:引发动作地操作Operation A:数据对象必须满足的断言或语义约束Assertion C:选择A作用的数据对象的谓词Condition P:被触发的过程Procedure 例如:教授的工资不得低于1000元。 D教师的工资,O修改或插入,A不低于1000元, C职称为教授,P拒绝修改。17FOR EACH ROW (FOR EACH STATEMENT)删除触发器 DROP TRIGGER 触发器名 ON 表名18关于触发器的概念 1.触发器名 2.表名 3.触发事件 INSERT/DELETE/UPDATE(OF) 4.触发时机 BEFORE,AFTER 4.触发器类型 FOR EACH ROW,FOR EACH STATEMENT 5.触发条件 WHEN 6.触发动作体 AS BEGINEND维护数据完整性维护系统安全性触发器的作用?19

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号