规范化理论-模式分解
模式分解 :把一个关系模式分解成多个关系模式。
无损分解: 可以还原。 有损分解:不能还原。
无损联接分解:将一个关系模式分解成若干个关系模式后,同自然联接,投影等运算还原到原来的关系模式。
并发控制
事务的特性:
原子性: 不可分解,要么都改,要么都不改。
一致性: 事务操作后,总量不变。 如 A , B 到 A +50 , B-50.
隔离性:事务操作之间师隔离的,互不影响。
持续性: 事务操作完后,一直影响结果,不会回退, 除非主动。
并发的问题:
丢失更新
重复读取:
读“脏”数据
解决方案:
一级锁: 事务T在修改数据之前,就加入 写锁 (X),等事务结束后才释放。 防止丢失更新。
二级锁: 一级锁前提下,事务T在读取数据之前,就加入读锁(S),等读取完后才释放, 防止丢失更新,读脏数据 。
三级锁:一级锁前提下,事务T在读取数据之前,就加入读锁(S),等事务结束后释放, 防止 ALL。
加锁时需要提防 “死锁”问题。
数据完整性约束
1 实体完整性约束 : 主键
2 参照完整性约束 : 外键
3 用户自定义完整性约束 :
或者脚本
数据库安全
用户标识和鉴定: 加密码,问题验证之类。
存取控制: 限定 存取权限
视图保护: 限定视图权限
密码存储和传输: 数据加密
审计: 通过日志文件分享问题。
数据备份
1 静态备份:数据库暂停, 备份
2 动态备份: 数据库照常运行, 备份。
1 完全备份:备份所有数据
2 差量备份: 仅仅备份上一次完全备份后的变化数据,
3 增量备份:备份上一次备份之后变化的数据。
完 , 增, 增, 增, 差, 增,增
日志: 所有的修改记录保存到一个日志文件中。
分布式 数据库-体系结构
局部数据库 :就是各个地点的本地数据库,只能访问本地。
全局数据库: 可以访问所有局部数据库。
分片模式:
1 水平
2 垂直
3 混合