软件设计师考试笔记-(12)
1、数据库系统(下)
1.5、并发控制
1.5.1、事务
- 原子性:事务中的多个数据库操作是一个不可分割的原子单元整体,只有所有的操作执行成功,整个事务才提交。事务中的任何一个数据库操作失败,已经执行的任何操作都必须被撤销,让数据库返回初始状态。
- 一致性:事务操作成功后,保证数据不会被破坏。如A账户转账100元到B账户,不管操作成功与否,A和B账户的存款总额是不变的。
- 隔离性:一个事务的执行不能其它事务干扰。即一个事务内部的操作及使用的数据对其它并发事务是隔离的,并发执行的各个事务之间不能互相干扰。
- 持续性:一旦事务提交成功后,事务中所有的数据操作都必须被持久化到数据库中。即使在事务提交后,数据库马上崩溃,在数据库重启时,也必须保证能够通过某种机制恢复数据。
1.5.2、存在的问题
- 丢失更新
- 不可重复读
- 读到脏数据
1.5.3、解决方法-封锁协议
1.6、数据库完整性约束
- 实体完整性约束
- 参照完整性约束
- 用户自定义完整性约束
1.7、数据库安全
1.8、数据库备份