数据库基础概念(考试复习)

数据库核心概念笔记(权威教材版)

一、基本概念

  1. 数据库(DB)
    长期存储在计算机内、有组织、可共享的大量数据集合。
    特点:永久存储、有组织、可共享、统一管理。

  2. 数据库管理系统(DBMS)
    位于用户与操作系统之间的数据管理软件。
    功能:数据定义、数据操纵、数据库运行管理、数据库建立维护。

  3. 数据库系统(DBS)
    计算机系统中引入数据库后的整个系统。
    组成:DB + DBMS + 应用程序 + DBA。

二、数据模型与结构

  1. 数据模型组成

    • 数据结构
    • 数据操作
    • 完整性约束
  2. 逻辑数据模型(主流)

    • 关系模型(最常用)
    • 层次模型
    • 网状模型
    • 面向对象模型
    • 对象关系模型

三、三级模式 & 两级独立性

  1. 三级模式

    • 外模式(子模式/用户模式):用户看到的局部数据逻辑结构。
    • 模式(概念模式/逻辑模式):数据库全体数据的逻辑结构和特征描述。
    • 内模式(存储模式):数据物理结构与存储方式。
  2. 两级独立性

    • 逻辑独立性:模式改变,外模式/应用程序不变。
    • 物理独立性:内模式改变,模式/外模式/应用不变。

四、关系模型基本术语

  1. 关系:一张二维表。
  2. 关系模式:对关系的型描述,简写为 R(属性1, 属性2, …)
  3. 属性:表中的列。
  4. 元组:表中的行(记录)。
  5. :属性的取值范围。
  6. 分量:元组中的一个属性值。
  7. 基数:关系中的元组个数。
  8. 度数(目):关系中的属性个数。

五、码(键)相关

  1. 候选码:能唯一标识一个元组的最小属性集。
  2. 主码:用户选作唯一标识的候选码。
  3. 全码:整个所有属性共同作为候选码。
  4. 主属性:候选码中的属性。
  5. 非主属性:不包含在任何候选码中的属性。

六、三大完整性约束

  1. 实体完整性:主码不能为空、不能重复。
  2. 参照完整性:外码取值——等于被参照关系某个主码值,或为 NULL。
  3. 用户定义完整性:用户按应用需求定义的约束(如性别只能男女、成绩 0–100)。

七、安全性 & 完整性

  1. 安全性控制:保护数据库防止非法使用、泄露、破坏。
    手段:用户鉴别、存取控制、视图、审计、加密。
  2. 完整性控制:保证数据正确、有效、相容。
    包括:实体、参照、用户定义完整性。

八、视图

  1. 定义
    视图是从一个或多个基本表(或视图)导出的虚拟表。其内容由查询定义,不实际存储数据,只存储定义。

  2. 特点

    • 视图是虚拟表,操作视图与操作基本表类似
    • 对视图的更新(增、删、改)有限制,可能映射回基本表
  3. 优点

    • 简化用户操作:隐藏复杂查询(如多表连接)
    • 数据安全:隐藏敏感数据,只展示授权信息
    • 逻辑数据独立性:数据库模式改变时,可通过修改视图定义保持应用程序不变
  4. 视图的更新限制
    并非所有视图都允许更新。通常,若视图定义包含以下元素,则视图不可更新:

    • 分组(GROUP BY)
    • 聚合函数(SUM、AVG 等)
    • DISTINCT
    • 多表连接(某些条件下不可更新)

九、事务与 ACID

  1. 事务:用户定义的一个数据库操作序列,是不可分割的逻辑单位。
  2. ACID 四大特性
    • 原子性:要么全做,要么全不做
    • 一致性:执行前后数据库保持一致
    • 隔离性:并发事务互不干扰
    • 持久性:提交后永久生效

十、并发控制 & 封锁

  1. 并发控制:解决多用户同时操作带来的数据不一致。
  2. X 锁(排他锁/写锁)
    • 加锁后其他事务不能读、不能写
    • 写操作加 X 锁
  3. S 锁(共享锁/读锁)
    • 加锁后其他事务只能读不能写
    • 读操作加 S 锁

十一、并发问题 & 封锁协议

  1. 丢失更新:两个事务同时修改,一个覆盖另一个。
  2. 一级封锁协议
    • 写数据加 X 锁,直到事务结束释放
    • 解决:丢失更新
  3. 脏读:读到未提交又被撤销的数据。
  4. 二级封锁协议
    • 一级 + 读数据加 S 锁,读完释放
    • 解决:丢失更新、脏读
  5. 不可重复读:同一事务内两次读同一数据结果不同。
  6. 三级封锁协议
    • 一级 + 读数据加 S 锁,事务结束释放
    • 解决:丢失更新、脏读、不可重复读

十二、恢复技术

  1. 数据冗余:同一数据多次存储,导致不一致、浪费空间。
  2. 登记日志文件 & 数据转储
    • 日志:记录事务所有更新操作
    • 转储:定期备份数据库副本
  3. 日志先写原则(WAL):先写日志文件,再写数据库。保证可恢复。

十三、故障恢复策略

  1. 事务故障
    • 仅影响单个事务
    • 恢复:UNDO(撤消)
  2. 系统故障(停电、宕机)
    • 影响所有事务,不破坏数据库
    • 恢复:REDO + UNDO
  3. 介质故障(磁盘损坏)
    • 物理破坏数据库
    • 恢复:重装备份 + 重做日志

十四、数据库设计六阶段

  1. 需求分析阶段:收集信息、明确需求、输出数据字典。
  2. 概念模型设计:画 E-R 图,独立于 DBMS。
  3. 逻辑结构设计阶段:E-R 图 → 关系模式,规范化。
  4. 物理结构设计:选择存储结构、索引、存取路径。
  5. 数据库实施阶段:建库、建表、加载数据、试运行。
  6. 数据库运行和维护阶段:监控、优化、备份、恢复、重构。

十五、范式

范式是关系数据库规范化理论的核心,用于衡量关系模式的优劣,减少数据冗余和操作异常。

  1. 第一范式(1NF)

    • 定义:关系中的每个属性都是不可再分的原子值。
    • 目标:确保列的原子性,不允许表中套表或多值属性。
  2. 第二范式(2NF)

    • 定义:在 1NF 的基础上,消除非主属性对候选码的部分函数依赖
    • 核心:所有非主属性必须完全依赖于整个候选码,而不是仅依赖候选码的一部分(主要针对候选码为复合属性的情况)。
  3. 第三范式(3NF)

    • 定义:在 2NF 的基础上,消除非主属性对候选码的传递函数依赖
    • 核心:非主属性既不部分依赖码,也不传递依赖码。即:如果 X → Y,Y → Z,且 Y 不决定 X,则存在传递依赖,需分解。
  4. BC 范式(BCNF)

    • 定义:在 3NF 的基础上,消除主属性对候选码的部分依赖和传递依赖
    • 核心:对于每个非平凡函数依赖 X → Y,X 都必须包含候选码。
    • 特点:BCNF 是 3NF 的加强版,解决了 3NF 中可能遗留的主属性间依赖问题。
  5. 范式总结表

范式 核心要求 解决的主要问题
1NF 属性不可分 消除重复组和非原子数据
2NF 消除非主属性对码的部分依赖 减少数据冗余、更新异常
3NF 消除非主属性对码的传递依赖 进一步减少冗余和异常
BCNF 消除所有属性对码的传递依赖(包括主属性) 彻底解决函数依赖带来的异常

规范化:将一个低范式的关系模式通过模式分解转化为高范式的过程,但需注意无损连接性函数依赖保持性


说明:本笔记为数据库核心概念权威教材版,严格对应教材知识点,便于复习查阅。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 slowbirdie.top@outlook.com