《Oracle数据库的数据的一致性完整性.ppt》由会员分享,可在线阅读,更多相关《Oracle数据库的数据的一致性完整性.ppt(25页珍藏版)》请在三一办公上搜索。
1、Oracle数据库的一致性、完整性,目标,在完成本章学习后,你将掌握下列技能;Oracle数据库的完整性的定义以及各种约束Oracle数据库的一致性的定义以及管理方案,本章内容,Oracle数据库的完整性Oracle数据库的一致性,导航,Oracle数据库的完整性Oracle数据库的一致性,Oracle数据库的完整性,定义:完整性约束是数据库模式定义时指定的约束条件,它限制某些数据的情形在数据库中出现。ORACLE强制执行完整性约束,保证只有合法的数据存储于数据库中。指定和执行完整性约束的时机当DBA定义数据库模式时当数据库执行应用程序时,DBMS检查数据是否违法约束。,Oracle数据库的完
2、整性-约束类型,主码约束外码约束用户定义的约束,ORACLE数据库的完整性-主码约束,定义:主码约束是指关系具有一个特定的最小字段集合,通过它可以唯一确定每条记录。其中包括两个方面对于合法关系实例中的两条不同记录,其码的字段值不会相同。不存在码字段的真子集可以唯一确定每条记录。,ORACLE数据库的完整性-主码约束,例如 Create table empl(empno number(10),ebirthday date,ename varchar2(10),egrade varchar2(10),constraint c1 PRIMARY KEY(empno)上面定义中,我们将empno作为码
3、,并把这约束命名为pk_empno,当违反约束时,系统能够返回约束名。违法操作包括码值为空值码值不唯一,ORACLE数据库的完整性-外码约束,定义:存储在某个表中的字段是其他表中的码,并且需要保证相互数据的一致性。其中包括两个方面表中某个字段在其他表中是码该字段的数据必须在后一个表中存在或者为null,ORACLE数据库的完整性-外码约束,例如:Create table empl(empno number(10),ejob varchar2(10),deptno number(10)constraint fk_deptno FOREIGN KEY REFERENCES dept(deptno)
4、这里EMPL的外码deptno对应DEPT表中的主码deptno。当产生可能导致两个值不一致的操作时,系统可以通过删除或者拒绝等相应来维持完整性。,ORACLE数据库的完整性-用户定义约束,用户可以自行定义满足自己需要的约束建表时直接定义或者通过触发起来定义用户的完整性,ORACLE数据库的完整性-用户定义约束,常见的约束包括NOT NULL约束UNIQUE约束CHECK约束,ORACLE数据库的完整性-用户定义约束,例如Create table empl(empno number,ename varchar2(10)constraint U1 UNIQUE,)这里我们通过UNIQUE定义了保
5、证ename唯一性的约束。,ORACLE数据库的完整性-用户定义约束,例如Create table empl(empno number,ejob varchar2(10)constraints c2 NOT NULL,)这里我们通过NOT NULL定义了保证ename不会为空的约束。,ORACLE数据库的完整性-用户定义约束,例如 Create table empl(empno number,salary number(10)constraints c3 CHECK(salary700),)这里我们通过CHECK定义了保证salary大于700的约束,其中括号里 的内容为布尔表达式。,导航,O
6、racle数据库的完整性Oracle数据库的一致性,ORACLE数据库的一致性,定义:数据库的一致性是指当多个事务访问数据库时,可能导致的数据库中数据的不一致问题,需要专门的机制来保证数据一致。不一致包括重复写覆盖脏数据不可重复读幻影读,ORACLE数据库的一致性,重复写覆盖当多个事务修改统一数据,每个事务不知其他事务的存在,最后的更新将覆盖其他事务的更新,导致数据丢失。脏数据 一个事务正要更新一个数据时,恰好另一个事务读取了更新前的值,ORACLE数据库的一致性,不可重复读一个事务读取一个数据后,再次读取时,数据已经被其他事务修改,而导致前后读不同。幻影读 一个事务读取某些数据记录后,并准备
7、在此基础上进行一些操作,恰好另一个事务删除/新增了其中部分数据记录,导致第一个事务的错误。,ORACLE数据库的一致性-如何管理一致性,语句级别读一致性事务级别一致性应用集群的读一致性设置隔离级别,ORACLE数据库的一致性-语句级别读一致性,保证单个查询的数据来源于单个时间点一个查询只能查到查询开始之前事务提交的数据不能看到查询开始之后提交的数据。,ORACLE数据库的一致性-事务级别读一致性,当事务在串行性模式运行时,所有数据访问所处的状态保持在事务开始的时间。同一个事务所有查询看到的是同一时间点的数据会产生重复读,但不会产生幻影读,ORACLE数据库的一致性-应用集群的读一致性,使用cache到cache的块传输机制来执行从一个实例到另一个实例传输快的读一致性印像。,ORACLE数据库的一致性-设置隔离级别,DBA或开发人员可根据程序和负载等情况为事务选择合适的隔离级别。提交读:适合较少事务冲突的环境串行性:大数据库小事务,两个并行事务很少修改同一行,长期运行的事务执行只读为主的环境。,本章内容回顾,数据库的完整性约束包括码,外码,用户定义码。数据库的不一致包括重复写覆盖,脏数据,不可重复读,幻影读。,
链接地址:https://www.31ppt.com/p-6513569.html