数据库系统运行的基本单元是事务,相当于操作系统中的进程,是用户定义的一系列数据库操作,这些操作要么是全部完成,要么全部完成,成为一个不可分的工作单元。
交易有下列特征:
原子性(Atomicity):数据库的逻辑工作单元。
一致性(Consistency):使数据库从一种一致状态转变为另一种状态。
隔离性(Isolation):不能被其它交易所干扰。
持续性(永久)(Durability):一旦提交,变化就是永久的。
在多用户共享系统中,很多事务可能在一开始就处理相同的数据,这就是所谓的“并发操作”,这时数据库管理系统的并发控制子系统负责协调并发事务的执行,保证数据库的完整性不被破坏,同时避免用户获取错误的数据。解决并发控制问题的主要方法是封锁技术。可分为两类:排他型封锁(X封锁)和共同型封锁(S封锁)。
排除性封锁(简称X封锁)
若交易T对数据A(可以是数据项、记录、数据集,甚至整个数据库)实施X封锁,则只允许事务T读取和修改数据A,而其他事务在事务T取消X封锁之后才能对数据A实施任何封锁。X封锁只允许一个事务对某一数据独锁,且不受限制。
共同封锁(简称S封锁)
若交易T对数据A实施S封锁,则允许事务T读取数据A,但不能修改数据A,绝不允许事务在所有S封锁解除之前对数据A实施X封锁。