8.18

令主属性为至少在一个候选码中出现的属性。令 α , β \alpha,\beta α,β为属性集,使得 α → β \alpha\rightarrow\beta α→β成立,令A为不属于 α 或 β \alpha或\beta α或β的属性,并且 β → A \beta\rightarrow A β→A,我们称 A A A为传递依赖于 α \alpha α( α \alpha α传递函数确定 A A A). 我们可以按照如下方式重新定义3NF: 关系模式R是关于函数依赖集F的3NF的条件为:R中没有非主属性A传递依赖于R的一个码,请证明这个新定义等价于原始定义

反证法:(假定题目定义的3NF不成立推出课本定义3NF不成立)
根据题目传递依赖定义,

当 A 为 A为 A为非主码且满足 A 传递依赖 α A传递依赖\alpha A传递依赖α的时(违背了题目的定义)
我们有
∃ β ⊆ R , 使得 β → A , α → β , A ∉ α , A ∉ β \exists \beta \sube R, 使得 \beta\rightarrow A,\alpha\rightarrow \beta,A\notin\alpha,A\notin\beta ∃β⊆R,使得β→A,α→β,A∈/α,A∈/β

  1. A ∉ β ⟺ β → A 不是平凡的 A\notin \beta \iff \beta\rightarrow A不是平凡的 A∈/β⟺β→A不是平凡的
  2. β → α 不成立 ⇒ β 不是超码 \beta\rightarrow \alpha不成立\Rightarrow \beta不是超码 β→α不成立⇒β不是超码
  3. A 非主码 ⇒ A 不包含于任意候选码中 ( A ⊈ 候选码 ) A非主码\Rightarrow A不包含于任意候选码中(A\not\sube 候选码) A非主码⇒A不包含于任意候选码中(A⊆候选码)

接下来推
假定课本定义的3NF不成立推出题目定义3NF不成立
我们根据课本有以下三个条件同时满足

  1. α → β 非平凡 \alpha\rightarrow \beta 非平凡 α→β非平凡
  2. α 不是 R 的超码 \alpha 不是R的超码 α不是R的超码
  3. 存在 A ∈ ( β − α ) ∧ A 不包含于任意候选码中 存在A \in (\beta - \alpha)\land A不包含于任意候选码中 存在A∈(β−α)∧A不包含于任意候选码中

上面三个内容 ⇒ A 不是主键 ∧ α → A 因为: A 是主键 A 就一定会包含于候选码中 因为:由于 ( 1 ) ( 3 ) , A 是 β 的元素且 α → β 上面三个内容\Rightarrow A不是主键\land\alpha \rightarrow A\\ 因为:A是主键A就一定会包含于候选码中\\ 因为:由于(1)(3),A是\beta的元素且\alpha \rightarrow\beta 上面三个内容⇒A不是主键∧α→A因为:A是主键A就一定会包含于候选码中因为:由于(1)(3),A是β的元素且α→β

假设 c c c是一个R的候选码, α \alpha α不是主码(不是超码,所以肯定不是主码),我们有 c → α c\rightarrow\alpha c→α , α → c \alpha\rightarrow c α→c不成立(c是候选码);因为A非主码,这种情况下有 A ∉ α ∧ A ∉ c A\notin\alpha\land A\notin c A∈/α∧A∈/c(根据(1)(3)得到因为A是 β \beta β的元素但不是 α \alpha α的,且 α → β \alpha\rightarrow\beta α→β非平凡),因此A传递依赖c(c是候选码,有 c → α c\rightarrow \alpha c→α.还有 α → β , A ∈ β \alpha\rightarrow \beta, A\in \beta α→β,A∈β),违反了题目的定义

综上,题目定义等价于课本定义

8.21

Give a lossless-join decomposition into BCNF of schema R of Exercise 8.1

A → B C C D → E B → D E → A A → BC\\ CD → E\\ B → D\\ E → A A→BCCD→EB→DE→A
根据函数依赖集,我们依次测试单个多个属性集的闭包可以得到以下候选码
A , B C , C D , E A, BC, CD, E A,BC,CD,E

过程如下
( A ) + = ( A B C ) + = ( A B C D ) + = A B C D E (A)^+ = (ABC)^+=(ABCD)^+ = ABCDE (A)+=(ABC)+=(ABCD)+=ABCDE
( C D ) + = ( C D E ) + = ( C D E A ) + = A B C D E (CD)^+ = (CDE)^+=(CDEA)^+=ABCDE (CD)+=(CDE)+=(CDEA)+=ABCDE
( E ) + = A B C D E (E)^+ = ABCDE (E)+=ABCDE
( B C ) + = A B C D E (BC)^+ = ABCDE (BC)+=ABCDE
其他组合不满足要求

B → D 非平凡 B\rightarrow D非平凡 B→D非平凡
B 非超码 B非超码 B非超码

若以我们可以把它们分解为
( A , B , C , E ) ( B , D ) (A,B,C,E)\\(B,D) (A,B,C,E)(B,D)

8.27

Use Armstrong’s axioms to prove the soundness of the decomposition rule.

Armstrong’s公式
b ⊂ a ⇒ a → b a → b ⇒ c a → c b a → b ∧ b → c ⇒ a → c b\sub a\Rightarrow a\rightarrow b\\ a\rightarrow b\Rightarrow ca\rightarrow cb\\ a\rightarrow b\land b\rightarrow c\Rightarrow a\rightarrow c b⊂a⇒a→ba→b⇒ca→cba→b∧b→c⇒a→c

要证明
a → b c ⇒ a → c ∧ a → b a\rightarrow bc\Rightarrow a\rightarrow c \land a\rightarrow b a→bc⇒a→c∧a→b

( 1 ) a → b c ( 2 ) b c → b ( 自反率 ) ( 3 ) b c → c ( 自反率 ) ( 4 ) a → c ( ( 1 ) ( 3 ) 传递律 ) ( 5 ) a → b ( ( 1 ) ( 2 ) 传递律 ) (1) a\rightarrow bc\\ (2) bc\rightarrow b (自反率)\\ (3) bc\rightarrow c (自反率)\\ (4) a\rightarrow c ((1)(3)传递律) \\ (5) a\rightarrow b ((1)(2)传递律) (1)a→bc(2)bc→b(自反率)(3)bc→c(自反率)(4)a→c((1)(3)传递律)(5)a→b((1)(2)传递律)
综上,证毕

8.34

F = { A B → C D , D → C , D E → B , D E H → A B , A C → D C } F=\{AB\rightarrow CD, D\rightarrow C, DE\rightarrow B, DEH\rightarrow AB, AC \rightarrow DC \} F={AB→CD,D→C,DE→B,DEH→AB,AC→DC}

  1. 把右边变单元素
    F = { A B → C , A B → D , D → C , D E → B , D E H → A , D E H → B , A C → D , A C → C } F=\{AB\rightarrow C, AB\rightarrow D, D\rightarrow C, DE\rightarrow B, DEH\rightarrow A, DEH\rightarrow B, AC \rightarrow D , AC \rightarrow C\} F={AB→C,AB→D,D→C,DE→B,DEH→A,DEH→B,AC→D,AC→C}
  2. 去掉冗余属性
    F = { A B → C , A B → D , D → C , D E → B , D E H → A , D E H → B , A C → D } F=\{AB\rightarrow C, AB\rightarrow D, D\rightarrow C, DE\rightarrow B, DEH\rightarrow A, DEH\rightarrow B, AC \rightarrow D \} F={AB→C,AB→D,D→C,DE→B,DEH→A,DEH→B,AC→D}
  • 若(AB->C)冗余,则 ( A B ) + = A B C D (AB)^+ = ABCD (AB)+=ABCD,包含C,冗余可去
  • 若(AB->D)冗余,则 ( A B ) + = A B (AB)^+ = AB (AB)+=AB, 不冗余
  • D->C显然不冗余
  • 若(DE->B)冗余,则 ( D E ) + = D E C (DE)^+ = DEC (DE)+=DEC, 不包含B, 不冗余
  • 若(DEH->A)冗余,则 ( D E H ) + = D E H B (DEH)^+ = DEHB (DEH)+=DEHB, 不冗余
  • 若(DEH->B)冗余,则 ( D E H ) + = D E H A B C (DEH)^+ = DEHABC (DEH)+=DEHABC, 包含B, 冗余
  • 若(AC->D)冗余,则 ( A C ) + = A C (AC)^+ = AC (AC)+=AC, 不冗余

得到如下数据
F = { A B → D , D → C , D E → B , D E H → A , A C → D } F=\{ AB\rightarrow D, D\rightarrow C, DE\rightarrow B, DEH\rightarrow A, AC \rightarrow D \} F={AB→D,D→C,DE→B,DEH→A,AC→D}

处理完右边再处理左边

  • A B → D AB\rightarrow D AB→D中A冗余的话, ( B ) + = B (B)^+=B (B)+=B,不冗余
  • A B → D AB\rightarrow D AB→D中B冗余的话, ( A ) + = A (A)^+=A (A)+=A,不冗余
  • D E → B DE\rightarrow B DE→B中D冗余的话, ( E ) + = E (E)^+=E (E)+=E,不冗余
  • D E → B DE\rightarrow B DE→B中E冗余的话, ( D ) + = D C (D)^+=DC (D)+=DC,不冗余
  • D E H → A DEH\rightarrow A DEH→A中D冗余的话, ( E H ) + = E H (EH)^+=EH (EH)+=EH,不冗余

剩余部分同理可得不冗余
得到

  1. 最小子查询
    F = { A B → D , D → C , D E → B , D E H → A , A C → D } F=\{ AB\rightarrow D, D\rightarrow C, DE\rightarrow B, DEH\rightarrow A, AC \rightarrow D \} F={AB→D,D→C,DE→B,DEH→A,AC→D}

  2. 统计各个元素在依赖关系中的出现情况

    • A:左右均出现
    • B:左右均出现
    • C:左右均出现
    • D:左右均出现
    • E: 只出现左侧
    • G:未出现
    • H:只出现左侧

只出现在左侧或未出现的元素一定为候选码,则求他们的闭包
( E H G ) + = E H G ≠ R (EHG)^+=EHG\not=R (EHG)+=EHG=R

  1. 于是加入一个属性计算
    经测试发现 ( D E H G ) + = D E H G A B C = R (DEHG)^+=DEHGABC = R (DEHG)+=DEHGABC=R 我们得到DEHG是R的一个候选码,剩下的A,B,C均不行
  2. 测试加入两个属性,剩余的ABC两两组合,有 ( A B E H G ) + = A B E H G D C (ABEHG)^+=ABEHGDC (ABEHG)+=ABEHGDC, ( A C E H G ) + = A C E H G D B (ACEHG)^+=ACEHGDB (ACEHG)+=ACEHGDB

综上可行的候选码有
D E H G A B E H G A C E H G DEHG\\ ABEHG\\ACEHG DEHGABEHGACEHG
于是我们在F的最小子查询的基础上进行分解,有
( A , B , D ) ( D , C ) ( D , E , B ) ( D , E , H , A ) ( A , C , D ) (A,B,D)\\ (D,C)\\ (D,E,B)\\ (D,E,H,A)\\(A,C,D) (A,B,D)(D,C)(D,E,B)(D,E,H,A)(A,C,D)
然后再加上前文算出的所有候选码
( D , E , H , G ) ( A , B , E , H , G ) ( A , C , E , H , G ) (D,E,H,G)\\(A,B,E,H,G)\\(A,C,E,H,G) (D,E,H,G)(A,B,E,H,G)(A,C,E,H,G)

最后,观察新组成的分解模式中,是否存在包含关系,有则去掉被包含的,这里 ( D , C ) ⊆ ( A , D , C ) (D,C)\sube(A,D,C) (D,C)⊆(A,D,C),去掉,而达到无损分解,我们还缺一个候选码,我们只需要取其中一个候选码即可,这里我选了第一个DEHG

( A , B , D ) ( D , E , B ) ( D , E , H , A ) ( A , C , D ) ( D , E , H , G ) (A,B,D)\\ (D,E,B)\\ (D,E,H,A)\\(A,C,D)\\(D,E,H,G) (A,B,D)(D,E,B)(D,E,H,A)(A,C,D)(D,E,H,G)

数据库理论第八章部分作业——基于《数据库系统概念》第七版相关推荐

  1. 【数据库系统概念第七版(Database System Concepts 7th)配套SQL文件如何获取】

    数据库系统概念第七版(Database System Concepts 7th)配套SQL文件如何获取 数据库大黑书获取配套SQL文件 最后在数据库运行SQL文件即可 数据库大黑书获取配套SQL文件 ...

  2. 数据库系统概念第六版 第四章练习题 12 14 18

    数据库系统概念第六版 第四章练习题 12 14 18 4.12 对于图中的数据库,写出一个查询来找到那些没有经理的雇员.注意一个雇员可能只是没有列出其经理或者可能有null经理.使用外连接书写查询,然 ...

  3. 数据库系统概念第六版 第五章练习题 2 4

    数据库系统概念第六版 第五章练习题 2 4 5.2 写一个使用JDBC元数据特性的JAVA函数,该函数用ResultSet作为输入参数,并把结果输出为用合适的名字作为列名的表格形式. (对JAVA不太 ...

  4. mysql图书管理数据库的三个关系模式_数据库 考虑如下关于图书馆的关系模式,用关系代数写出查询(数据库系统概念第六版6.14)...

    贝尔梅尔娜美 2019.03.15 采纳率:60%    等级:39 已帮助:91565人 数据库系统的基本概念 数据:实际上就是描述事物的符号记录. 数据的特点:有一定的结构,有型与值之分,如整型. ...

  5. 数据库理论 01 关系模型介绍——基于《数据库系统概念》第七版

    关系模式 关系的例子 关系模型是目前广泛应用的数据模型 由表的集合构成 例如 ID name dpt_name salary 11111 JAM CS 12345 元组 tuple:表中的一行,元素无 ...

  6. 数据库系统概念 第六版 大学数据库代码

    官网 create table classroom(building varchar(15),room_number varchar(7),capacity numeric(4,0),primary ...

  7. 数据库系统概念 | 第七章:使用E-R模型的数据库设计 | ER图设计| ER图转化为关系模型 | 强实体和弱实体

    文章目录

  8. 数据库系统概念-第六版 - charter 1 - 笔记

    <1>数据库系统(Database System,DBS) 由一个相互关联的数据的集合和一组用以访问这些数据的程序组成:这个数据集合通常被称作数据库(Database): DBS的主要目标 ...

  9. 数据库系统概念第六版笔记

    Abraham Siberschatz Henry E Korth S.Sudarshan 杨冬青 李红艳 唐世渭等译. 华章一套书的标志性语言是: 文艺复兴以降,源远流长的科学精神和逐步形成的学术规 ...

最新文章

  1. windows上搭建python+gvim开发环境
  2. 这10道springboot常见面试题你需要了解下 1
  3. fastdb中的位图应用
  4. JavasScript 第二天课 课后笔记 2022.3.26
  5. Android学习笔记七之ContentProvider
  6. linux按目录名查找目录_如何在Linux中查找目录?
  7. Hive基础之创建数据库
  8. 高三计算机教学计划,高三信息技术上册教学计划参考
  9. android读取带公章的pdf文件,APP中如何显示带电子签名的PDF文件
  10. # 个人日记-电影《盛夏未来》观后感-20210802
  11. Mac浏览器有好多种,那么哪款好用呢?
  12. quartus的操作和仿真
  13. 常用的端口号有哪些?
  14. UPS不间断电源调试注意事项
  15. GridPanel中表头全选框的小问题
  16. 如何实现服务注册与发现?
  17. 八分音符上面有斜线——倚音
  18. 河北科技大学电子商务L122班级介绍
  19. 贵金属白银基本知识:各白银品种之对比
  20. dpi与dp的关系_px、dp、sp、dpi之间的区别和转换

热门文章

  1. 年、月、日格式正则表达式
  2. 【Web】简单的HTML实现百度搜索
  3. POST /product/:id 获取单个商品
  4. hdu 5234 - Happy birthday DP
  5. 成本太高,京东配送扛不住了?
  6. 一文学会Webpack实用功能|加载器篇
  7. Sigmod 和 Logit
  8. python连接网络摄像头安装图解_python 连接摄像头
  9. 常见的一些代码编辑器
  10. html5 苹果 dock,基于JQuery模仿苹果桌面的Dock效果(初级版)