事务处理

事物处理


概念

事务完成一个业务逻辑所涉及的一组具有ACID特性的数据库操作
事务管理器( Transaction Manager ):负责对数据库的改变记录日志,以支持系统崩溃后的恢复。
并发控制器: 保障事务的并发执行,以支持多用户访问。

ACID特性:

  • 原子性(Atomicity)
    原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
  • 一致性(Consistency)
    事务前后数据的完整性必须保持一致。
  • 隔离性(Isolation)
    事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。
  • 持久性(Durability)
    持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响

SQL查询处理过程

事务处理

  1. 查询分析和语义检查
  2. 将 SQL 查询转换为关系代数,选择逻辑查询计划
  3. 选择物理查询计划,在物理查询计划中指明运算的具体顺序和用于实现每一个运算的算法

逻辑查询计划:是一个代数表达式,表示要在数据上执行的若干个具体运算以及有关运算顺序。


DBMS数据存取处理过程

  1. 应用程序向DBMS发出访问数据库的命令,其中包含关系名和查询条件;
  2. DBMS读取数据字典,检查是否存在该关系和相应字段,并对该命令进行语法和用户权限检查。如果检查通过,则执行该命令,否则拒绝并返回出错信息;
  3. 执行该命令时,首先根据数据字典中的定义将命令中的外模式映射到模式,确定应该读取哪些记录;
  4. 根据数据字典中的定义信息,将模式映射到内模式,确定应该读入哪些物理记录及有关的地址信息;
  5. DBMS向操作系统OS发送读取该记录的命令;
  6. OS执行读取数据的有关操作,从指定地址读取记录并存入系统缓冲区;
  7. DBMS将系统缓冲区中的数据转换为模式并进而转换为外模式;
  8. DBMS将系统缓冲区外模式形式的记录返回给应用程序;
  9. DBMS将运行情况登记在运行日志中;
  10. DBMS将命令执行状态返回应用程序;
  11. 若应用程序中的命令需读取多条记录,则反复执行4-10步。