当前位置: 首页 > news >正文

架构-数据库系统

数据库系统

一、数据库系统概述

(一)课程核心模块

覆盖数据库设计、关系代数、规范化理论、数据控制四大核心模块,旨在构建从理论到实践的完整知识体系至。

(二)典型应用场景

  • 数据管理:学生信息管理(如文档中S1、S2关系表)、金融交易系统(如股票交易数据转储)。
  • 企业级系统:供应链管理(多表关联查询)、客户关系管理(数据完整性约束)。

二、关系代数:数据库操作的数学基础

(一)集合运算(以学生表S1、S2为例)

运算定义示例结果(S1:3条记录,S2:3条记录)
并(∪)合并两个关系的所有元组(去重)5条记录(No0001、No0003、No0004、No0008、No0021)
交(∩)取两个关系的公共元组1条记录(No0001)
差(-)保留在S1中但不在S2中的元组2条记录(No0003、No0004)

(二)关系运算(核心操作)

  1. 投影(π):选择列(如提取学生学号和姓名)

    π(Sno, Sname)(S1)
    

    结果:3条记录,仅包含Sno和Sname列。

  2. 选择(σ):选择行(如筛选学号为No0003的学生)

    σ(Sno='No0003')(S1)
    

    结果:1条记录(Candy的信息)。

  3. 笛卡尔积(×):行的全组合(S1×S2生成9条记录)
    特点:列数=两表列数之和,行数=两表行数之积。

  4. 自然连接(⋈):自动匹配公共属性(如S1和S2通过Sno连接)
    公式:S1 ⋈ S2 = π(σ(S1.Sno=S2.Sno)(S1×S2))
    结果:保留公共属性列一次,仅1条记录(No0001)。

三、规范化理论:消除数据冗余的核心方法

(一)非规范化问题(以学生-系信息表为例)

学号姓名系号系名系位置
S01张三D01计算机系1号楼
S02李四D01计算机系1号楼
  • 数据冗余:系名和系位置重复存储。
  • 更新异常:修改系位置需更新所有相关元组。
  • 插入/删除异常:新系无学生时无法插入,删除学生可能丢失系信息。

(二)函数依赖(数据依赖的核心)

  1. 定义:若X→Y,X值确定则Y值唯一确定(如学号→系号)。
  2. 分类
    • 部分依赖:AB→D,A→C(C依赖于A,而非整个AB键)。
    • 传递依赖:A→B,B→C ⇒ A→C(C通过B传递依赖于A)。

(三)Armstrong公理(函数依赖推导规则)

规则描述示例
自反律Y⊆X ⇒ X→Y学号,姓名→学号
增广律X→Y ⇒ XZ→YZ学号→系号 ⇒ 学号,课程号→系号
传递律X→Y,Y→Z ⇒ X→Z学号→系号,系号→系名 ⇒ 学号→系名

(四)候选键与范式(逐步优化关系模式)

范式定义核心要求示例(学生表优化)
1NF属性不可再分无重复列(如“高级职称人数”拆分为教授、副教授)原表:√(已满足原子性)
2NF消除非主属性部分依赖主键为复合键时,非主属性完全依赖主键原表主键为学号(单一键),直接满足2NF
3NF消除非主属性传递依赖非主属性不依赖于其他非主属性分解为学生表(学号,姓名,系号)和系表(系号,系名,系位置)
BCNF每个决定因素含候选键解决主属性间依赖(如STJ关系中S,J→T,T→J)分解为ST(S,T)和TJ(T,J)

(五)模式分解判定

  1. 无损分解:自然连接可还原原表
    条件:R1∩R2→R1-R2R1∩R2→R2-R1(如R(ABC)分解为AB和AC,因A→B满足无损条件)。
  2. 保持函数依赖:分解后函数依赖集等价
    例:R(ABC),F={A→B,B→C}分解为AB和BC,保留A→B和B→C,保持依赖。

四、数据控制:保障数据安全与可靠

(一)安全性措施(多层防护体系)

  1. 用户认证:密码、生物识别(最外层保护)。
  2. 存取控制:授权语句(如GRANT SELECT ON students TO ‘user’)。
  3. 视图保护:通过视图隐藏敏感字段(如只向第三方开放“姓名”而非“学号”)。
  4. 审计日志:记录所有数据库操作(用于追踪安全事件)。

(二)完整性约束(数据合法性保障)

  1. 实体完整性:主键非空(如学号不能为NULL)。
  2. 参照完整性:外键需引用存在的主键(如课程表的教师号需存在于教师表中)。
  3. 用户自定义:业务规则(如成绩必须在0-100之间)。

(三)并发控制(解决事务冲突)

  1. 三大问题
    • 丢失更新:两个事务同时修改同一数据,后提交覆盖前提交。
    • 不可重复读:事务两次读取同一数据,结果不一致(因其他事务修改)。
    • 脏读:读取到未提交的中间数据。
  2. 封锁协议
    • 一级:写操作加X锁(排它锁),解决丢失更新。
    • 二级:读操作加S锁(共享锁),解决脏读。
    • 三级:延长S锁持有时间,解决不可重复读。

(四)故障恢复(数据可靠性最后防线)

  1. 备份策略
    类型特点适用场景恢复时间
    冷备份停机备份,文件级复制非实时系统较长(需重启数据库)
    热备份在线备份,支持事务高可用性系统秒级(需日志辅助)
    增量备份仅备份变化数据数据量大时依赖上次备份类型
  2. 日志文件:记录事务操作(如INSERT/UPDATE/DELETE),用于故障后重做(Redo)或回滚(Undo)。
  3. 故障处理
    • 事务故障:自动回滚(如算术溢出)。
    • 系统故障:通过检查点(Checkpoint)恢复到最近一致状态。
    • 介质故障:还原备份并应用日志重做所有提交事务。

五、综合应用:典型场景解析

(一)关系代数优化查询

问题:查询选修了课程且成绩大于80的学生姓名
步骤

  1. 选择(σ成绩>80)→ 2. 投影(π姓名)→ 3. 自然连接学生表与成绩表
    优势:通过代数运算明确逻辑步骤,便于数据库引擎优化执行计划。

(二)范式应用案例(学生选课表)

原表:SC(学号,课程号,成绩,学分)

  • 问题:学分依赖课程号(部分依赖?不,主键是(学号,课程号),学分完全依赖课程号,属2NF但存在传递依赖?)
  • 优化:分解为SC(学号,课程号,成绩)和Course(课程号,学分),满足3NF。

(三)故障恢复策略选择

场景:证券公司实时交易系统(7×24小时运行)

  • 备份方案:热备份(动态备份)+ 增量日志备份(每15分钟)
  • 理由:避免停机影响交易,增量备份减少存储压力,结合日志实现秒级恢复。

六、核心公式与定理速查表

知识点公式/定理说明
自然连接R ⋈ S = π(σ(R.A=S.A)(R×S))自动匹配公共属性并去重
无损分解条件R1∩R2→R1-R2 或 R1∩R2→R2-R1判定分解能否还原原表
Armstrong公理自反律、增广律、传递律函数依赖推导基础
候选键查找入度为0属性集+图遍历确定最小标识属性集

七、学习建议

  1. 理论结合实践:通过MySQL/PostgreSQL实操关系代数(如用SELECT实现投影、WHERE实现选择)。
  2. 范式分步优化:每次分解后检查是否满足目标范式(从1NF到BCNF逐步验证)。
  3. 故障恢复演练:使用数据库备份工具(如pg_dump、mysqldump)模拟冷/热备份及恢复过程。

通过以上体系化梳理,可深入掌握数据库系统的核心原理,从理论设计到实际应用形成完整认知,为复杂数据管理场景提供解决方案。

相关文章:

  • Java基础集合 面试经典八股总结 [连载ing]
  • Java开发工具IntelliJ IDEA v2025.1——全面支持Java 24、整合AI
  • C++内存管理那些事
  • 树型结构(知识点梳理及例题精讲)
  • 一键多环境构建——用 Hvigor 玩转 HarmonyOS Next
  • Docker 部署 Redis:快速搭建高效缓存服务
  • 解决yarn install 报错 error \node_modules\electron: Command failed.
  • 【PVCodeNet】《Palm Vein Recognition Network Combining Transformer and CNN》
  • Unity MR开发:探索混合现实的无限可能 (VisionPro和HoloLens 2 对比)
  • 注意力机制:Transformer如何用“数学凝视“统治AI?
  • 深度学习物理信息神经网络PINN+大模型辅助编程​
  • continue插件实现IDEA接入本地离线部署的deepseek等大模型
  • Kafka消息可视化工具Offset Explorer
  • windows中kafka4.0集群搭建
  • STM32F103系列单片机寄存器操作和标准库操作
  • SpringCloud微服务架构设计与实践 - 面试实战
  • Web3中心化交易所钱包-批量地址生成业务
  • 【RocketMq源码篇-01】环境搭建、基本使用、可视化界面
  • ES6 模块化 与 CommonJS 的核心概念解析
  • linux系统如何锁定一个用户?又如何解锁该用户呢
  • “十四五”以来少数民族发展资金累计下达边疆省区252亿元
  • 重新认识中国女性|婚姻,自古以来就是一桩生意
  • 帕力旦·吐尔逊已任喀什大学党委副书记、校长
  • 低轨卫星“千帆星座”已完成五批次组网卫星发射,未来还有这些计划
  • 法治日报:强制统一店铺广告牌匾事件何以频发?
  • 云南大理州洱源县发生4.8级地震,震源深度10千米