数据库管理:事务与并发控制

需积分: 3 3 下载量 74 浏览量 更新于2024-07-12 收藏 718KB PPT 举报
"数据库实用教程(第三版)深入讲解了数据库管理的相关知识,包括事务的ACID特性、并发控制以及恢复机制。课程关注事务的概念、状态变迁,强调并发操作可能导致的问题,如不可重复读,并介绍了解决这些问题的方法,如两段封锁法。此外,还提到了SQL中的安全性机制和完整性约束,以及如何通过触发器技术实现这些约束。恢复管理子系统的目标是确保事务的原子性和持久性,即使面对不同类型的故障,也能恢复数据库到正确状态。" 在《数据库实用教程(第三版)》中,事务是数据库操作的基本逻辑单位,它可以是一条SQL语句、一组SQL语句,甚至整个程序。用户可以显式或隐式地定义事务的开始和结束。事务的ACID属性包括原子性(事务的所有操作要么全部完成,要么全部不完成)、一致性(事务完成后,数据库应处于一致状态)、隔离性(并发事务之间互不影响)和持久性(一旦事务提交,其结果就是永久的)。事务可能经历活动、提交、异常终止和局部提交等状态。 并发操作可能导致三个问题:丢失更新、脏读和不可重复读。其中,不可重复读是指事务Ti在读取数据后,事务Tj进行更新,导致Ti再次读取时数据已改变。例如,事务Ti读取了A和B的值,然后Tj修改了B的值,使得Ti再次读取B时,结果与之前不同。 为了解决并发问题,教材中提到了并发调度的可串行化,如两段封锁法,它确保事务在读取数据前先锁定,然后在更新后释放锁,从而避免并发冲突。同时,X锁和PX协议也被提及,它们是用于控制并发访问的锁定策略。 数据库的安全性涉及权限管理和SQL中的安全性机制,如授权语句,用于控制用户对数据的访问权限。完整性是数据库的另一重要方面,包括实体完整性、参照完整性和用户定义的完整性,这些可以通过SQL中的约束(如主键、外键和检查约束)和触发器来实现。 恢复管理子系统负责在各种故障(事务故障、系统故障和介质故障)发生后恢复数据库。数据库转储和登录日志是创建冗余数据以实现恢复的常见手段,日志记录事务的每一步操作,以便在故障后根据日志回滚或重播事务,确保数据库的正确状态。