函数依赖补充练习
- 格式:ppt
- 大小:323.50 KB
- 文档页数:2
第4章关系数据库设计理论习题一、选择题1、C2、B3、C4、C5、A6、B7、A8、B9、D10、B二、填空题1、数据依赖主要包括_函数_依赖、_多值_依赖和连接依赖。
2、一个不好的关系模式会存在_插入异常_、_删除异常_和__修改复杂_等弊端。
3、设X→Y为R上的一个函数依赖,若_对任意X的真子集X’,均无X’→Y 存在__,则称Y完全函数依赖于X。
4、设关系模式R上有函数依赖X→Y和Y→Z成立,若_Y不包含于X_且_Y→X不成立_,则称Z传递函数依赖于X。
5、设关系模式R的属性集为U,K为U的子集,若_K→U为完全函数依赖_,则称K为R的候选键。
6、包含R中全部属性的候选键称_主属性_。
不在任何候选键中的属性称__非主属性_。
7、Armstrong公理系统是_有效__的和_完备__的。
8、第三范式是基于_函数_依赖的范式,第四范式是基于_多值_依赖的范式。
9、关系数据库中的关系模式至少应属于_第一_范式。
10、规范化过程,是通过投影分解,把_一个范式级别较低的_的关系模式“分解”为_若干个范式级别较高__的关系模式。
三、简答题1、解释下列术语的含义:函数依赖、平凡函数依赖、非平凡函数依赖、部分函数依赖、完全函数依赖、传递函数依赖、范式、无损连接性、依赖保持性。
解:函数依赖:设关系模式R(U,F),U是属性全集,F是U上的函数依赖集,X和Y 是U 的子集,如果对于R(U)的任意一个可能的关系r,对于X的每一个具体值,Y都有唯一的具体的值与之对应,则称X函数决定Y,或Y函数依赖于X,记X→Y。
我们称X为决定因素,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完全函数依赖(Full−f Y。
数据库函数依赖例题数据库函数依赖是数据库系统中一个非常重要的概念,它可以帮助设计更有效率的数据库系统。
按照函数依赖理论,一个关系可以被定义为一组属性和一组函数依赖,函数依赖被定义为当函数f(X)= f(Y)时,X 与 Y 之间存在函数依赖。
本文档将用一个例题来讨论函数依赖,并讨论它在数据库设计中的重要性以及如何用来提高数据库的有效性。
二、例题一个数据库系统中有一张表,表名为“学生”,它有两个属性:学号(K)和姓名(N),每个学生都有一个唯一的学号,姓名不能相同。
假定这里有两个函数:f1(K)= N f2(N)= K,即学号与姓名之间有一种函数依赖,即学号可以确定一个学生的姓名,而姓名也可以确定一个学生的学号。
三、函数依赖的意义函数依赖的意义很重要,它是用来定义数据库系统的结构以及表之间的关系的一个非常有用的概念。
函数依赖可以帮助用户限制数据库管理系统中的信息流。
正确的函数依赖关系可以有效地减少冗余的数据,还可以帮助更容易地识别数据库之间的内在关系,更快地完成查询等功能。
四、函数依赖的重要性函数依赖有助于更好地设计数据库,可以减少数据库中的冗余数据,确保数据的一致性。
函数依赖还可以使数据库更加规范,减少记录和表之间的关系,帮助数据库管理者实现最佳化,并且帮助用户实现最佳数据库设计。
五、实现函数依赖的方法函数依赖的实现方法有很多,比如解决视图和查询优化的方法以及属性拆分的方法,采用属性拆分的方法可以更有效地实现函数依赖,将一个属性拆分成多个属性,这样就可以增加函数依赖,并有效地减少数据冗余。
另外,还可以使用视图和查询优化的方法,可以有效地改善现有的查询,减少冗余数据的产生。
六、结论数据库函数依赖是一个非常重要的概念,函数依赖能够有效地管理数据库,减少数据冗余。
它能够让数据库更加规范,帮助提高数据库的有效性。
通过使用属性拆分的方法和视图和查询优化的方法,可以有效地实现数据库函数依赖,最终达到比较理想的效果。
第一部分:一、求最小依赖集例:设有依赖集:F={AB-C, C-A, BC—D, ACD-B, D—EG, BE—C, CG—BD, CE f AG},计算与其等价的最小依赖集。
解:1、将依赖右边属性单一化,结果为:F1={AB—C, C—A, BC—D, ACD—B, D—E, D—G, BE—C, CG—B, CG—D CE―A, CE—G}2、在F1中去掉依赖左部多余的属性。
对于CE—A,由于C—A成立,故E是多余的;对于ACD—B,由于(CD) +=48。
£»6,故A是多余的。
删除依赖左部多余的依赖后:F2={AB—C, C—A, BC—D, CD—B, D—E, D—G, BE—C, CG—B, CG—D, CE—G }3、在F2中去掉多余的依赖。
对于CG—B,由于(CG) +=ABCEDG,故CG—B是多余的。
删除依赖左部多余的依赖后:F3={AB—C, C—A, BC—D, CD—B, D—E, D—G, BE—C, CG—D, CE—G }CG—B与CD—B不能同时存在,但去掉任何一个都可以,说明最小依赖集不唯一。
二、求闭包例:关系模式R (U, F),其中U={A, B, C, D, E, I}, F={A—D, AB—E, BI—E, CD—I, E—C},计算(AE) +。
解:令X={AE}, X (0) =AE;计算X(1);逐一扫描F集合中各个函数依赖,在F中找出左边是AE子集的函数依赖,其结果是:A—D, E—C。
于是X (1) =AE U DC=ACDE;因为X (0)W X (1),且X (1)WU,所以在F中找出左边是ACDE子集的函数依赖,其结果是:CD—I。
于是X (2) =ACDE UI=ACDEI。
虽然X (2)W X (1),但在F中未用过的函数依赖的左边属性已没有X (2) 的子集,所以不必再计算下去,即(AE) +=ACDEI。
计算机四级考试《数据库工程师》重点知识:函数依赖实用1篇计算机四级考试《数据库工程师》重点知识:函数依赖 1(1) 设R(U)为一关系模式,X和Y为属性全集U的子集,若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称“X函数决定Y”或“Y函数依赖于X”,并记作XY,其中X称为决定因素,因为根据函数依赖定义,给定一个X,就能惟一决定一个Y。
(2) 这里讨论的函数关系与数学上的不同,是不能计算的,是一个关系中属性之间存在的依赖关系;它是一种语义范畴的概念,只能根据两个属性之间的语义来确定一个函数依赖是否存在。
2、完全与部分函数依赖:(1) 在关系模式R(U)中,如果XàY成立,并且对X的任何真子集X’不能函数决定Y,则称Y对X是完全函数依赖,被记作__f__àY。
(2) 若XàY,但Y不完全函数依赖于X,则称Y对X是部分函数依赖,记作__pàY;3、传递函数依赖:在关系R(U)模式中,如果X决定Y,(Y不属于X),Y不决定X,Y决定Z,则称Z对X传递函数依赖。
4、平凡与非平凡函数依赖:(1) 若X决定Y,但Y属于X,则称XàY是平凡函数依赖,否则称非平凡函数依赖;(2) 即平凡函数依赖,仅当其右边的属性集是左边属性集的子集时成立;(3) 非平凡函数依赖,仅当其右边的属性集至少有一个属性不属于左边有集合时成立;(4) 完全非平凡函数依赖:仅当其右边的属性集中属性都不在左边的集合时成立;5、码:(1) 在关系模式R(U)中,K为R的属性或属性组,若K函数决定A1.A2。
.An,则K为关系模式R的候选码,包含在候选码中的属性称为主属性,否则为非主属性;(2) 若一个关系的候选码不止一个,则选定其中一个作为关系R的主码;(3) 关系的码属性除了必须完全函数决定关系的所有其他属性外,还必须满足最小化规则,即在关系模式R(U)中,不存在一个K的.真子集能够函数决定R的其他属性。
1、要建立关于系、学生、班级、研究会等信息的一个关系数据库。
规定:一个系有若干专业、每个专业每年只招一个班,每个班有若干学生,一个系的学生住在同一个宿舍区,一个系只有一个系名,一个系名也只给一个系用。
每个学生可参加若干研究会,每个研究会有若干学生。
描述学生的属性有:学号、姓名、出生年月、系名、班号、宿舍区。
描述班级的属性有:班号、专业名、系名、人数、入校年份。
描述系的属性有:系号、系名、系办公室地点、人数。
描述研究会的属性有:研究会名、成立年份、地点、人数。
学生参加某研究会,有一个入会年份。
试给出上述数据库的关系模式;写出每个关系的最小依赖集(即基本的函数依赖集,不是导出的函数依赖);指出是否存在传递函数依赖;对于函数依赖左部是多属性的情况,讨论其函数依赖是完全函数依赖还是部分函数依赖,指出各关系的候选键、外部关系键。
(课本P176)参考答案:关系模式:学生(学号,姓名,出生年月,系名,班号,宿舍区)班级(班号,专业名,系名,人数,入校年份)系(系号,系名,系办公室地点,人数)研究会(研究会名,成立年份,地点,人数)入会(学号,研究会名,入会年份)关系的最小函数依赖集:学生:{学号→姓名,学号→出生年月,学号→班号,班号→系名,系名→宿舍区}候选键:学号;外键:班号,系名不存在部分函数依赖,但存在传递函数依赖:学号→系名,所以该关系最高属于2NF。
班级:{班号→专业名,专业名→系名,班号→人数,班号→入校年份,{专业名,入校年份}→班号} 候选键:班号,{专业名,入校年份};外键:系名存在部分函数依赖:班号→系名,所以该关系最高属于1NF。
系:{系号→系名,系号→系办公室地点,系号→人数}候选键:系号;外键:无不存在部分函数依赖,也不存在传递函数依赖,所以该关系最高属于3NF。
研究会:{研究会名→成立年份,研究会名→地点,研究会名→人数}候选键:研究会名;外键:无不存在部分函数依赖,也不存在传递函数依赖,所以该关系最高属于3NF。
1.求以下关系模式的键
(1)R(A,B,C,D),函数依赖为:F={D→B,B→D,AD→B,AC→D}。
(2)R(A,B,C,D,E,P),函数依赖为:F={A→D,E→D,D→B,BC→D,DC→A}。
(3)R(A,B,C,D,E),函数依赖为:F={A→BC,CD→E,B→D,E→A}。
2.试问下列关系模式最高属于第几范式,并解释其原因。
(1)R(A,B,C,D,E),函数依赖为:AB→CE,E→AB,C→D。
(2)R(A,B,C,D),函数依赖为:B→D,D→B,AB→C。
3.设有关系模式R(O,I,S,Q,D,B),其函数依赖集合为S→D,I→B,IS→Q,B→O。
试求:
(1)R的候选键。
(2)R所属的最高范式。
(3)如果R不属于3NF,将R分解为3NF(具有无损连接性和依赖保持性)。
4.某单位有一销售利润登记表,记录个部门年代、季度销售利润。
该表随着年代的增加,表的栏目也增加,如图所示。
现在要使用数据库进行管理,请设计关系模型。
要求关系模式必须属于BCNF 范式,指出主键和函数依赖。
5.某图书馆图书馆为每本图书作了一个借阅情况登记表,如图所示。
现在要使用数据库进行管理,请设计关系模型。
要求关系模式必须属于3NF范式,指出主键和函数依赖。
图书号:JSJ0001。
关系规范化设计一、考核内容1、对函数依赖,平凡函数依赖,非平凡函数依赖,完全非平凡函数依赖,部分依赖,传递依赖概念的准确理解。
2、对1NF、2NF、3NF、BCNF概念的准确理解。
3、函数依赖推理规则及应用。
4、找出一个关系模式的候选键,及判断其范式级别。
5、将一个1NF分解为3NF。
二、试题㈠选择1、在关系模式R(U)中,X⊂U,Y⊂U且X→Y,则X与Y之间的关系是( D )。
A.一对一B.一对多C.多对多D.多对一2、设有关系模式R(ABC),下面关于函数依赖不正确的推理是( B )。
A.A→B,B→C,则A→C。
B.AB→C,则A→C,B→C。
C.A →B,A→C,则A→BC。
D.A →B,C→B,则AC→B。
3、下面关于“候选键”概念的叙述中,不正确的叙述是( C )。
A.一个关系可以有多个候选键。
B.关系中任何一个属性都函数依赖于候选键。
C.候选键再添加一个属性还是候选键。
D.从候选键中去掉一个属性后就不再是候选键了4、下面对2NF的叙述中,不正确的说法是( E )。
A.2NF模式中不存非主属性对侯选键的部分依赖。
B.不是2NF模式,一定不是3NF.C.任何一个二元模式一定是2NF。
D.2NF模式中每个属性不可再分割。
E.2NF模式中不存在传递依赖。
5、下面对3NF的叙述中,不正确的说法是( A )。
A.3NF模式中不存属性对侯选键的传递依赖。
B.3NF模式中不存非主属性对侯选键的部分依赖。
C.如果模式R是3NF,那么R一定是2NF。
D.3NF模式中不存非主属性对侯选键的传递依赖。
E.任何一个二元模式一定是3NF。
㈡填空1、在关系模式R(U)中,X和Y是U的子集。
若对R(U)的任一个关系r 都存在如下事实:“r 中不存在两个元组,它们在X属性上的值相同而在X属性上的值相同”,那么我们就称(属性Y函数依赖于属性X)。
2、对于X→Y,若存在W⊂X且W→Y,则称属性Y()函数依赖于属性X。
3、设X→Y为R上的一个函数依赖,若对X的任意一个真子集A,都有(),则称Y完全函数依赖于X。
1.已知关系模式R<U,F>,U={A,B,C,D},F={A→C,C→A,B→A,B→C,D→A,D→C,BD→A},求F的最小函数依赖集。
2.已知关系模R<U,F>,U={A,B,C,D,E,G},F={AB→C,D→EG,C→A,BE→C,BC→D,CG→BD,ACD→B,CE→AG},求F的最小函数依赖集。
3.已知关系模式R<U,F>,U={A,B,C,D,E,G},F={BE→G,BD→G,CDE→AB,CD→A,CE→G,BC→A,B→D, C→D },求F的最小函数依赖集。
4.已知关系模式R(U,F)中,U=ABCDEG,F={BG→C,BD→E,DG→C,ADG→BC,AG→B,B→D}求:(1)R的候选码(2)R属于哪级范式(3)将模式R按规范化要求分解。
5.已知关系模式R(U,F)中,U=ABCDEG,F={B→G,CE→B,C→A,CE→G,B→D,C→D},求:(1)R的候选码(2)R属于哪级范式(3)将模式R按规范化要求分解。
6.假设某商业集团数据库中有关系模式R(商店编号,商品编号,库存量,部门编号,负责人),若规定:(1)每个商店能销售多种商品(每种商品有一个编号);商店的每种商品只在一个部门销售;(2)每个商店的每个部门只有一个负责人;(3)每个商店的每种商品只有一个库存数量;问题:(1)写出关系R的基本函数依赖。
(2)找出R的候选码。
(3)R属于第几范式。
7.设有关系模式TEACHER(教师编号,教师姓名,电话,所在部门,借阅图书编号,书名,借书日期,还书日期,备注),请回答下列问题:(1)教师编号是该关系的候选码吗?(2)该关系模式是否存在部分函数依赖?如果存在,请写出至少两个?(3)该关系模式满足第几范式?6题参考答案(1)每个商店的每种商品只在一个部门销售:商店编号,商品编号->部门编号每个商店的每个部门只有一个负责人:商店编号,部门编号->负责人每个商店的每种商品只有一个库存数量:商店编号,商品编号->库存量(2)主码为:商店编号,商品编号。
1.现有如下关系模式: R(A#,B#,C,D,E) 其中:A#B#组合为码, R上存在的函数依赖有A #B#→E,B#→C,C→D1)该关系模式满足2NF吗?为什么?2)如果将关系模式R分解为: R1(A#,B#,E) R2(B#,C,D)指出关系模式R1和R2的码,并说明该关系模式最高满足第几范式?(在1NF~BCNF之内)。
3)将关系模式R分解到BCNF。
解:1)不是2范式,因为C部分依赖于码A#B#2)R1的码为A#B#,R2的码为B#R1最高位BCNF,R2最高为2NF。
3)R1(A#,B#,E)R21(B#,C)R22(C,D)2.设有一个关系模式R(S#, C#, G, TN, D), 其属性S#为学号,C#课程,G成绩,TN任课教师,D教师所在系。
其中学号和课程号分别与其代表的学生和课程一一对应;学生选修的课程都有成绩;每门课程只有一个任课教师,每个教师可以有多门课程,教师没有重名,一个教师只属于一个系。
(1) 试根据上述语义确定函数依赖集。
(2) 关系R属于第几范式?(3)试将关系R规范为第3范式,并说明理由。
解:R(S#,C#,G,TN,D)由题意可得关系模式R的函数依赖集:(1)F={S#C#->G, S#C#->TN, S#->D, C#->TN, TN->D}(2)函数依赖集存在部分函数依赖,关系模式R属于1NF。
(3)R分解为如下关系模式:R1(S#,C#,G) 不存在部分函数依赖及传递函数依赖,满足3NF。
R2(S#,D) 不存在部分函数依赖及传递函数依赖,满足3NF。
R3(C#,TN) 不存在部分函数依赖及传递函数依赖,满足3NF。
R4(TN,D) 不存在部分函数依赖集传递函数依赖,满足3NF。
3.某企业有多个下属单位,每个单位有多个员工。
一个员工仅属于一个单位,且一个员工仅在一个工程中工作;一个工程中有多个员工。
有多个供应商为各个工程供应设备。