Oracle数据库的数据的一致性完整性.ppt_第1页
Oracle数据库的数据的一致性完整性.ppt_第2页
Oracle数据库的数据的一致性完整性.ppt_第3页
Oracle数据库的数据的一致性完整性.ppt_第4页
Oracle数据库的数据的一致性完整性.ppt_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Oracle数据库的一致性、完整性,目标,在完成本章学习后,你将掌握下列技能; Oracle数据库的完整性的定义以及各种约束 Oracle数据库的一致性的定义以及管理方案,本章内容,Oracle数据库的完整性 Oracle数据库的一致性,导航,Oracle数据库的完整性 Oracle数据库的一致性,Oracle数据库的完整性,定义: 完整性约束是数据库模式定义时指定的约束条件,它限制某些数据的情形在数据库中出现。 ORACLE强制执行完整性约束,保证只有合法的数据存储于数据库中。 指定和执行完整性约束的时机 当DBA定义数据库模式时 当数据库执行应用程序时,DBMS检查数据是否违法约束。,Or

2、acle数据库的完整性-约束类型,主码约束 外码约束 用户定义的约束,ORACLE数据库的完整性-主码约束,定义:主码约束是指关系具有一个特定的最小字段集合,通过它可以唯一确定每条记录。 其中包括两个方面 对于合法关系实例中的两条不同记录,其码的字段值不会相同。 不存在码字段的真子集可以唯一确定每条记录。,ORACLE数据库的完整性-主码约束,例如 Create table empl( empno number(10), ebirthday date, ename varchar2(10), egrade varchar2(10), constraint c1 PRIMARY KEY(empn

3、o) 上面定义中,我们将empno作为码,并把这约束命名为pk_empno,当违反约束时,系统能够返回约束名。 违法操作包括 码值为空值 码值不唯一,ORACLE数据库的完整性-外码约束,定义:存储在某个表中的字段是其他表中的码,并且需要保证相互数据的一致性。 其中包括两个方面 表中某个字段在其他表中是码 该字段的数据必须在后一个表中存在或者为null,ORACLE数据库的完整性-外码约束,例如: Create table empl( empno number(10), ejob varchar2(10), deptno number(10) constraint fk_deptno FORE

4、IGN KEY REFERENCES dept(deptno) 这里EMPL的外码deptno对应DEPT表中的主码deptno。 当产生可能导致两个值不一致的操作时,系统可以通过删除或者拒绝等相应来维持完整性。,ORACLE数据库的完整性-用户定义约束,用户可以自行定义满足自己需要的约束 建表时直接定义 或者通过触发起来定义用户的完整性,ORACLE数据库的完整性-用户定义约束,常见的约束包括 NOT NULL约束 UNIQUE约束 CHECK约束,ORACLE数据库的完整性-用户定义约束,例如 Create table empl( empno number, ename varchar2(

5、10) constraint U1 UNIQUE, ) 这里我们通过UNIQUE定义了保证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),

6、 ) 这里我们通过CHECK定义了保证salary大于700的约束,其中括号里 的内容为布尔表达式。,导航,Oracle数据库的完整性 Oracle数据库的一致性,ORACLE数据库的一致性,定义:数据库的一致性是指当多个事务访问数据库时,可能导致的数据库中数据的不一致问题,需要专门的机制来保证数据一致。 不一致包括 重复写覆盖 脏数据 不可重复读 幻影读,ORACLE数据库的一致性,重复写覆盖 当多个事务修改统一数据,每个事务不知其他事务的存在,最后的更新将覆盖其他事务的更新,导致数据丢失。 脏数据 一个事务正要更新一个数据时,恰好另一个事务读取了更新前的值,ORACLE数据库的一致性,不可

7、重复读 一个事务读取一个数据后,再次读取时,数据已经被其他事务修改,而导致前后读不同。 幻影读 一个事务读取某些数据记录后,并准备在此基础上进行一些操作,恰好另一个事务删除/新增了其中部分数据记录,导致第一个事务的错误。,ORACLE数据库的一致性-如何管理一致性,语句级别读一致性 事务级别一致性 应用集群的读一致性 设置隔离级别,ORACLE数据库的一致性-语句级别读一致性,保证单个查询的数据来源于单个时间点 一个查询只能查到查询开始之前事务提交的数据 不能看到查询开始之后提交的数据。,ORACLE数据库的一致性-事务级别读一致性,当事务在串行性模式运行时,所有数据访问所处的状态保持在事务开始的时间。 同一个事务所有查询看到的是同一时间点的数据 会产生重复读,但不会产生幻影读,ORACLE数据库的一致性-应用集群的读一致性,使用cache到cache的块传输机制来执行从一个实例到另一个实例传输快的读一致性印像。,ORACLE数据库的一致性-设置隔离级别,DBA或开发人员可根据程序和负载等情况为事务选择合适的隔离级别。 提

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论