`

关于脏数据比如说,有两个用户A,B同时操作数据库,A开始了一个事务,修改了某行,但还未提交,这个时

阅读更多
关于脏数据
比如说,有两个用户A,B同时操作数据库,A开始了一个事务,修改了某行,但还未提交,这个时候,B开始另一个事务,读取了该行,然后A回滚了事务,即修改被取消了,那么,B读取到的那一行数据就是脏数据

上面这句话正确吗?如果事物A未提交,事物B能读到A所修改的数据吗?

如何判断A,B 是否属于同一个事物?

在PL/SQL 中先删一条数据(没有提交)紧接着在查刚才那条数据是查不到的,既然没有提交为什么会查不到呢?

希望各位能详细回答一下,小弟不胜感激。

Q:如果事物A未提交,事物B能读到A所修改的数据吗?
A:当然看不到

Q:如何判断A,B 是否属于同一个事物?
A:这个应该不用判断吧,两次连接 就是属于两个“事物”

Q:在PL/SQL 中先删一条数据(没有提交)紧接着在查刚才那条数据是查不到的,既然没有提交为什么会查不到呢?
A:因为这个是一个“事物”中,例如你在plsql developer中开启另一个窗口,就可以查到了。

“A开始了一个事务,修改了某行,但还未提交,这个时候,B开始另一个事务,读取了该行”,因为A没有提交,B读取的是A修改前的数据。没有提交的数据只有自己能查询到,其他用户是查看不到的。
建议你多看看这方面的资料吧

楼主首先要弄清楚 事务是为了保证数据完整性的 
A事务做了操作 没有提交 对B事务来说 就等于没做 获取的都是之前的数据
但是 在A事务中查询的话 查到的都是操作之后的数据
这个很好理解 你开两个sql窗口 在一个里边给一个表insert一条数据 不提交 紧接着select 有数据 但是去另一个sql窗口select 就没有数据 


这个要看数据库工作在哪个隔离级别.只有在read uncommitted的时候才会出现脏读.
而oracle只支持read committed和read serialization两种,所以不会出现你说的情况.

A没有提交之前,B只能看到行修改之前的数据,这是undo表空间的作用之一:维护数据的一致性.

引用:

  楼主首先要弄清楚 事务是为了保证数据完整性的 
A事务做了操作 没有提交 对B事务来说 就等于没做 获取的都是之前的数据
但是 在A事务中查询的话 查到的都是操作之后的数据
这个很好理解 你开两个sql窗口 在一个里边给一个表insert一条数据 不提交 紧接着select 有数据 但是去另一个sql窗口select 就没有数据


+1

去查下隔离级别和脏读,不可重复读,幻读等现象的关系就明白了.

Oracle 如何设置事务隔离级别去让 B 也看到 A 正在改的那个数据?


该回复于2011-04-14 10:49:26被版主删除

A没有提交之前,B只能看到行修改之前的数据,这是undo表空间的作用之一:维护数据的一致性.

没有提交的数据只有自己看得到,并没有update到数据库。

因为他只是在内存中修改,并没有被持久化

该回复于2012-07-31 14:23:34被版主删除

在A对数据进行写操作的时候,这时候这部分数据在缓冲区有一个备份数据。没有提交的话,是不会改变的,脏数据是提交但是没有保存到磁盘的数据。
分享到:
评论

相关推荐

    数据库,各种锁的概述

    A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统 脏读 A用户修改了数据,随后B用户又读出该数据,但A用户因为某些原因取消了对数据的修改,数据恢复原值,此时B得到的...

    哈尔滨理工大数据库试题

    带答案,有利于同学们复习用... 将更新数据库与登录日志文件两个操作同时完成 B. 将更新数据库与登录日志文件两个操作按随机的先后顺序完成 C. 先登录日志文件,后写数据库的更新 D. 先写数据库的更新,后登录日志文件

    并发控制指的是当多个用户同时更新行时,用于保护数据库完整性的各种技术。并发机制不正确可能导致脏读、幻读和不可重复读等此类问题。

    并发控制指的是当多个用户同时更新行时,用于保护数据库完整性的各种技术。并发机制不正确可能导致脏读、幻读和不可重复读等此类问题。

    数据库里锁的基本概念

     A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统  脏读  A用户修改了数据,随后B用户又读出该数据,但A用户因为某些原因取消了对数据的修改,数据恢复原值,...

    数据库系统概论.pdf

    设有两个事务T1、T2,其并发操作如图2所示,下面评价正确的是( ) A. 该操作不存在问题 B. 该操作丢失修改 C. 该操作不能重复读 D. 该操作读"脏"数据 T1 T2 读A=100 得 分 读A=100 A=A-5写回 A=A-8写回 图2 20. 以下...

    基于 Django 的数据库脏数据清洗工具,数据订正工具,ETL 工具(python)

    但操作过程中,如果只是简单的执行 SQL 语句或者编写简单的数据修改脚本,可能会有错误的数据操作逻辑或者异常,导致数据丢失。 data_fix 是一个数据库脏数据清洗工具,错误数据订正工具,ETL 数据转换工具。 提供...

    数据库系统原理A.pdf

    R A B C a b c d a f c b d S A B C b g A d a F 山东海天软件工程专修学院模拟试卷 《数据库系统原理》A试卷 1、 单项选择题(本大题共15小题,每小题2分,共30分) 在每小题列出的四个备选项中只有一个是符合题目...

    【《数据库与信息系统》复习题及答案】第5章数据库管理与保护.pdf

    设有两个事务 T1、T2,其并发操作如图 5.1 所示,下列评价正确的是________。 A.该操作不存在问题 B.该操作丢失修改 C.该操作存在重读校验不一致 D.该操作读"脏"数据 时刻序列 T1 T2 读 A=100,A=A*2 写回 ...

    快速掌握SQL Server锁的相关概念

    A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统 ◆脏读 A用户修改了数据,随后B用户又读出该数据,但A用户因为某些原因取消了对数据的修改,数据恢复原值,此时B得到...

    数据库系统系统原理试卷(一).docx

    设关系R和S的结构相同,且各有100个元组,那么这两个关系的并操作结果的元组的个数为: B A.200 B.小于等于200 C.100 D.小于等于100 5. 与操作"AGE NOT BETWEEN 15 AND 20"等价的式子是: D A.AGE >= 15 AND AGE ...

    数据库事务的四大特征以及隔离级别

    隔离性(Isolation):并发的事务是相互隔离的,即一个事务内部的操作及正在操作的数据必须封锁起来,不能被其他企图修改的事务看到。 隔离性可以通过不一样的配置达到不一样的隔离级别。 持久性(Durability):...

    数据库事务及锁机制面试题

    性能高和事务完全隔离性无法同时满足,DB提供了4项事务隔离级别来权衡,需要用户根据自身业务来选择合适的隔离级别。隔离级别越高,越能保证数据的完整性和一致性,但是对并发性能的影响也越大。我们的数据库锁,...

    基于框架的Web开发-spring事务入门一个转账的例子.doc

    脏读:一个事务读到了另一个事务的未提交的数据 不可重复读:一个事务读到了另一个事务已经提交的update的数据导致多次查询结果不一致. 虚幻读:一个事务读到了另一个事务已经提交的insert的数据导致多次查询结果不一致...

    ------事务的隔离级别

    更新丢失(Lost update):两个事务都同时更新一行数据但是第二个事务却中途失败退出导致对数据两个修改都失效了这是系统没有执行任何锁操作因此并发事务并没有被隔离开来 2. 脏读取(Dirty Reads):一个事务开始...

    数据库原理与应用试题及答案.pdf

    在数据库系统中,读脏数据是指一个事务读了另一个事务( ) A. 未更新的数据 B. 未撤销的数据 C. 未提交的数据 D. 未刷新的数据 3. 加锁协议中规定“先申请先服务”的原则,可以避免数据库系统出现( ) A. 活锁 B. ...

    数据库考试的复习资料

    1.数据库的一大特点是数据共享,即用户可以并发访问数据库对象,但并发操作可能会引起丢失更新、不可重复读、读脏数据这几类数据不一致性的问题,于是就要进行并发控制。并发控制的主要技术是封锁,封锁对象的规模...

    48 多个事务并发更新以及查询数据,为什么会有脏写和脏读的问题?l.pdf

    48 多个事务并发更新以及查询数据,为什么会有脏写和脏读的问题?l.pdf

    java-数据库系统原理.docx

    丢失修改 T1 和 T2 两个事务都对一个数据进行修改,T1 先修改,T2 随后修改,T2 的修改覆盖了 T1 的修改。 java-数据库系统原理全文共3页,当前为第1页。 java-数据库系统原理全文共3页,当前为第1页。 脏读 T1 ...

    数据库系统实现

    书中对数据库系统实现原理进行了深入阐述,并具体讨论了数据库管理系统的三个主要成分—存储管理器、查询处理器和事务管理器的实现技术。书中还对信息集成的最新技术,例如数据仓库、OLAP、数据挖掘、Mediator、数据...

    数据库原理与应用.docx

    一个属性的值能从其他相关属性计算得到,该属性属于() A.复合属性 B.派生属性 C.多值属性 D.简单属性 正确答案: B 磁盘损坏可能导致 A.介质故障 B.事务故障 C.运行故障 D.系统故障 正确答案: A 并发操作若不加...

Global site tag (gtag.js) - Google Analytics