并发控制:修订间差异
外观
删除的内容 添加的内容
小 机器人:移除6个跨语言链接,现在由维基数据的d:q2914952提供。 |
修正笔误 |
||
第4行: | 第4行: | ||
[[数据库管理系统]](DBMS)中的并发控制的任务是确保在多个[[数据库事务|事务]]同时存取[[数据库]]中同一数据时不破坏事务的隔离性和统一性以及[[数据库]]的统一性。下面举例说明并发操作带来的数据不一致性问题: |
[[数据库管理系统]](DBMS)中的并发控制的任务是确保在多个[[数据库事务|事务]]同时存取[[数据库]]中同一数据时不破坏事务的隔离性和统一性以及[[数据库]]的统一性。下面举例说明并发操作带来的数据不一致性问题: |
||
:现有两处火车票售票点,同时读取某一趟列车车票数据库中车票余额为 X。两处售票点同时卖出一张车票,同时修改余额为 X -1写回数据库,这样就造成了实际卖出两张火车票而数据库中的却记录只少了一张。 |
:现有两处火车票售票点,同时读取某一趟列车车票数据库中车票余额为 X。两处售票点同时卖出一张车票,同时修改余额为 X -1写回数据库,这样就造成了实际卖出两张火车票而数据库中的却记录只少了一张。 |
||
产生这种情况的原因是因为两个事 |
产生这种情况的原因是因为两个事务读入同一数据并同时修改,其中一个事务提交的结果破坏了另一个事务提交的结果,导致其数据的修改被丢失,破坏了事务的隔离性。并发控制要解决的就是这类问题。 |
||
[[封锁 (数据库)|封锁]]、[[时间戳]]、[[乐观并发控制]]和[[悲观并发控制]]是并发控制主要采用的技术手段。 |
[[封锁 (数据库)|封锁]]、[[时间戳]]、[[乐观并发控制]]和[[悲观并发控制]]是并发控制主要采用的技术手段。 |
||
第11行: | 第11行: | ||
*{{Translation/Ref|lang=en|article=Concurrency control|oldid=}} |
*{{Translation/Ref|lang=en|article=Concurrency control|oldid=}} |
||
*{{cite book zh |author=王珊 萨师煊 |title=数据库系统概论 |format=M |edition=4 |location=北京 |publisher=高等教育版社 |date=2006 |pages= |id= ISBN 7-04-019583-6}} |
*{{cite book zh |author=王珊 萨师煊 |title=数据库系统概论 |format=M |edition=4 |location=北京 |publisher=高等教育版社 |date=2006 |pages= |id= ISBN 7-04-019583-6}} |
||
“原因为两个事物”应改为“原因为两个事务” |
|||
== 外部链接 == |
== 外部链接 == |
2013年3月24日 (日) 20:25的版本
在计算机科学,特别是程序设计、操作系统、多重处理和数据库等领域,并发控制是确保及时纠正由并发操作导致的错误的一种机制。
数据库管理系统中的并发控制
数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。下面举例说明并发操作带来的数据不一致性问题:
- 现有两处火车票售票点,同时读取某一趟列车车票数据库中车票余额为 X。两处售票点同时卖出一张车票,同时修改余额为 X -1写回数据库,这样就造成了实际卖出两张火车票而数据库中的却记录只少了一张。
产生这种情况的原因是因为两个事务读入同一数据并同时修改,其中一个事务提交的结果破坏了另一个事务提交的结果,导致其数据的修改被丢失,破坏了事务的隔离性。并发控制要解决的就是这类问题。
封锁、时间戳、乐观并发控制和悲观并发控制是并发控制主要采用的技术手段。
参考
- 王珊 萨师煊. 数据库系统概论 (M) 4. 北京: 高等教育版社. 2006. ISBN 7-04-019583-6.
外部链接
- Portland Pattern Repository: Synchronization Strategies
- Portland Pattern Repository: Category Concurrency
- Database Locking: What it is, Why it Matters and What to do About it
这是一篇與软件相關的小作品。您可以通过编辑或修订扩充其内容。 |