数据库复习
1. 数据库的三级模式和两级映像架构对数据库系统有何重要意义
三级模式
- 视图层/外模式
- 把现实世界信息 按不同用户观点 抽象为多个逻辑数据结构,每个逻辑结构称为视图
- 每个视图称为数据库的一个子模式
- 逻辑模式
- 综合所有视图,把所有用户关心的现实世界抽象为逻辑模式
- 描述 数据库中存储的数据 及 数据间的关系
- 物理模式/内模式
- 描述数据实际上怎样存储的
两级映像/数据独立性
- 逻辑数据独立性
- 由 视图子模式 -> 逻辑模式 的映射实现,仅需修改此映射即可
- 数据库的视图子模式 和 应用程序 可以不改变
- 物理数据独立性
- 由 逻辑模式 -> 物理模式 的映射实现,仅需修改此映射即可
- 逻辑模式 和 应用程序 可以不改变
2. 设计大型关系型数据库时,遵照“概念设计->逻辑设计->物理设计”的过程有何好处
-
概念设计
能将现实世界的信息转化为概念(根据需求设计ER图
);逻辑设计
进一步将概念抽象为逻辑模式(ER图转化为关系
,函数依赖
,范式
,关系分解
,无损连接性
,函数依赖保持性
);物理设计
在此基础上,为关系模式选择合适的存储结构和存取方法。
- 分层设计能够通过两级映射实现数据独立性,即 逻辑数据独立性 和 物理数据独立性。
3. 对视图进行INSERT, UPDATE, DELETE 需要满足的条件
4. SQL 字符串存储空间
VARCHAR的开头需要存储字符串的长度
- 0 < 长度 <= 255 (\(2^8-1\)),需要1个字节
- 256 <= 长度 <= 65535 (\(2^{16}-1\)),需要2个字节
5. 缓冲池 和 虚拟内存 的相同点和不同点
相同点:
- 两者都用于访问 可用内存 容纳不下的数据
- 两者都会在需要的时候从磁盘将页读入内存
- 两者都会进行页替换
不同点:
- DBMS经常能更准确地预测页的访问顺序
- 有助于更好地选择被替换的页
- 有助于更准确地预取页
- OS不具备内存中的页强制写回磁盘的能力,DBMS必须具有强制写回的能力(force)
- OS会将修改过的页延迟写回磁盘,若写回前发生故障,则会破坏数据一致性
- DBMS则需要保证一致性。通过将修改过的页写回磁盘前将日志记录写入日志,保证故障恢复(Write-Ahead Logging, WAL协议)
- 并发控制和故障恢复使得缓冲区管理器的设计更加复杂
6. 数据库系统 和 文件系统 的比较
数据库的其他优点:数据独立性高、 支持复杂结构、 三种数据抽象、 正确安全可靠
7. 基于时间戳的并发控制协议的优缺点
优点:
- 保证冲突可串行化
- 无死锁
缺点:
- 一系列短事务的冲突可能引起长事务的反复重启,导致长事务饿死。
- 可能产生不可恢复的调度。
例如T1需要undo,而T2使用了T1的内容且已经commit,此时T2不能undo,导致不可恢复。
8. 故障的分类
- 事务故障
- 逻辑故障:事务由于某些内部条件而无法继续正常执行,如非法输入、找不到数据、溢出或超出资源限制
- 系统错误:系统进入一种不良状态,如死锁,结果事务无法继续正常执行,但该事务可以在以后的某个时间重新执行
- 系统故障:硬件故障,或者数据库软件或操作系统的漏洞,导致易失性存储器内容丢失.
- 磁盘故障