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

数据库第六章

数据库第六章 关系数据理论 完整笔记(考试必考)

前言

本章是数据库最难、分值最高、计算题必考章节。
核心解决问题:数据表冗余太大、插入异常、删除异常、更新异常,通过「函数依赖+范式分解」优化表结构。

一、关系模式的问题(为什么要规范化)

1. 劣质表结构四大问题

1. 数据冗余:大量重复数据,占用空间
2. 插入异常:该插的数据插不进去(主键缺失)
3. 删除异常:删一条数据,连带删掉有效信息
4. 更新异常:改一个数据,需要改多行,不改全就数据不一致

2. 根本原因

属性之间存在不合理的函数依赖 → 解决:拆分表、规范化范式

二、函数依赖(本章核心基础)

1. 定义

设关系模式 R(U),X、Y 是属性子集,若 X 的值确定,Y 的值唯一确定,则称:
X \to Y (X函数决定Y,Y函数依赖于X)

通俗理解:知道X,就一定知道Y

2. 函数依赖分类

(1)平凡/非平凡依赖

- 平凡依赖:X \to Y,且 Y \subseteq X(自己推自己,无意义)
- 非平凡依赖:X \to Y,且 Y \nsubseteq X(考试只考这个)

(2)完全 / 部分函数依赖(2NF核心)

设主键为复合码 (X_1,X_2)

- 完全依赖:必须主键全部才能推出 Y
- 部分依赖:主键其中一部分就能推出 Y(违规,产生冗余)

(3)传递函数依赖(3NF核心)

若 X\to Y,Y\nrightarrow X,Y\to Z
则:X\to Z 传递依赖(间接推导,违规)

三、码的求解(必考计算题)

1. 属性分类(快速找候选码)

- L类:只出现在依赖左边 → 一定在候选码中
- R类:只出现在依赖右边 → 一定不在候选码中
- LR类:左右都出现 → 待定
- N类:左右都不出现 → 一定在候选码中

2. 候选码求解步骤

1. 找出所有 L、N 类属性,组合起来
2. 验证:该组合能否推出所有属性
3. 能推全 → 就是候选码
4. 所有候选码的属性 → 主属性
5. 不在任何候选码的属性 → 非主属性

3. 相关名词

- 候选码:最小的能唯一标识整条记录的属性组
- 主键:从候选码里选一个当主码
- 主属性:所有候选码包含的属性
- 非主属性:不包含任何候选码的属性
- 全码:所有属性组合才是候选码

四、六大范式(从低到高,考试重中之重)

范式等级越高,冗余越低、表越规范
开发通用标准:满足3NF即可

1. 1NF 第一范式(最基础)

规则:列具有原子性,单元格不可再分

- 禁止:一个字段存多个数据(如手机号111/222)
- 问题:仍存在部分依赖、传递依赖,冗余大

2. 2NF 第二范式

前提:满足1NF
核心规则:消除非主属性对主键的部分函数依赖

- 简单说:所有非主属性,必须完全依赖完整主键
- 解决:解决部分依赖带来的冗余、插入、删除异常
- 残留问题:仍存在传递依赖

3. 3NF 第三范式(工程常用)

前提:满足2NF
核心规则:消除非主属性对主键的传递函数依赖

- 简单说:非主属性之间不能互相推导,只能依赖主键
- 效果:基本消除大部分冗余与异常

4. BCNF 巴斯-科德范式(修正第三范式)

前提:满足3NF
核心规则:消除主属性的部分、传递依赖

- 针对:主键内部属性互相依赖的问题
- 地位:函数依赖范畴的最高范式

5. 4NF、5NF(了解)

- 4NF:解决多值依赖问题,禁止无关多值依赖
- 5NF:最高范式,极少使用,考试仅概念

五、范式快速判定口诀(做题秒杀)

1. 不是1NF:字段可拆分
2. 是1NF不是2NF:存在部分依赖
3. 是2NF不是3NF:存在传递依赖
4. 是3NF不是BCNF:主属性存在依赖问题

六、函数依赖集最小化(极小依赖集 Fm)

最小依赖集三个条件

1. 所有依赖右侧都是单属性
2. 没有多余的函数依赖(删不掉)
3. 每个依赖左侧没有多余属性

求解步骤

1. 拆分右侧,全部变成单属性
2. 逐个删除依赖,看能否被其他推导,能删则删
3. 精简左侧多余属性

七、关系模式分解(大题必考)

1. 分解原则

1. 无损连接:拆分后合并和原数据一致,不丢数据
2. 保持函数依赖:原有约束不丢失

2. 两种必考分解算法

1. 分解为3NF(既无损又保依赖)
2. 分解为BCNF(无损,但不一定保依赖)

3. 无损连接判定(Chase算法)

1. 构造初始表格
2. 根据函数依赖修改相同行字段
3. 最终出现全a行 → 无损连接

八、本章高频错题总结

1. 2NF只管部分依赖,不管传递依赖
2. 3NF只管非主属性传递,不管主属性
3. BCNF管所有属性的依赖异常
4. 部分依赖只存在于复合主键,单主键无部分依赖
5. R类属性绝对不可能出现在候选码

九、考试简答题必背

1. 1NF:属性原子性,不可再分
2. 2NF:1NF基础上,无非主属性部分依赖
3. 3NF:2NF基础上,无非主属性传递依赖
4. BCNF:3NF基础上,消除所有主、非主属性不合理依赖
5. 范式作用:降低数据冗余、杜绝增删改异常、保证数据完整性

http://www.jsqmd.com/news/1132135/

相关文章:

  • Agent时代的知识图谱,到底还能怎么玩?
  • Product Hunt 每日热榜 | 2026-07-04
  • Web 渗透测试中的注入漏洞:从原理到实战的完整攻防指南
  • 作业也也也也耶耶耶耶耶
  • P1028 [NOIP 2001 普及组] 数的计算
  • MP1584 降压电源 PCB 布局 5 大要点:实测 SW 节点尖峰降低 60%
  • Pandas基础:数据分析瑞士军刀
  • 《智人之上》第四章「错误:绝对正确是一种幻想 」读后总结
  • 张家口口碑黄金铂金回收白银回收实体老店
  • 《智人之上》第三章「文件:纸老虎也会咬人 」读后总结
  • NSK精密滚珠丝杠W1602MA技术详解
  • GPU打满却吞吐不涨?SGLang用Tracing+AI Agent揪出推理“黑盒”卡点
  • 我节选一些我喜欢的片段和大家分享一下,开复老师有关教育、做人、团队建设、领导能力等方面的论述以及他自己的行动太让我惊喜了!
  • ROS2/Gazebo 仿真:机器人 URDF 中惯性张量参数 4 步校准与实测验证
  • 高效同步降压转换器与PIC18F47K42的硬件设计及I2C控制
  • 来自技术新人的一个自我介绍
  • 华为设备Bootloader解锁终极指南:使用PotatoNV实现系统定制自由
  • 2026年5款自媒体录音转文字工具对比:手机/平板/PC跨平台体验谁更稳?
  • 如何免费获取八大网盘直链下载地址:LinkSwift完整使用指南
  • RAG 系统从搭建到优化:我踩过的 5 个坑,每一个都让我重新写代码
  • C语言的前置细碎知识
  • 16位ADC如何榨出24位精度?硬核拆解采集卡的软件过采样算法与三重缓冲区架构
  • Windows 11 下安装 Codex CLI,并配置独立 API 模式与桌面端分离使用
  • 重庆高口碑黄金回收白银回收
  • 2026最新调研录音整理工具选择建议 | 经过筛选的实用方案口碑盘点
  • 轻量级的数据交换格式——初识Json(下)
  • 杨紫白玉兰后台拥抱的那个男人,到底什么来头?
  • Lemos知识库-AI+知识图谱驱动智能脑进化
  • 具身数据启示录:打破物理茧房,六大源泉如何为机器人注入灵魂
  • 构建Apple Music级动态歌词体验:从架构设计到性能优化的完整技术指南