系统架构设计师备考站2027 上半年 · 通勤版 ⌕搜索
本页目录 · 5 节
  1. 一、知识框架
  2. 二、必背要点
  3. 2.1 数据库基本概念
  4. 2.2 关系数据库
  5. 2.3 数据库设计六步
  6. 2.4 应用程序与数据库的交互
  7. 2.5 NoSQL 数据库
  8. 三、易混淆概念对比
  9. 四、常见考法与出题角度
  10. 五、速记与自测

第 6 章 数据库设计基础知识

对应大纲:科目 1-5 数据库设计基础知识|教材 P218–P247|优先级 ★★★★|综合知识估分 7~10 分
读法:本章分数集中在三张硬表——三级模式两级映像、范式判定、E-R 转关系;其余(接口、NoSQL)只背分类与适用场景。上午题必考范式与关系代数小计算,案例题常考 E-R 补全与反规范化。


一、知识框架

数据库设计基础知识
├─ 6.1 数据库基本概念
│   ├─ 技术发展:人工管理→文件系统→数据库系统→高级数据库
│   ├─ 数据模型三要素:数据结构|数据操作|完整性约束
│   ├─ DBMS 功能与数据库系统组成
│   └─ 三级模式(外/模式/内)+ 两级映像(逻辑/物理独立性)
├─ 6.2 关系数据库:基本术语|关系代数|完整性约束|函数依赖与范式
├─ 6.3 数据库设计:需求→概念→逻辑→物理→实施→运维
├─ 6.4 应用程序与数据库交互:库函数|嵌入 SQL|通用接口|ORM
└─ 6.5 NoSQL 数据库:四类对比|CAP/BASE|体系框架|分布式透明性

二、必背要点

2.1 数据库基本概念

技术发展四阶段

阶段数据管理方式特点
人工管理程序内直接管理无独立性、不共享、无专用软件
文件系统文件 + 操作系统有文件结构,但数据冗余大、独立性差
数据库系统DBMS 统一管理数据结构化、共享性高、冗余低、独立性强
高级数据库分布式、面向对象、NoSQL、云数据库海量、异构、弹性

数据模型三要素:数据结构(静态骨架)、数据操作(动态行为)、完整性约束(合法状态)。
模型分层:概念模型(E-R,面向用户)→ 逻辑模型(层次/网状/关系/面向对象)→ 物理模型(存储细节)。

DBMS 六项功能:数据定义(DDL)、数据操纵(DML)、数据库运行管理、数据组织与存储、数据库建立与维护、通信接口。

数据库系统组成:数据库、DBMS、应用程序、数据库管理员(DBA)、用户。

三级模式与两级映像(必背)

模式别名描述对象面向
外模式子模式/用户视图用户可见的局部数据视图应用程序与用户
模式概念模式/逻辑模式全体数据的逻辑结构全局设计
内模式存储模式物理存储结构、索引、存取方式物理存储
映像作用保证
外模式/模式模式变化时改映像,应用程序不变逻辑独立性
模式/内模式存储结构变化时改映像,逻辑结构不变物理独立性

口诀:外—逻、内—物;外模式对应视图,内模式对应文件。

2.2 关系数据库

基本术语:关系(二维表)、元组(行)、属性(列)、域(取值范围)、候选码(能唯一标识元组的最小属性集)、主码(选定的候选码)、外码(引用其他关系主码的属性)、主属性(包含在任一候选码中的属性)。

关系代数五种基本运算

运算符号含义结果
并R ∪ S合并,去重同目同域
差R − S在 R 不在 S同目同域
笛卡尔积R × S全组合度相加、元组数相乘
选择σ 条件(R)按行筛选水平子集
投影π 属性(R)按列筛选垂直子集,自动去重

导出运算:交 R∩S = R−(R−S);连接 R⋈S(θ 连接、等值连接、自然连接);除 R÷S(用于「对所有/全部」类查询)。

完整性约束:实体完整性(主码非空且唯一)、参照完整性(外码取值为空或等于被参照关系的主码值)、用户定义完整性(业务规则、CHECK、域约束)。

函数依赖:X→Y 表示 X 决定 Y。完全函数依赖(不可再拆)、部分函数依赖(依赖于组合码的一部分)、传递函数依赖(X→Y、Y→Z)。
Armstrong 公理:自反律、增广律、传递律(可推出合并、分解、伪传递规则)。

范式判定与分解(本章必考)

范式判定条件典型违反分解要点
1NF每个属性都是原子值一列存多个电话拆行或拆独立表
2NF1NF 且非主属性完全依赖候选码联合码 (学号,课程)→姓名把部分依赖拆成新表
3NF2NF 且非主属性不传递依赖候选码学号→系号→系主任拆出传递依赖链
BCNF每个决定因素都包含候选码主属性依赖非候选码继续投影,可能丢失函数依赖

判定捷径:候选码只有一个属性 → 必满足 2NF;全部属性都是主属性(全码)→ 必满足 3NF;3NF 允许主属性对码的传递依赖,BCNF 不允许。

分解质量:无损连接性(自然连接可还原原关系)与保持函数依赖。3NF 分解可同时做到两者;BCNF 分解只保证无损连接,不一定保持函数依赖。反规范化(适当冗余)用于换查询性能。

2.3 数据库设计六步

步骤主要任务关键产物
1 需求分析收集数据与处理需求数据字典、DFD、数据流/事务分析
2 概念结构设计局部 E-R → 合并 → 全局 E-RE-R 图(独立于 DBMS)
3 逻辑结构设计E-R 转关系模式、规范化、优化关系模式、外模式/视图
4 物理设计存储结构、索引、分区、参数表空间、索引方案
5 数据库实施建库建表、装载数据、试运行DDL 脚本、初始数据
6 运行维护备份恢复、监控调优、重组重构运维记录、调优报告

概念设计的三类冲突:属性冲突(同一属性在不同部门单位/类型不同)、命名冲突(同名异义、异名同义)、结构冲突(同一对象在不同局部模型中抽象不同、实体与属性互换)。

E-R 图转关系模式三条规则(必背)

联系类型转换方法码的取法
1:1并入任一端,或独立建模式任一端的主码
1:N并入 N 端作外码,或独立建模式N 端的主码
M:N必须独立建关系模式两端主码的组合

补充:三元联系独立建模式;多值属性单独建表(否则违反 1NF)。

物理设计:索引(B+ 树宜范围、Hash 宜等值、位图宜低基数)、聚簇/分区/表空间、缓冲与并发参数。

2.4 应用程序与数据库的交互

方式代表优点缺点
库函数级OCI、libpq、MySQL C API性能最高、控制细与 DBMS 绑定,可移植差
嵌入 SQLESQL/C、Pro*C集合操作 + 宿主语言流程控制需预编译,调试不便
通用数据接口ODBC(C)、JDBC(Java)、ADO.NET屏蔽 DBMS 差异,跨库可移植多一层转换,性能略损
ORMHibernate(全自动)、MyBatis(半自动)、JPA面向对象、开发效率高有阻抗不匹配,易 N+1、懒加载陷阱

关键概念:ODBC 由驱动管理器 + 驱动构成;JDBC 四类驱动中,Type 4(纯 Java 网络协议驱动)最常用。存储过程与触发器把逻辑下沉到数据库,减少网络往返,但不利于移植与版本管理。

2.5 NoSQL 数据库

共同特点:非关系模型、无固定 Schema、水平扩展、支持海量数据、弱事务(BASE)、最终一致性。

NoSQL 四类对比(必背)

类型代表产品数据模型适用场景
键值 KVRedis、Memcachedkey → value缓存、会话、计数、超高并发简单读写
列族HBase、Cassandra行键 + 列族 + 时间戳海量稀疏数据、日志、时序、宽表
文档MongoDB、CouchDBJSON/BSON 文档半结构化数据、内容管理、快速迭代
图Neo4j、JanusGraph节点 + 边 + 属性社交网络、知识图谱、多跳关系查询

CAP 与 BASE:CAP 指一致性、可用性、分区容忍性三者不可同时满足;分布式系统必须容忍分区,故只能在 CP(HBase、MongoDB 默认)与 AP(Cassandra、DynamoDB)之间取舍。BASE = 基本可用 + 软状态 + 最终一致性。

体系框架(四层):接口层(REST/API/客户端)→ 数据模型层(KV/文档/列/图)→ 数据存储层(内存、LSM 树、列式)→ 持久化层(本地文件系统/HDFS)。
部署:客户端 → 协调节点(路由)→ 数据节点(分片 + 多副本)。

分布式数据库的六种透明性

透明性含义
分片透明用户无需知道数据如何分片,透明性最高
位置透明无需知道数据存放在哪个站点
复制透明无需知道副本数量与位置
模型透明无需知道局部站点的数据模型差异
局部映像透明无需知道局部数据库的模式映射
分布透明整体上把分布式库当作单一逻辑库使用

选型:强事务、复杂关联、报表 → 关系库;高并发写、海量半结构化、弹性扩展 → NoSQL;实际多为「关系库 + 缓存 + 搜索」混合。


三、易混淆概念对比

AB关键区别
外模式模式外模式是用户视图(可多个);模式是全局逻辑结构(只有一个)
逻辑独立性物理独立性外/模式映像保证逻辑独立性;模式/内映像保证物理独立性
候选码主码候选码是能唯一标识的最小属性集,可有多个;主码是选中的一个
2NF3NF2NF 消除非主属性对码的部分依赖;3NF 再消除传递依赖
3NFBCNF3NF 允许主属性对码的传递依赖;BCNF 要求每个决定因素都含候选码
无损连接保持函数依赖无损是可还原;保持依赖是不丢约束;3NF 可兼得,BCNF 不一定
选择投影选择按行筛选(σ);投影按列筛选(π)
实体完整性参照完整性主码非空唯一;外码必须引用存在的主码或为空
ODBCJDBCODBC 面向 C 与多语言;JDBC 面向 Java
ORM 全自动ORM 半自动Hibernate 自动生成 SQL;MyBatis 手写 SQL、只做映射
CPAPCP 保一致牺牲可用(HBase);AP 保可用、最终一致(Cassandra)

四、常见考法与出题角度

出题角度典型问法应对陷阱
范式判定「该关系最高属于第几范式」先求候选码,再查部分/传递依赖只看属性名不看依赖
分解「哪个分解是无损连接」用自然连接还原检验与保持依赖混淆
关系代数「查询选修全部课程的学生」用除运算误用连接
元组数计算「R 有 3 元组、S 有 4 元组,R×S 几元组」3×4=12误答 7
模式映像「存储结构改变不影响逻辑结构靠」模式/内模式映像误答外/模式
E-R 转换「M:N 联系如何转换」必须独立建表,码为两码组合误并入某一端
设计步骤「E-R 图属于哪个阶段产物」概念结构设计误答逻辑设计
接口识别「Hibernate 属于哪种交互方式」ORM误答通用接口
NoSQL 选型「知识图谱多跳查询选哪种」图数据库误选文档库
CAP「HBase 属于 CP 还是 AP」CP误答 AP
透明性「透明性最高的是」分片透明误答位置透明

案例题角度:补全 E-R 图与关系模式(标注主外码)、判断范式并给出分解、设计索引与分区方案、在读写压力下讨论反规范化与缓存策略。


五、速记与自测

速记

  • 三模式:外、模、内;两映像:外/模→逻辑,模/内→物理
  • 关系代数五基本:并、差、积、选、投(导出:交、连、除)
  • 范式:1 原子、2 完全、3 传递、B 决定(BCNF 看决定因素)
  • E-R 三规则:1:1 随便并、1:N 并 N 端、M:N 必独立
  • 设计六步:需、概、逻、物、实、维
  • 交互四类:库函数、嵌 SQL、通用接口、ORM
  • NoSQL 四类:KV 快、列族宽、文档活、图连
  • CAP:三者不可兼得,P 必选

自测

  1. 关系模式 R(学号, 课程号, 姓名, 成绩),候选码为 (学号,课程号),它满足第几范式?为什么?
  2. R 有 3 个属性、5 个元组,S 有 4 个属性、2 个元组,R×S 的度与元组数各是多少?
  3. M:N 联系转换成关系模式后,码是什么?

答案:1. 只满足 1NF;因为「姓名」只依赖学号,存在对候选码的部分函数依赖,不满足 2NF,应拆为 (学号,姓名) 与 (学号,课程号,成绩)。2. 度为 7,元组数为 10。3. 两端实体主码的组合。