数据库规范化理论习题.pdf

上传人:深夜****等你... 文档编号:84234111 上传时间:2023-04-04 格式:PDF 页数:8 大小:261.22KB
返回 下载 相关 举报
数据库规范化理论习题.pdf_第1页
第1页 / 共8页
数据库规范化理论习题.pdf_第2页
第2页 / 共8页
点击查看更多>>
资源描述

《数据库规范化理论习题.pdf》由会员分享,可在线阅读,更多相关《数据库规范化理论习题.pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、规范化理论习题 1.解释下列名词:函数依赖、部分函数依赖、完全函数依赖、传递函数依赖、候选关键字、主关键 字、全关键字、1NF、2NF、3NF、BCNF、多值依赖、4NF、连接依赖、5NF、最小函数依赖 集、无损分解 函数依赖:FD(function dependency),设有关系模式R(U),X,丫是U的子集,r是R 的任一具体关系,如果对r的任意两个元组t1,t2,由t1 X=t2X导致t1Y=t2Y,则 称X函数决定 丫,或丫函数依赖于X,记为XTYo XY为模式R的一个函数依赖。部分函数依赖:即局部依赖,对于一个函数依赖 WT A,如果存在XW(X包含于W)有 XTA成立,那么称WT

2、A是局部依赖,否则称WTA为完全依赖。完全函数依赖:见上。传递函数依赖:在关系模式中,如果YT X,XTA,且XY(X不决定Y),AX(A不属于X),那么 称YTA是传递依赖。候 选 关主关键字:若关系模式R有多个候选码,则选定其中一个作为主关键字(Primary Key),键有 时也称作为主码。字全关键字:若关系模式R整个属性组都是码,称为全关键字(All Key)或全码。:1NF:第一范式。如果关系模式R的所有属性的值域中每一个值都是不可再分解的值,则设称R 是属于第一范式模式。如果某个数据库模式都是第一范式的,则称该数据库存模式属于第一范式的数 据库模式。第一范式的模式要求属性值不可再分

3、裂成更小部分,即属性 项为不能是属性组合和组属性组成。关2NF:第二范式。如果关系模式R为第一范式,并且R屮每一个非主属性完全函数依赖系于R 的某个候选键,则称是第二范式模式;如果某个数据库模式中每个关系模式都是第二模范式的,则称 该数据库模式属于第二范式的数据库模式。(注:如果A是关系模式R的 候式选键的一个属性,则称A是R的主属性,否则称A是R的非主属性。)。R3NF:第三范式。如果关系模式R是第二范式,且每个非主属性都不传递依赖于R的候(选键,则 称R是第三范式的模式。如果某个数据库模式中的每个关系模式都是第三范式,则称为3NF的数据 库模式。,BCNF:BC范式。如果关系模式R是第一范

4、式,且每个属性都不传递依赖于R的候选 键,那 么称R是BCNF的模式。)多值依赖:设R(U)是属性集U上的一个关系模式,X,Y,Z是U的子集,并且Z=U-X-Y,中 x,y,z分别代表属性集X,丫,Z的值,只要r是R的关系,r中存在元组(x,y1,z1)和(x,y2,z2)时的,就 也存在元组(x,y1,z2)和(x,y2,z1),那么称多值依赖(Multivalued Dependency属VD)X TTY在关系模 式R中成立。性4NF:第四范式。设R是一个关系模式,D是R上的多值依赖集合。如果D屮成立非 或平凡 多值依赖XTTY时,X必是R的超键,那么称R是第四范式的模式。属连接依赖:关系

5、模式R(U)中,U是全体属性集,X,Y,,Z是U的子集,当且仅当性是由其在 X,Y,,Z上投影的自然连接组成时,称 R满足对X,Y,,Z的连接依 集。记为JD(X,Y,,Z)o 合5NF:关于模式R中,当且仅当R中每个连接依赖均为R的候选码所蕴涵时,称R属。于 5NF o 若 FU,则K称为R的一个候选码(Candidate Key),也称作为候选关键字或码。最小函数依赖集:如果函数集合F满足以下三个条件:(1)F中每个函数依赖的右部都是单 属性;(2)F中的任一函数依赖XT A,其FXTA与F是不等价的;(3)F中的任一函 数依赖XT A,Z为X的子集,(FXTA)UZTAF丄不等价。则称F

6、为最小函数依赖 集合,记为 Fmin。无损分解:设R是一个关系模式,F是R上的一个依赖集,R分解为关系模式的集合p=R1(U1),R2(U2),Rn(Un)。如果对于R中满足F的每一个关系r,都有 r=n R1(r)?n R2(r)?.?nRn(r)则称分解相对于F是无损连接分解(lossingless join decompositio n),简称为无损 分解,否 则就称为有损分解(lossy decomposition)。2.现要建立关于系、学生、班级、学会等信息的一个关系数据库。语义为:一个系有若干专业,每 个专业每年只招一个班,每个班有若干学生,一个系的学生住在同一个宿舍区,每 个学生

7、可参加若干 学会,每个学会有若干学生。描述学生的属性有:学号、姓名、出生日期、系名、班号、宿舍区;描述班级的属性有:班号、专业名、系名、人数、入校年份;描述系的属性有:系名、系号、系办公室地点、人数;描述 学会的属性有:学会名、成立年份、地点、人数、学生参加某会有一个入会年份。(1)请写出关系模式。(2)写出每个关系模式的最小函数依赖集,指出是否存在传递依赖,在函数依赖左部是多属性的 情况下,讨论函数依赖是完全依赖,还是部分依赖。(3)指出各个关系模式的候选关键字、外部关键字,有没有全关键字。解:各关系模式如下:学生(学号,姓名,出生年月,系名,班级号,宿舍区)班级(班级号,专业名,系名,人数

8、,入校年份)系(系名,系号,系办公地点,人数)社团(社团名,成立年份,地点,人 数)加入社团(社团名,学号,学生参加社团的年份)学生(学号,姓名,出生年月,系名,班级号,宿舍区)“学生”关系的最小函数依赖集为:Fmin=学号T姓名,学号T班级号,学号T出生年月,学号T系名,系名T宿舍区 以上关系模式中存在传递函数依赖,如:学号T系名,系名T宿舍区 候选键是学号,外部键是班级号,系名。注意:在关系模式中,如果YTX,XTA,且XY 依赖。班级(班级号,专业名,系名,人数,入校年份 “班级”关系的最小函数依赖集为:Fmin=(系名,专业名)T班级号班级号T人数,专业名(假设没有相同的系,不同系中专

9、业名可以相同 “(系名专业名)T班级号”是完全函数依赖。候选键是(系名,专业名),班级号,外部键是系名。系(系名,系号,系办公地点,人数)(X不决定丫),A不属于X,那么称丫TA是传递 班级号T入校年份,班级号T系名,班 级号T)以上关系模式屮不存在传递函数依赖。“系”关系的最小函数依赖集为:Fmin=系号T系名,系名T系办公地点,系名T人 数,系名T系号 以上关系模式屮不存在传递函数依赖 候选键是系名,系号社团(社团名,成立年份,地点,人数)“社团”关系的最小函数依赖集为:Fmin=社团名T成立年份,社团名T地点,社团 名一人数 以上关系模式中不存在传递函数依赖。候选键是社团名加入社团(社团

10、名,学号,学生参加社团的年份)“加入社团”关系的最小函数依赖集为:Fmi n=(社团名,学号)T学生参加社团 的年份 “(社团名,学号)T学生参加社团的年份”是完全函数依赖。以上关系模式中不存在传递函数 依赖。候选键是(社团名,学号)。3.设关系模式 R(A,B,C,D),函数依赖集 F 二ATC,CTA,B T AC,DTAC,BD T A o 1)求出R的候选码;2)求出F的最小函数依赖集;3)将R分解为3NF,使其既具有无损连接性又具有函数依赖保持性。解:(1)根据函数依赖可得:属性B、D、BD为L类(仅出现在F的函数依赖左部)。且在函数依赖的左部和右部均未出现的 属性为Oo 根据定理:

11、对于给定的关系模式R及其函数依赖集F,若X(X R)是L类属性,则X必为R的 任一候选码的成员。因此属性B、D必为候选码的成员。且它们的闭包为:BF=ABC,D F*=ACD,BD F+=ABCD 再根据推论:对于给定的关系模式R及其函数依赖集F,若X(X R)是L类属性,且XF+包含 T R的全部属性,则X必为R的唯一候选码。故BD是R的唯一候选码。所以R的候选码为BDo(2)将F中所有函数依赖的依赖因素写成单属性集形式:F 二ATC,CTA,BTA,BTC,D TA,D T C,BD T A F中的BtC可以从BtA和AtC推导出来,BtC是冗余的,删掉BtC可得:F 二ATC,CTA,B

12、TA,DTA,DTC,BD T A F中的D tC可以从D tA和AtC推导出来 DtC是冗余的删掉D tC可得:F 二ATC,CTA,BTA,DTA,BDT A F中的BDtA可以从BtA和DtA推导出来 是冗余的 删掉BD tA可得:F 二ATC,CTA,BTA,DTA 所以F的最小函数依赖集Fmin二ATC,CTA,BTA,DTA。(3)由于R中的所有属性均在Fmin中都出现对F按具有相同左部的原则分为:R1=AC,R2=BA,R3=DAo 其屮,5=A,C,U2=B,A,U3=D,A,F1=F1=n U1=ATC,F2 二 nU2 二 BTA ,F3 二 n U3 二 DTA o 所以

13、 p=R1(AC),R2(BA),R3(DA)o 4.设关系模式 R(A B C D E F)函数依赖集 F二A B tE BC tD BE tC CD TB,CE TAF,CFTBD,A,EF,求F的最小函数依赖集。解:利用分解规则,将所有的函数依赖变成右边都是单个属性的函数依赖,得F为:F=A B TE,BC TD,BE TC,CD TB,CE TA,CE TF,CFTB,CF TD,CTA,D TE,D tF 去掉F中多余的函数依赖 A.设ABTE为冗余的函数依赖,则从 F中去掉AB TE,得:F1=BC tD,BEtC,CDtB,CEtA,CEtF,CFtB,CFtD,CtA,DtE,

14、DtF 计算(AB)FP:设 X(0)=AB 计算X(1):扫描F1中各个函数依赖,找到左部为AB或AB子集的函数依赖,因为找不到这样 的函数依赖。故有X(1)=X(0)=AB,算法终止。(AB)FPAB不包含E,故AB TE不是冗余的函数依赖,不能从 F中去掉。即:F1=AB tE,BCtD,BE tC,CDtB,CEtA,CEtF,CFtB,CFtD,CtA,DtE,D tF B.设BCTD为冗余的函数依赖,则从F1中去掉BC TD,得:F2=A B tE,BEtC,CDtB,CEtA,CEtF,CFtB,CFtD,CtA,DtE,DtF计算(BC)F2+:设 X(O)=BC 计算X(1)

15、:扫描F2屮的各个函数依赖,找到左部为 BC或BC子集的函数依赖,得到 一个 CTA 函数依赖。故有 X(1)=X(0)U A=BCA=ABC。计算X(2):扫描F2中的各个函数依赖,找到左部为ABC或ABC子集的函数依赖,得到一个 ABTE 函数依赖。故有 X(2)=X(1)UE=ABCEo 计算X(3):扫描F2中的各个函数依赖,找到左部为ABCE或ABCE子集的函数依赖,得到三个 BEtC,CEtA 和 CEtF 函数依赖。故有 X(3)=X(2)UCAF=ABCEF o 计算X(4):扫描F2屮的各个函数依赖,找到左部为ABCEF或ABCEF子集的函数依 赖,得到 二个CFtB和CFt

16、D函数依赖。故有X(3)=X(2)U BD=ABCDEF o因为X(3)=U,算法终止。(BC)F2-ABCDEF包含D,故BC T D是冗余的函数依赖,从F1中去掉。即:F2=A B tE,BEtC,CDtB,CEtA,CEtF,CFtB,CFtD,CtA,DtE,DtF C.设BETC为冗余的函数依赖,从F2中去掉BETC,得:F3=A B tE,CDtB,CEtA,CEtF,CFtB,CFtD,CtA,DtE,DtF计算(BE)F3+:设 X(0)=BE 计算X(1):扫描F3屮的各个函数依赖,找到左部为 BE或BE子集的函数依赖,因为 找不到这样的函数依赖。故有X(1)=X(0)=BE

17、,算法终止。(BE)F3-BE不包含C,故BETC不是冗余的函数依赖,不能从 F2中去掉。即:F3=A B tE,BE tC,CD tB,CEtA,CEtF,CFtB,CFtD,CtA,DtE,DtF D.设CDTB为冗余的函数依赖,从F3中去掉CDTB,得:F4=A B t E,BE t C,CE t A,CE t F,CF t B,CF t D,C t A,D t E,DtF计算(CD)F:设 X(0)=CD 计算X(1):扫描F4中的各个函数依赖,找到左部为CD或CD子集的函数依赖,得到三个 CtA,DtE 和 DtF 函数依赖。故有 X(1)=X(0)UAEF=ACDEF。计算X(2)

18、:扫描F4中的各个函数依赖,找到左部为ACDEF或ACDEF子集的函数依 赖,得 到四个 CETA,CETF,CFTB,CF宀D函数依赖。故有 X(2)=X(1)U ABDF=ABCDEF。因为 X(2)=U,算法终止。(CD)F4=ABCDEF包含B,故CDTB是冗余的函数依赖,从F3中去掉。即:F4=ABtE,BE(C,CEt A,CE(F,CFtB,CF(D,Ct A,D(E,DtF E.设CETA为冗余的函数依赖,从F4中去掉CETA,得:F5=ABtE,BEtC,CE(F,CFtB,CFt D,CtA,DtE,DtF 计算(CE)F头 设 X(0)=CE 计算X(1):扫描F5屮的各

19、个函数依赖,找到左部为CE或CE子集的函数依赖,得到一个 CtA 函数依赖。故有 X(1)=X(0)U A=ACE。计算X(2):扫描F5中的各个函数依赖,找到左部为ACE或ACE子集的函数依赖,得到一 个CEtF函数依赖。故有X=X(1)UF=ACEFo 计算X(3):扫描F5屮的各个函数依赖,找到左部为ACEF或ACEF子集的函数依赖,得到二 个CFtB和CFtD函数依赖。故有X莎U BD=ABCDEF。因为X(3)=U,算法终止。(CE)F比ABCDEF包含A,故CETA是冗余的函数依赖,从F4屮去掉。即:F5=ABIE,BEtC,CE(F,CFtB,CFtD,CtA,D(E,DtF F

20、.设CETF为冗余的函数依赖,从F5中去掉CETF,得:F6=ABtE,BEtC,CFt B,CFt D,CtA,DiE,D tF 计算(CE)F6:设 X(O)=CE 计算X(1):扫描F6屮的各个函数依赖,找到左部为CE或CE子集的函数依赖,得到一个 CtA 函数依赖。故有 X(1)=X(0)U A=ACE。计算X(2):扫描F6中的各个函数依赖,找到左部为ACE或ACE子集的函数依赖,因为找 不到这样的函数依赖。故有X(2)=X(1)=ACE,算法终止。(CE)F6+=ACE不包含F,故CETF不是冗余的函数依赖,不能从 F5中去掉。即:F6=ABtE,BEtC,CE t F,CFt B

21、,CFt D,CtA,Dt E,D t F G.设CFTB为冗余的函数依赖,从 F6中去掉CF T B,得:F7=ABtE,BEtC,CE tF,CFtD,CtA,DtE,DtF 计算(CF)Fr:设 X(O)=CF 计算X(1):扫描F7中的各个函数依赖,找到左部为CF或CF子集的函数依赖,得到 二个 CF t D 和 CtA 函数依赖。故有 X(1)=X(0)U AD=ACDF。计算X:扫描F7屮的各个函数依赖,找到左部为ACDF或ACDF子集的函数依赖,得到 二个 DtE 和 DtF 函数依赖。故有 X(2)=X(1)UEF=ACDEFo 计算X:扫描F7屮的各个函数依赖,找到左部为AC

22、DEF或ACDEF子集的函数依赖,得 到一个CE tF函数依赖。故有XG3)=XU F=ACDEF=X(2),算法终止。(CF)F7-ACDEF不包含B,故CF tB不是冗余的函数依赖,不能从F6中去掉。即:F7=ABtE,BEtC,CE(F,CFt B,CFt D,CtA,Dt E,DtF H.设CFTD为冗余的函数依赖,从F7中去掉CFTD,得:F8=A B t E,BEtC,CE t F,CFt B,CtA,DiE,DtF 计算(CF)F8H 设 X(O)=CF 计算X(1):扫描F8屮的各个函数依赖,找到左部为CF或CF子集的函数依赖,得到二个CF TB 和 CTA 函数依赖。故有 X

23、(1)=X(0)U AB=ABCF。计算X(2):扫描F8中的各个函数依赖,找到左部为ABCF或ABCF子集的函数依赖,得到一 个 ABtE 函数依赖。故有 X(2)=X(1)UE=ABCEFo 计算X(3):扫描F8中的各个函数依赖,找到左部为ABCEF或ABCEF子集的函数依赖,得到 二个BEtC和CEt F函数依赖。故有XG?)=XU CF=ABCEF=X(2),算 法终止。(CF)FPABCEF不包含D,故CFTD不是冗余的函数依赖,不能从 F7屮去掉。即:F8=A Bt E,BEtC,CE t F,CF(B,CF(D,CtA,DtE,D t F 去掉F8中各函数依赖左边多余的属性(只

24、检查左部不是单个属性的函数依赖)由于F8屮各 函数依赖左边无多余的属性,故:Fmin=ABiE,BEtC,CEt F,CFtB,CFt D,CtA,Dt E,DtF 5.判断下面的关系模式是不是BCNF,为什么?(1)任何一个二元关系。(2)关系模式选课佇号,课程号,成绩),函数依赖集F二(学号,课程号)T成绩。关系模 式 R(A,B,C,D,E,F),函数依赖集 F 二ATBC,BCTA,BCD T EF,EtC。解:(1)是BCNFo二元关系中或为全关键字,或为一个单属性候选关键字。(2)是BCNF o关系模式中只有一个候选关键字。(3)不是BCNFo因为模式屮存在候选关键字为AD、BCD

25、和BE,显然C对AD是部 分依赖。/U1 nU2=EU1 U2=AB U1 nU2TU1 U2=E T AB=E T A,E T B U1 nU2TU1 U2F+该分解具备无损连接。6.设关系模式 R(B,O,I,S,Q,D),函数依赖集 F 二STD,ITS,ISTQ,BTQO(1)求出 R 的 主码。把R分解为BCNF,且具有无损连接性。解:(1)R的主关键字为IBOo(2)Fmin=STD,ITS,ITO,BTQ 令 p=BOISQD 由于R的关键字为IBO,选择StD分解 得出:P=S1,S2 其中:S1=SD,F1=St D S2=BOISQ,F2=l tS,ItQ,BtQo 显然,

26、S2不服从BCNF,需继续分解。对S2分解。S2的关键字为IBO,选择ITS分解。得出:p=S1,S3,S40 其中:S3=IS,F3=l tS S4=BOIQ,F4=l tQ,BtQo 显然,S4不服从BCNF,还需继续分解。对S4分解。S4的关键字为IBO,选择ITQ分解。得出:P=S1,S3,S5,S6 其中 S5=IQ,F5=l TQ S6=BI0 F6Q 最后的分解为:P=SD,IS,IQ,BIO 7.设有关系模式R(A,B,C),函数依赖集F二ABTC,C A,R属于第几范式?为什么?解:BCNF o由于A多值依赖于动 而C不是码.故不服从4NF。但在函数依赖式中C依 赖于码AB

27、故该模式服从BCNF o 8.设有关系模式 R(A,B,C,D),函数依赖集 F 二ATB,B TA,AC T D,BC T D,AD tC,BD tC,Att CD,Btt CDo(1)求R的主码。(2)R是否为4NF?为什么?(3)R是否为BCNF?为什么?(4)R是否为3NF,为什么?解:I)候选码为AC,BC.AD,BD、可选其中之一为主码。2)不服从4NF o在多值依赖中泱定因素中不包含码。3)不服从BCNF o在函数依赖中决定因素中不包含码。4)服从3NF。该模式中不存在非主属性。9.设关系模式R(U,F)的属性集U二A,B,C,函数依赖集F二ATB,BTC,试求属 性闭包 A+。解:设 X(O)=A;计算X(1):扫描F中的各个函数依赖,找到左部为A的函数依赖,得到一个:X(1)=AUB,即卩 X(1)=ABo 计算X(2):扫描F中的各个函数依赖,找到左部为AB或A、B的函数依赖,BTCo故有X(2)=AB U C,即X=ABC=U o算法终止。故 A+=ABC o AtBo故有 得到一个:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁