数据库期末简答题-第七、八、十、十一章


CH7

1. 简述数据库设计的几个阶段的工作内容

  • 需求分析:准确了解与分析用户需求(包括数据与处理)。
  • 概念结构设计:通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。
  • 逻辑结构设计:将概念结构转换为某个DBMS所支持的数据模型;对其进行优化。
  • 数据库物理设计:为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。
  • 数据库实施:运用DBMS提供的数据库语言(如SQL)及宿主语言,根据逻辑设计和物理设计的结果建立数据库、编制与调试应用程序、组织数据入库、进行试运行。
  • 数据库维护和运行:数据库应用系统经过试运行后即可投入正式运行;在数据库系统运行过程中必须不断地对其进行评价、调整与修改。

2. 在逻辑结构设计阶段,如何处理E-R图中1:n的联系?

  • 可以转换为一个独立的关系模式,与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码;
  • 也可以与n端所对应的关系模式合并,即,将1端实体的码加入到n端对应的关系中,该码成为n端对应的关系的外部码。

3. 合并分E-R图时,可能会出现哪些冲突?

  • 属性冲突
    • 属性域冲突

      • 属性值的类型;
      • 取值范围;
      • 取值集合不同;
    • 属性取值单位冲突

  • 命名冲突
    • 同名异义:不同意义的对象在不同的局部应用中具有相同的名字。
    • 异名同一:同一意义的对象在不同的局部应用中具有不同的名字。
  • 结果冲突
    • 同一对象在不同应用中具有不同的抽象
    • 同一实体在不同子系统的E-R图中所包含的属性个数和属性排列次序不完全相同
    • 实体间的联系在不同的E-R图中为不同的类型

4. 简述数据库的重组织和重构造的区别

  • 数据库的再组织是指按原设计要求重新安排存储位置、回收垃圾、减少指针链6等,以提高系统性能。
  • 数据库的重构造则是指部分修改数据库的模式和内模式,即修改原设计的逻辑和物理结构。数据库的再组织是不修改数据的模式和内模式的。

5. 子模式含义

  • 是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
    就是外模式???

CH8

1. 存储过程的作用,及使用方法?

  • 作用(优点?):

    • 运行效率高,它提供了在服务器之间快速执行SQL语句的有效途径。
    • 存储过程降低了客户机和服务器之间的通信量。
    • 方便实施企业规则。
  • 使用方法(???):
    存储过程的用户接口:

    • 创建存储过程
    • 执行存储过程
    • 删除存储过程

2. 为什么要使用游标?

  • SQL语言与主语言具有不同数据处理方式:
    • SQL语言是面向集合的,一条SQL语句原则上可以产生或处理多条记录。
    • 主语言是面向记录的,一组主变量一次只能存放一条记录。
  • 仅使用主变量并不能完全满足SQL语句向应用程序输出数据的要求

因此,嵌入式SQL引入了游标的概念,用来协调这两种不同的处理方式。

  • 使用游标的步骤:定义游标、打开游标、读取记录、关闭游标。

CH10

1. 事务的4个特性是什么?举例说明其中的一个特性

  • 原子性:事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。//2PC协议及其恢复机制。
  • 一致性:事务执行的结构必须是使数据库从一个一致性状态变到另一个一致性状态。//2PL协议/时间印协议
  • 隔离性:一个事务的执行不能被其他事务干扰。//可串行化调度及封锁机制
  • 持续性:指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。//数据库备份技术

事务是用户定义的一个数据库操作序列,这些操作要么全做、要么全不做,是一个不可分割的工作单位。

2. 故障类型有哪些?举例说明

  • 事务内部的故障:有的是可以通过事务程序本身发现的(如转账事务的例子),有的是非预期的。

    恢复策略:由恢复子系统应利用日志文件撤消(UNDO)此事务已对数据库进行的修改。

  • 系统故障:指造成系统停止运转的任何事件,使得系统要重新启动。 //特定类型的硬件错误(如CPU故障)、操作系统故障、DBMS代码错误、系统断电...

    • 发生系统故障时,事务未提交。
      恢复策略:强行撤消(UNDO)所有未完成事务。
    • 发生系统故障时,事务已提交,但缓冲区中的信息尚未完全写回到磁盘上。
      恢复策略:重做(REDO)所有已提交的事务。
  • 介质故障:称为硬故障,指外存故障。//磁盘损坏、磁头碰撞、操作系统的某种潜在错误、瞬时强磁场干扰...

    • 恢复策略:
      • 装入数据库发生介质故障前某个时刻的数据副本。(即重装数据库)
      • 重做自此时始的所有成功事务,将这些事务已提交的结果重新记入数据库。(即重做已完成的事务)
  • 计算机病毒:一种人为的故障或破坏,是一些恶作剧者研制的一种计算机程序,可以繁殖和传播。

3. 基于检查点故障恢复策略;日志文件概念

  • 恢复策略:在检查点之前提交的事务不需要Redo:当事务在一个检查点之前提交,对数据库所做的修改已写入数据库。

  • 利用检查点的恢复步骤

    • 从重新开始文件中找到最后一个检查点记录在日志文件中的地址,由该地址在日志文件中找到最后一个检查点记录。
    • 由该检查点记录得到检查点建立时刻所有正在执行的事务清单ACTIVE-LIST。
      • 建立两个事务队列
        • UNDO-LIST
        • REDO-LIST
      • 把ACTIVE-LIST暂时放入UNDO-LIST队列,REDO队列暂为空。
    • 从检查点开始正向扫描日志文件,直到日志文件结束。
      • 如有新开始的事务Ti,把Ti暂时放入UNDO-LIST队列。
      • 如有提交的事务Tj,把Tj从UNDO-LIST队列移到REDO-LIST队列。
    • 对UNDO-LIST中的每个事务执行UNDO操作;对REDO-LIST中的每个事务执行REDO操作
  • 日志文件:是用来记录事务对数据库的更新操作的文件

CH11

1. 什么是事务的串行调度?并发调度?

  • 事务的串行调度:每个时刻只有一个事务运行,其他事务必须等到这个事务结束以后方能运行。

    不能充分利用系统资源,发挥数据库共享资源的特点

  • 并发调度
    • 交叉并发方式:在单处理机系统中,事务的并行执行是这些并行事务的并行操作轮流交叉运行。
    • 同时并发方式:多处理机系统中,每个处理机可以运行一个事务,多个处理机可以同时运行多个事务,实现多个事务真正的并行运行。

2. 如果不加以控制,事务的并发调度可能会产生什么问题?

会产生多个事务同时存取同一数据的情况。
可能会存取和存储不正确的数据,破坏数据库的一致性。

  • 丢失修改
  • 不可重复读
  • 读“脏”数据

3. 简述封锁机制的工作原理。

  • 封锁就是事务T在对某个数据对象列如表、记录等操作之前,先向系统发出请求,对其加锁。加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其他的事务不能更新或读取此数据对象。
  • 基本的封锁类型一两种:排他锁(X锁)和共享锁(S锁)。

4. 死锁预防、诊断;死锁的判别

  • 预防死锁的方法:一次封锁法、顺序封锁法
  • 死锁的诊断:超时法、事务等待图法

三级封锁协议:是指在一级封锁协议的基础上增加事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放。

5. 冲突操作;事务优先图;等价的串行调度

冲突操作是指不同的事务对同一个数据的读写操作和写写操作。

6. 2PL协议

  • 两段锁协议:是指所有事务必须分两个阶段对数据项加锁和解锁。

    在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁;
    在释放一个封锁之后,事务不再申请和获得任何其他封锁。