封锁的概念
来源:互联网 发布:聚推吧软件 编辑:程序博客网 时间:2024/04/30 03:13
封锁是数据库实现并发控制的重要技术。封锁就是事务T在操作该数据对象(比如一个行、一个数据页、一个表等)之前先对其申请加锁。申请加锁后该事务就对该数据对象具有了一定的控制权限,其他事务想要操作该数据必须必须等到事务T释放该锁为止。这有点类似与在超市里面购物,一个顾客去超市购物他占用了一个寄存用的柜子中一个格子,他占据后别人不能够再使用这个格子,除非等到别人释放了这个格子。
基本的封锁类型有两种:排它锁(简称X锁,X:Exclusive)、共享锁(简称S锁,S:Share)。
一、排它锁:顾名思义,当一个事务T对某个数据对象加上X锁后就不允许其它的事务再到该数据上加任何类型的锁,直到T释放了该锁为止。此时只允许T对该数据执行各种操作。
二、共享锁:顾名思义,当一个事务T对某个数据对象加上S锁后,该事务可以对该数据执行读操作,但不允许修改。然而其它事务也可以在该数据上加S锁,即其它事务也可以读取该数据,但不允许加X锁。
以上就是锁的概念和最基本的类型,从上面我们可以了解到为什么数据库在多个用户同时并发操作的情况下数据库中的数据不会出现任何问题,原因是锁在起作用。
每个具体的数据库系统中提供的锁的类型又是不同的,比如SQLServer中提供了共享锁、更新锁、排他锁、意向锁、架构锁、大容量更新锁及键范围的锁。而锁定的数据范围可以从锁定一个行、一批(多行)、一个数据页、一个表、一个数据文件甚至到锁定整个数据库。Oracle又提供了很大程度上不同的锁。锁的知识非常复杂,各位只需要了解有这么一回事即可。爱钻研的同学可以从SQLServer联机丛书上学到相关知识。
了解了锁之后现在的问题是数据库系统在什么情况下会加什么类型的锁?加锁的时候有什么规定没有?什么时候释放锁?这些问题就是封锁协议,封锁协议中继续讨论。
- 封锁的概念
- 命令行的封锁与反封锁
- 关于BT的封锁
- TCP连接的封锁
- 封锁
- 说说ORACLE的封锁机制
- 打破SSS的技术封锁
- 三级封锁协议的区别
- 三级封锁协议的区别
- Oracle解锁封锁的账号
- Google封锁南京大屠杀的技术内幕
- Google封锁南京大屠杀的技术内幕
- .net中实现数据表的封锁
- 具体解除GOOGLE的封锁步骤
- 数据库的隔离级别及其封锁协议
- developer.android.com被封锁的解决方法
- developer.android.com被封锁的解决方法
- 解決万恶的google搜索封锁
- MM基本流程(转)
- 什么是数据库的并发性
- 数据库并发性带来了哪些问题?
- 取出html标签 (适用于html中的<META name=description content="")
- MM相关表
- 封锁的概念
- SMART原则
- C++还是C?
- 公司绝不会告诉你的20大秘密,值得一看很受用(转)
- 高山流水
- 敏捷宣言的解释
- 解决dbvisualizer乱码问题
- hibernate注解方式实现一对多映射
- Windows中隐藏文件的捷径---------NTFS文件流(ADS)