# 数据库

> CIE A-Level 计算机科学 · 9618
> 来源: https://www.owlsprep.com/zh/study/cie-9618-u8-overview/
> 占比: n/a

本单元涵盖现代数据库的核心概念、设计、实现与管理，这是软件开发和数据管理的基础主题，在9618大纲的理论和实践部分都会进行考查。

**先修:** 基础数据结构与数据表示概念

## 学习目标

- 解释核心数据库概念以及结构化数据存储在实际应用中的价值
- 设计并规范化关系型数据库，消除数据冗余并保持数据完整性
- 为常见数据库操作编写正确的结构化查询语言（SQL）语句
- 描述高级数据库架构和管理并发多用户访问的机制

## 单元概览

我们先从宏观角度介绍数据库存在的意义，以及和非结构化存储或平面文件存储相比，数据库解决了哪些问题，之后再介绍为大多数现代应用提供支撑的主流关系型数据库模型。接下来，我们会讲解如何使用结构化查询语言（SQL）——关系型数据处理的全球标准——来实现数据库并与之交互。

之后我们会讲解消除数据冗余、保护数据完整性的关键流程：数据库规范化，再进入高级主题，包括分布式数据库架构和多用户系统的事务管理。每个主题都在前一个内容的基础上逐步递进，从核心概念延伸到实践设计，再到高级系统管理。

本单元分为以下关联子主题：
- [数据库概念](https://www.owlsprep.com/study/cie-9618-u8-database-concepts/) — 介绍核心术语、平面文件的局限性以及现代数据库系统的用途。
- [关系型数据库模型](https://www.owlsprep.com/study/cie-9618-u8-relational-database-model/) — 涵盖实体、属性、关系、键以及实体-关系（ER）图设计。
- [结构化查询语言（SQL）](https://www.owlsprep.com/study/cie-9618-u8-structured-query-language/) — 教授如何编写用于创建表、带过滤/连接的查询以及数据操作的SQL语句。
- [规范化](https://www.owlsprep.com/study/cie-9618-u8-normalisation/) — 解释函数依赖以及如何将数据库规范化到第三范式（3NF）。
- [客户端-服务器与分布式数据库](https://www.owlsprep.com/study/cie-9618-u8-client-server-and-distributed-databases/) — 对比不同的数据库架构以及分布式数据库系统的核心特性。
- [事务与并发控制](https://www.owlsprep.com/study/cie-9618-u8-transactions-and-concurrency-control/) — 涵盖ACID特性以及防止并发数据库访问冲突的机制。

## 常见错误

- **错误做法:** 设计关系表时混淆主键和外键
  - 原因: 这会导致连接错误，破坏实体之间的关系，在考试中失分
  - 正确做法: 记住：主键唯一标识表中的一行，而外键引用另一张表中的主键
- **错误做法:** 回答事务相关考题时遗漏四个ACID特性中的部分内容
  - 原因: 大多数考试评分标准要求列出全部四个特性才能给满分
  - 正确做法: 牢记原子性、一致性、隔离性、持久性以及每个特性的定义
- **错误做法:** 认为所有数据库在任何情况下都必须规范化到3NF
  - 原因: 过度规范化会在读密集型应用中带来不必要的性能开销
  - 正确做法: 大多数设计规范化到3NF即可，但要认识到出于性能考虑，何时适合反规范化

## 速查表

| 核心概念 | 描述 |
| --- | --- |
| 主键 | 唯一标识关系中每一行数据的属性 |
| 外键 | 引用另一关系的主键以连接实体的属性 |
| 第三范式（3NF） | 不存在传递函数依赖；所有非键属性仅依赖于主键 |
| $SELECT ... FROM ... JOIN ... ON$ | 查询并组合多个关联表中数据的核心SQL结构 |
| ACID特性 | 原子性、一致性、隔离性、持久性：可靠事务处理的必要特性 |
| 客户端-服务器架构 | 集中式数据库存储在服务器上，供多个客户端设备通过网络访问 |

## 下一步

从第一个子主题开始，构建你对数据库概念的基础理解，然后按顺序学习，掌握设计、实现和高级管理。完成本单元所有子主题后，你将进入下一个涵盖软件工程原理的单元。让我们开始吧。

- [数据库概念（本单元第一个子主题）](https://www.owlsprep.com/zh/study/cie-9618-u8-database-concepts/)
- [关系数据库模型](https://www.owlsprep.com/zh/study/cie-9618-u8-relational-database-model/)
- [结构化查询语言（SQL）](https://www.owlsprep.com/zh/study/cie-9618-u8-structured-query-language/)

---

来自 [OwlsPrep](https://www.owlsprep.com) —— A-Level / IB / AP / IGCSE 免费学习指南，依据官方考纲编写。原页面：https://www.owlsprep.com/zh/study/cie-9618-u8-overview/
