数据库的保护
针对安全性问题的一般处理办法
- 用户标识和鉴定(系统提供的最外层安全保护措施)
- 存取控制(对登录成功的用户也要控制其对数据的存取)
- 定义视图(视图的优点,可以屏蔽一些用户不该看到的数据)
- 审计(系统自动将用户对数据库的所有操作记录在上面,利用审计追踪信息能重现导致数据出现现有状况的一系列事件,找出非法存取数据的人)
- 数据加密(使用加密技术,密文传输和密文存储)
数据的完整性
指数据的正确性、一致性、相容性
如学生的年龄必须是整数、取值范围是10~30,学生的性别是“男”和“女”,学生的学号必须是唯一的等
完整性约束条件(列级、元组级、关系级)
完整性控制
3方面的功能:定义功能、检查功能、采取措施的功能(立即执行和延迟执行约束)
并发控制(重点)
并发控制带来的不一致性包括3类:
- 丢失修改数据 lost update
- 不可重复读 nonrepeatable read
- 读"脏"数据 dirty read
保证事务ACID特性
- 原子性 atomicity
- 一致性 consistency
- 隔离性 isolation
- 持久性 durability
封锁和封锁协议
基本的封锁类型2种:
- 排它锁 exclusive locks(简称X锁)
- 共享锁 share locks(简称S锁)
封锁协议:
- 一级封锁协议
- 二级封锁协议
- 三级封锁协议
活锁和死锁
活锁:
如果事务T1封锁了数据R,事务T2又请求封锁R,于是T2等待。T3也请求封锁R,当T1释放了R上的封锁之后系统首先批准了T3的请求