数据库:为什么一级封锁协议不能保证不读脏数据在修改的时候不是已经加了X锁了吗为什么其他事务还能读

数据库:为什么一级封锁协议不能保证不读脏数据在修改的时候不是已经加了X锁了吗为什么其他事务还能读,第1张

一级封锁协议是:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。事务结束包括正常结束(COMMIT)和非正常结束(ROLLBACK)。

注意,该协议是规定在修改数据R之前必须加锁。所以如果事务T仅是读数据而不对其进行修改,是不需要加锁的;事务T在修改R之前,其他事务是能对R进行读取的,所以它不能保证可重复读和不读“脏”数据。

索引是对数据库表中一个或多个列(例如,employee

表的姓名

(name)

列)的值进行排序的结构。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息。

例如这样一个查询:select

from

table1

where

id=10000。如果没有索引,必须遍历整个表,直到ID等于10000的这一行被找到为止;有了索引之后(必须是在ID这一列上建立的索引),即可在索引中查找。由于索引是经过某种算法优化过的,因而查找次数要少的多。可见,索引是用来定位的。

根据sqlserver支持的四种事物隔离级别,分别开两个客户端,按照4种问题的现象描述构造sql语句,很容易重现的。自己动手实践一下,对事物的理解很有帮助。建议楼主自己做。

事务是一系列的数据库 *** 作,是数据库应用程序的基本逻辑单元,也是恢复和并发控制的基本单位。事务处理技术主要包括数据库恢复技术和并发控制技术。本篇博文主要总结下并发控制技术。

事务:是用户定义的一个数据库 *** 作序列,这些 *** 作要么全做,要么全不做,是一个不可分割的工作单位。例如,在关系数据库中,一个事务可以是一条SQL语句、一组SQL语句或整个程序。一般来说,一个程序中包含多个事务。

ACID,是指在可靠数据库管理系统(DBMS)中,事务(transaction)所应该具有的四个特性:

A:原子性(Atomicity): 事务是一个或多个行为捆绑在一起组成一个单独的工作单元,事务中的动作要不都发生,要不都不发生。

C:一致性(Consistent): 即在事务开始之前和结束之后,数据库的完整性约束没有被破坏。

 数据库层面:在一个事务执行前和执行后,数据会符合你设置的约束(例如unique约束,foreign key约束,check约束等)和触发器设置由数据库进行保证

以上就是关于数据库:为什么一级封锁协议不能保证不读脏数据在修改的时候不是已经加了X锁了吗为什么其他事务还能读全部的内容,包括:数据库:为什么一级封锁协议不能保证不读脏数据在修改的时候不是已经加了X锁了吗为什么其他事务还能读、什么是数据库脏读,简述数据库索引的优缺点、数据库脏读问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9761818.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存