最终版本~(乱序)
祝考试顺利!
不知是否有愿意帮忙补充知识点的好心人hhh,评论区见!
填空+选择(概念为主
- 查询处理的基本步骤?
- 查询分析、查询检查、查询优化、查询执行
也可能考简答:
- 查询分析:对语句进行扫描、词法分析,识别出关键字等,然后进行语法分析,检查其是否符合SQL语法规则。
- 查询检查:对查询语句进行语义检查,检查数据库、关系名、属性名等是否存在且有效;与此同时,进行视图消解,转化为对基本表的操作;根据用户权限和完整性约束对查询进行检查。检查通过后,将SQL转化为等价的关系代数表达式。
- 查询优化:代数优化和物理优化。通过对关系代数的等价变换使查询变得高效,根据基于规则的、基于代价的、基于语义的方法进行存取路径和底层操作的算法的选择。
- 查询执行
- 查询分析、查询检查、查询优化、查询执行
- 连接操作的实现方法都有?
- 嵌套循环、排序-合并算法、索引连接、hash join算法
- 关系中的基本概念
- 目、度
- 属性
- 候选码,主码,主属性,非码属性、非主属性,全码
- 基本表,视图,查询表
- 关系模式与关系(型与值)
- 视图提供查看和**数据的另一种途径?
- 存放
- 数据模型的组成?
- 数据结构
- 关系操作
- 关系完整性
- 数据库系统由那里个部分组成?
- 数据库
- 数据库管理系统
- 应用系统
- 数据库管理员和用户
- 并发控制的基本单位?
- 事务
- 并发控制保证了事务的哪些特性?
- 隔离性
- 一致性
- 什么是数据库自主访问控制和强制访问控制?
- 自主存取控制方法: 定义各个用户对不同数据对象的存取权限。当用户对数据库访问时,首先检查用户的存取权限。防止不合法用户对数据库的存取
- 强制存取控制方法: 每一个数据对象被(强制地)标以一定的密级,每一个用户也被(强制地)授予某一个级别的许可证。系统规定只有具有某一许可证级别的用户才能存取某个密级的数据对象。
- 自主存取控制中自主的含义是:用户可以将自己拥有的存取权限“自主” 地授予别人。即用户具有一定的“自主”权。
- 并发操作带来的数据不一致性包括?
- 不可重复读(一个事务运行时需要读取的某个数据的值,被另一个事务修改(或删除、插入),导致读取的值前后不一致)
- 丢失修改(两个用户同时修改一个数据,最终只保存了一个用户的修改结果)
- 读脏数据(读取的数据被撤销或作废等等,导致读取的值与数据库中真实值不一致)
- 并发控制的主要技术:
- 封锁
- 时间戳
- 乐观控制法
- 多版本并发控制(MVCC)
- 简述三级封锁协议?
- 一级封锁协议:事务T在修改数据R之前必须对其加X锁,直到事务结束才释放。解决了丢失修改的问题,但是由于读数据之前不需要上锁,所以还是存在不可重复读和读脏数据的问题。
- 二级封锁协议:修改数据前加X锁直到事务结束释放;读数据前加S锁,读完后释放。解决了读脏数据的问题,因为数据被某个事务修改(X锁)的时候不能被读取(上S锁)。但是由于释放S锁