深入会用 您所在的位置:网站首页 独立性检验例题大题答案 深入会用

深入会用

2024-07-18 04:19| 来源: 网络整理| 查看: 265

✅ 这一部分比较难,做了一点笔记。

文章目录 一、1NF、2NF、3NF和BCNF的相关例题二、数据依赖的公理系统2.1 必要的基础名词解释2.2 算法6.1 ⭐️⭐️⭐️2.3 最小依赖集的定义和求法 三、具有无损连接性的模式分解四、具有函数依赖性的模式分解五、转换为3NF的保持函数依赖的分解(算法6.3 合成法)六、转换为3NF的即有无损连接又保持函数依赖的分解(算法6.4)七、结果为BCNF的无损分解算法(算法6.5) ⭐️⭐️⭐️八、补充的一些例题九、写后感

● 我们用的教材: 请添加图片描述

一、1NF、2NF、3NF和BCNF的相关例题 消除了部分函数依赖的 1NF 模式,必定是()。 A. BCNF B. 2NF C. 1NF D. 3NF

答案:B,可能还存在传递依赖,即不一定是 3NF。

设有关系模式 R(A,B,C,D),其数据依赖集:F={(A,B)→C,C→D},则关系模式 R 的规范化程度最高达到( )。 A. 3NF B. BCNF C. 2NF D. 1NF

答案:C,若存在传递依赖,即不是 3NF。满足 2NF 的规矩:每一个非主属性完全依赖任何一个候选码。故是 2NF。

若关系模式 R 中没有非主属性,则 R 满足3NF。( ) A. 对 B. 错

答案:A。满足 3NF 的规矩:每一个非主属性即不传递依赖于码,也不部分依赖于码。 非主属性都没有,显然满足 3NF。

若关系模式 R 的主码是全码,则满足BCNF。( ) A. 对 B. 错

答案:A。满足 BCNF 的规矩:每一个决定因素(比如,X → Y,则 X 是决定因素)都包含码。因为它的主码是全码,若存在 “X → Y” 这样的函数依赖,那 X 显然包含码,满足 BCNF 的规矩。

函数依赖指的是关系模式 R 的某个或者某些关系满足的约束条件。( ) A. 对 B. 错

答案:B。由书上定义 6.1 和其定义下面 “注意” 的可知,函数依赖指的是关系模式 R 的所有关系均要满足的约束条件。

二、数据依赖的公理系统 2.1 必要的基础名词解释

● 一些关键定义如下,知道有这些名词即可,在做题时回头来看:

● 函数依赖: 设 R(U) 是一个属性集 U 上的关系模式,X 和 Y 是 U 的子集。若对于 R(U) 的任意一个可能的关系 r,r 中不可能存在两个元组在 X 上的属性值相等, 而在 Y 上的属性值不等则称 “X函数确定Y” 或 “Y函数依赖于X”,记作 X→Y。X称为这个函数依赖的决定属性组,也称为决定因素(Determinant)。

● 逻辑蕴含(也可简称为蕴含): 对于满足一组函数依赖 F 的关系模式 R,其任何一个关系 r,若函数依赖 X→Y 都成立(即 r 中任意两元组 t,s,若 t[X]=s[X],则 t[Y] = s[Y]),则称 F 逻辑蕴含 X→Y。

● Armstrong公理系统: 设 U 为属性集总体,F是 U 上的一组函数依赖, 于是有关系模式 R。对 R 来说有以下的推理规则:

 ① 自反律(Reflexivity):若 Y ⊆ X ⊆ U,则 X →Y 为 F 所蕴含。  ② 增广律(Augmentation):若 X→Y 为 F 所蕴含,且 Z ⊆ U,则 XZ→YZ 为 F 所蕴含。  ③ 传递律(Transitivity):若 X→Y 及 Y→Z 为 F 所蕴含,则 X→Z 为 F 所蕴含。

● 闭包 F + F^+ F+: 在关系模式 R 中为 F 所逻辑蕴含的函数依赖的全体叫作 F 的闭包(closure),记为 F + F^+ F+。

● X关于函数依赖集 F 的闭包 X F + X_{F^+} XF+​: 设F为属性集 U 上的一组函数依赖,X ⊆ U, X F + X_{F^+} XF+​ ={ A | X→A 能由 F 根据 Armstrong 公理导出}, X F + X_{F^+} XF+​ 称为属性集 X 关于函数依赖集 F 的闭包。

● 对 闭包 F + F^+ F+: 的理解:

请添加图片描述

2.2 算法6.1 ⭐️⭐️⭐️

● 关于闭包的引理(引理:为证明某个定理或解某个问题所要用到的命题。引理和定理没有严格的区分): 设 F 为属性集 U 上的一组函数依赖,X,Y ⊆ U,X→Y 能由 F 根据 Armstrong 公理导出的充分必要条件是 Y⊆ X F + X_{F^+} XF+​。

● 该引理的用途:  ① 将判定 X→Y 是否能由 F 根据 Armstrong 公理导出的问题,就转化为求出 X F + X_{F^+} XF+​,判定 Y 是否为 X F + X_{F^+} XF+​ 的子集的问题。  ② 如果 X F + X_{F^+} XF+​ = U,X 是 R 的候选码。【参考样例2】

● X F + X_{F^+} XF+​ 可以用以下算法来求得: 【求属性集 X(X⊆U) 关于 U 上的函数依赖集 F 的闭包 X F + X_{F^+} XF+​】  ① 令 X ( i ) X^{(i)} X(i)=X,i=0;  ② 对 F 中的每一个函数依赖 Y→Z,若 Y⊆X(i),令 X ( i + 1 ) X^{(i+1)} X(i+1)= X ( i ) X^{(i)} X(i)∪Z。  ③ 若 X ( i + 1 ) X^{(i+1)} X(i+1)≠ X ( i ) X^{(i)} X(i),则用 i+1 代替 i,转②;  ④ 若 X ( i + 1 ) X^{(i+1)} X(i+1)= X ( i ) X^{(i)} X(i),则 X ( i ) X^{(i)} X(i) 即为 X。

● 样例1: 在这里插入图片描述

● 求给定关系模式的码的经验方法: ⭐️ ⭐️  ① 若属性 A 仅出现在所有函数依赖的右部,则它一定不包含在任何候选码中;  ② 若属性 A 仅出现在所有函数依赖的左部,则它一定包含在某个候选码中;  ③ 若属性 A 既出现在函数依赖的右部,又出现在左部,则它可能包含在候选码中;  ④ 在上述基础上求属性闭包。

● 样例2:

在这里插入图片描述 在这里插入图片描述

2.3 最小依赖集的定义和求法

● 最小依赖集(也称为极小函数依赖集、最小覆盖): 如果函数依赖集 F 满足下列条件,则称F为一个最小依赖集:  ① F 中任一函数依赖的右部仅含有一个属性。  ② F 中不存在这样的函数依赖 X→A,使得 F 与 F-{X→A} 等价。【解释:即 F 中的函数依赖均不能由 F 中其他函数依赖导出】  ③ F 中不存在这样的函数依赖 X→A,X 有真子集 Z 使得 F-{X→A}∪{Z→A} 与 F 等价。【解释:F中各函数依赖左部均为最小属性集(不存在冗余属性)】

● 关于 “最小依赖集” 的解法步骤:  1.将 F 中的所有函数依赖的右边化为单一属性。  2.去掉 F 中的所有函数依赖左边的冗余属性。  3.去掉 F 中所有冗余的函数依赖。

● 样例3: 设 R,U=ABCD, 函数依赖集 F = {A→BD,AB→C,C→D}。求:F的最小函数依赖集

(1) 将 F 中的所有函数依赖右边化为单一属性 F = {A→BD, AB→C, C→D} ⇒ F = {A→B, A→D, AB→C, C→D} (2) 去掉 F 中的所有函数依赖左边的冗余属性 因为 A + = { A , B , C , D } ( 含 C ) , B + = { B } A^+=\{A, B, C, D\}(含C),B^+=\{B\} A+={A,B,C,D}(含C),B+={B}(不含C),故在 “AB→C” 中,B 是冗余属性。 所以 F = {A→B, A→D, A→C, C→D} (3) 去掉 F 中所有冗余的函数依赖关系 因为对于 “F = {A→B, A→C, C→D} ” 而言, A + = { A , B , C , D } ( 含 D ) A^+=\{A, B, C, D\}(含D) A+={A,B,C,D}(含D),所以 “A→D” 是冗余的函数依赖关系 所以 F = {A→B, A→C, C→D}

◆ 注: 在上述的 (3) 中,也可以这样:对于 “F = {A→B, A→D, A→C} ” 而言, A + = { A , B , C , D } ( 含 D ) A^+=\{A, B, C, D\}(含D) A+={A,B,C,D}(含D),所以 “C→D” 是冗余的函数依赖关系,故 F = {A→B, A→D, A→C}

◆ 所以 F 的最小依赖集 F m F_m Fm​ 不一定是唯一的:

在这里插入图片描述 ◆ 为什么有 “C→A”?:因为通过最小依赖集 F m 1 F_{m1} Fm1​ 或 F m 2 F_{m2} Fm2​ 能够还原出 F。C→A 如果不包含在最小依赖集当中的话。靠谁来还原出来 C→A?

三、具有无损连接性的模式分解

● 如何判断一个模式分解的无损连接性:

在这里插入图片描述 ● 样例4: (考试不要求掌握) 在这里插入图片描述

● 特殊情况: 分解仅由 2 个模式组成。

● 定理6.5: 设R (U,F),有 ρ={R1,R2},则对于 F,ρ 相对于 F 是无损分解的充分必要条件是:U1∩U2→U1-U2∈F+ 或U1∩U2→U2-U1∈F+。⭐️ ⭐️

● 样例5: (考试要求掌握) ⭐️ ⭐️

在这里插入图片描述

四、具有函数依赖性的模式分解

● 判断一个分解是否保持依赖:用判断两个函数依赖集是否等价的方法。

● 样例6: (考试要求掌握) 在这里插入图片描述

◆ 注: 依赖保持性的分解 ≠ 连接不失真。一个具有依赖保持性的分解不一定具有连接不失真性。反之,一个连接不失真分解也不一定具有依赖保持性。

五、转换为3NF的保持函数依赖的分解(算法6.3 合成法)

● 如果说 R(U, F) 中的 F 已经是最小依赖集了,那么就按下面的流程走。如果不是,就要先把 F 转变为 最小依赖集 才行。(下图的例题已经是最小依赖集了,考试出题目都会是极小化,不需要大家再做这个动作了) 在这里插入图片描述 ● 简而言之:  ① 先求出 F 的最小依赖集,然后把最小依赖集中那些左部相同的 F 合并【比如说,把上面 “2.3” 图例中的 Fm1 中的 “A→B、A→C” 合并为 “A→BC”】。  ② 就是把 “→” 的左右两边组合起来,成为一个个 “子关系”。比如就把 R = R 分解为 R1、R2,其中 R1 = R1,R2=R2。  ③ 如果存在 “A→B1、A→B2”,就这样合成:R3。

六、转换为3NF的即有无损连接又保持函数依赖的分解(算法6.4)

在这里插入图片描述 ● 简而言之: 就是在 “算法6.3” 的基础上,多 ∪ 一个候选码。图中因为 “HSR” 包含了 “HS”,所以 并 之前和 并 之后结果一样。

七、结果为BCNF的无损分解算法(算法6.5) ⭐️⭐️⭐️

● 这个考试要求掌握: ⭐️ ⭐️ 【理解可能需要花费一定的时间】

在这里插入图片描述

● 样例7:

在这里插入图片描述

● 样例8:【课程C、教师T、时间H、教室R、学生S、成绩G】 在这里插入图片描述

在这里插入图片描述 ◆ 解释: HS 是主码。那一开始选出 “CS→G”,因为 “CS” 不含键。【码的意思即是键,含键的意思是包含整个的键(属性的组合)只有一部分的不算含】。当然,也可以首先分解 HR→C,或者首先分解 HT→R 。虽然,老师说是可以,但我觉得分解顺序应该和 “拓扑顺序” 有关,这个需要画有向结点图(如下图所示,其中虚线代表"间接推导线",带红圈的实线代表"下一步将分解的线")。 在这里插入图片描述

在这里插入图片描述 ◆ 注: 上述结果虽然转换为了 BCNF 的无损分解,但丢失了函数依赖 HT→R。这说明无损连接不一定能保证函数依赖。

八、补充的一些例题 已知关系模式 R(A,B,C,D,E) 及其函数依赖集 F={A->D,B->C,E->A}, 则该关系模式的候选码为() A. AB B. AE C. BE D. ABE

答案:C,因为 B E F + = U BE_{F}^{+}=U BEF+​=U,即 B E F + = { A , B , C , D , E } BE_{F}^{+}=\{A,B,C,D,E\} BEF+​={A,B,C,D,E},即通过 BE 就能推导出所有属性或属性组。

根据 Armstrong 公理导出 F 的闭包 F+ 是可行的。( ) A. 正确 B. 错误

答案:B。根据 Armstrong 公理导出 F 的闭包 F+ 是一个 NP 完全问题,故不可行。

确定关系模式 R 的候选码时,若某属性不在函数依赖集 F 中出现,则该属性必须要包含在候选码中。( ) A. 正确 B. 错误

答案:A。若某属性不在函数依赖集 F 中出现,说明该属性是一个 “独立的属性”,它与其他属性没关系。换句话说。它既不能推导其他属性(或属性组),也不能由其他属性(或属性组)推导出它。而候选码就是能推导出所有 属性(或属性组) 的 属性(或属性组),显然,若 X 不在在函数依赖集 F 中出现。那 X 必须要包含在候选码中。因为 X 可以→ X。

Armstrong 公理系统是有效的、完备的。( ) A. 正确 B. 错误

答案:A。书上的定理6.2可知。

Armstrong 公理系统包括[多选]。( ) A. 自反律 B. 增广律 C. 传递律 D. 结合律

答案:ABC。书上的定义6.11。

F的最小依赖集不一定是唯一的。( ) A. 正确 B. 错误

答案:A。这篇博客的前面的 “2.3” 讲过。

关系模式不满足 2NF,则一定存在 “非主属性对候选码的局部依赖”。 ( ) A. 正确 B. 错误

答案:A。满足 2NF 的规矩:每一个非主属性完全依赖任何一个候选码。

使用算法 6.5 转换为 BCNF 的无损连接分解之后得到的模式也一定是保持函数依赖的。( ) A. 正确 B. 错误

答案:B。转换为 BCNF 的无损连接不一定能保证函数依赖。上面的例子有提到反例。

设 R(U, F) 有分解 ρ={R1, R2},则 F,ρ 相对于 F 是无损分解的充分必要条件是:U1∩U2 → U1-U2∈F+或U1∩U2→U2-U1∈F+ A. 正确 B. 错误

答案:A。书上定理6.5.

设有关系模式 R(A,B,C,D,E,F),其基本函数依赖集 F={A→B, CD→A, BC→D, CE→D,AE→F}。请: (1)分析 R 的候选码。(不需写推导过程,只需给出结果) (2)判断 R 是否达到3NF,并说明理由。 (3)如果 R未达到3NF,请将R保持函数依赖和无损地分解为符合3NF的模式集p。(直接给出结果) 在这里插入图片描述 ◆ 解释: FD 就是 “函数依赖(Functional Dependency)” 的意思。另外,在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为作为一个超键,多个属性组合在一起也可以作为一个超键。满足 3NF 的规矩:每一个非主属性即不传递依赖于码,也不部分依赖于码。 九、写后感

● 在写这篇博客的一开始。B站上这部分讲解的很笼统,很多理解都不到位。书上定义又繁杂。PPT很多细节没有展开,难以串通。老师的腾讯回放又过期了。所以写的过程中还是感觉蛮棘手的。

● 关系数据理论。这部分,主要是理论,老师说,主要是会用。笔者也就主要写了如何正确使用和解题。

● 如果不足,欢迎评论区留言讨论。

⭐️ ⭐️



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有