维护数据完整性..ppt
《维护数据完整性..ppt》由会员分享,可在线阅读,更多相关《维护数据完整性..ppt(51页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、OOracleracle体系结构与管理体系结构与管理第十三章第十三章 维护数据完整性维护数据完整性 本章要点本章要点数据完整性概述数据完整性概述 完整性约束完整性约束 实现约束实现约束 维护约束维护约束 查询约束信息查询约束信息 本章教学目标本章教学目标l理解数据完整性的基本概念及数据完整性规则;l理解Oracle数据库的完整性约束的条件、状态和检查时间等概念;l掌握定义列级约束和表级约束的技术和方法;l掌握添加、修改和删除约束的技术和方法。13.1 数据完整性概述数据完整性概述l数据完整性数据完整性 数据完整性是指存储在数据库中数据的一致性和正确性。根据数据完整性作用的数据库对象和范围不同,
2、可以将数据完整性分为:实体完整性(Entity Integrity)域完整性(Domain Integrity)引用完整性(Reference Integrity)用户定义完整性(User Defined Integrity)13.1 数据完整性概述数据完整性概述l数据完整性数据完整性 作用:实体完整性可以保证表内每条记录的唯一性。域完整性可以保证表内数据项的合理性和有效性。引用完整性又称参照完整性,可以保证引用表和被引用表之间的数据一致性。用户定义完整性是指用户可以定义不属于其他任何完整性分类的特定业务规则。13.1 数据完整性概述数据完整性概述l数据完整性规则数据完整性规则 Oracle应
3、用于关系数据库数据完整性有下列4种类型的规则:NULL规则 在插入或修改表的行时是否允许包含有NULL的值。唯一性规则 保证插入或修改的记录在字段值上的唯一性。引用完整性规则 保证多个相关表的一致性。用户自定义规则 可实现复杂的完整性检查。13.1 数据完整性概述数据完整性概述l数据完整性规则数据完整性规则数据完整性的实现方法:应用程序代码完整性约束 数据库触发器13.1 数据完整性概述数据完整性概述l数据完整性规则数据完整性规则利用完整性约束实施数据完整性规则有下列优点:创建或修改表时直接通过SQL语句定义完整性约束,无需额外的编程,可减少程序性错误。完整性约束存储在数据字典中,任何进入表中
4、的数据都必须接受完整性约束,可以保证数据库中所有数据的完整性。使用完整性约束可以分离数据和程序。DBA可以通过约束管理语句灵活地设置完整性约束的有效性。由于完整性约束存储在数据字典中,DBA、开发人员和应用程序可以快速查询事务规则,选择正确的操作或数据。13.2 完整性约束完整性约束l约束条件约束条件 非空约束(NOT NULL)唯一性约束(UNIQUE)主键约束(PRIMARY KEY)外键约束(FOREIGN KEY)检查约束(CHECK)13.2 完整性约束完整性约束l约束条件约束条件 通过EMPLOYEE表的创建说明各种约束条件的作用。CREATE TABLE EMPLOYEE (EM
5、PNO NUMBER(10)PRIMARY KEY,NAME VARCHAR2(40)NOT NULL,SEX CHAR(1),DEPTNO NUMBER(2)DEFAULT 10,SALARY NUMBER(7,2)CHECK(SALARYSET CONSTRAINT ALL IMMEDIATE;该命令将所有可延迟约束设置为立即检验模式。13.2 完整性约束完整性约束l约束检查的时间约束检查的时间 2.可延迟约束设置当前会话级的检验模式,可以执行下列命令:ALTER SESSION SET CONSTRAINT=IMMEDIATE|DEFERRED|DEFAULT;DEFAULT表示保持原来
6、的检验模式。13.3 实现约束实现约束l 定义列级约束定义列级约束 【任务13.1】创建STUDENTS表时,对表中各字段设置完整性约束,如ID字段定义为该表的主键,并且设置为可延迟约束,约束为激活状态,NAME、SEX、COURSE和SCORE字段定义NOT NULL约束。13.3 实现约束实现约束l 定义列级约束定义列级约束 作用于单个列上的约束称之为列级约束。列级约束是在定义列的子句中设置。列级约束定义子句的语法为:column datatype CONSTRAINT constraint NOT NULL|UNIQUE USING INDEX index_clause|PRIMARY
7、KEY USING INDEX index_clause|REFERENCES schema.table(column)ON DELETE CASCADE|CHECK(condition)NOT DEFERRABLE|DEFERRABLE INITIALLY IMMEDIATE|DEFERRED DISABLE|ENABLE VALIDATE|NOVALIDATE13.3 实现约束实现约束l 定义列级约束定义列级约束各关键字和参数的含义如下:constraint 定义约束名。如果缺省,Oracle自动命名。NOT NULL 定义NOT NULL约束。如果为NOT NULL,表示该列不允许有空值
8、;如果为NULL,表示该列可以有空值。UNIQUE 定义唯一性约束,并可以通过index_clause子句定义索引。PRIMARY KEY 定义主键约束,并可以通过index_clause子句定义索引。REFERENCES 定义外键约束,并指出被引用表的表名和列。ON DELETE CASCADE 表示当删除父表的数据时,将子表中与父表被删除数据相关的数据一起删除。CHECK 定义检查约束。13.3 实现约束实现约束l 定义列级约束定义列级约束各关键字和参数的含义如下:NOT DEFERRABLE 定义非延迟约束。该值是缺省值。DEFERRABLE 定义可延迟约束。INITIALLY IMME
9、DIATE 设置约束检查为立即检验模式。该值是缺省值。INITIALLY DEFERRED 设置约束检查为延迟检验模式。ENABLE 设置约束为激活状态。该值是缺省值。DISABLE 设置约束为禁用状态。VALIDATE 设置约束为验证状态。该值是缺省值。NOVALIDATE 设置约束为非验证状态。13.3 实现约束实现约束l 定义列级约束定义列级约束SQLCREATE TABLE TEST.STUDENTS 2 (ID VARCHAR2(10)3 CONSTRAINT STUDENTS_ID_PK PRIMARY KEY4 DEFERRABLE 5 USING INDEX6 STORAGE(
10、INITIAL 100K NEXT 100K)7 TABLESPACE INDEXS8 ENABLE,9 NAME VARCHAR2(10)NOT NULL,10 SEX VARCHAR2(2)NOT NULL,11 COURSE VARCHAR2(20)NOT NULL,12 SCORE NUMBER(3)13 TABLESPACE USER01 14 PCTFREE 20 15 PCTUSED 40 16 INITRANS 1 17 MAXTRANS 100 18 STORAGE(19 INITIAL 400K 20 NEXT 400K 21 MINEXTENTS 2 22 MAXEXTE
11、NTS 20023 PCTINCREASE 20 24 BUFFER_POOL RECYCLE);13.3 实现约束实现约束l定义表级约束定义表级约束【任务13.2】创建EMPLOYEE表时,对表中FIRST_NAME和LAST_NAME两个字段组合在一起设置成唯一性约束,该约束为表级约束。13.3 实现约束实现约束l定义表级约束定义表级约束 表级约束子句的语法为:CONSTRAINT constraint PRIMARY KEY(column,column.)USING INDEX index_clause|UNIQUE(column,column.)USING INDEX index_cl
12、ause|FOREIGN KEY(column,column.)REFERENCES schema.table(column,column.)ON DELETE CASCADE|CHECK(condition)NOT DEFERRABLE|DEFERRABLE INITIALLY IMMEDIATE|DEFERRED DISABLE|ENABLE VALIDATE|NOVALIDATE 除了不能在表级约束子句中不能定义NOT NULL约束外,该子句所有关键字和参数的含义同列级约束定义子句是一样的。13.3 实现约束实现约束l定义表级约束定义表级约束 SQLCREATE TABLE TEST.E
13、MPLOYEE2 (EMPNO NUMBER(10)PRIMARY KEY,3 FIRST_NAME VARCHAR2(40)NOT NULL,4 LAST_NAME VARCHAR2(40)NOT NULL,5 SEX CHAR(1),6 DEPTNO NUMBER(2)7 SALARY NUMBER(7,2)CHECK(SALARY ALTER TABLE TEST.STUDENTS 2 ADD(CONSTRAINT SCORE_CHECK 3 CHECK(score=0 and scoreALTER TABLE TEST.STUDENTS 2 ADD(CONSTRAINT SCORE_C
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 维护 数据 完整性
限制150内