第一章
1、数据库管理系统的功能?(三数据两库一其它)
2、数据库系统的特点?(四数据)
- 数据结构化(整体数据的结构化,“整体”即指不再针对某一单个应用,而是面向整个组织和企业)
- 数据的共享性高、冗余度低、易扩充
- 数据独立性高
- 数据由DBMS统一管理和控制
3、什么是概念模型?它的作用是什么?
4、实体型
5、实体集
6、关系模型/数据库的优缺点?
7、关系数据库的三级模式是什么?
8、二层映像的作用是什么?内容是什么?
9、数据与程序的逻辑独立性和物理独立性是?
10、数据库系统的组成?
- 数据库、DBMS、数据库管理员和用户、应用程序
第二章、关系数据库
1、关系模型的三个组成部分
- 关系数据结构
- 关系操作集合(操作的对象和结果都是集合)
- 关系完整性约束
2、关系模式和关系的区别
- 关系模式(静态、稳定的):对关系的描述,是关系数据库的型。形式化的表示为:R(U, D, DOM, F).F为属性间数据的依赖关系集合。
- 关系(动态、变化的):是数据库的值,是关系模式的实例,是关系模式在某一时刻的状态和内容。
3、关系代数的五种基本运算
- 并、差、笛卡儿积、选择、投影
- 连接、交、除(R/S=T, T中包含在R但不在S中属性及值,且T的元组与S的元组的所有组合都在R中)
4、连接
1、等值连接
2、自然连接
3、外连接
- 悬浮元组:自然连接中被舍弃的元组
- 左外连接:只保留左边关系R中的悬浮元组
- 右外连接:只保留右边关系R中的悬浮元组
第三章、关系数据库标准语言SQL
1、SQL的特点?
- 以同一种语法结构提供多种使用方式
2、基本表与视图的区别?
3、相关子查询与不相关子查询
- 在嵌套循环中,如果子查询的查询条件不依赖于父查询,则称为不相关子查询
4、哪类视图可更新?哪类不可更新?
- 基本表的行列子集视图一般是可以更新的
- 若属性来自于聚集函数、表达式,则该类视图不可更新。
5、视图的作用?
- 简化用户的操作
- 使用户能以多种角度看待同一数据
- 对重构数据库提供了一定程序的逻辑独立性
- 能够对机密数据提供安全保护
- 可以更清晰的表达查询
第四章、数据库安全性
1、什么是数据安全性?(防止非法用户和非法操作)
- 指的是保护数据库以防止不合法的使用造成数据库的泄露、破坏和更改。
2、数据库安全性控制的常用方法和技术?
- 多层存取控制、数据加密、审计、视图机制、用户身份鉴别
3、数据库中自主存取控制方法和强制存取控制方法
-
自主存取控制方法:
用户对于不同的数据库对象有不同的存取权限,不同的用户对同一对象也有不同的权限哎,而且用户还可将其拥有的存取权限转授给其他用户。
4、数据库的审计功能是?
- 指将用户对数据库的所有操作记录自动记录到审计日志中去。
第五章、数据的完整性
1、什么是数据库的完整性?(防止不符合语义的数据出现)
- 指的是数据库的正确性(看数据是否符合现实世界语义、反映当前实际情况)和相容性(数据同一对象在不同关系表中的数据是否符合逻辑)
2、为维护数据库的完整性,DBMS应具有如下功能?
- 提供定义完整性约束条件的机制
- 提供完整性检查的方法
- 进行违约处理
3、违反完整性约束时,怎么处理?
- 对于实体和用户自定义,直接拒绝执行
- 对于参照,当被参照表删除和修改主码值的时候,可以拒绝执行、级联操作、设置为空值。
第六章、关系数据理论
1、为什么要进行关系模式的分解?分解的依据是什么?分解有什么优缺点?分解的三条准则?
- 原因:消除数据冗余和操作异常
- 依据:数据依赖和范式
- 优点:消除数据冗余和操作异常
- 缺点:做查询操作需进行连接,增加查询时间
- 实行分解的三条不同的准则:分解具有无损连接性、分解保持函数依赖、分解既要具有无损连接性又要保持函数依赖
第七章、数据库的设计
1、数据库的设计过程及和过程要点
- 需求分析:准确了解与分析用户需求
- 概念结构设计
- 逻辑结构设计
- 物理结构设计
- 数据库实施
- 数据库的运行和维护
2、数据字典的内容与作用是什么?
- 内容:数据项、数据结构、数据流、数据存储、处理过程
- 作用:数据字典是数据库中数据的描述,在需求分析阶段建立,是下一步进行概念设计的基础
3、什么是E-R图,构成E-R图的基本要素是什么?
- e-r图为实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型
第八章、数据库编程
1、使用SQL编程来访问和管理数据库中数据的方式主要有:
- 嵌入式SQL
- 过程化SQL
- 开放数据库互连(odbc)
- JAVA数据库连接(jdbc)
2、ODBC由什么组成?
- 用户应用程序
- ODBC驱动程序管理器
- 数据库驱动程序
- 数据源
第九章、关系查询处理和查询优化
1、查询处理步骤
- 查询分析(词法分析、语法分析)
- 查询检查(检查语义、安全性、完整性)
- 查询优化(包含代数优化和物理优化)
- 查询执行(由代码生成器生成代码,加以执行后返回查询结果)
2、实现查询操作的算法
1、选择操作的算法
- 全表扫描
- 索引扫描
2、连接操作的算法
- 嵌套循环
- 排序-合并
- 索引连接
- hash连接算法
3、关系数据库管理系统查询优化的一般准则
4、关系数据库管理系统查询优化的一般步骤(不背)
第十章、数据恢复技术
1、事务的概念
2、事务的4个特性
- 原子性
- 一致性
- 隔离性
- 持续性
并发控制保证事务的一致性和隔离性
3、三大故障的恢复方法
1、事务故障的恢复
2、系统故障的恢复
3、介质故障的恢复
第十一章、并发控制
1、数据库中为什么要并发控制?
- 数据库是共享资源,可能会存取和存储不正确的数据,破坏数据库的一致性。所以DBMS必须提供并发控制机制。
2、并发操作可能会产生哪几类数据不一致?
- 丢失修改
- 不可重复读
- 读脏数据
3、封锁协议
在运用X锁和S锁对数据对象加锁时,还需要约定一些规则。如:何时申请X锁或S锁,何时释放等。
- 一级封锁协议
- 二级封锁协议
- 三级封锁协议
4、死锁的预防
- 一次封锁法:每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行。
- 顺序封锁法:预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。
5、死锁的诊断与解除
-
超时法:若某事务的等待时间超过了规定的时限,则认为发生了死锁。
-
事务等待图法:结点表示事务,有向边表示尾等待头。
-
解除:
选择一个处理死锁代价最小的事务,将其撤销,释放此事务持有的所有的锁,恢复其所执行的数据修改操作,使得其他事务得以运行下去。
6、什么样的并发调度是正确的调度?
- 可串行化调度为正确的调度:即执行结果于某串行调度结果相同。
7、可串行化调度的两个充分条件?
- 一个调度是冲突可串行化(冲突:读写、写写):交换两个事务不冲突操作的次序得到另一个调度串行调度。
- 事务遵守两段锁协议。
- 为了保证并发调度的正确性。必须保证调度是可串行化的。两段锁协议的方法可实现并发调度的可串行性。
8、封锁的粒度
封锁对象的大小称为封锁粒度(如:属性值、元组、关系;页、物理记录)
9、多粒度封锁
- 多粒度封锁允许多粒度树中的每个结点被独立的加锁。
- 多粒度树的根节点是整个数据库,是最大的数据粒度。
10、意向锁(DBMS无需逐个检查下一级节点的显式封锁)
- IS锁,意向共享锁。(下级加了s锁)
- IX锁,意向排他锁。(下级加了x锁)
- SIX锁,共享意向排他锁。(自身加了S锁和IX锁)
- 锁的强度:X、SIX、(S、IX)、IS
11、常用的并发控制技术:
- 封锁方法
- 时间戳方法
- 乐观控制方法
- 多版本并发控制方法
12、两段锁协议
所谓的二段锁协议是指所有事务必须分两个阶段对数据进行加锁和解锁操作。
- 在对任何数据进行读、写操作之前,首先要申请并获得该数据的封锁。
- 在释放一个封锁之后,事务不在申请和获得其他封锁。