并发控制
可能存在的问题
封锁协议
- 一级封锁协议。事务T在修改数据R之前必须先对其加x锁,直到事务结束才释放。可防止丢失修改
- 二级封锁协议。一级封锁协议加上事务T在读取数据R之前先对其加s锁,读完后即可释放s锁。可防止丢失修改,还可防止读“脏”数据
- 三级封锁协议。一级封锁协议加上事务T在读取数据R之前先对其加s锁,直到事务结束才释放。可防止丢失修改、防止读“脏”数据与防止数据重复读
- 两段锁协议。可串行化的。可能发生死锁
数据库完整性约束
提高数据可靠性
实体完整性约束
- 主码值是否唯一,为空
参照完整性约束
- 外键是否是对应表里的内容,允许为空
用户自定义完整性约束
触发器
- 写脚本来约束数据库的要求,更加复杂的要求一般用触发器来完成
数据库安全
数据备份
按动静态分
冷备份
冷备份也称为静态备份,是将数据库正常关闭,在停止状态下,将数据库的文件全部备份(复制)下来。
- 优点:非常快速的备份方法(只需复制文件);容易归档(简单复制即可);容易恢复到某个时间点上(只需将文件再复制回去);能与归档方法相结合,做数据库“最佳状态”的恢复;低度维护,高度安全
- 缺点:单独使用时,只能提供到某一时间点上的恢复;在实施备份的全过程中,数据库必须要作备份而不能做其他工作;若磁盘空间有限只能复制到磁带等其他外部存储设备上,速度会很慢;不能按表或按用户恢复
热备份
热备份也称为动态备份,是利用备份软件,在数据库正常运行的状态下,将数据库中的数据文件备份出来。
- 优点:可在表空间或数据库文件级备份,备份的时间短;备份时数据库仍可使用;可达到秒级恢复(恢复到某一时间点上);可对几乎所有数据库实体做恢复;恢复是快速的
- 缺点:不能出错,否则后果严重;若热备份不成功所得结果不可用于时间点的恢复;因难于维护,所以要特别小心,不允许“以失败告终”
按备份数据量分
完全备份:备份所有数据
差量备份:仅备份上一次完全备份之后变化的数据,恢复数据简便
增量备份:备份上一次备份之后 变化的数据
日 | 一 | 二 | 三 | 四 | 五 | 六 | 七 |
---|---|---|---|---|---|---|---|
完全 | 增量 | 增量 | 增量 | 增量 | 差量 | 增量 | 增量 |
如果要恢复周四的数据:需要先恢复周日的数据,再逐步恢复周一二三四的数据
如果要恢复周五的数据:只要先恢复周日的数据上,恢复周五的数据就行
二者结合
转储相当于备份的意思
- 静态海量转储:在系统中无运行事务时进行,每次转储全部数据库。
- 静态增量转储:在系统中无运行事务时进行,每次只转储上一次转储后更新过的数据。
- 动态海量转储:转储期间允许对数据库进行存取或修改,每次转储全部数据库。
- 动态增量转储:转储期间允许对数据库进行存取或修改,每次只转储上一次转储后更新过的数据。
日志文件
事务日志是针对数据库改变所做的记录,它可以记录针对数据库的任何操作,并将记录结果保存在独立的文件中
数据库的故障与恢复
数据仓库与数据挖掘
数据挖掘方法分类
方法:
- 决策树
- 神经网络
- 遗传算法
- 关联规则挖掘算法
分类:
- 关联分析:挖掘出隐藏在数据间的相互关系。
- 序列模式分析:侧重点是分析数据间的前后关系(因果关系)。
- 分类分析:为每一个记录赋予一个标记再按标记分类。
- 聚类分析:分类分析法的逆过程。
反规范化
由于规范化会使表不断的拆分,从而导致数据表过多。这样虽然减少了数据冗余,提高了增、删、改的速度,但会增加查询的工作量。系统需要进行多次连接,才能进行查询操作,使得系统效率大大下降
手段
- 增加派生性冗余列
- 增加冗余列
- 重新组表
- 分割表
大数据
体现在4方面:
- 数据量
- 速度
- 多样性
- 值
大数据处理系统应该具有的重要特征: - 高度可扩展性
- 高性能
- 高度容错
- 支持异构环境
- 较短的分析延迟
- 易用且开放的接口
- 较低成本
- 向下兼容性