1.数据库——基础概念.md 6.0 KB

计算机考研复试数据库基础概念终极整理版


一、数据库系统基本概念

1. 数据库系统定义与特点

  • 定义:数据库(DB)是长期存储在计算机内、有组织、可共享的数据集合,数据库管理系统(DBMS)是管理数据库的核心软件,数据库系统(DBS)包含DB、DBMS、应用程序和用户。
  • 核心特点
    • 数据共享性:多用户共享数据,减少冗余。
    • 数据独立性:包括物理独立性(存储结构变化不影响逻辑结构)和逻辑独立性(模式变化不影响应用)。
    • 数据持久性:事务提交后数据永久保存。
    • 统一管理:通过DBMS实现安全性、完整性、并发控制等统一管理。

2. 数据模型

  • 层次模型:树形结构,适合一对多关系(如早期文件系统)。
  • 网状模型:图形结构,支持多对多关系,但复杂度高。
  • 关系模型:二维表结构,主流模型,通过关系代数和SQL操作。
  • 对象模型:结合面向对象特性,支持复杂数据类型(如XML、JSON)。

3. 数据库三级模式与二级映像

  • 三级模式
    • 外模式(用户视图):局部数据逻辑结构,如用户查询界面。
    • 模式(全局视图):全体数据的逻辑结构描述(如ER图转化后的关系模式)。
    • 内模式(存储视图):物理存储结构(如B+树索引)。
  • 二级映像
    • 外模式/模式映射:保证逻辑独立性(模式修改不影响外模式)。
    • 模式/内模式映射:保证物理独立性(存储结构修改不影响模式)。

二、数据库系统 vs 文件系统

对比维度 文件系统 数据库系统
数据冗余 高冗余(多个文件存储相同数据) 低冗余(共享数据,规范化设计)
数据一致性 难以保证(分散存储) 通过完整性约束和事务保证
独立性 无独立性(程序与文件绑定) 物理和逻辑独立性
查询能力 简单查询(如文本搜索) 复杂查询(SQL支持多表连接、聚合)
典型应用 小型数据管理(如文档存储) 企业级应用(如银行交易系统)

三、数据库核心组件与功能

1. 数据库管理系统(DBMS)功能

  • 数据定义:通过DDL(如CREATE TABLE)定义模式。
  • 数据操作:通过DML(如SELECT/INSERT)实现增删改查。
  • 事务管理:保证ACID特性(原子性、一致性、隔离性、持久性)。
  • 并发控制:通过锁机制(共享锁S、排他锁X)避免数据冲突。
  • 恢复机制:日志文件记录操作,支持故障恢复(如UNDO/REDO)。

2. 关系数据库核心概念

  • 关系:二维表,属性不可再分(1NF)。
    • 主键:唯一标识元组,非空(实体完整性)。
    • 外键:参照其他表主键,可为空(参照完整性)。
  • 完整性约束
    • 实体完整性:主键非空且唯一。
    • 用户自定义约束:如CHECK(age >= 18)

四、事务与并发控制

1. 事务ACID特性

  • 原子性(Atomicity):事务要么全执行,要么全不执行(通过UNDO日志实现)。
  • 一致性(Consistency):事务前后数据库状态合法(如账户总额不变)。
  • 隔离性(Isolation):事务间互不干扰(通过锁机制实现)。
  • 持久性(Durability):提交后数据永久存储(通过REDO日志实现)。

2. 并发问题与解决方案

问题 描述 解决方案
丢失修改 后提交覆盖前提交结果 一级封锁协议(X锁到事务结束)
脏读 读取未提交的无效数据 二级封锁协议(读S锁立即释放)
不可重复读 同一事务两次读取结果不同 三级封锁协议(读S锁到事务结束)
幻读 范围查询结果数量变化 间隙锁(锁定范围)

五、数据库设计核心理论

1. 范式理论(Normalization)

  • 1NF:属性不可再分(如避免多值属性)。
  • 2NF:消除非主属性对主键的部分依赖(如订单表中商品价格应依赖商品ID而非订单ID)。
  • 3NF:消除非主属性的传递依赖(如员工表中部门地址应依赖部门而非员工ID)。
  • BCNF:消除主属性对候选键的部分/传递依赖(如课程-教师关系中,教师决定课程)。

2. ER图与关系模式转化

  • 实体:矩形表示(如学生、课程)。
  • 联系:菱形表示(如选课),多对多联系需转化为独立表(如选课表含学生ID和课程ID)。
  • 转换规则
    • 一对一:任一方表添加对方主键。
    • 一对多:多方表添加一方主键。
    • 多对多:新建关联表保存双方主键。

六、高频考点速记

  1. 数据字典:存储元数据(如表结构、约束),用于系统维护和查询优化。
  2. 视图(View):虚表,简化查询(如CREATE VIEW v_student AS SELECT id, name FROM student),支持逻辑独立性。
  3. 索引类型
    • B+树索引:支持范围查询(如WHERE age > 20)。
    • Hash索引:适合等值查询(如WHERE id = 1001)。
  4. 存储过程与触发器
    • 存储过程:预编译SQL集合(如批量插入)。
    • 触发器:事件驱动(如AFTER INSERT自动更新统计表)。

参考资料:王珊《数据库系统概论》核心考点 + 历年复试真题分析