数据库简答题押题整理,主要来源是课后习题。
# 《数据管理基础》简答题整理
# 第一章
# 什么是数据库,有什么基本特点
数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。
- 基本特点
数据结构化
- 数据内部结构化
- 数据之间具有联系,整体是结构化的
数据的共享性高,冗余度低且易扩充
数据独立性高
- 数据和程序相互不依赖
- 物理独立性
- 数据库存储结构(物理结构)改变,管理员对模式 / 内模式映像作改变,可以使模式不变、外模式不变
- 逻辑独立性
- 模式(逻辑结构)改变,管理员对各个外模式 / 模式的映像作相应改变,可以使外模式保持不变,应用程序不变。
数据由数据管理系统(DBMS)统一管理和控制
- 安全性保护
- 完整性检查
- 并发控制
- 数据库恢复
# 为什么要使用数据库系统?/ 使用数据库系统的而好处
# 跟人工管理和文件系统比较,说明数据库管理数据的特点。
# 逻辑模型的分类、特点以及优缺点
层次模型
网状模型
关系模型
关系模型必须是规范化的:比如,关系的每个分量必须是一个不可分的数据项
关系模型的优缺点
(要知道,可能会考简答,后面的 nosql 跟关系型数据库的对比也提到了这个知识点)
# 简述数据库三级模式和两级映像的作用和地位。
分别阐释意思,且强调保证了逻辑独立性和物理独立性,外模式保证了一定的数据库安全性。
# 数据库系统组成
# 第二章
# 关系模型的三个组成部分
- 关系数据结构
- 关系操作集合
- 关系完整性约束
# 关系的 5 种基本操作是什么,表示其他运算
选择、投影、并、差、笛卡尔积
# 关系模型的完整性约束
# 等值连接与自然连接的区别与联系
# 第三章
# 什么是基本表,什么是视图,两者的区别与联系
# RESTRICT/CASCADE
# 视图有什么作用
- 视图能简化用户的操作
- 视图使用户能以多种视角看待同一数据
- 视图对重构数据库提供了一定程度的逻辑独立性
- 视图能够对机密数据提供安全保护
- 适当的利用视图可以更清晰地表达查询
# 哪些视图可以被更新
# 第四章
# 实现数据库安全性的常用技术和方法
# 什么是数据库的自主存取控制方法(DAC Discretionary Access Control)和强制存取控制方法 MAC
# 解释 MAC 机制中的主体、客体、敏感度标记
# 什么是数据库的审计功能,为什么要提供审计功能
# 第五章
# 安全性 vs 完整性
# DBMS 完整性控制体现在哪三个方面
# 第六章
# 简述规范化理论对数据库设计的指导意义
习题解答:规范化理论为数据库设计人员判断关系模式优劣提供了理论标准,可用以指导关系数据模型的优化,用来预测模式可能出现的问题,为设计人员提供了自动产生各种模式的算法工具,使数据库设计工作有了严格的理论基础。
在数据分析阶段,用数据依赖的概念分析和表示各项数据项之间的关系;
在设计概念结构阶段,用规范化理论消除初步 E-R 图冗余的联系。
在 E-R 图向数据模型转化阶段,用模式分解的概念和方法指导设计。
# 第七章 数据库设计
# 简要描述数据库设计的 6 个阶段
需求分析
概念结构设计
逻辑结构设计
物理结构设计
数据库实施
数据库运行和维护
# 尝试叙述数据库设计过程中形成的数据库模式
# 简述逻辑模型设计中,水平分解和垂直分解的原理。
水平分解
- 把(基本)关系的元组分为若干子集合,定义每个子集合为一个子关系
- 对符合”80/20“原则的,把经常被使用的数据分解出来,形成一个子关系
- 水平分解为若干子关系,使每个事务存取的数据对应于一个子关系
垂直分解
- 经常在一起使用的属性从 R 中分解出来形成一个子关系模式
- 优点:提高某些事物的效率
- 缺点:连接操作可能降低效率
# 数据字典中都存放了哪些内容(需求分析阶段)
- 数据项
- 数据结构
- 数据流
- 数据存储
- 处理过程
# 数据库的再组织和重构造
# 第十章 数据库恢复技术
# 什么是事务的 ACID 特性
- 原子性 (Atomicity)
- 一致性 (Consistency)
- 隔离性 (Isolation)
- 持续性 (Durability)
故障恢复可以保证事物的原子性和持续性
# 什么是日志文件,有什么用途
日志文件是用来记录事务对数据库更新操作的文件
用途:
- 进行事务故障恢复
- 进行系统故障恢复
- 协助后备副本进行介质故障恢复
# 登记日志文件时,为什么要先写日志文件再写数据库
- 写数据库和写日志文件是两个不同的操作
- 在这两个操作之间可能发生故障
- 如果先写了数据库修改,而在日志文件中没有登记下这个修改,则以后就无法恢复这个修改了
- 如果先写日志,但没有修改数据库,按日志文件恢复时只不过多执行了一次不必要的 UNDO 操作,并不会影响数据库的正确性
# 针对不同的故障,试给出恢复的策略和方法
# 什么是检查点记录
# 具有检查点的恢复技术有什么优点
# 试述使用检查点方法进行恢复的步骤
# 什么是数据库镜像?它有什么用途?
# 第十一章 并发控制
# 为什么要并发控制?并发控制技术能保证事物的哪些特性?
# 并发导致哪几种数据不一致?如何避免?
# 什么是封锁?锁的类型有哪几种?
# 什么是活锁?试述活锁的产生原因和解决方法
# 什么是死锁?请给出预防死锁的若干方法
# 请给出检测死锁的一种方法,当发生死锁后如何解除死锁?
# 什么样的并发调度是正确的调度?
# 为什么要引进意向锁?意向锁的含义是什么
# 常用意向锁及相容矩阵
# nosql 相关
# 关系型数据库的优缺点
ppt62
优点:
- 建立在严格的数学概念的基础上
- 概念单一
- 实体和各类联系都用关系来表示
- 对数据的检索结果也是关系
- 关系模型的存取路径对用户透明
- 具有更高的数据独立性,更好的安全保密性
- 简化了程序员的工作和数据库开发建立的工作
- 获取持久化数据
- 持久存储大量数据
- 集成
- 并能共享数据库集成,多个应用程序都将数据保存在同一个数据库中。这样一来,所有应用程序很容易就能使用彼此的数据了
- 并发
- 在面对并发操作时,关系型数据库提供了 “事务” 机制来控制对其数据的访问
- 事务在处理错误时也起到作用。比如如果事务中途出错,可以通过回滚保证数据不受破坏
- 近乎标准的模型
- 关系型数据库以近乎标准的方式提供了数据模型。规定了模式,具有更高的数据独立性和安全保密性。
缺点:
- 存取路径对用户透明,查询效率往往不如格式化数据模型(NoSQL)
- 为提高性能,必须对用户的查询请求进行优化,增加了开发 DBMS 的难度
# 为什么要引入 NoSQL/NoSQL 的由来
- NoSQL 在集群问题上,让用户自行决定可用性和一致性的平衡
- 关系型数据库使用 ACID 事务来保持整个数据库的一致性,而这种方式本身与集群环境相冲突
- NoSQL 数据库为处理并发及分布问题提供了众多选项。
- NoSQL 是无模式的,不需要预先定义值和型,不会发生阻抗失谐的问题
- 使用的数据组织形式比 “关系” 更丰富,可包括 "嵌套记录" 或列表等
- 阻抗失谐:内存中的数据结构和关系型数据不匹配,每次处理的过程很麻烦
- NoSQL 是应用数据库,MySQL 是集成数据库
- 应用数据库:内容只由一个应用数据代码库直接访问,可直接管理数据库,与外部通信服务解耦
- 集成数据库:集成多个应用程序,操作内容一致的持久数据,需要相互协调,更新数据由数据库负责
# 各种 NoSQL 数据库的共同特性
- 开源分布式的非关系型数据库
- 不使用关系模型
- 在集群中运行良好
- 适用于 21 世纪的互联网公司
- 无模式
- 不用事先修改结构定义,即可自由添加字段了
- 这在处理不规则数据和自定义字段时 非常有用
# key-value 数据库
- 数据库是如何完成基本存放的想法 / 数据库存放的是什么东西,怎么存的
- 是一张简单的哈希表,数据库访问均通过主键来操作
- 将聚合看做不透明的整体,只能通过键来查出整个聚合
- 特点:性能较高,易于扩展
- 适合做什么,不适合做什么
- 非常适合
- 保存会话 (用会话 ID 作为键)
- 购物车数据(用 userid 绑定)
- 用户配置等信息(本质是因为键值数据库可以存放任意数据结构的数据)
- 不适合
- 数据间(建立)关系
- 含有多项操作的事务(kv 数据库不擅长回滚恢复等操作)
- 查询数据(无法搜索 value)
- 操作关键字集合(一次只能操作一个键)
- 非常适合
# 文档数据库
文档格式:XML、JSON、BSON
具有自述性、分层的树状数据结构
文档彼此相似,但不必完全相同。文档数据库所存放的文档,就相当于键值数据库所存放的 “值”。
文档数据库可视为其值可查的键值数据库。
特点:性能高,灵活性高
适合做什么,不适合做什么
- 适用:
- 事件记录(数据结构灵活)
- 内容管理系统及博客平台(数据结构灵活,支持 JSON)
- 网站分析与实时分析(可以只更新部分数据,方便保存浏览量等信息)
- 电子商务应用程序(适应较为灵活的模式)
- 不适用:
- 包含多项操作的复杂事务(不适合执行跨文档的原子操作)
- 查询持续变化的聚合结构
- 适用:
# 列族数据库
列族数据库,可以存储关键字及其映射值,并且可以把值分成多个列族,让每个列族代表一张数据映射表 (map of data)。
每个键值对都占据一列,并且都存有一个 “时间戳” 值。
列族数据库的各行不一定要具备完全相同的列,并且可以随意向其中某行加入一列,而不用把它添加到其他行中。
特点:易于扩展,易于访问
适合做什么,不适合做什么
- 适合:事件记录、内容管理系统与博客平台、计数器、限期(利用时间戳 TTL)
- 不适合:
- 需要以 “ACID 事务” 执行写入及读取操作的系统。
- 根据查询结果聚合数据(需要把每一行读到客户端,成本高)
- 开发早期或试探某个技术方案(改变查询模式成本高)
# 图数据库
数据库是如何完成基本存放的想法
- 图数据库可存放实体及实体间关系。
数据库存放的是什么东西,怎么存的
- 实体也叫 “节点”(node),它们具有属性 (property)。可将节点视为应用程序中某对象的实例。
- 关系又叫 “边”(edge),它们也有属性,有类型。边具备方向性 ( directional significance),而节点则按关系组织起来,以便在其中查找所需模式。
- 实体和实体间关系组成的有向图(实体作为结点,实体间关系作为边)
特点:支持复杂的图形算法,可用于构建复杂的关系图谱
适合做什么,不适合做什么
- 适合:
- 互联数据
- 安排运输路线
- 分派货物和基于位置的服务
- 推荐引擎(结点间关系)
- 不适合:
- 更新全部或某子集内的实体
- 图数据库可能没有办法处理数据量过大的场合,即便模型适合
- 适合: