ONEPSOFT | 软考学习知识库
speedrun6|第6章 数据库系统
文件名约定:speedrun_ 第 6 章 数据库系统.md(教材准确章名:数据库设计基础知识)
一、章节定位
一句话概括:本章讲 " 数据如何被组织、存储、操作与治理 "——从数据模型、关系代数、规范化到数据库设计六阶段、应用交互与 NoSQL,是理解系统 " 数据底座 " 的必考基础。
二、本章在讲什么(系统性阐述)
数据库是任何信息系统(包括你将来要架构的软件系统)的 " 数据底座 "。架构师不必天天写 SQL,但必须懂数据是怎么被组织、怎样保证一致与高效的——这在分布式存储、读写分离、数据仓库、缓存设计中处处用到。
可以把数据库系统类比成一栋楼的水电管网与档案室:数据模型是管网的设计蓝图,包含 " 结构(画成什么样)+ 操作(怎么用)+ 约束(强条规范)" 三要素;三级模式是 " 总规图—楼层平面图—现场施工图 " 的三级抽象,用来把用户视角、整体逻辑、物理存储解耦;关系数据库是标准化货架仓储;规范化是把混乱仓库整理成不重复的货位(消除冗余、避免更新异常);反规范化则是为加快取货,在常用位置故意多放一份副本。本章就是把这些 " 数据基建 " 的原理、设计与运维讲清楚。
三、教材原文精摘(原封不动,逐子章节全覆盖)
下列段落直接摘自官方教材,未做任何改写,逐子章节给出最关键原文并作解析。
【6.1 数据库基本概念 原文】" 数据库的基础结构是数据模型,是用来描述数据的一组概念和定义。数据模型的三要素是数据结构、数据操作和数据的约束条件。"(出自:第 6 章 6.1.2 节)
" 从数据库管理系统的角度,数据库也分为三级模式,分别是外模式、概念模式和内模式。"(出自:第 6 章 6.1.4 节)
" 数据的独立性是指数据与程序独立……数据的独立性包括数据的物理独立性和数据的逻辑独立性。"(出自:第 6 章 6.1.3 节)
【6.2 关系数据库 原文】" 关系模型是关系数据库的基础,由关系数据结构、关系操作集合和关系完整性规则 3 部分组成。"(出自:第 6 章 6.2.1 节)
" 关系的完整性约束共分为 3 类:实体完整性、参照完整性(也称引用完整性)和用户定义完整性。"(出自:第 6 章 6.2.1 节)
" 传统的集合运算是从关系的水平方向进行的,包括并、交、差及广义笛卡儿积。专门的关系运算既可以从关系的水平方向进行运算,又可以向关系的垂直方向运算,包括选择、投影、连接以及除法。"(出自:第 6 章 6.2.2 节)
" 自然连接(Natural Join)是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果集中将重复属性列去掉。"(出自:第 6 章 6.2.2 节)
" 规范化:通过分解,可以将一个低一级范式的关系模式转换成若干个高一级范式的关系模式,这种过程叫作规范化。"(出自:第 6 章 6.2.3 节)
【6.3 数据库设计 原文】" 一般将数据库设计分为如下 6 个阶段:(1)用户需求分析;(2)概念结构设计;(3)逻辑结构设计;(4)物理结构设计;(5)数据库实施阶段;(6)数据库运行和维护阶段。"(出自:第 6 章 6.3.1 节)
" 概念结构设计最著名最常用的方法是 PPS Chen 于 1976 年提出的实体 - 联系方法(Entity-Relationship Approach),简称 E-R 方法。"(出自:第 6 章 6.3.2 节)
"E-R 图转换为关系模式:将 E-R 图中的实体逐一转换成为一个关系模式;一对一联系不需要转换为独立关系模式,归并到任一方;一对多联系归并到多方;多对多联系只能转换成一个独立的关系模式。"(出自:第 6 章 6.3.4 节)
" 反规范化(Denormalization)是加速读操作性能(数据检索)的方法……常见的反规范化操作由冗余列、派生列、表重组和表分割,其中表分割又分为水平分割和垂直分割。"(出自:第 6 章 6.3.4 节)
" 数据库维护工作的主要内容包括对数据库性能的监测和改善、故障恢复,数据库的重组和重构。"(出自:第 6 章 6.3.7 节)
【6.4 应用程序与数据库的交互 原文】" 开放数据库连接(Open DataBase Connectivity, ODBC)是为解决异构数据库间的数据共享而产生的。ODBC 的最大优点就是能以统一的方式处理所有的关系数据库。"(出自:第 6 章 6.4 节)
" 对象/关系映射(Object/Relation Mapping, O/R Mapping):对象/关系映射就提供了这样一种工具或是平台,能够帮助将应用程序中的数据转换成关系型数据库中的记录;或是将关系数据库中的记录转换成应用程序中代码便于操作的对象。"(出自:第 6 章 6.4 节)
【6.5 NoSQL 数据库 原文】" 按照所使用的数据结构的类型,一般可以将 NoSQL 数据库分为以下 4 种类型:列式存储数据库;键值对存储数据库;文档型数据库;图数据库。"(出自:第 6 章 6.5.1 节)
" 目前业界对于 NoSQL 并没有一个明确的范围和定义,但是它们普遍存在下面一些共同特征:易扩展;大数据量,高性能;灵活的数据模型;高可用。"(出自:第 6 章 6.5.1 节)
" NoSQL 整体框架分为 4 层,由下至上分为数据持久层、数据分布层、数据逻辑模型层和接口层。"(出自:第 6 章 6.5.2 节)
逐段讲解(紧贴上面原文,一段一解):
四、核心知识树
第 6 章 数据库系统
├── 基本概念
│ ├── 数据模型三要素
│ └── 三级模式
├── 关系数据库
│ ├── 关系运算
│ └── 规范化
├── 数据库设计
│ ├── 六阶段
│ └── 反规范化
├── 交互接口
│ └── ODBC/ORM
└── NoSQL
└── 四类与框架
五、知识脑图总结
思维导图(结构化呈现)
六、关键概念速解
| 概念 | 教材定义(原文关键词) | 大白话速解 | 考试怎么考 |
|---|---|---|---|
| 数据模型三要素 | 数据结构、数据操作、数据的约束条件 | 蓝图=结构 + 用法 + 强条 | 选择辨析 |
| 三级模式 | 外模式、概念模式、内模式 | 用户视图/总逻辑/物理存储 | 选择考映射与独立性 |
| 实体完整性 | 每个表必须有主键,主键唯一且非空 | 货位必须有唯一编号 | 选择 |
| 参照完整性 | 外码取空值或等于被参照主码值 | 引用别处编号必须真实存在 | 选择 |
| 自然连接 | 特殊等值连接,去重复属性列 | 按同名列拼表并去重列 | 关系代数题 |
| 1NF\~4NF | 不可分/消部分依赖/消传递依赖/消多值依赖 | 货位越整理越不重复 | 范式判定选择 |
| 反规范化 | 冗余列、派生列、表重组、表分割 | 就近多备一份副本提速 | 选择 |
| NoSQL | 列/键值/文档/图四类;易扩展高性能灵活高可用 | 非关系、为规模与灵活而生 | 分类与特征选择 |
| ODBC | 以统一方式处理所有关系数据库 | 异构库统一接口 | 选择 |
七、记忆口诀与类比
八、易混淆点对比
| 易混项 A | 易混项 B | 核心区别 |
|---|---|---|
| 实体完整性 | 参照完整性 | A 管 " 本表主键唯一非空 ";B 管 " 外码必须引用真实存在的主码或为空 " |
| 等值连接 | 自然连接 | 等值连接按条件相等连接可留重复列;自然连接是去重列的等值连接 |
| 规范化 | 反规范化 | 规范化消除冗余保一致;反规范化加冗余换查询性能 |
| 物理独立性 | 逻辑独立性 | 物理独立性=改存储不影响应用;逻辑独立性=改整体逻辑结构不影响应用 |
九、与其他章节的关联
十、考试出题方式