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

《数据库原理》部分习题解析

《数据库原理》部分习题解析

1. 课本pg196.第1题。

(1)函数依赖
若对关系模式 R(U) 的任何可能的关系 r,对于任意两个元组 t₁ 和 t₂,若 t₁[X] = t₂[X],则必须有 t₁[Y] = t₂[Y],则称属性集 Y 函数依赖于属性集 X,记作:

X → Y

函数依赖是数据库规范化的基础,用于描述属性间的约束关系。

(2)部分函数依赖
若某关系的主键是复合主键(例如 A 和 B),存在一个非主属性 C 满足 A → C,但 B 无影响,即 C 并不依赖整个主键,则称为部分函数依赖。

(3)完全函数依赖
若某非主属性 C 对整个主键 (A, B) 依赖,且不依赖其任何子集,即:

(A, B) → C 且 A ⊬ C,B ⊬ C

(4)传递依赖

若存在 A → B,且 B → C,则可推出 A → C,且 C 并不直接依赖于 A,称为传递函数依赖。

(5)候选码
候选码是能唯一标识关系中元组的最小属性集。一个关系可有多个候选码。

(6)超码
超码是能够唯一标识元组的属性集,可以包含冗余属性。候选码 ⊆ 超码。所有候选码都是超码,但不是所有超码都是候选码。

(7)主码
从候选码中选出的一个,用作关系的唯一标识。主码值不能为 NULL。在一个表中只能有一个主码。

(8)外码
指向其他表主码的属性,表示关系间的引用。

(9)全码
若关系中所有属性组合构成唯一标识元组的候选码(即没有非主属性),则称该关系为全码关系。

(10)第一范式(1NF)
每一个属性的值必须是不可再分的数据项(原子性),即不能有数组、集合、嵌套结构。

(11)第二范式(2NF)
在满足1NF的基础上,消除了非主属性对主键的部分函数依赖。

(12)第三范式(3NF)
在2NF基础上,消除了非主属性对主键的传递依赖。形式:若 A 是主键,B 是非主属性,A → B 成立;如果还存在 B → C,那么 C 不应为非主属性。

(13)BCNF
每一个非平凡函数依赖 X → Y 中,X 必须是候选码(或超码)。

(14)第四范式(4NF)
在BCNF基础上,消除了非平凡且非函数依赖的多值依赖。如:若 A →→ B,且 B 与其他属性无关,则存在多值依赖,应进行拆分。

2. 课本pg197.第2题。

(1) 学生信息关系模式
关系模式:Student (Sno, Sname, Birthdate, Dept, Classno, Dormitoryno)

最小依赖集:
 1. Sno → Sname
 2. Sno → Birthdate
 3. Sno → Classno
 4. Classno → Dept  (每个班只属于一个系)
 5. Dept → Dormitoryno

传递函数依赖:
 Sno → Classno → Dept,Dept → Dormitoryno ⇒ Sno → Dormitoryno

候选码: Sno
外部码(外键): Dept → Dept 表;Classno → Class 表
全码: 无

(2) 班级信息关系模式
关系模式:Class (Classno, Major, Dept, Cnum, Cyear)

最小依赖集:
 1. Classno → Major, Dept, Cnum, Cyear
 2. (Dept, Major, Cyear) → Classno, Cnum  (同一系‑专业当年只招一个班)

传递函数依赖: 无

候选码:
 • Classno
 • Dept, Major, Cyear

外部码(外键): Dept → Dept 表
全码: 无

(3) 系信息关系模式
关系模式:Dept (Dept, Deptno, DeptLoc, Deptnum)

最小依赖集(假设系名唯一):
 1. Deptno → Dept, Deptnum
 2. Dept → DeptLoc

传递函数依赖:
 Deptno → Dept → DeptLoc ⇒ Deptno → DeptLoc

候选码: Deptno 和 Dept
外部码: 无
全码: 无

(4) 学会信息关系模式
关系模式:Union (Uname, Uyear, ULoc, Unum)

最小依赖集: Uname → Uyear, ULoc, Unum
传递函数依赖: 无
候选码: Uname
外部码: 无
全码: 无

(5) 学生‑学会关系模式
关系模式:StuUn (Sno, Uname, Uyear)

最小依赖集: (Sno, Uname) → Uyear

传递函数依赖: 无
完全函数依赖: (Sno, Uname) → Uyear (删除任一属性即失效)

候选码: Sno, Uname
外部码(外键): Sno → Student 表;Uname → Union 表
全码: 无

3. 课本pg197.第6题。

(1)BCNF判定

已知 A 是候选码,且仅有函数依赖 BC → DE。

R 属于 BCNF 当且仅当 BC → A 成立(即 BC 的闭包等于全集 U)。
若 BC 不能决定 A,则 BC 不是超键,该依赖违反 BCNF。

(2)F={AB ; BCD ; DEA}

候选码的闭包计算结果:

ACE → ABCDE

BCE → ABCDE

CDE → ABCDE

所有候选码: ACE, BCE, CDE

(3)在同一F下的范式

由于右部属性 B、D、A 均为主属性(包含在某候选码中),每条 FD 均满足 3NF 的条件。但左部 A、BC、DE 皆不是超键,所以违反 BCNF。

所以R 满足 3NF,但不满足 BCNF。

4. 设属性集U={XYZW},函数依赖集F={X→Y,Y→Z,W→Y},计算属性集闭包X+,XW+和(YW)+。

1. X⁺(X 的闭包)

步骤

当前闭包

说明

{ X }

初始仅含 X

{ X , Y }

X → Y 加入 Y

{ X , Y , Z }

Y → Z 加入 Z

无更多依赖可用

X⁺ = { X , Y , Z }

2. (XW)⁺(XW 的闭包)

步骤

当前闭包

说明

{ X , W }

初始含 X, W

{ X , W , Y }

X → Y 加入 Y

{ X , W , Y , Z }

Y → Z 加入 Z

已含 W,W → Y 已满足;闭包 = U

(XW)⁺ = { X , Y , Z , W } = U

3. (YW)⁺(YW 的闭包)

步骤

当前闭包

说明

{ Y , W }

初始含 Y, W

{ Y , W , Z }

Y → Z 加入 Z

已含 Y,依赖 W → Y 不变;无法推出 X

(YW)⁺ = { Y , Z , W }

5. 设有关系模式R(A, B, C, D, E)与它的函数依赖集F={A→BC, CD→E, B→D, E→A},计算属性集闭包A+,B+,E+, (AD)+,(BC)+,(CD)+,(BCD)+;说明这些属性是否为R的候选码。

属性集

闭包计算过程(按依赖逐步加入)

结果

是否候选码¹

A

{A} ⭢ A→BC ⇒ {A B C} ⭢ B→D ⇒ {A B C D} ⭢ CD→E ⇒ {A B C D E}

A⁺ = ABCDE

B

{B} ⭢ B→D ⇒ {B D}

B⁺ = BD

E

{E} ⭢ E→A ⇒ {E A} ⭢ A→BC ⇒ {E A B C} ⭢ B→D ⇒ {E A B C D}

E⁺ = ABCDE

A D

{A D} ⭢ A→BC ⇒ {A B C D} ⭢ CD→E ⇒ {A B C D E}

(AD)⁺ = ABCDE

超键,非最小

B C

{B C} ⭢ B→D ⇒ {B C D} ⭢ CD→E ⇒ {B C D E} ⭢ E→A ⇒ {A B C D E}

(BC)⁺ = ABCDE

C D

{C D} ⭢ CD→E ⇒ {C D E} ⭢ E→A ⇒ {A C D E} ⭢ A→BC ⇒ {A B C D E}

(CD)⁺ = ABCDE

B C D

{B C D} ⭢ CD→E ⇒ {B C D E} ⭢ E→A ⇒ {A B C D E}

(BCD)⁺ = ABCDE

超键,非最小

综上,候选码为:A E BC CD

6. 设有函数依赖集F={C→A, A→B, B→C, C→B, A→C, BC→A},求其最小函数依赖集Fmin。

原依赖集

F = { C→A ; A→B ; B→C ; C→B ; A→C ; BC→A }

最小化步骤

(1)右拆:原依赖右部均为单属性,无需拆分。

(2)左约:

对 BC→A: C⁺ (在当前集合) = ABC ⊇ A ⇒ B 冗余 → 删除整条(因为 C 单独已推出 A)。

(3)依赖约(逐条测试可推导性):

A→B:必留(若删则无法由其它依赖推 B)。

B→C:必留(若删则无法推 C)。

C→A:必留(删除则无法推 A)。

其余三条(C→B, A→C, BC→A)都已冗余,可由保留三条推得。

Fmin={C→A,A→B,B→C}

满足:

(1)每条右部单属性。

(2)每条左部无多余属性。

(3)集内任一依赖都无法由其余依赖推出。

7. 设有关系模式R(Sno, Dept, Loc),其中属性Sno、Dept和Loc分别表示学生学号、所在系别和系所在地点。函数依赖集有F={Sno→Dept, Dept→Loc},若R有两种分解方法,分别为ρ1= {R1(Sno, Dept), R2(Sno, Loc)};ρ2= {R1(Sno, Dept), R2(Dept, Loc)}。

(1)分别判别ρ1和ρ2是否有无损连接性。(用chase进行判别)

(a)ρ₁ = { R₁(Sno, Dept), R₂(Sno, Loc) }

行 / 列

Sno

Dept

Loc

R₁

a₁

a₂

b₁

R₂

a₁

b₂

a₃

1、Sno → Dept:两行 Sno 均为 a₁ ⇒ 统一 Dept → a₂

2、Dept → Loc:两行 Dept 均为 a₂ ⇒ 统一 Loc → a₃

行 / 列

Sno

Dept

Loc

R₁

a₁

a₂

a₃

R₂

a₁

a₂

a₃

结果:两行完全一致 → ρ₁ 无损连接。

(b)ρ₂ = { R₁(Sno, Dept), R₂(Dept, Loc) }

行 / 列

Sno

Dept

Loc

R₁

a₁

a₂

b₁

R₂

b₂

a₂

a₃

1、Dept → Loc:Dept 同为 a₂ ⇒ 统一 Loc → a₃

2、Sno → Dept 不再触发(Sno 值不同)

行 / 列

Sno

Dept

Loc

R₁

a₁

a₂

a₃

R₂

b₂

a₂

a₃

此时交集属性 {Dept} = a₂ 能决定 R₂ 的整行;满足无损条件 → ρ₂ 亦无损连接。

(2)分别判别ρ1和ρ2是否有保持函数性。

ρ₁:

投影 F 到 R₁:得到 Sno → Dept

投影 F 到 R₂:无非凡依赖

合并后缺少 Dept → Loc ⇒ 不保持函数性。

ρ₂:

投影到 R₁:Sno → Dept

投影到 R₂:Dept → Loc

合并恰为原 F ⇒ 保持全部依赖(保持函数性)。

http://www.xdnf.cn/news/5869.html

相关文章:

  • quickbi单个空间限制1000数据集引发的企业在使用过程中的思考和反思及建议。
  • 用AI制作黑神话悟空质感教程,3D西游记裸眼效果,西游人物跳出书本
  • 【Linux】进程通信 管道
  • MySQL三种模糊查询方式:​​LIKE、REGEXP和FULLTEXT
  • 携固态电池、新形态钢壳叠片电池等产品 豪鹏科技将亮相CIBF 2025
  • GPT( Generative Pre-trained Transformer )模型:基于Transformer
  • 银行营销风控环节如何实现数字化升级?
  • 南方科技大学Science! 自由基不对称催化新突破 | 乐研试剂
  • 人事管理系统8
  • Redis 主从复制的实现原理是什么?
  • 【Qt】pro工程文件转CMakeLists文件
  • 自动化测试基础知识详解
  • 无人机避障——如何利用MinumSnap进行对速度、加速度进行优化的轨迹生成(附C++python代码)
  • 如何通过 Windows 图形界面找到 WSL 主目录
  • 【Ansys Icepak】带翅片的散热器
  • C++23 views::zip 和 views::zip_transform (P2321R2) 深入解析
  • 嵌入式开发中 C++ 跨平台开发经验与解决方案
  • DAY 24 元组和OS模块
  • 思极地图使用
  • 《算法导论(第4版)》阅读笔记:p39-p48
  • 基于STM32、HAL库的ADAU1701JSTZ音频接口芯片驱动程序设计
  • 【23种设计模式】模式背后运用的技术对照
  • 【Android】下拉刷新组件Swiperefreshlayout
  • 将 swagger 接口导入 apifox 查看及调试
  • android 权限配置
  • ThingsBoard(TODO)
  • 无人机失联保护模块技术解析!
  • 汽车工厂数字孪生实时监控技术从数据采集到三维驱动实现
  • 【神经网络与深度学习】通俗易懂的介绍非凸优化问题、梯度消失、梯度爆炸、模型的收敛、模型的发散
  • 【AI News | 20250513】每日AI进展