上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
第1章
事务概述
关系型数据库的本质是在关系代数的理论基础上实现的基于事务的数据处理系统,用户向数据库输入SQL语句,数据库服务器则根据用户输入的SQL语句对数据进行DML、DDL、DCL操作。在有些情况下我们把单条的SQL语句作为一个逻辑单元,比如查阅图书馆中图书的数量,只需要一个SQL语句就可以实现,这个SQL语句被解析成聚集算子和扫描算子的叠加(物理执行计划)。而在有些情况下,我们需要将多个语句视为同一个逻辑单元,比如银行转账操作,需要先在一个账户中减去转账金额,同时在另一个账户中增加转账金额,这就需要两个SQL语句来实现。于是,我们可以把由一组语句构成的一个逻辑单元叫作一个事务。一个事务要么完全被执行,要么完全不执行,也就是说如果事务执行到中途的时候发生了异常,已经做了的部分也需要回滚,让用户看上去觉得这个异常终止的事务好像完全没有执行过一样。人们经过长期的摸索,给事务总结出原子性、一致性、隔离性和持久性4个基本性质,并且通过并发控制方法和故障恢复方式对这几个性质进行了实现。