
第4章关系设计理论第4章关系设计理论
锻炼
一个多项选择题
1,C
2,B
3,C
4,C
5,A
6,B
7,A8,B
9,D 10,B
第二,填写空白问题
1. 数据依赖主要包括_function_dependency,_multivalued_dependency和连接依赖.
2. 不良的关系模型将具有_insert exception_,_delete exception_和__modified complex_的缺点.
3. 令X→Y是对R的函数依赖性. 如果_在X的任何真实子集X中不具有X’→Y,则称Y在功能上完全取决于X.
4. 假定关系模型R上存在函数依赖项X→Y和Y→Z. 如果X_中不包含_Y且未建立_Y→X,则Z传递函数取决于X.
5. 令关系模式R的属性集为U,K为U的子集. 如果_K→U是完全函数依赖项,则K称为R的候选键.
6. 包含R中所有属性的候选键称为_primary attribute_. 不在任何候选键中的属性称为__non-primary attribute _.
7. 阿姆斯特朗公理系统是_effective__和_complete __.
8. 第三个范例基于_function_dependency范例,第四个范例基于_multivalued_dependency范例.
9. 关系中的关系模型至少应属于_first_paradigm.
10. 归一化过程是通过投影分解将_a较低范式级别的关系模式“分解”为较高范式级别的几个关系模式.
三个简短的问题
1. 解释以下术语的含义: 功能依赖项,琐碎功能依赖项,非琐碎功能依赖项,部分功能依赖项,完整功能依赖项,传递功能依赖项,范例,无损连接性和依赖项保留.
111

112解决方案:
功能依赖关系: 假设关系模型R(U,F),U是属性的完整集合,F是依赖于U的功能集合,X和Y是U的子集,如果R(U )是可能的关系r,对于X的每个特定值,Y都有一个与之对应的唯一特定值,然后说X函数确定Y,或者Y函数取决于X,请记住X→Y. 决定性因素,Y为因数. 当Y在功能上不依赖于X时,它表示为: X
Y. 当X→Y和Y→X时,
它写为: X?Y. 普通功能依赖项: 当属性集Y是属性集X的子集时,必须存在功能依赖项X→Y,这种功能依赖项称为琐碎功能依赖项.
非平凡函数依赖项: 如果Y不是X的子集,则X→Y被称为非平凡函数依赖项.
完全功能依赖和部分功能依赖: 设置关系模式R(U),U是属性的完整集合,X和Y是U的子集,X→Y,并且对于X的任何真实子集X ,如果存在X'Y,则说Y在功能上完全取决于X(完全
Functional Dependency),写为X? →? fY. 如果X的某个子集X存在X'→Y,则称为Y
对X的部分功能依赖性(Partial Functional Dependency),表示为X?→?pY.
传递函数依赖性: 存在关系模式R(U),U是属性的完整集合,X,Y,Z是U的子集(如果X→Y(YX),但是YX和Y→ Z,它称为Z取决于X传递函数的依赖关系(Transitive Functional Dependency),
Z. 范例: 在关系的规范化过程中,为不同级别的规范化要求建立的不同标准或准则被称为规范形式. 满足最低要求的称为第一范式,简称1NF. 在第一范式中,满足第二范式(2NF),依此类推. R是第一个范式时,可以写成R∈xNF(x代表范式的名称).
当一个范式被视为满足该范式的所有关系模式的集合时,每个范式之间的集合关系可以表示为: 5NF?4NF?BCNF?3NF?2NF?1NF.
可以通过模式分解将较低级别范例的关系模型转换为较高级别范例的关系模式的集合. 此过程称为标准化.
无损连通性: 令R(X,Y,Z)关系理论及应用,X,Y和Z为不相交的属性集. 如果X→Y,X→Z,则R(X,Y,Z)= R [X,Y]∞R [X,Z],其中R [X,Y]表示关系R在属性上的投影(X,Y),即R分别等于行列式X的两个投影关系. 这是R [X,Y]和R [X,Z])在X上的自然连接,从而确保关系R分解后,原始信息不会丢失. 这称为关系分解的无损连通性.
依赖关系保留: 使用关系模型R(U,F),Z?U,则Z中涉及的F的所有功能依赖关系都是F在Z上的投影,表示为∏Z(F),有∏Z (F)= {X→Y | (X→Y)∈F +和XY? Z}是函数依赖集F在Z上的投影.
如果F等于∏R1(F)∪∏R2(F)∪... equivalentRk,则分解为R(U,F)ρ= {R1,R2,...,Rk} (F),据称分解ρ与功能有关.
第4章关系设计理论
测试分解是否具有依存关系维护实际上是在测试∏R1(F)∪∏R2(F)∪... ∪∏Rk(F)是否覆盖F.
2. 给出2NF,3NF和BCNF的正式定义,并解释它们之间的区别和联系.
解决方案:
1)2NF
如果关系模式R∈1NF,R中的所有非主要属性(U,F)完全在功能上取决于任何一个候选关键字,则关系R被称为属于第二范式(第二范式) ),称为2NF,记录为R∈2NF.
2)3NF
如果关系模型R∈2NF,R(U,F)中的所有非主要属性都不依赖于任何候选关键字的传递函数,则可以说R属于第三范式(第三范式) ),称为3NF,令R∈3NF.
3)BCNF
如果关系模式R∈1NF,并且所有函数都依赖于X→Y(X中不包含Y,即YX),则确定因子X包括R的候选代码,则说R属于到BC范式(Boyce-Codd范式),记为R∈BCNF.
4)差异和

(1)BCNF? 3NF? 2NF
(2)BCNF,3NF和2NF均已定义并划分为功能依赖性. 2NF,3NF和BCNF是在功能相关的条件下通过模式分解可以实现的分离程度的度量. 如果模式中的关系模式全部属于BCNF,则在功能依赖项类别中,它已实现了完全分离,并消除了插入和删除异常.
3. 什么是关系模型分解?为什么关系模型分解?模型分解的准则是什么?解决方案:
1)关系模式分解: 通过模式分解,可以将较低级别范例的关系模式转换为高级模式范例的关系模式的集合. 此过程称为关系模式分解,也称为关系模式规范化.
2)关系模型被分解,原因是: 不好的关系往往是“全包的”,并且内容过于混杂. 为了实现一定程度的信息分离,必须将“全包”关系模型分解为几个单一的内容,并结合紧密的关系模型,以便该关系可以显示更好的操作性能并避免发生各种异常问题.
3)模式分解应遵循模式分解的无损连通性或根据需要维护模式分解的依赖性.
4. 尝试证明完整代码之间的关系必须是3NF和BCNF.
证明:
1)
存在关系R(U,F). 因为R包含完整的代码,所以U中的属性都是主要属性,即R不包含任何非主要属性. 根据3NF的定义,R中不存在对代码具有传递函数依赖性的非主要属性. 根据定义,可以得出R∈3NF. 证明.
2)
使用反证法,假设R?BCNF. 然后根据定义,R必须包含X→Y(Y X),其中X?U,Y包含
113
对于没有代码的U和X. 将U-Y同时放在X→Y的两边,得到: X(U-Y)→U. 显然X(U-Y)≠U或X(U-Y)?U. 这与问题中的已知条件关系R为完整代码相矛盾. 假设R?BCNF不成立,就证明了这个问题.
5. 应建立有关部门,学生,班级,研讨会等信息的关系. 规定: 一个部门有几个,每个每年只招一个班. 每个班级有几个学生. 一个部门的学生住在同一宿舍区. 每个学生可以参加几个研讨会,每个研究将有几个学生. 学生参加研究会议并拥有一年的会员资格.
描述学生的属性是: 学生编号,姓名,出生日期,部门名称,班级编号,宿舍区域.
描述班级的属性是: 班级编号,名称,部门名称,人数,学年.
描述部门的属性是: 部门编号,部门名称,部门办公地点,人数.
描述研讨会的属性是: 研讨会的名称,成立年份,位置和人数.
尝试给出上述的关系模式;编写每个关系的最小依赖关系集(即基本功能依赖关系集,而不是导出的功能依赖关系);指示是否存在传递函数依赖性;对于属性,函数依赖性的左侧部分更多. 请讨论其函数依赖性是完全起作用还是部分起作用,并指出每种关系的候选键和外部键.
解决方案:
1)关系模型为:
部门({部门编号关系理论及应用,部门名称,部门办公室位置,宿舍区域,人数},{部门编号→部门名称,部门编号→部门办公室位置,部门名称→部门办公室位置,部门编号→宿舍区域})
班级({班级编号,名称,部门编号,人数,入学年份}},{班级编号→名称,班级编号→部门编号,班级编号→入学年份,(名称,年份录取)→班级编号})
学生({学生编号,姓名,出生日期,部门编号,班级编号},{学生编号→名称,学生编号→出生年份,学生编号→部门编号,学生编号→班级编号,学生编号→宿舍区,班级号→部门号,})

入学({学生编号,研讨会名称,入学年份},{(学生编号,研讨会名称)→入学年份})
研究协会({研究协会名称,成立年份,位置,人数},{研究协会名称→成立年份,研究协会名称→位置})
说明: 人数可以算作一个属性;宿舍区域应是部门的属性;可以通过班级关系从班级号属性中获取学生关系中的部门号,并且可以消除冗余.
2)转移功能取决于: 系统编号→部门办公室位置;学生编号→宿舍区;
3)在上述关系模式下没有部分功能依赖.
关系中的候选键为: 系统号;外部密钥是: none
班级关系中的候选键为: 班级号(名称,学年);外部键为: 部门编号
学生关系中的候选关键字是: 学生编号;外键是: 班号
成员关系中的候选密钥为: (学生编号,研究名称)外部密钥为: 学生编号或研究名称
研讨会关系中的候选关键字是: 研讨会的名称;外部密钥是: none
6. 设置了关系模式R(A,B,C,D,E,F),函数依赖集F = {((A,B)→E,(A,C)→F,(A,D)→ B,B→C,C→D},找到R的所有候选关键字.
114
第4章关系设计理论
解决方案:
R个候选关键字是: (A,C),(A,B),(A,D)
7. 设置关系模式R(X,Y,Z),并且功能依赖性集为F = {(X,Y)→Z}. 请确定SC范式级别并进行验证.
解决方案:
R个候选关键字是: (X,Y)
R达到BCNF范式级别,可以根据BCNF的定义确定,省略.
8. 设置了关系模式R(A,B,C,D,E,F),函数依赖集F = {A→(B,C),(B,C)→A,(B,C,D )→(E,F),E→C}. 问: 关系模型R是否遵循BCNF范式并证明结论.
解决方案:
R无法达到BCNF范式. R的候选关键字为: (A,D),(B,C,D),(B,E,D)
只需根据BCNF的定义进行判断.
9. 设置了关系模式R(E,F,G,H),该函数取决于F = {E→G,G→E,F→(E,G),H→(E,G),(F ,H)→E}
(1)查找R的所有候选关键字;
(2)根据功能依赖关系,确定关系模型R属于第一范式;

(3)将R分解为3NF,并保持无损连接和功能依赖关系保留;
(4)找到F的最小功能依赖集.
解决方案:
(1)R的候选关键字为: (F,H)
(2)R为: 1NF
(3)分解为:
({E,G},{E→G,G→E}),({F,E},{F→E}),({H,G},{H→G}),( {F,H},{})
(4)最小功能依赖集为: {E→G,G→E,F→G,H→G}
根据定理4.3,找到最小功能依赖集的步骤:
F = {E→G,G→E,F→(E,G),H→(E,G),(F,H)→E}
= {E→G,G→E,F→G,H→E,H→G,(F,H)→E}
= {E→G,G→E,F→G,H→G}
10. 询问以下哪种关系模式属于第一个范式,并说明原因.
(1)R(A,B,C,D),F = {B→D,AB→C}.
(2)R(A,B,C,D,E),F = {AB→CE,E→AB,C→D}.
(3)R(A,B,C,D),F = {B→D,D→B,AB→C}.
(4)R(A,B,C),F = {A→B,B→A,A→C}.
115
116(5)R(A,B,C),F = {A→B,B→A,C→A}. (6)R(A,B,C,D),F = {A→C,D→B}. (7)R(A,B,C,D),F = {A→C,CD→B}.
解决方案:
仅按顺序编写候选关键字和范例等级(范例由定义判断,具体细节省略)(1)AB 1NF
(2)AB,E 2NF
(3)AB,AD 3NF
(4)A,B BCNF
(5)C 2NF
(6)AD 1NF
(7)AD 1NF
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-264996-1.html
@广州白菜研究院凡凡凡凡凡凡
其二
本来还想看看一些欢乐的评论呢