数据管理基础2022 期末复习
数据管理基础 期末复习
第二章 关系数据库
1. 关系代数
五种基本关系代数运算:并、差、笛卡尔积、选择、投影。
第三章 SQL
1. 视图
解释:
由一个或几个基本表(或视图)导出的表,是一个虚表。数据库只存放视图的定义,而不存放视图对应的数据。
视图的作用:
- 简化用户的操作
- 使用户能以多种角度看待同一数据,适应了数据库共享的需要
- 对重构数据库提供了一定程度的逻辑独立性
- 对机密数据提供安全保护
- 适当的利用视图可以更清晰地表达查询
第六章 关系数据理论
1. 1NF
如果一个关系模式R的所有属性都是不可分的基本数据项,则R属于1NF。
存在的问题:
- 数据冗余
- 修改复杂,更新异常
- 插入异常
- 删除异常
2. 2NF
在1NF的基础上,若R中每个非主属性都完全函数依赖于任何一个候选码,则R属于2NF。
存在的问题:
- 数据冗余:有改进
- 修改复杂,更新异常:有改进
- 插入异常:仍然存在
- 删除异常:仍然存在
3. 3NF
若R中还不存在传递依赖,则R属于3NF。
存在的问题:
- 数据冗余:有改进
- 插入异常:有改进
- 删除异常:有改进
4. BCNF
所有非主属性都完全函数依赖于每个候选码。
所有主属性都完全函数依赖于每个不包含他的候选码。
没有任何属性完全函数依赖于非码的任何一组属性。
也就是 没有非主属性对码传递依赖或部分依赖(3NF);并且没有码以外的决定因素(BCNF)。
5. 4NF
在R中,对于属性组A的每一个值,属性组B都有一组值与之对应,而与其他属性无关,则B多值依赖于A。
4NF限制关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖。
第十章 数据库恢复技术
1. 事务
事务是用户定义的一个数据库操作序列。
事物的ACID特性:
- 原子性:事务中的操作要么都做,要么都不做。
- 一致性
- 隔离性:并发执行的各个事务之间不能互相干扰。
- 持续性:一个事务一旦提交,对数据库的影响是永久性的。
2. 故障
事务内部的故障;系统故障;介质故障;计算机病毒。
3. 日志
日志文件是用来记录事务对数据库的更新操作的文件。
用途:
- 进行事务故障恢复
- 进行系统故障恢复
- 协助后备副本进行介质故障恢复
登记原则:
- 登记的次序严格按并发事务执行的时间次序
- n必须先写日志文件,后写数据库
4. 恢复
事务故障的恢复:Undo;反向扫描文件日志。
系统故障的恢复:Undo故障发生时未完成事务;Redo已完成事务。
介质故障的恢复:重装数据库,Redo已完成事务。
具有检查点的恢复技术:
第十一章 并发控制
1. 封锁协议
- **一级封锁协议:**事务修改数据前施加X锁,事务结束后释放锁。
- 防止丢失更改
- 不保证不读脏数据
- 不保证可重复读
- **二级封锁协议:**一级基础上,事务读取数据前施加S锁,读取结束后释放S锁。
- 防止丢失更改
- 防止读脏数据
- 不保证可重复读
- **三级封锁协议:**一级基础上,事务读取数据前施加S锁,事务结束后释放S锁。
- 防止丢失更改
- 防止读脏数据
- 可重复读
2. 死锁与活锁
- **活锁:**采用先来先服务解决。
- 死锁:
- 一次封锁法:事务必须一次性将所要使用的数据全部加锁。降低了并发度;难以确定需要封锁的范围。
- 顺序封锁法:预先规定一个封锁顺序,按照顺序封锁。维护顺序成本高;难以按规定顺序加锁。
- 超时法:可能误判死锁;时限太长,死锁难以及时发现。
- 等待图法:系统周期性地生成事务等待图,发现回路说明出现死锁。
3. 可串行化调度
- 可串行化是并发事务正确调度的准则。
- 冲突操作是指不同事务对同一数据的读写操作或写写操作。
- 不同事务的冲突操作和同一事物的两个操作是不能交换的。
- 冲突可串行化调度
- 两段锁协议,事务分为两个阶段,第一阶段获得封锁,成为扩展阶段;第二阶段释放封锁,称为收缩阶段。遵循两段锁协议是可串行化调度。
4. 多粒度封锁
**意向锁:**对一个结点施加意向锁,说明其下层节点正在被加锁。
IS锁,IX锁,SIX锁
第十二章 NoSQL
1. 于SQL优劣比较
SQL优点:
- 获取持久化数据
- 并发控制
- 集成:多个应用程序可以将数据存储在一个公共的数据库中。
- 近乎标准的模型
SQL缺点:
阻抗失谐:关系模型和内存中的数据结构之间存在差异。
关系元组不能包含嵌套记录或列表等结构。
与集群不协调
NoSQL特点:
- 不使用关系模型
- 在集群中运行良好
- 无模式:自由、灵活。
- 混合持久化:在不同的场景使用不同的存储方式。
- 面向聚合(键值、文件、列族):操作多个聚合时笨拙。
2. 键值数据库
聚合不透明,可以存储任意数据。
通过键查询。
3. 文档数据库
聚合透明,定义了允许的结构与数据类型,可以更加灵活地访问数据。
基于文档的内部结构查询。
4. 列族数据库
每一行是一个聚合,行中有很多列族。
5. 图数据库
不面向聚合,不利于集群。
重视数据间的关系,查询内部相互关系比较紧密的数据模型时效率高。