并发控制:修订间差异
外观
删除的内容 添加的内容
小 机器人:移除6个跨语言链接,现在由维基数据的d:q2914952提供。 |
|||
(未显示7个用户的8个中间版本) | |||
第1行: | 第1行: | ||
{{noteTA |
|||
⚫ | |||
|G1=IT |
|||
|1=zh-tw:並行控制;zh-cn:并发控制; |
|||
}} |
|||
⚫ | |||
==数据库管理系统中的并发控制== |
==数据库管理系统中的并发控制== |
||
[[数据库管理系统]](DBMS)中的并发控制的任务是确保在多个[[数据库事务|事务]]同时存取[[数据库]]中同一数据时不破坏事务的隔离性和统一性以及[[数据库]]的统一性。下面举例说明并发操作带来的数据不一致性问题: |
[[数据库管理系统]](DBMS)中的并发控制的任务是确保在多个[[数据库事务|事务]]同时存取[[数据库]]中同一数据时不破坏事务的隔离性和统一性以及[[数据库]]的统一性。下面举例说明并发操作带来的数据不一致性问题: |
||
:现有两处火车票售票点,同时读取某一趟列车车票数据库中车票余额为 X。两处售票点同时卖出一张车票,同时修改余额为 X -1写回数据库,这样就造成了实际卖出两张火车票而数据库中的 |
:现有两处火车票售票点,同时读取某一趟列车车票数据库中车票余额为 X。两处售票点同时卖出一张车票,同时修改余额为 X -1写回数据库,这样就造成了实际卖出两张火车票而数据库中的记录却只少了一张。 |
||
产生这种情况的原因是因为两个事 |
产生这种情况的原因是因为两个事务读入同一数据并同时修改,其中一个事务提交的结果破坏了另一个事务提交的结果,导致其数据的修改被丢失,破坏了事务的隔离性。并发控制要解决的就是这类问题。 |
||
[[封锁 (数据库)|封锁]]、[[时间戳]]、[[乐观并发控制]]和[[悲观并发控制]]是并发控制主要采用的技术手段。 |
[[封锁 (数据库)|封锁]]、[[时间戳]]、[[乐观并发控制]]和[[悲观并发控制]]是并发控制主要采用的技术手段。 |
||
==参考== |
== 参考文献 == |
||
{{Reflist}} |
|||
⚫ | |||
{{refbegin}} |
|||
⚫ | |||
⚫ | |||
“原因为两个事物”应改为“原因为两个事务” |
|||
⚫ | |||
{{refend}} |
|||
== 外部链接 == |
== 外部链接 == |
||
* [http://c2.com/cgi/wiki?SynchronizationStrategies Portland Pattern Repository: Synchronization Strategies] |
* [http://c2.com/cgi/wiki?SynchronizationStrategies Portland Pattern Repository: Synchronization Strategies] {{Wayback|url=http://c2.com/cgi/wiki?SynchronizationStrategies |date=20100619023335 }} |
||
* [http://c2.com/cgi/wiki?CategoryConcurrency Portland Pattern Repository: Category Concurrency] |
* [http://c2.com/cgi/wiki?CategoryConcurrency Portland Pattern Repository: Category Concurrency] {{Wayback|url=http://c2.com/cgi/wiki?CategoryConcurrency |date=20100203002308 }} |
||
* [http://www.methodsandtools.com/archive/archive.php?id=83 Database Locking: What it is, Why it Matters and What to do About it] |
* [http://www.methodsandtools.com/archive/archive.php?id=83 Database Locking: What it is, Why it Matters and What to do About it] {{Wayback|url=http://www.methodsandtools.com/archive/archive.php?id=83 |date=20091226110705 }} |
||
⚫ | |||
⚫ | |||
[[分类:数据库]] |
|||
{{-}} |
|||
{{Database}} |
|||
{{Computer Science}} |
{{Computer Science}} |
||
⚫ | |||
[[Category:并发控制]] |
|||
⚫ | |||
{{软件小作品}} |
{{软件小作品}} |
2023年12月5日 (二) 02:22的最新版本
在计算机科学,特别是程序设计、操作系统、多处理机和数据库等领域,并发控制(英語:Concurrency control)是确保及时纠正由并发操作导致的错误的一种机制。
数据库管理系统中的并发控制
[编辑]数据库管理系统(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 (页面存档备份,存于互联网档案馆)
这是一篇與软件相關的小作品。您可以通过编辑或修订扩充其内容。 |