目录
一、数据控制
1、安全性
2、完整性
3、并发控制
4、故障恢复
二、数据库设计概述
1、数据库设计关注的问题
2、数据库性能优化
3、规范化与反规范化
一、数据控制
1、安全性
2、完整性
(1)实体完整性约束:规定基本关系的主属性不能取空值。
(2)参照完整性约束:关系与关系间的引用,其他关系的主键或空值。
(3)用户自定义完整性约束:应用环境决定。
【触发器】:可以完成一些复杂的完整性约束。例如:对表A的某行或某个字段进行监听,如果发生变化就可以同步做更新。
3、并发控制
【事务】
(1)原子性
事务中包含的各项操作在一次执行过程中,只允许出现两种状态之一,要么都成功,要么都失败。任何一项操作失败都会导致整个事务的失败,同时其它已经被执行的操作都将被撤销并回滚,只有所有的操作全部成功,整个事务才算是成功完成。
(2)一致性
事务的执行不能破坏数据库数据的完整性和一致性,一个事务在执行前和执行后,数据库都必须处在一致性状态。例如:从A账号向B账号转钱,不可能A账户扣了钱,B账户却没收到钱。
(3)隔离性
在并发环境中,并发的事务是相互隔离的,一个事务的执行不能被其它事务干扰。不同事务并发操作相同数据时,每个事务都有各自完整的数据空间。
(4)持续性(持久性)
事务一旦提交后,数据库中的数据必须被永久保存下来。即使服务器系统崩溃或服务器宕机等故障,只要数据库重新启动,就一定能够将其恢复到事务成功结束后的状态。
【封锁协议】
S封锁:共享锁,读锁,可重复加锁。
X封锁:排他锁,写锁,不可重复加锁,如已加别的锁需等待解锁后在进行加锁。
(1)一级封锁协议:只有X锁,只能加一次。可以解决丢失更新问题。
(2)二级封锁协议:有S锁也有X锁,读完立即释放S锁。可以解决脏数据的读出。
(3)三级封锁协议:有S锁也有X锁,事务结束才释放S锁。可以解决不可重复读问题。
(4)两段锁协议:加解锁操作在整个事务的代码段中分开,前半段都是加锁,后半段都是解锁。
4、故障恢复
(1)冷备份
也称为静态备份,是将数据库正常关闭,在停止状态下,将数据库的文件全部备份(复制)下来。
(2)热备份
也称为动态备份,是利用备份软件,在数据库正常运行的状态下,将数据库中的数据文件备份出来。
【完全备份】:备份所有数据。
【差量备份】:仅备份上一次完全备份之后变化的和数据。
【增量备份】:备份上一次备份之后变化的数据。
【日志文件】:事务日志是针对数据库改变所作的记录,它可以记录针对数据库的任何操作,并将记录结果保存在独立的文件中。
例如下计划:
周日全备,周一周二根据周日数据进行增备,周三根据周日数据进行差备,周四根据周三数据进行增备,周五根据周日数据进行差备,周六根据周五数据进行增备。
【故障及解决方法】
二、数据库设计概述
1、数据库设计关注的问题
性能、数据一致性、安全
2、数据库性能优化
理论上看:在数据库优化设计方面,同等条件下,自然连接的性能优于笛卡尔积。
3、规范化与反规范化
【规范化】
随着规范化范式级别的提升,查询效率降低了。
【反规范化】
【反规范化优缺点】
优点:连接操作少,检索快,统计快,需要查的表减少,检索容易。
缺点: