事务是 DBMS 运行的基本工作单位,是用户定义的一个数据库操作序列——要么全做,要么全都不做,是不可分割的工作单位。
并发控制的主要技术是封锁,两类锁:
| 锁类型 | 规则 |
|---|---|
| X 锁(排他锁/写锁) | 事务 T 对数据 A 加 X 锁后,只允许 T 读取和修改 A,其他事务必须等 T 解锁后才能对 A 加任何类型的锁——具有排他性 |
| S 锁(共享锁/读锁) | 事务 T 对数据 A 加 S 锁后,T 只能读不能修改 A;在所有 S 锁解除之前,不允许任何事务对 A 加 X 锁(但可共享读) |
并发产生的问题:丢失修改(两事务同时更新同一数据,一方的更新丢失)、不可重复读(一个事务两次读之间数据被别的事务修改)、读脏数据(读到别的事务未提交、后被回滚的数据)。两段锁协议:事务分扩展阶段(加锁)和收缩阶段(解锁),遵守两段锁协议一定可串行化,但可能死锁。
| 对比项 | OLTP 联机事务处理 | OLAP 联机分析处理 |
|---|---|---|
| 面向对象 | 操作人员/低层管理人员(业务) | 决策人员/高层管理人员(分析) |
| 数据 | 当前、最新的细节/二维的、分立 | 历史的、聚合的、多维的、集成的 |
| 操作 | 增删改查频繁、事务性强 | 复杂查询为主,支持决策分析 |
数据仓库四特征:面向主题、集成的、相对稳定的、反映历史变化。数据仓库 + ETL + OLAP + 数据挖掘 = 商业智能 BI。数据挖掘常用方法:分类、聚类、关联规则、序列模式等。
| 备份方式 | 要点 |
|---|---|
| 静态备份 | 备份期间不允许任何存取/修改——简单,但降低数据库可用性 |
| 动态备份 | 备份与用户事务并发执行——克服静态缺点,但副本数据不能保证正确有效 |
| 海量备份 | 每次备份全部数据库 |
| 增量备份 | 只备份上次备份后更新过的数据——数据库大、事务频繁时有效 |
四类故障:事务故障、系统故障、介质故障、计算机病毒。恢复操作:UNDO(撤销/重做未完成事务)与 REDO(重做已提交事务);介质故障由 DBA 装入数据库副本和日志文件副本,再执行撤销和重做。