MOOC战德臣数据库课程自用笔记_7_函数依赖

本文深入探讨了函数依赖的概念,包括定义、特性、部分和完全函数依赖、传递依赖等核心概念。此外,还介绍了候选键、外键、逻辑蕴涵、闭包等重要概念,并阐述了Armstrong's Axioms在函数依赖推理中的作用。文章详尽解析了函数依赖的数学性质,为理解和应用数据库理论提供了坚实基础。
摘要由CSDN通过智能技术生成

函数依赖

一. 概念

1. 函数依赖定义

R ( U ) R(U) R(U) 是属性集合 U = A 1 , A 2 , . . . , A n U = {A_1, A_2,...,A_n} U=A1,A2,...,An 上的一个关系模式, X , Y X, Y X,Y U U U 上的两个子集,若对 R ( U ) R(U) R(U) 的任意一个可能的关系 r r r r r r 中不可能有两个元组满足在 X X X 中的属性值相等而在 Y Y Y 中的属性值不等,则称 “ X X X 函数决定 Y Y Y” 或“ Y Y Y 函数依赖于 X X X”,记作 X → Y X \rightarrow Y XY

例子1:
U = { 学 号 , 姓 名 , 年 龄 , 班 号 , 班 长 , 课 号 , 成 绩 } U = \{学号, 姓名, 年龄, 班号, 班长, 课号, 成绩\} U={,,,,,,}

  • 学 号 → { 姓 名 , 年 龄 } 学号\rightarrow \{姓名, 年龄\} {,}
  • 班 号 → 班 长 班号\rightarrow 班长
  • { 学 号 , 课 号 } → 成 绩 \{学号, 课号\}\rightarrow 成绩 {,}

例子2:
在这里插入图片描述

2. 函数依赖的特性

  1. X → Y X\rightarrow Y XY,但 Y ⊄ X Y\not\subset X YX,则称 X → Y X\rightarrow Y XY 为非平凡的函数依赖
  2. X → Y X\rightarrow Y XY,则任意两个元组,若 X X X 上值相等,则 Y Y Y 上值必然相等,这样就称 X X X 为决定因素
  3. X → Y X\rightarrow Y XY Y → X Y\rightarrow X YX,则记作 X ↔ Y X\leftrightarrow Y XY
  4. Y Y Y 不函数依赖于 X X X,则记作 X ↛ Y X\not \rightarrow Y XY
  5. X → Y X\rightarrow Y XY,有基于模式 R R R 的,则要求对任意的关系 r r r 成立;有基于具体关系 r r r 的,则要求某一关系 r r r 成立
  6. 如一关系 r r r 的某属性集 X X X r r r 中根本没有 X X X 上相等的两个元组存在,则 X → Y X\rightarrow Y XY 恒成立

二. 部分或完全函数依赖

R ( U ) R(U) R(U) 中,若 X → Y X\rightarrow Y XY 并且对于 X X X 的任何真子集 X ′ X' X 都有 X ′ ↛ Y X' \not\rightarrow Y XY,则称 Y Y Y 完全函数依赖 X X X,记为: X → f Y X \rightarrow^f Y XfY
否则称 Y Y Y 部分函数依赖 X X X,记为 X → p Y X \rightarrow^p Y XpY

部份依赖存在着非受控冗余

例子:
在这里插入图片描述

  • 单独一个学号,单独一个课号都不能决定 U,只有一起才能决定 U,故为完全函数依赖
  • 单独一个学号就可以决定姓名,所以是部分函数依赖
  • 单独一个学号,单独一个课号都不能决定成绩,只有一起才能决定成绩,故为完全函数依赖

三. 传递函数依赖

R ( U ) R(U) R(U) 中,若 X → Y X\rightarrow Y XY Y → Z Y\rightarrow Z YZ,且 Y ⊄ X Y\not \subset X YX Z ⊄ Y Z\not \subset Y ZY Z ⊄ X Z\not \subset X ZX Y ↛ X Y\not \rightarrow X YX,则称 Z Z Z 传递函数依赖于 X X X

传递依赖存在着非受控冗余

例子:
在这里插入图片描述

四. 函数依赖相关的几个重要概念

1. 候选键

K K K R ( U ) R(U) R(U) 中的属性或者属性组合,若 K K K 完全函数依赖于 U U U,则称 K K K R ( U ) R(U) R(U) 上的候选键

说明:

  1. 可任选一候选键作为 R R R主键
  2. 包含在任一候选键中的属性称作主属性,其他属性称作非主属性
  3. K K K R R R 的一个候选键, K ⊂ S K \subset S KS,则称 S S S R R R 的一个超键

2. 外键

R ( U ) R(U) R(U) 中的属性或属性组合 X X X 并非 R R R 的候选键,但 X X X 却是另一关系的候选键,则称 X X X R R R 的外键

3. 逻辑蕴涵

F F F 是关系模式 R ( U ) R(U) R(U) 中的一个函数依赖集合, X X X Y Y Y R R R 的属性子集,如果从 F F F 中的函数依赖能够推导出 X → Y X \rightarrow Y XY,则称 F F F 逻辑蕴涵 X → Y X \rightarrow Y XY,或称 X → Y X \rightarrow Y XY F F F逻辑蕴涵

记作
在这里插入图片描述

函数依赖有显性给出的,也有隐含的

说明:

  1. F F F 是关系模式 R ( U ) R(U) R(U) 中的一个函数依赖集合, X → Y X \rightarrow Y XY 是一个函数依赖,若对 R R R 中的每个满足 F F F 的关系 r r r,能够用形式逻辑推理的方法推出 r r r 也满足 X → Y X \rightarrow Y XY,则称 X → Y X \rightarrow Y XY F F F逻辑蕴涵
  2. 若满足 F F F 的每个关系均满足 X → Y X \rightarrow Y XY,则说 F F F 逻辑蕴涵 X → Y X \rightarrow Y XY

4. 闭包(Closure)

F F F 逻辑蕴涵的所有函数依赖集合称为 F F F 的闭包,记作 F + F^+ F+

说明:

  • F + = F F^+ = F F+=F,则说 F F F 是一个全函数依赖族(函数依赖完备集)

例子:
在这里插入图片描述
特点:

  • 小集合,大闭包
  • 包含了平凡的函数依赖

五. 关于函数依赖的公理和定理

1. Armstrong’s Axioms A1~A3

R ( U ) R(U) R(U) 是属性集 U = { A 1 , A 2 , . . . , A n } U=\{A_1, A_2,...,A_n\} U={A1,A2,...,An} 上的一个关系模式, F F F R ( U ) R(U) R(U) 的一组函数依赖,记为 R ( U , F ) R(U, F) R(U,F),则有如下规则成立:

  1. [A1] 自反律:若 Y ⊆ X ⊆ U Y \subseteq X \subseteq U YXU,则 X → Y X \rightarrow Y XY F F F 逻辑蕴涵
  2. [A2] 增广律:若 X → Y ∈ F X \rightarrow Y \in F XYF,且 Z ⊆ U Z \subseteq U ZU,则 X Z → Y Z XZ \rightarrow YZ XZYZ F F F 逻辑蕴涵
  3. [A3] 传递律:若 X → Y ∈ F X \rightarrow Y \in F XYF,且 Y → Z Y \rightarrow Z YZ,则 X → Z X \rightarrow Z XZ F F F 逻辑蕴涵

公理的作用:由已知的函数依赖推导出隐含的函数依赖

3. Armstrong’s Axioms 引理1

在这里插入图片描述

2. Armstrong’s Axioms 引理2

  1. 合并律:若 X → Y X \rightarrow Y XY X → Z X \rightarrow Z XZ,则 X → Y Z X \rightarrow YZ XYZ
  2. 伪传递律:若 X → Y X \rightarrow Y XY W Y → Z WY \rightarrow Z WYZ,则 X W → Z XW \rightarrow Z XWZ
  3. 分解律:若 X → Y X \rightarrow Y XY Z ⊆ Y Z \subseteq Y ZY,则 X → Z X \rightarrow Z XZ

证明:
在这里插入图片描述

3. 属性(集)闭包

R ( U , F ) , X ⊆ U , U = { A 1 , A 2 , . . . , A n } R(U, F), X \subseteq U, U = \{A_1, A_2,...,A_n\} R(U,F)XU,U={A1,A2,...,An} ,令:
X F + = { A i ∣ 用 A r m s t r o n g   A x i o m   A 1 , A 2 , A 3 可 从 F 导 出 X → A i } X^+_F = \{A_i | 用Armstrong\ Axiom\ A1,A2,A3可从 F 导出 X \rightarrow A_i\} XF+={AiArmstrong Axiom A1,A2,A3FXAi}
则称 X F + X^+_F XF+ 为关于 F F F属性(集)闭包

注:显然 X ⊆ X F + X\subseteq X^+_F XXF+

4. Armstrong’s Axioms 引理4

当且仅当 Y ⊆ X F + Y\subseteq X^+_F YXF+ 时, X → Y X\rightarrow Y XY 可从 F F F 由 Armstrong Axiom 导出

证明:
在这里插入图片描述

5. Armstrong Axiom A1,A2,A3 特性

  • 有效性:通过公理推出的结论是正确的
  • 完备性:被 F F F 逻辑蕴涵的所有函数依赖都能由 A1,A2,A3 在 F F F 的基础上推出

6. 覆盖

R ( U ) R(U) R(U) 上的两个函数依赖集合 F , G F, G F,G,如果 F + = G + F^+=G^+ F+=G+,则称 F F F G G G 是等价的,也称 F F F 覆盖 G G G 或者 G G G 覆盖 F F F

7. Armstrong’s Axioms 引理5

F + = G + ⟷ F ⊆ G + ∧ G ⊆ F + F^+=G^+ \longleftrightarrow F\subseteq G^+ \wedge G\subseteq F^+ F+=G+FG+GF+

8. Armstrong’s Axioms 引理6

每个函数依赖集 F F F 可被一个其右端至多有一个属性的函数依赖之集 G G G 覆盖

9. 最小覆盖

F F F 满足以下条件,则称 F F F最小覆盖(Minimal Cover)最小依赖集

  1. F 中每个函数依赖的右部是单个属性
  2. 对任何 X → A ∈ F X\rightarrow A \in F XAF,有 F − { X → A } F-\{X \rightarrow A\} F{XA} 不等价于 F F F
  3. 对任何 X → A ∈ F , Z ⊂ X X\rightarrow A \in F, Z\subset X XAF,ZX,有 ( F − { X → A } ) ⋃ { Z → A } (F-\{X \rightarrow A\})\bigcup \{Z \rightarrow A\} (F{XA}){ZA} 不等价于 F F F

[定理]:

  • 每个函数依赖集 F F F 都有等价的最小覆盖 F ′ F' F
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
战德臣数据库MOOC模拟练习题解析主要是对数据库相关知识的应用和理解进行考察和分析。这些题目旨在帮助学生巩固和加强对数据库概念、操作和优化的认识和应用能力。 解析这些练习题,首先需要对题目进行仔细阅读和理解。了解题意后,根据问题的要求,运用数据库知识进行建模、查询或优化等方面的操作。 对于涉及数据库建模的题目,需要根据题目描述,设计合适的数据库结构,包括表的数量、字段及其数据类型,以及表与表之间的关系。同时,要注意保证数据库的范式,避免冗余数据和数据一致性问题的出现。 对于查询题目,需根据题目描述,编写合适的SQL语句进行查询。要注意查询条件和字段选择的准确性,以及查询结果的正确性。相关知识点包括:SELECT语句的使用、连接操作、条件筛选、排序、分组、聚合函数等。 对于性能优化题目,需根据题目描述,分析数据库操作的瓶颈,提出相应的优化方案。可以从索引优化、查询语句优化、表结构优化等方面进行思考和答题。 在解析这些练习题时,需要熟悉数据库的相关概念和操作技巧,如关系型数据库管理系统(例如MySQL、Oracle等)的使用,SQL语言的基本语法和常用操作等。同时,还需了解数据库的设计原则、范式理论、查询优化技巧、索引设计等内容。 通过解析这些练习题,可以提高对数据库知识的理解和应用能力,进一步夯实数据库相关的基础知识,为后续的数据库开发和管理工作打下坚实的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哇咔咔负负得正

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值