
数据库管理系统DBMS与事务管理
语法分析与授权检查:用户输入的数据库语言语句(如SQL)经过词法及语法分析器处理,生成语法分析树。系统需检查用户是否具有访问相关数据对象的权限。 语义分析与查询处理:通过语法树进行语义分析和查询处理,主要处理DDL、DML、DCL等操作。查询处理涉及多种存取路径选择,这即为查询优化。 执行计划与功能执行:生成SQL语句的执行计划,以DBMS内部定义的SQL函数形式执行。这些函数负责操作磁盘、建立索引等任务。 并发控制与恢复机制:确保多用户并发访问时的数据一致性,并在系统故障时恢复数据库到一致状态。 原子性:事务要么全部执行,要么完全不执行。 一致性:事务执行前后数据库处于一致性状态。 隔离性:并发事务之间互不干扰。 持久性:提交的事务对数据库的改变是持久的。 核心进程:代表事务,与用户和系统对话,执行事务操作。 后台进程:负责事务无法承担的公共操作,如数据提交后的数据写入、物理块预读等。 创建、撤销进程的开销较大。 并发进程数有限,可能导致系统效率下降。 不利于资源共享。 并发控制:通过加锁协议(如X锁、两段封锁协议)实现事务之间的互不干扰。 恢复:确保事务在故障时满足ACID性质。恢复技术可分为: 脏读:未提交事务修改的数据被其他事务读取。 丢失修改:事务之间的数据修改互相覆盖。 不可重复读:同一事务下多次读取数据不一致。 幻读:事务读取数据时新增或删除了其他事务的数据。 READ-UNCOMMITTED:允许读取未提交数据,可能导致脏读。 READ-COMMITTED:确保读取的是已提交数据,防止脏读,但仍可能发生不可重复读。 REPEATABLE-READ:防止脏读和不可重复读,但幻读仍有可能。 SERIALIZABLE:最高隔离级别,完全避免并发干扰。 X锁:排他性锁,确保数据对象独占使用。 两段封锁协议:要求事务遵循先加锁、后操作的原则。 (S, X)锁:用于读写混合访问,S锁用于读取,X锁用于写入。 超时法:设置事务执行时间限制。 等待图法:通过有向图发现回路,判断是否存在死锁。 选择牺牲者:卷回其中一个事务。 释放锁:让受影响事务继续执行。 等待-死亡策略:优先等待年轻事务。 击伤-等待策略:通过事务年龄比较决定等待或卷回。
发布日期:2021-05-14 09:31:30
浏览次数:23
分类:精选文章
本文共 1458 字,大约阅读时间需要 4 分钟。
数据库管理系统(DBMS)是数据库系统的核心,其核心职能是在操作系统上以进程为单位运行,统一管理和控制数据库。DBMS为用户和应用程序提供便捷的数据操作接口,确保数据的安全性、完整性和一致性。它通过多种功能实现对数据库的高效管理和并发控制。
DBMS系统结构简介
DBMS的执行流程可以分为几个关键阶段:
事务的四大性质
事务是DBMS的执行单位,必须具备以下四大性质:
DBMS进程结构
DBMS中的进程分为核心进程和后台进程:
进程存在以下缺陷:
线程与进程的区别
线程是进程的更小执行单位,资源共享更高效。线程的切换开销比进程小,但资源管理较为复杂。
事务管理
事务管理包括并发控制和恢复:
- 单纯以后备副本恢复。
- 基于日志恢复技术。
- 多副本恢复技术。
并发控制
并发控制的目的是提高系统吞吐量和响应时间,但可能引发以下问题:
事务的隔离级别
隔离级别分为:
加锁协议
加锁是实现并发控制的重要手段,常用锁表管理数据对象的锁定状态:
死锁的检测与处理
死锁是由于循环等待导致的事务无法继续执行。检测方法包括:
处理方法:
死锁的防止
防止死锁的方法包括:
通过优化DBMS的并发控制机制和加锁协议,可以有效防止死锁的发生,确保系统稳定运行。
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年04月07日 12时50分58秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
主定理的应用
2019-03-11
动态规划算法的迭代实现
2019-03-11
最优装载问题
2019-03-11
最大团问题
2019-03-11
圆排列问题
2019-03-11
课程总结
2019-03-11
认识CMake及应用
2019-03-11
CMake的主体框架
2019-03-11
实践:从简单CMake说起
2019-03-11
像素间的关系
2019-03-11
微积分(三)
2019-03-11
Oracle
2019-03-11
软件工程应用
2019-03-11
数据科学
2019-03-11
论文报告/前沿文章
2019-03-11
Less
2019-03-11
JS模块化规范
2019-03-11
函数与高级变量
2019-03-11
机器学习:sklearn实现黑色星期五
2019-03-11
键盘事件
2019-03-11