可串行性
数据库事务的属性 / 维基百科,自由的 encyclopedia
可串行性(英语:Serializability)是指在计算机里一种多个事务先后之间穿插的用于执行正确调度方式的主要准则[1][2],亦是事务之间最高级别的隔离,在并发控制中起着至关重要的作用,其中多个事务并发时的执行顺序要对数据的一致性没有影响。
此条目可参照英语维基百科相应条目来扩充。 (2020年4月23日) |
而可串行化(英语:Serializable)是指并发控制的数据库[3][4]、事务处理以及各种事务性应用程序(例如,事务内存[5]和软件事务内存)的集中式(英语:Centralized computing)和分布式事务排程。调度的可串行性意味对于存在共同操作对象的多个并发执行的相同事务串行执行结果(如:生成数据库状态、数据值)“等价”于某个“串行化调度”(即连续的受时间上没有事务重叠影响)。
如果事务之间没有共同的操作对象,则事务之间的执行顺序与前后置换都是没有关系的,但是如果事物间存在共同的操作对象,则事务间先后执行顺序需要区分。事务通常是并发执行的(重叠的),因这是最有效的方法。
自20世纪70年代早期以来,在大多数数据库系统(以各种变体)中都使用了一种流行的可串行机制——强两阶段加锁(SS2PL)。
可串行性理论(英语:Serializability theory)为推理和分析可串行化及其技术提供了形式框架。尽管本质上是数学,但下面非正式地介绍了它的基本原理(没有数学符号)。