数据库简答题押题整理,主要来源是课后习题。

# 《数据管理基础》简答题整理

# 第一章

# 什么是数据库,有什么基本特点

数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。

  • 基本特点
    • 数据结构化

      • 数据内部结构化
      • 数据之间具有联系,整体是结构化的
    • 数据的共享性高,冗余度低且易扩充

    • 数据独立性高

      • 数据和程序相互不依赖
      • 物理独立性
        • 数据库存储结构(物理结构)改变,管理员对模式 / 内模式映像作改变,可以使模式不变、外模式不变
      • 逻辑独立性
        • 模式(逻辑结构)改变,管理员对各个外模式 / 模式的映像作相应改变,可以使外模式保持不变,应用程序不变。
    • 数据由数据管理系统(DBMS)统一管理和控制

      • 安全性保护
      • 完整性检查
      • 并发控制
      • 数据库恢复

# 为什么要使用数据库系统?/ 使用数据库系统的而好处

image-20230612194832083

# 跟人工管理和文件系统比较,说明数据库管理数据的特点。

image-20220618151823240

image-20220618151837106

# 逻辑模型的分类、特点以及优缺点

  1. 层次模型

    image-20230612200708933

    image-20230612200848830

  2. 网状模型

    image-20230612200735665

    image-20230612200909254

  3. 关系模型

    关系模型必须是规范化的:比如,关系的每个分量必须是一个不可分的数据项

    image-20230612201155877

    关系模型的优缺点

    (要知道,可能会考简答,后面的 nosql 跟关系型数据库的对比也提到了这个知识点)

    image-20230612201118327

# 简述数据库三级模式和两级映像的作用和地位。

image-20230613155433985

分别阐释意思,且强调保证了逻辑独立性和物理独立性,外模式保证了一定的数据库安全性。

# 数据库系统组成

image-20230613160301035

# 第二章

# 关系模型的三个组成部分

  1. 关系数据结构
  2. 关系操作集合
  3. 关系完整性约束

# 关系的 5 种基本操作是什么,表示其他运算

选择、投影、并、差、笛卡尔积

image-20230613161848201

# 关系模型的完整性约束

image-20230613161727700

# 等值连接与自然连接的区别与联系

image-20230613161822008

# 第三章

# 什么是基本表,什么是视图,两者的区别与联系

image-20230613161253604

# RESTRICT/CASCADE

image-20230613161329718

# 视图有什么作用

  1. 视图能简化用户的操作
  2. 视图使用户能以多种视角看待同一数据
  3. 视图对重构数据库提供了一定程度的逻辑独立性
  4. 视图能够对机密数据提供安全保护
  5. 适当的利用视图可以更清晰地表达查询

# 哪些视图可以被更新

image-20230613161355686

# 第四章

# 实现数据库安全性的常用技术和方法

image-20230613160948885

# 什么是数据库的自主存取控制方法(DAC Discretionary Access Control)和强制存取控制方法 MAC

image-20230621145015033

# 解释 MAC 机制中的主体、客体、敏感度标记

image-20230613161044991

# 什么是数据库的审计功能,为什么要提供审计功能

image-20230621145028463

# 第五章

# 安全性 vs 完整性

image-20230613162228256

image-20230613162233873

# DBMS 完整性控制体现在哪三个方面

image-20230613162255287

image-20230613162310887

# 第六章

# 简述规范化理论对数据库设计的指导意义

习题解答:规范化理论为数据库设计人员判断关系模式优劣提供了理论标准,可用以指导关系数据模型的优化,用来预测模式可能出现的问题,为设计人员提供了自动产生各种模式的算法工具,使数据库设计工作有了严格的理论基础。

  1. 在数据分析阶段,用数据依赖的概念分析和表示各项数据项之间的关系;

  2. 在设计概念结构阶段,用规范化理论消除初步 E-R 图冗余的联系。

  3. 在 E-R 图向数据模型转化阶段,用模式分解的概念和方法指导设计。

# 第七章 数据库设计

# 简要描述数据库设计的 6 个阶段

image-20220613220014932

  1. 需求分析

  2. 概念结构设计

    image-20230613162629829

  3. 逻辑结构设计

    image-20230613162657428

  4. 物理结构设计

    image-20230613162711134

  5. 数据库实施

  6. 数据库运行和维护

# 尝试叙述数据库设计过程中形成的数据库模式

img

image-20230613162454170

# 简述逻辑模型设计中,水平分解和垂直分解的原理。

水平分解

  • 把(基本)关系的元组分为若干子集合,定义每个子集合为一个子关系
  • 对符合”80/20“原则的,把经常被使用的数据分解出来,形成一个子关系
  • 水平分解为若干子关系,使每个事务存取的数据对应于一个子关系

垂直分解

  • 经常在一起使用的属性从 R 中分解出来形成一个子关系模式
  • 优点:提高某些事物的效率
  • 缺点:连接操作可能降低效率

# 数据字典中都存放了哪些内容(需求分析阶段)

  1. 数据项
  2. 数据结构
  3. 数据流
  4. 数据存储
  5. 处理过程

image-20230613162606339

# 数据库的再组织和重构造

image-20230613162919785

# 第十章 数据库恢复技术

# 什么是事务的 ACID 特性

  1. 原子性 (Atomicity)
  2. 一致性 (Consistency)
  3. 隔离性 (Isolation)
  4. 持续性 (Durability)

故障恢复可以保证事物的原子性和持续性

image-20230613163046626

# 什么是日志文件,有什么用途

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

用途:

  1. 进行事务故障恢复
  2. 进行系统故障恢复
  3. 协助后备副本进行介质故障恢复

# 登记日志文件时,为什么要先写日志文件再写数据库

image-20230613163154594

  • 写数据库和写日志文件是两个不同的操作
  • 在这两个操作之间可能发生故障
  • 如果先写了数据库修改,而在日志文件中没有登记下这个修改,则以后就无法恢复这个修改了
  • 如果先写日志,但没有修改数据库,按日志文件恢复时只不过多执行了一次不必要的 UNDO 操作,并不会影响数据库的正确性

# 针对不同的故障,试给出恢复的策略和方法

image-20230621145111957

# 什么是检查点记录

image-20230613163233337

image-20230613163240311

image-20230614090130363

# 具有检查点的恢复技术有什么优点

image-20230613163258781

# 试述使用检查点方法进行恢复的步骤

image-20230613163328204

image-20230613163338578

# 什么是数据库镜像?它有什么用途?

image-20230613163400447

# 第十一章 并发控制

# 为什么要并发控制?并发控制技术能保证事物的哪些特性?

image-20230613163524111

# 并发导致哪几种数据不一致?如何避免?

image-20230613163601955

# 什么是封锁?锁的类型有哪几种?

image-20230613163648322

image-20230613163652599

# 什么是活锁?试述活锁的产生原因和解决方法

image-20230613202022484

image-20230613202034971

# 什么是死锁?请给出预防死锁的若干方法

image-20230613202106810

# 请给出检测死锁的一种方法,当发生死锁后如何解除死锁?

image-20230613202151951

image-20230613202159150

# 什么样的并发调度是正确的调度?

image-20230613202227437

# 为什么要引进意向锁?意向锁的含义是什么

image-20230621145153220

# 常用意向锁及相容矩阵

image-20230613163812552

# nosql 相关

# 关系型数据库的优缺点

ppt62

优点:

  1. 建立在严格的数学概念的基础上
  2. 概念单一
    1. 实体和各类联系都用关系来表示
    2. 对数据的检索结果也是关系
  3. 关系模型的存取路径对用户透明
    1. 具有更高的数据独立性,更好的安全保密性
    2. 简化了程序员的工作和数据库开发建立的工作
  4. 获取持久化数据
    • 持久存储大量数据
  5. 集成
    • 并能共享数据库集成多个应用程序都将数据保存在同一个数据库中。这样一来,所有应用程序很容易就能使用彼此的数据了
  6. 并发
    • 在面对并发操作时,关系型数据库提供了 “事务” 机制来控制对其数据的访问
    • 事务在处理错误时也起到作用。比如如果事务中途出错,可以通过回滚保证数据不受破坏
  7. 近乎标准的模型
    • 关系型数据库以近乎标准的方式提供了数据模型。规定了模式,具有更高的数据独立性和安全保密性。

缺点:

  1. 存取路径对用户透明,查询效率往往不如格式化数据模型(NoSQL)
  2. 为提高性能,必须对用户的查询请求进行优化,增加了开发 DBMS 的难度

# 为什么要引入 NoSQL/NoSQL 的由来

  1. NoSQL 在集群问题上,让用户自行决定可用性和一致性的平衡
    • 关系型数据库使用 ACID 事务来保持整个数据库的一致性,而这种方式本身与集群环境相冲突
    • NoSQL 数据库为处理并发及分布问题提供了众多选项。
  2. NoSQL 是无模式的,不需要预先定义值和型,不会发生阻抗失谐的问题
    • 使用的数据组织形式比 “关系” 更丰富,可包括 "嵌套记录" 或列表等
    • 阻抗失谐:内存中的数据结构和关系型数据不匹配,每次处理的过程很麻烦
  3. NoSQL 是应用数据库,MySQL 是集成数据库
    • 应用数据库:内容只由一个应用数据代码库直接访问,可直接管理数据库,与外部通信服务解耦
    • 集成数据库:集成多个应用程序,操作内容一致的持久数据,需要相互协调,更新数据由数据库负责

# 各种 NoSQL 数据库的共同特性

  1. 开源分布式的非关系型数据库
  2. 不使用关系模型
  3. 在集群中运行良好
  4. 适用于 21 世纪的互联网公司
  5. 无模式
    • 不用事先修改结构定义,即可自由添加字段了
    • 这在处理不规则数据和自定义字段时 非常有用

# key-value 数据库

  • 数据库是如何完成基本存放的想法 / 数据库存放的是什么东西,怎么存的
    • 是一张简单的哈希表,数据库访问均通过主键来操作
    • 将聚合看做不透明的整体,只能通过键来查出整个聚合
  • 特点:性能较高,易于扩展
  • 适合做什么,不适合做什么
    • 非常适合
      • 保存会话 (用会话 ID 作为键)
      • 购物车数据(用 userid 绑定)
      • 用户配置等信息(本质是因为键值数据库可以存放任意数据结构的数据)
    • 不适合
      • 数据间(建立)关系
      • 含有多项操作的事务(kv 数据库不擅长回滚恢复等操作)
      • 查询数据(无法搜索 value)
      • 操作关键字集合(一次只能操作一个键)

# 文档数据库

  • 文档格式:XML、JSON、BSON

  • 具有自述性、分层的树状数据结构

  • 文档彼此相似,但不必完全相同。文档数据库所存放的文档,就相当于键值数据库所存放的 “值”。

  • 文档数据库可视为其值可查的键值数据库。

  • 特点:性能高,灵活性高

  • 适合做什么,不适合做什么

    • 适用:
      • 事件记录(数据结构灵活)
      • 内容管理系统及博客平台(数据结构灵活,支持 JSON)
      • 网站分析与实时分析(可以只更新部分数据,方便保存浏览量等信息)
      • 电子商务应用程序(适应较为灵活的模式)
    • 不适用:
      • 包含多项操作的复杂事务(不适合执行跨文档的原子操作)
      • 查询持续变化的聚合结构

# 列族数据库

  • 列族数据库,可以存储关键字及其映射值,并且可以把值分成多个列族,让每个列族代表一张数据映射表 (map of data)。

  • 每个键值对都占据一列,并且都存有一个 “时间戳” 值。

  • 列族数据库的各行不一定要具备完全相同的列,并且可以随意向其中某行加入一列,而不用把它添加到其他行中。

  • 特点:易于扩展,易于访问

  • 适合做什么,不适合做什么

    • 适合:事件记录、内容管理系统与博客平台、计数器、限期(利用时间戳 TTL)
    • 不适合:
      • 需要以 “ACID 事务” 执行写入及读取操作的系统。
      • 根据查询结果聚合数据(需要把每一行读到客户端,成本高)
      • 开发早期或试探某个技术方案(改变查询模式成本高)

# 图数据库

  • 数据库是如何完成基本存放的想法

    • 图数据库可存放实体及实体间关系。
  • 数据库存放的是什么东西,怎么存的

    • 实体也叫 “节点”(node),它们具有属性 (property)。可将节点视为应用程序中某对象的实例。
    • 关系又叫 “边”(edge),它们也有属性,有类型。边具备方向性 ( directional significance),而节点则按关系组织起来,以便在其中查找所需模式。
    • 实体和实体间关系组成的有向图(实体作为结点,实体间关系作为边)
  • 特点:支持复杂的图形算法,可用于构建复杂的关系图谱

  • 适合做什么,不适合做什么

    • 适合:
      • 互联数据
      • 安排运输路线
      • 分派货物和基于位置的服务
      • 推荐引擎(结点间关系)
    • 不适合:
      • 更新全部或某子集内的实体
      • 图数据库可能没有办法处理数据量过大的场合,即便模型适合