数据管理基础2022 期末复习

数据管理基础 期末复习

第二章 关系数据库

1. 关系代数

五种基本关系代数运算:并、差、笛卡尔积、选择、投影。

第三章 SQL

1. 视图

解释:

由一个或几个基本表(或视图)导出的表,是一个虚表。数据库只存放视图的定义,而不存放视图对应的数据。

视图的作用:

  • 简化用户的操作
  • 使用户能以多种角度看待同一数据,适应了数据库共享的需要
  • 对重构数据库提供了一定程度的逻辑独立性
  • 对机密数据提供安全保护
  • 适当的利用视图可以更清晰地表达查询

第六章 关系数据理论

1. 1NF

如果一个关系模式R的所有属性都是不可分的基本数据项,则R属于1NF。

image-20241219001312112

存在的问题:

  • 数据冗余
  • 修改复杂,更新异常
  • 插入异常
  • 删除异常

2. 2NF

在1NF的基础上,若R中每个非主属性都完全函数依赖于任何一个候选码,则R属于2NF。

image-20241219001322900

存在的问题:

  • 数据冗余:有改进
  • 修改复杂,更新异常:有改进
  • 插入异常:仍然存在
  • 删除异常:仍然存在

3. 3NF

若R中还不存在传递依赖,则R属于3NF。

image-20241219001330907

存在的问题:

  • 数据冗余:有改进
  • 插入异常:有改进
  • 删除异常:有改进

4. BCNF

所有非主属性都完全函数依赖于每个候选码。

所有主属性都完全函数依赖于每个不包含他的候选码。

没有任何属性完全函数依赖于非码的任何一组属性。

也就是 没有非主属性对码传递依赖或部分依赖(3NF);并且没有码以外的决定因素(BCNF)。

5. 4NF

在R中,对于属性组A的每一个值,属性组B都有一组值与之对应,而与其他属性无关,则B多值依赖于A。

4NF限制关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖。

第十章 数据库恢复技术

1. 事务

事务是用户定义的一个数据库操作序列。

事物的ACID特性:

  • 原子性:事务中的操作要么都做,要么都不做。
  • 一致性
  • 隔离性:并发执行的各个事务之间不能互相干扰。
  • 持续性:一个事务一旦提交,对数据库的影响是永久性的。

2. 故障

事务内部的故障;系统故障;介质故障;计算机病毒。

3. 日志

日志文件是用来记录事务对数据库的更新操作的文件。

用途:

  • 进行事务故障恢复
  • 进行系统故障恢复
  • 协助后备副本进行介质故障恢复

登记原则:

  • 登记的次序严格按并发事务执行的时间次序
  • n必须先写日志文件,后写数据库

4. 恢复

事务故障的恢复:Undo;反向扫描文件日志。

系统故障的恢复:Undo故障发生时未完成事务;Redo已完成事务。

介质故障的恢复:重装数据库,Redo已完成事务。

具有检查点的恢复技术:

image-20241219001357714

第十一章 并发控制

1. 封锁协议

  • **一级封锁协议:**事务修改数据前施加X锁,事务结束后释放锁。
    • 防止丢失更改
    • 不保证不读脏数据
    • 不保证可重复读
  • **二级封锁协议:**一级基础上,事务读取数据前施加S锁,读取结束后释放S锁。
    • 防止丢失更改
    • 防止读脏数据
    • 不保证可重复读
  • **三级封锁协议:**一级基础上,事务读取数据前施加S锁,事务结束后释放S锁。
    • 防止丢失更改
    • 防止读脏数据
    • 可重复读

2. 死锁与活锁

  • **活锁:**采用先来先服务解决。
  • 死锁:
    • 一次封锁法:事务必须一次性将所要使用的数据全部加锁。降低了并发度;难以确定需要封锁的范围。
    • 顺序封锁法:预先规定一个封锁顺序,按照顺序封锁。维护顺序成本高;难以按规定顺序加锁。
    • 超时法:可能误判死锁;时限太长,死锁难以及时发现。
    • 等待图法:系统周期性地生成事务等待图,发现回路说明出现死锁。

3. 可串行化调度

  • 可串行化是并发事务正确调度的准则。
    • 冲突操作是指不同事务对同一数据的读写操作或写写操作。
    • 不同事务的冲突操作和同一事物的两个操作是不能交换的。
    • 冲突可串行化调度
  • 两段锁协议,事务分为两个阶段,第一阶段获得封锁,成为扩展阶段;第二阶段释放封锁,称为收缩阶段。遵循两段锁协议是可串行化调度。

4. 多粒度封锁

  • **意向锁:**对一个结点施加意向锁,说明其下层节点正在被加锁。

  • IS锁,IX锁,SIX锁

第十二章 NoSQL

1. 于SQL优劣比较

SQL优点:

  • 获取持久化数据
  • 并发控制
  • 集成:多个应用程序可以将数据存储在一个公共的数据库中。
  • 近乎标准的模型

SQL缺点:

  • 阻抗失谐:关系模型和内存中的数据结构之间存在差异。

    关系元组不能包含嵌套记录或列表等结构。

  • 与集群不协调

NoSQL特点

  • 不使用关系模型
  • 在集群中运行良好
  • 无模式:自由、灵活。
  • 混合持久化:在不同的场景使用不同的存储方式。
  • 面向聚合(键值、文件、列族):操作多个聚合时笨拙。

2. 键值数据库

聚合不透明,可以存储任意数据。

通过键查询。

3. 文档数据库

聚合透明,定义了允许的结构与数据类型,可以更加灵活地访问数据。

基于文档的内部结构查询。

4. 列族数据库

每一行是一个聚合,行中有很多列族。

5. 图数据库

不面向聚合,不利于集群。

重视数据间的关系,查询内部相互关系比较紧密的数据模型时效率高。