文档库 最新最全的文档下载
当前位置:文档库 › 求最小函数依赖集例题

求最小函数依赖集例题

求最小函数依赖集例题
求最小函数依赖集例题

基于闭包的求最小函数依赖集算法

定义:如果函数依赖集F满足下列条件,则称F为最小函数依赖集或最小覆盖。

① F中的任何一个函数依赖的右部仅含有一个属性;

② F中不存在这样一个函数依赖X→A,使得F与F-{X→A}等价;

③ F中不存在这样一个函数依赖X→A,X有真子集Z使得F-{X→A}∪{Z→A}与F等价。

算法:计算最小函数依赖集。

输入一个函数依赖集

输出 F的一个等价的最小函数依赖集G

步骤:① 用分解的法则,使F中的任何一个函数依赖的右部仅含有一个属性;

② 去掉多余的函数依赖:从第一个函数依赖X→Y开始将其从F中去掉,然后在剩下的函数依赖中求X的闭包X+,看X+是否包含Y,若是,则去掉X→Y;否则不能去掉,依次做下去。直到找不到冗余的函数依赖;

③ 去掉各依赖左部多余的属性。一个一个地检查经过第②步去掉了多余依赖后的函数依赖左部非单个属性的依赖。例如XY→A,若要判Y为多余的,则以X→A代替XY→A是否等价?若A属于(X)+,则Y是多余属性,可以去掉。

注:以下题目中有些步骤(如判断左部单属性的依赖是否为多余依赖的步骤)作者嫌麻烦就省略掉了

例题1:已知关系模式R,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的最小函数依赖集。

解1:利用算法求解,使得其满足三个条件

① 利用分解规则,将所有的函数依赖变成右边都是单个属性的函数依赖,得F为:

F={AB→C,D→E,D→G,C→A,BE→C,BC→D,CG→B,CG→D,ACD→B,CE→A,CE→G}

② 去掉F中多余的函数依赖

A.设AB→C为冗余的函数依赖,则去掉AB→C,得:

F1={D→E,D→G,C→A,BE→C,BC→D,CG→B,CG→D,ACD→B,CE→A,CE→G}

计算(AB)F1+:设X(0)=AB

计算X(1):扫描F1中各个函数依赖,找到左部为AB或AB子集的函数依赖,因为找不到这样的函数依赖。故有X(1)=X(0)=AB,算法终止。

(AB)F1+= AB不包含C,故AB→C不是冗余的函数依赖,不能从F1中去掉。

B.设CG→B为冗余的函数依赖,则去掉CG→B,得:

F2={AB→C,D→E,D→G,C→A,BE→C,BC→D,CG→D,ACD→B,CE→A,CE→G}

计算(CG)F2+:设X(0)=CG

计算X(1):扫描F2中的各个函数依赖,找到左部为CG或CG子集的函数依赖,得到一个C→A函数依赖。故有X(1)=X(0)∪A=CGA=ACG。

计算X(2):扫描F2中的各个函数依赖,找到左部为ACG或ACG子集的函数依赖,得到一个CG→D函数依赖。故有X(2)=X(1)∪D=ACDG。

计算X(3):扫描F2中的各个函数依赖,找到左部为ACDG或ACDG子集的函数依赖,得到两个ACD→B和D→E函数依赖。故有X(3)=X(2)∪BE=ABCDEG,因为X(3)=U,算法终止。

(CG)F2+=ABCDEG包含B,故CG→B是冗余的函数依赖,从F2中去掉。

C.设CG→D为冗余的函数依赖,则去掉CG→D,得:

F3={AB→C,D→E,D→G,C→A,BE→C,BC→D,ACD→B,CE→A,CE→G}

计算(CG)F3+:设X(0)=CG

计算X(1):扫描F3中的各个函数依赖,找到左部为CG或CG子集的函数依赖,得到一个C→A函数依赖。故有X(1)=X(0)∪A=CGA=ACG。

计算X(2):扫描F3中的各个函数依赖,找到左部为ACG或ACG子集的函数依赖,因为找不到这样的函数依赖。故有X(2)=X(1),算法终止。(CG)F3+=ACG。

(CG)F3+=ACG不包含D,故CG→D不是冗余的函数依赖,不能从F3中去掉。

D.设CE→A为冗余的函数依赖,则去掉CE→A,得:

F4={AB→C,D→E,D→G,C→A,BE→C,BC→D,CG→D,ACD→B,CE→G}

计算(CG)F4+:设X(0)=CE

计算X(1):扫描F4中的各个函数依赖,找到左部为CE或CE子集的函数依赖,得到一个C→A函数依赖。故有X(1)=X(0)∪A=CEA=ACE。

计算X(2):扫描F4中的各个函数依赖,找到左部为ACE或ACE子集的函数依赖,得到一个CE→G函数依赖。故有X(2)=X(1)∪G=ACEG。

计算X(3):扫描F4中的各个函数依赖,找到左部为ACEG或ACEG子集的函数依赖,得到一个CG→D函数依赖。故有X(3)=X(2)∪D=ACDEG。

计算X(4):扫描F4中的各个函数依赖,找到左部为ACDEG或ACDEG子集的函数依赖,得到一个ACD→B函数依赖。故有X(4)=X(3)∪B=ABCDEG。因为X(4)=U,算法终止。

(CE)F4+=ABCDEG包含A,故CE→A是冗余的函数依赖,从F4中去掉。

③ 去掉F4中各函数依赖左边多余的属性(只检查左部不是单个属性的函数依赖)由于C→A,函数依赖ACD→B中的属性A是多余的,去掉A得CD→B。

故最小函数依赖集为:

F={AB→C,D→E,D→G,C→A,BE→C,BC→D,CG→D,CD→B,CE→G}

例题2:已知R(U,F)

U={a,b,c,d,e,f,g,h,i,j},F={ abd->e,ab->g,b->f,c->j,cj->i,g->h }

求R(U,F)的最小函数依赖集

解:分三步:

1.将F中的所有依赖右边化为单一元素

此题F={abd->e,ab->g,b->f,c->j,cj->i,g->h};已经满足

2.去掉F中的所有依赖左边的冗余属性.

作法是属性中去掉其中的一个,看看是否依然可以推导

此题:abd->e,去掉a,则(bd)+不含e,故不能去掉,同理b,d都不是冗余属性

ab->g,也没有

cj->i,因为c+={c,j,i}其中包含i所以j是冗余的.cj->i将成为c->i

F={abd->e,ab->g,b->f,c->j,c->i,g->h};

3.去掉F中所有冗余依赖关系.

做法为从F中去掉某关系,如去掉(X->Y),然后在F中求X+,如果Y在X+中,则表明X->Y是多余的.需要去掉.

此题如果F去掉abd->e,F将等于{ab->g,b->f,c->j,c->i,g->h},而

(abd)+={a,d,b,f,g,h},其中不包含e.所有不是多余的.

同理(ab)+={a,b,f}也不包含g,故不是多余的.

b+={b}不多余,c+={c,i}不多余

c->i,g->h多不能去掉.

所以所求最小函数依赖集为 F={abd->e,ab->g,b->f,c->j,c->i,g->h};

例题3:关系R({A,B,C,D,E,F},f)满足下列函数依赖:

AB->C

C->A

BC->D

ACD->B

BE->C

CE->FA

CF->BD

D->EF

找出该依赖集的最小依赖集

1:.将F中的所有依赖右边化为单一元素

AB->C C->A BC->D ACD->B BE->C CE->F CE->A CF->B CF->D

D->E D->F

2:去掉F中所有冗余依赖关系.做法为从F中去掉某关系,如去掉(X->Y),然后在F 中求X+,如果Y在X+中,则表明X->Y是多余的.需要去掉.

去掉AB->C 得到AB+={} 所以AB->C 不是冗余的函数依赖

再依次去掉1中其余的函数依赖,计算去掉依赖左边属性的必包,发现

ACD->B,CE->A,CF->D是冗余的函数依赖,

AB->C C->A BC->D BE->C CE->F CF->B D->E D->F

3:去掉F中的所有依赖左边的冗余属性.作法是属性中去掉其中的一个,看看是否依然可以推导

没有

所以{AB->C C->A BC->D BE->C CE->F CF->B D->E D->F}为f的最小依赖集

数据库考题

2008年数据库考卷 CCCADBAAAD?? DCCADBBAAD() 单选题:(10分,每小题1分) 1、数据库三级模式结构之间存在着两级映像,使得数据库系统具有较高的() A、事务并发性 B、数据可靠性 C、数据重用性 D、数据独立性 2、数据库类型的划分是根据() A、文件形式 B、记录形式 C、数据模型 D、存取数据方法 3、在关系数据库中,任何二元关系模式的最高范式必定是() A、2NF B、3NF C、BCNF D、无法确定 4、设W R S =∞,且W、R、S的属性个数分别为w、r、s,那么三者之间的关系是() A、w r s <+ ≤+B、w r s C、w r s =+D、w r s ≥+ 5、数据模型的三要素是() A、外模式、模式、内模式 B、关系模型、层次模型和网状模型 C、实体、属性和联系 D、数据结构、数据操作和完整性约束 6.在最小函数依赖集F中,下面叙述不正确的是() A.F中每个FD的右部都是单属性 B.F中每个FD的左部都是单属性 C.F中每个FD的左部都没有冗余的属性 D.F中没有冗余的FD 7.下列不属于需求分析阶段工作的是() A.分析用户活动 B.建立ER图 C.建立数据字典 D.建立数据流程图 8.五种基本关系代数运算是() A.并、差、笛卡尔积、投影和选择 B.并、差、链接、投影和选择 C.并、交、笛卡尔积、投影和选择 D.并、交、链接、投影和选择 9.下列SQL语句中,用来修改表结构的是() A.ALTER

B.CREATE C.UPDATE D.INSERT 10.下面的几种故障中,会破坏正在运行的数据库的是() A.中央处理器故障 B.操作系统故障 C.突然停电 D.瞬时强磁干扰 二、填空题:(10分,每小题1分) 1.关键字ASC和DESC分别表示_升序_____和_降序______ 2.在数据库中产生数据不一致的根本原因是_数据冗余________ 3.“为哪些表,在哪些字段上,建立什么样的索引”这一设计内容是数据库设计中 的_物理设计_____阶段 4.两个函数依赖集F和G等价的充分必要条件是____P185 ________ 5.数据库的并发操作通常会带来三个问题:_数据丢失________、读脏数据问 题、不可重复读问题 6.当关系R和S做自然链接时,能够把原该舍弃的元组放到结果中的操作是 ______ 7.一个事务中对数据库的所有操作是一个不可分割的操作序列是事务的_原子 性_____ 8.SQL语言的使用方式有两种:一种是___交互式_另一种是___嵌入式____ 三、简答题:(15分) 1.数据库系统与数据库管理系统的主要区别是什么? 数据库管理系统是位于用户和操作系统之间的一层数据管理软件 数据库系统指计算机系统中引入数据库后的系统,一般由数据库数据库管理系统应用系统数据库管理员构成 2.为什么关系中的元组没有先后顺序? 3.数据库的重组织和重构造分别指什么内容? 四、SQL语言题(24分): 学生S(SNO,SNAME,AGE,SEX) 学习SC(SNO,CNO,GRADE) 课程C(CNO,CNAME,TEACHER) 用SQL语言实现下列第1小题至第10小题:

数据库系统概论复习题及答案

第一学期期末考试试卷和答案 试卷代码:03115 授课课时:96 课程名称:数据库系统原理A 适用对象:本科选课班 一、选择题(从下列各题四个答案中选出一个正确答案,每小题1分,共10分) 1、在数据库技术发展的几个阶段中,数据独立性最高的是__A___阶段。 A、数据库系统 B、文件系统 C、人工管理 D、数据项管理 2、在SQL的SELECT语句中,与选择运算对应的命令动词是__C___。 A、SELECT B、FROM C、WHERE D、ORDER BY 3、在数据库中,下列说法_A__是不正确的 A、数据库避免了一切数据的重复 B、若系统是完全可以控制的,则系统可确保更新是的一致性 C、数据可以共享 D、数据库减少了冗余 4、在数据库系统中,模式/外模式映像用于解决数据的_C__ A、结构独立性 B、物理独立性 C、逻辑独立性 D、分布独立性 5、关系代数的5种基本运算是__D_。 A、并、差、选择、投影、自然连接 B、并、差、交、选择、投影 C、并、差、交、选择、笛卡尔积 D、并、差、选择、投影、笛卡尔积 6、在SQL语句中,谓词“EXISTS”的含义是_B___。 A、全称量词 B、存在量词 C、自然连接--在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列 D、等值连接--在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列 7、规范化过程主要为克服数据库逻辑结构中的插入异常、删除异常、更新异常以及_C__的缺陷 A、数据不一致性 B、结构不合理 C、冗余度大 D、数据丢失 8、数据库数据的正确性和相容性是数据库的__B____。 A、安全性 B、可维护性 C、完整性 D、并发控制 9、数据库三级模式体系结构主要的目标是确保数据库的_B__。 A、数据安全性 B、数据独立性

函数依赖专项练习

1.已知关系模式R,U={A,B,C,D},F={A→C,C→A,B→A,B→C,D→A,D→C,BD→A},求F的最小函数依赖集。 2.已知关系模R,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={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)主码为:商店编号,商品编号。 (3)因存在非主属性(负责人)对主码(商品编号,商店号)的传递函数依赖,故未达到三范式,只达到二范式。 7题参考答案: (1)不是。假定对任一本书一个人一天只能借一次,则主码为:教师编号,借阅图书编号,借书日期;(2)存在。 (教师编号,借阅图书编号,借书日期)->教师姓名 (教师编号,借阅图书编号,借书日期)->教师电话 (教师编号,借阅图书编号,借书日期)->所在部门

最小函数依赖集的求法

一、等价和覆盖 定义:关系模式R上的两个依赖集F和G,如果F+=G+,则称F和G是等价的,记做F≡G。若F≡G,则称G是F的一个覆盖,反之亦然。两个等价的函数依赖集在表达能力上是完全相同的。 二、最小函数依赖集 定义:如果函数依赖集F满足下列条件,则称F为最小函数依赖集或最小覆盖。 ① F中的任何一个函数依赖的右部仅含有一个属性; ② F中不存在这样一个函数依赖X→A,使得F与F-{X→A}等价; ③ F中不存在这样一个函数依赖X→A,X有真子集Z使得F-{X→A}∪{Z→A}与F等价。 算法:计算最小函数依赖集。 输入一个函数依赖集 输出 F的一个等价的最小函数依赖集G 步骤:① 用分解的法则,使F中的任何一个函数依赖的右部仅含有一个属性; ② 去掉多余的函数依赖:从第一个函数依赖X→Y开始将其从F中去掉,然后在剩下的函数依赖中求X的闭包X+,看X+是否包含Y,若是,则去掉X→Y;否则不能去掉,依次做下去。直到找不到冗余的函数依赖; ③ 去掉各依赖左部多余的属性。一个一个地检查函数依赖左部非单个属性的依赖。例如XY→A,若要判Y为多余的,则以X→A代替XY→A是否等价?若A (X)+,则Y是多余属性,可以去掉。 举例:已知关系模式R,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的最小函数依赖集。 解1:利用算法求解,使得其满足三个条件 ① 利用分解规则,将所有的函数依赖变成右边都是单个属性的函数依赖,得F为: F={AB→C,D→E,D→G,C→A,BE→C,BC→D,CG→B,CG→D,ACD→B,CE→A,CE→G} ② 去掉F中多余的函数依赖 A.设AB→C为冗余的函数依赖,则去掉AB→C,得: F1={D→E,D→G,C→A,BE→C,BC→D,CG→B,CG→D,ACD→B,CE→A,CE→G}

数据库原理试卷及答案 (2)

数据库原理试卷A 一、判断题:(本大题共7小题,每小题2分,共14分) (1)若关系R是全码,则它一定属于BCNF (2)若R. B→R. A,R. C→R. A,则R.(B,C)→R. A (3)若要求模式分解保持函数依赖,那么分解总可以达到BCNF,但不一定能达到4NF (4)关系模式R(ABCDEF),F={A→B,AB→D,D→E,F→D},则R的规范化程度最高为2NF (5)给定同一关系模式上的两个实例R和S,则R∩S≡R?S (6)若X→→Y,Y→→Z,则X→→Z-Y (7)设R(ABC),F={A→B},则{R1(AC),R2(BC)}是无损分解 二、简答题 (本大题共4小题,每小题5分,共20分) 1. 请阐述数据模型、模式和具体值三者之间的联系和区别。 2. 什么是数据的物理独立性。 3. 两个函数依赖集F和G等价的充分必要条件是什么? 4. 简述在SQL语言中,引入视图机制的主要优点。 三、(本大题共5小题,每小题4分,共20分) 设有关系数据库:学生关系S(S#,SNAME,AGE,SEX),课程关系C(C#,CNAME,TEACHER),选课关系SC(S#, C#,GRADE)试按要求完成: 使用关系代数表达式表示(1,2,3小题): (1) 检索年龄大于21的男学生学号(S#)和姓名(SNAME); (2) 检索至少选修‘程军’老师所授全部课程的学生姓名(SNAME); (3) 检索全部学生都选修了的课程的课程号(C#)和课程名(CNAME); 使用SQL语言表达(4,5小题) (4) 检索所有比‘王华’年龄大的学生姓名(SNAME)、年龄(AGE)和性别(SEX); (5) 检索选修四门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。 四、(10分)给定关系模式R(U,F),属性集U = { A B C D E F G } , 函数依赖集F = { AB→CD , C→F , C→D , D→E ,DE→F , F→B, F→D }。 求:(1)(AC)F+; (2)求极小函数依赖集F min 五、(12分)设有关系模式R(A,B,C,D,E),其上的函数依赖集:F={A→C,C→D,B→C,DE→C,CE→A} 求:(1)所有候选码; (2)判断ρ={AD,AB,BC,CDE,AE}是否为无损连接分解? 六、 (12分)假设某商业集团数据库中有一关系模式R (商店编号,商品编号,数量,部门编号,负责人) 如果规定: (1) 每个商店的每种商品只在一个部门销售; (2) 每个商店的每个部门只有一个负责人; (3) 每个商店的每种商品只有一个库存数量。 试回答下列问题(1,2,3,4): (1) 根据上述规定,写出关系模式R的基本函数依赖; (2) 找出关系模式R的候选码; (3) 试问关系模式R最高已经达到第几范式?为什么?

数据库基础与应用形考任务一

一、单选题(在每小题的空括号内填写上正确选项的字母,每小题2分,共36分) 题目1 还未回答 满分2.00 未标记标记题目 题干 在利用计算机进行数据处理的四个发展阶段中,第3个发展阶段是()。 选择一项: A. 分布式数据库系统 B. 文件系统 C. 人工管理 D. 数据库系统 题目2 还未回答 满分2.00 未标记标记题目 题干 实体中能够唯一标识自己的属性被称做()。 选择一项: A. 元组 B. 码 C. 联系 D. 域 题目3 还未回答 满分2.00 未标记标记题目 题干 关系数据模型属于()。 选择一项: A. 存储数据模型 B. 概念数据模型 C. 逻辑数据模型 D. 对象数据模型 题目4 还未回答 满分2.00 未标记标记题目 题干 若实体A和B是1对多的联系,实体B和C是多对1的联系,则实体A和C是()联

系。 选择一项: A. 1对1 B. 多对1 C. 1对多 D. 多对多 题目5 还未回答 满分2.00 未标记标记题目 题干 在数据库体系结构的三级模式中,全局模式处于()层。 选择一项: A. 最内 B. 应用 C. 最外 D. 中间 题目6 还未回答 满分2.00 未标记标记题目 题干 下面不属于数据库体系结构中三级模式的是()。 选择一项: A. 逻辑模式 B. 应用模式 C. 存储模式 D. 数据模式 题目7 还未回答 满分2.00 未标记标记题目 题干 设D1、D1和D1定义域中的基数分别为2、3和4,则D1′D2′D3的元组数为()。 选择一项: A. 24 B. 14 C. 10 D. 9 题目8

还未回答 满分2.00 未标记标记题目 题干 设关系R1具有a1个属性和b1个元组,关系R2具有a2个属性和b2个元组,则关系R1′R2所具有的元组个数为()。 选择一项: A. a1+b1 B. a1×a2 C. a2+b2 D. b1×b2 题目9 还未回答 满分2.00 未标记标记题目 题干 若一个关系为R(学生号,姓名,性别,年龄),则可以作为主码的属性为()。 选择一项: A. 学生号 B. 性别 C. 姓名 D. 年龄 题目10 还未回答 满分2.00 未标记标记题目 题干 设一个关系模式为R(A,B,C),对应的关系内容为R={{1,10,50}, {2,10,60}, {3,20,72}, {4,30,60}},则δB>15(R)的运算结果中具有的元组个数为()。 选择一项: A. 2 B. 4 C. 1 D. 3 题目11 还未回答 满分2.00 未标记标记题目 题干 设一个学生关系为S(学生号,姓名),课程关系为C(课程号,课程名),选课关系为X(学生号,

最小函数依赖集

最小函数依赖集 定义:如果函数依赖集F满足下列条件,则称F为最小函数依赖集或最小覆盖。 ①F中的任何一个函数依赖的右部仅含有一个属性; ②F中不存在这样一个函数依赖X→A,使得F与F-{X→A}等价; ③F中不存在这样一个函数依赖X→A,X有真子集Z使得 F-{X→A}∪{Z→A}与F等价。 求最小函数依赖集分三步: 1.将F中的所有依赖右边化为单一元素 此题fd={abd->e,ab->g,b->f,c->j,cj->i,g->h};已经满足 2.去掉F中的所有依赖左边的冗余属性. 作法是属性(只检查左边不是单一属性的函数依赖)中去掉其中的一个,看看是否依然可以推导 此题:abd->e,去掉a,则(bd)+不含e,故不能去掉,同理b,d都不是冗余属性 ab->g,也没有 cj->i,因为c+={c,j,i}其中包含i,所以j是冗余的.cj->i将成为c->i F={abd->e,ab->g,b->f,c->j,c->i,g->h}; 3.去掉F中所有冗余依赖关系. 做法为从F中去掉某关系,如去掉(X->Y),然后在F中求X+,如果Y在X+中,则表明x->是多余的.需要去掉. 此题如果F去掉abd->e,F将等于{ab->g,b->f,c->j,c->i,g->h},而(abd)+={a,d,b,f,g,h},其中不包含e.所有不是多余的. 同理(ab)+={a,b,f}也不包含g,故不是多余的. b+={b}不多余,c+={c,i}不多余 c->i,g->h多不能去掉. 所以所求最小函数依赖集:F={abd->e,ab->g,b->f,c->j,c->i,g->h};

数据库基础与应用综合题

习题一 1. 数据库处理技术经历了(人工管理)、(文件管理)、(数据库管理)、以及分布式数据库管理等四个发展阶段。 2.在人工管理和文件管理阶段,程序设计(依赖于)数据表示。 3.在文件管理阶段,文件之间是相互(独立)的,在数据库管理阶段,文件之间是相互(联系)的。 4.使用数据库设计程序时,只需要告诉数据库管理系统(做什么),不需要告诉它(怎么做)。5.在(文件)系统中,数据没有独立的操作界面,在(数据库)系统中,数据具有独立的操作界面。 6.DBMS具有(安全性)、(一致性)、(并发性)和(数据库恢复)等管理控制功能。 7.分布式数据库系统除了具有一般数据库系统的优点之外,还具有(可靠性高)、(地域范围广)、(数据量大)、(客户数多)等优点。 8.在实体中能作为码的属性称为(主属性),否则称为(非主属性)。 9.实体之间的联系类型有三种,分别为(1对1)、(1对多)和(多对多)。 10.若实体A和B是1对多的联系,实体B和C是1对多的联系,则实体A和C是(1)对(多)的联系。 11.若实体A和B是1对多的联系,实体B和C是1对1的联系,则实体A和C是(1)对(多)的联系。 12.在非关系模型中,每个结点代表着一个(记录型),每个父子联系代表着(1对多)联系。13.在非关系模型中操作记录的方式是(过程)式的,在关系模型中,操作记录的方式是(集合)式的。 14.关系中的每一行称为一个(元组),每一列称为一个(属性)。 15.假定一个关系中有n个元组,则某个列的当前全部取值的个数最少为(1)个,最多为(n)个。 16. 关系数据库系统具有(数据结构)单一、采用(集合运算)、数据完全(独立)、(数学)理论支持等优点。 17.在对象数据模型中,对象具有(封装)性、(继承)性和(多态)性。 18.数据库管理系统的下层支持软件是(操作系统),上层软件是数据库应用(开发工具)。19.数据库体系结构中包含的三级模式为(全局模式)、(外模式)和(内模式)三种。 20.在数据库体系结构中,两级数据映象分别是指(外模式和模式)之间的数据映象与(模式和内模式)之间的数据映象。 21.DBMS提供数据(定义(描述))语句和数据(操纵)语句供用户使用。 22.在存取数据库的数据的过程中,使用了两个数据缓冲区,分别为(系统)缓冲区和(用户)缓冲区。 习题二 1.关系数据模型包括(关系数据结构)、(关系完整性规则)和(关系运算)三个方面。 2.在一个关系中,不同的列可以对应同一个(域),但必须具有不同的(列名)。 3.顾客购物的订单和订单明细之间是(1)对(多)的联系。 4.主码是一种(候选)码,主码中的(属性)个数没有限制。 5.若一个关系为R(学生号,姓名,性别,年龄),则(学生号)可以作为该关系的主码,姓名、性别和年龄为该关系的(非主)属性。 6.关系完整性包括(实体)完整性、(参照)完整性和(用户定义)的完整性三个方面。 7.在参照和被参照的关系中,每个外码值或者为(空值),或者等于某个(主码)值。 8.传统的集合运算包括(并)、(交)、(差)和(笛卡尔积)四种。

数据库原理复习练习题集含参考答案(三)

数据库原理试题及答案 一、单项选择题(本大题共15小题,每小题2分,共30分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.数据库类型的划分依据是( B ) A.记录形式 B.数据模型 C.数据联系 D.存取数据方法 2.在数据库系统中,如果数据库的逻辑结构发生了变化,那么用户的应用程序( C ) A.必须改变 B.自动改变 C.可以不变 D.必须作废 3.STUDENT和DEPT两个关系如下表所示,其中STUDENT关系中的主码为学号,年龄在18~25之间,DEPT关系的主码为系号。向STUDENT 中插入行(507,'王方',17,'D4'),该操作( D ) A.仅违反实体完整性 B.仅违反参照完整性 C.仅违反用户定义完整性 D.违反了参照完整性和用户定义完整性 4.在数据库设计中,超类实体与子类实体的关系是( D ) A.前者只继承后者的主码 B.后者只继承前者的主码 C.前者继承后者的所有属性 D.后者继承前者的所有属性

5.设有关系模式R(ABCDEG),F是R上成立的FD集,F={D→G,C→A,CD→E,A→B},则(AC)+F为( B ) A.AC B.ABC C.ABDG D.ABCDEG 6.3NF规范到BCNF,必须消除( C ) A.非主属性对键的部分函数依赖 B.非主属性对键的传递函数依赖 C.主属性对键的部分和传递函数依赖 D.非平凡且非函数依赖的多值依赖 7.设有关系R(ABCD)和关系s(BCD),则R×S结果集的元数为( D ) A.3 B.4 C.6 D.7 8.关系代数中投影运算是对关系进行的( A ) A.垂直分割 B.水平分割 C.结合 D.先垂直分割后水平分割 9.当关系R和S自然连接时,能够把R和S原来应该舍弃的元组放到结果关系中的操作是( D ) A.左外连接 B.右外连接 C.外部并 D.外连接 10.嵌入式SQL中实现主语言与SQL语句间的参数传递是通过( B ) A.SQLCA B.共享变量 C.数据集 D.游标 11.应用程序中的运算溢出属于( A ) A.事务故障 B.系统故障

最小函数依赖集Fm的求法

最小函数依赖集Fm的求法: 1.根据分解规则,将函数依赖的右端分解成单个属性 2.对于F中的每个函数X→A,设G=F-{X→A},如果A∈X G+,则 将X→A从中删除,否则保留。 3.对于F中每一个左端包含多个属性的X→A,选择X的每个子 集Z,如果A∈Z F+,则用Z→A代替X→A。 例如: F={BE→G,BD→G,CDE→AB,CD→A,CE→G,BC→A,B→D,C→D} 求Fm。 解:1)右端分解成单个属性 F={BE→G,BD→G,CDE→A, CDE→B,CD→A,CE→G,BC→A,B→D,C →D} 2)设G=F-{X→A},如果A∈X G+,则将X→A删除,否则保留(1)G=F-{ BE→G }={BD→G,CDE→A, CDE→B,CD→A,CE→G,BC →A,B→D,C→D},则(BE)G+=BEDG,包含G,则删除。(2)G=F-{BD→G, }={ CDE→A, CDE→B,CD→A,CE→G,BC→A,B →D,C→D},则(BD)G+=BD,不包含G,则保留。 (3)G=F-{CDE→A}={ BD→G, CDE→B,CD→A,CE→G,BC→A,B →D,C→D},则(CDE)G+= CDEBGA,包含A,则删除。 (4)G=F-{CDE→B}={ BD→G, CD→A,CE→G,BC→A,B→D,C→D},则(CDE)G+= CDEAG,不包含B,则保留。 (4)G=F-{CD→A,}={ BD→G, CDE→B,CE→G,BC→A,B→D,C

→D},则(CD)G+= CD,不包含A,则保留。 (5)G=F-{ CE→G,}={ BD→G, CDE→B,CD→A, BC→A,B→D,C →D},则(CE)G+= CEDBAG,包含G,则删除。 (5)G=F-{ BC→A,}={ BD→G, CDE→B,CD→A, B→D,C→D},则(BC)G+= BCDGA,包含A,则删除。 (6)G=F-{ B→D,}={ BD→G, CDE→B,CD→A, C→D}, 则(B)G+= B,不包含D,则保留。 (7)G=F-{ C→D }={ BD→G, CDE→B,CD→A, B→D,}, 则(C)G+= C,不包含D,则保留。 所以F={ BD→G, CDE→B,CD→A, B→D, C→D} 3) 左端包含多个属性的函数依赖X→A,选择X的每个子集Z,如果A∈Z F+,则用Z→A代替X→A 左端包含多个属性的函数依赖有BD→G, CDE→B,CD→A; (1)BD→G的左端子集包含{B}和{D} B F+=BDG,B F+包含G,则用B→G代替BD→G; D F+=D,D F+不包含G; F={ B→G, CDE→B,CD→A, B→D, C→D} (2)CDE→B的左端子集包含{C}、{D}、{E}、{CD}、{CE}和{DE} C F+=CDA,C F+不包含B; D F+=D,D F+不包含B; E F+=E,E F+不包含B; CD F+=CDA,CD F+不包含B;

数据库系统原理模拟题

号座 安阳工学院《数据库系统原理》课程试卷 A ?在系统运行过程中,对数据库的空间增长情况进行监控 2013 —— 2014 学年第一学期 题号-一- -二二三四五六总分 得分 阅卷人 B ?在系统运行过程中,对数据库系统各时段CPU和内存使用情况进行监控 C.建立关系表以后编写系统应用程序 D ?定期进行数据备份 3. R为4元关系R(A , B, C, D) , S为3元关系S(B, C, D),则S构成的结果集为题一 号线学 答 名姓要 ——不 封 级内 — 班线 — 封 密 业专密 — 兀关 系。 、填空题(每空1分,共10分) 1. 能够唯一标识实体的属性或属性组称为_____________ 。 2. 如果两个关系没有公共属性,则其自然联接操作与______________ 操作等价。 3. SQL中聚合函数“ COUNT (*)”的功能是______________ 。 4. 关系模式如果为1NF,则在对数据操作时存在的问题包括 ______________ 、删除异常、修 改异常。 5. 视图是一个虚表,它一经定义就可以和基本表一样被查询,但_______ 操作将有一 定的限制。 6. 在SQL的授权语句中的关键字PUBLIC表示_____________ 。 7. 若要求分解保持函数依赖,那么模式分解可以达到的范式级别是__________ 。 8. 数据库设计分为以下六个设计阶段:需求分析阶段、概念结构设计阶段、 、 数据库物理设计阶段、数据库实施阶段、数据库运行和维护阶段。 9. 当数据库被破坏后,如果事先保存了数据库副本和_____________ ,就有可能恢复数据库。 10. 多个事务执行的次序称为__________ 。 、单项选择题(每小题2分,共40分) 1 ?数据库的存储设备和存取方法变化不影响整体逻辑结构的特点,称为数据库的( ) A .实体独立性 B .物理数据独立性 C.客观独立性 D .逻辑数据独立性 2 .以下活动中,一般情况下不属于DBA任务的是 C. 7 4.学生社团可以接纳多名学生参加,但每个学生只能参加一个社团,从社团到学生之间 的联系类型是 A .多对多 B .一对多 C.多对一 D .一对一 5.—个关系中的候选关键字 A .至多一个 C.必须多个 6.下列哪些属性不适合建立索引 B .可多个 D .至少3个 A .经常出现在GROUP BY字句中的属性 B .经常参与连接操作的属性 C.经常出现在WHERE字句中的属性 D .经常需要进行更新操作的属性 7. SQL语言具有数据操作功能,SQL语言的一次查询的结果是一个 A .数据项 B .记录 C.元组 D .表 &在SQL语言中,用于测试列值非空的语句是 A . IS NOT EMPTY B . IS NOT NULL C. NOT UNIQUE D . NOT EXISTS

计算最小函数依赖集示例

计算最小函数依赖集示例 举例:已知关系模式R,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的最小函数依赖集。 解:利用算法求解,使得其满足三个条件 ①利用分解规则,将所有的函数依赖变成右边都是单个属性的函数依赖,得F为: F={AB→C,D→E,D→G,C→A,BE→C,BC→D,CG→B,CG→D,ACD→B,CE→A,CE →G} ②去掉F中多余的函数依赖。 A.设AB→C为冗余的函数依赖,则去掉AB→C,得: F1={D→E,D→G,C→A,BE→C,BC→D,CG→B,CG→D,ACD→B,CE→A,CE→G}计算(AB)F1+:设X(0)=AB 计算X(1):扫描F1中各个函数依赖,找到左部为AB或AB子集的函数依赖,因为找不到这样的函数依赖。故有X(1)=X(0)=AB,算法终止。 (AB)F1+= AB不包含C,故AB→C不是冗余的函数依赖,不能从F1中去掉。 B.设CG→B为冗余的函数依赖,则去掉CG→B,得: F2={AB→C,D→E,D→G,C→A,BE→C,BC→D,CG→D,ACD→B,CE→A,CE→G}计算(CG)F2+:设X(0)=CG 计算X(1):扫描F2中的各个函数依赖,找到左部为CG或CG子集的函数依赖,得到一个C→A函数依赖。故有X(1)=X(0)∪A=CGA=ACG。 计算X(2):扫描F2中的各个函数依赖,找到左部为ACG或ACG子集的函数依赖,得到一个CG→D函数依赖。故有X(2)=X(1)∪D=ACDG。 计算X(3):扫描F2中的各个函数依赖,找到左部为ACDG或ACDG子集的函数依赖,得到两个ACD→B和D→E函数依赖。故有X(3)=X(2)∪ BE=ABCDEG,因为X(3)=U,算法终止。 (CG)F2+=ABCDEG包含B,故CG→B是冗余的函数依赖,从F2中去掉。 C.设CG→D为冗余的函数依赖,则去掉CG→D,得: F3={AB→C,D→E,D→G,C→A,BE→C,BC→D,ACD→B,CE→A,CE→G}计算(CG)F3+:设X(0)=CG 计算X(1):扫描F3中的各个函数依赖,找到左部为CG或CG子集的函数依赖,得到一个C→A函数依赖。故有X(1)=X(0)∪A=CGA=ACG。 计算X(2):扫描F3中的各个函数依赖,找到左部为ACG或ACG子集的函数依赖,因为找不到这样的函数依赖。故有X(2)=X(1),算法终止。(CG)F3+=ACG。 (CG)F3+=ACG不包含D,故CG→D不是冗余的函数依赖,不能从F3中去掉。 D.设CE→A为冗余的函数依赖,则去掉CE→A,得: F4={AB→C,D→E,D→G,C→A,BE→C,BC→D,CG→D,ACD→B,CE→G}计算(CG)F4+:设X(0)=CE

数据库试题集(章)DOC

客观题 第1章绪论 1.数据库系统是采用了数据库技术的计算机系统,数据库系统由数据库、数据库管理系统、应用系统和()。 A.系统分析员 B.程序员 C.数据库管理员 D.操作员 2.数据库(DB),数据库系统(DBS)和数据库管理系统(DBMS)之间的关系是()。 A.DBS包括DB和DBMS B.DBMS包括DB和DBS C.DB包括DBS和DBMS D.DBS就是DB,也就是DBMS 3.下面列出的数据库管理技术发展的三个阶段中,没有专门的软件对数据进行管理的是()。I.人工管理阶段II.文件系统阶段III.数据库阶段 A.I 和II B.只有II C.II 和III D.只有I 4.下列四项中,不属于数据库系统特点的是()。

A.数据共享 B.数据完整性 C.数据冗余度高 D.数据独立性高 5.数据库系统的数据独立性体现在()。 A.不会因为数据的变化而影响到应用程序 B.不会因为数据存储结构与数据逻辑结构的变化而影响应用程序 C.不会因为存储策略的变化而影响存储结构 D.不会因为某些存储结构的变化而影响其他的存储结构 6.描述数据库全体数据的全局逻辑结构和特性的是()。 A.模式 B.内模式 C.外模式 D. 7.要保证数据库的数据独立性,需要修改的是()。 A.模式与外模式 B.模式与内模式 C.三级模式之间的两层映射 D.三层模式 8.要保证数据库的逻辑数据独立性,需要修改的是()。 A.模式与外模式之间的映射 B.模式与内模式之间的映射

D.三级模式 9.用户或应用程序看到的那部分局部逻辑结构和特征的描述是()模式。 A.模式 B.物理模式 C.子模式 D.内模式 10.下述()不是DBA数据库管理员的职责。 A.完整性约束说明 B.定义数据库模式 C.数据库安全 D.数据库管理系统设计 11.概念模型是现实世界的第一层抽象,这一类模型中最著名的模型是()。 A.层次模型 B.关系模型 C.网状模型 D.实体-关系模型 12.区分不同实体的依据是()。 A.名称 B.属性

数据库试题(2套)

数据库试题(一) 一、 单选题 (每小题 2 分,共 30 分) 1. 关系数据库中的码是指( )。(B )。 A .能唯一决定关系的字段 B .能唯一标识元组的属性或属性集合 C .不可改动的专用保留字 D .关键的很重要的字段 2. 下列模型中,采用表结构来表示数据及数据间联系的模型是( )。(C ) A.概念模型 B.网状模型 C.关系模型 D .层次模型 3. 数据库管理系统能实现对数据库中数据的查询、插入、和修改和删除,这类功能称为( )。 (C ) A. 数据定义功能 B. 数据管理功能 C. 数据操纵功能 D. 数据控制功能 4. 在关系模式R (A ,B ,C ,D )中,有函数依赖集F={B →C ,C →D ,D →A},则R 能达到( )。(B ) A. 1NF B.2NF C. 3NF D.以上三者都不行 5. 关系数据库管理系统应能实现的专门关系运算包括( )。(B ) A. 排序、索引、统计 B. 选择、投影、连接 C. 关联、更新、排序 D. 显示、打印、制表 6. ( )用来记录对数据库中数据进行的每一次更新操作。(C ) A .数据库 B .缓冲区 C .日志文件 D .后援副本 7. 关系模式中各级范式之间的关系为( )。(A ) A.321NF NF NF ?? B.312NF NF NF ?? C.123NF NF NF ?? D.213NF NF NF ?? 8. 并发操作会带来哪些数据不一致性( )。(D )。 A .丢失修改、不可重复读、读脏数据、死锁 B .不可重复读、读脏数据、死锁 C .丢失修改、读脏数据、死锁 D .丢失修改、不可重复读、读脏数据 9. 如图所示,两个关系R1和R2,它们进行( )运算后得到R3。(D ) A. 交 B. 并 C. 笛卡尔积 D. 连接 10. 关系数据库规范化是为解决关系数据库中( )问题而引入的。(A ) A. 插入异常、删除异常和数据冗余 B. 提高查询速度

求最小函数依赖集例题

基于闭包的求最小函数依赖集算法 定义:如果函数依赖集F满足下列条件,则称F为最小函数依赖集或最小覆盖。 ① F中的任何一个函数依赖的右部仅含有一个属性; ② F中不存在这样一个函数依赖X→A,使得F与F-{X→A}等价; ③ F中不存在这样一个函数依赖X→A,X有真子集Z使得F-{X→A}∪{Z→A}与F等价。 算法:计算最小函数依赖集。 输入一个函数依赖集 输出 F的一个等价的最小函数依赖集G 步骤:① 用分解的法则,使F中的任何一个函数依赖的右部仅含有一个属性; ② 去掉多余的函数依赖:从第一个函数依赖X→Y开始将其从F中去掉,然后在剩下的函数依赖中求X的闭包X+,看X+是否包含Y,若是,则去掉X→Y;否则不能去掉,依次做下去。直到找不到冗余的函数依赖; ③ 去掉各依赖左部多余的属性。一个一个地检查经过第②步去掉了多余依赖后的函数依赖左部非单个属性的依赖。例如XY→A,若要判Y为多余的,则以X→A代替XY→A是否等价?若A属于(X)+,则Y是多余属性,可以去掉。 注:以下题目中有些步骤(如判断左部单属性的依赖是否为多余依赖的步骤)作者嫌麻烦就省略掉了 例题1:已知关系模式R,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的最小函数依赖集。 解1:利用算法求解,使得其满足三个条件 ① 利用分解规则,将所有的函数依赖变成右边都是单个属性的函数依赖,得F为: F={AB→C,D→E,D→G,C→A,BE→C,BC→D,CG→B,CG→D,ACD→B,CE→A,CE→G}

② 去掉F中多余的函数依赖 A.设AB→C为冗余的函数依赖,则去掉AB→C,得: F1={D→E,D→G,C→A,BE→C,BC→D,CG→B,CG→D,ACD→B,CE→A,CE→G} 计算(AB)F1+:设X(0)=AB 计算X(1):扫描F1中各个函数依赖,找到左部为AB或AB子集的函数依赖,因为找不到这样的函数依赖。故有X(1)=X(0)=AB,算法终止。 (AB)F1+= AB不包含C,故AB→C不是冗余的函数依赖,不能从F1中去掉。 B.设CG→B为冗余的函数依赖,则去掉CG→B,得: F2={AB→C,D→E,D→G,C→A,BE→C,BC→D,CG→D,ACD→B,CE→A,CE→G} 计算(CG)F2+:设X(0)=CG 计算X(1):扫描F2中的各个函数依赖,找到左部为CG或CG子集的函数依赖,得到一个C→A函数依赖。故有X(1)=X(0)∪A=CGA=ACG。 计算X(2):扫描F2中的各个函数依赖,找到左部为ACG或ACG子集的函数依赖,得到一个CG→D函数依赖。故有X(2)=X(1)∪D=ACDG。 计算X(3):扫描F2中的各个函数依赖,找到左部为ACDG或ACDG子集的函数依赖,得到两个ACD→B和D→E函数依赖。故有X(3)=X(2)∪BE=ABCDEG,因为X(3)=U,算法终止。 (CG)F2+=ABCDEG包含B,故CG→B是冗余的函数依赖,从F2中去掉。 C.设CG→D为冗余的函数依赖,则去掉CG→D,得: F3={AB→C,D→E,D→G,C→A,BE→C,BC→D,ACD→B,CE→A,CE→G} 计算(CG)F3+:设X(0)=CG 计算X(1):扫描F3中的各个函数依赖,找到左部为CG或CG子集的函数依赖,得到一个C→A函数依赖。故有X(1)=X(0)∪A=CGA=ACG。 计算X(2):扫描F3中的各个函数依赖,找到左部为ACG或ACG子集的函数依赖,因为找不到这样的函数依赖。故有X(2)=X(1),算法终止。(CG)F3+=ACG。 (CG)F3+=ACG不包含D,故CG→D不是冗余的函数依赖,不能从F3中去掉。 D.设CE→A为冗余的函数依赖,则去掉CE→A,得: F4={AB→C,D→E,D→G,C→A,BE→C,BC→D,CG→D,ACD→B,CE→G}

(完整版)数据库系统概念题目及答案

1.为什么要研究关系规范化理论? 答关系数据库的设计直接影响着应用系统的开发、维护及其运行效率。一个不好的关系模式会导致插入异常、删除异常、数据冗余(修改异常)等问题。为此,人们提出了关系数据库规范化理论。它依据函数依赖,采用模式分解的方法,将一个低一级范式的关系模式转换为若干个高一级范式的关系模式的集合,从而消除各种异常,把不好的关系数据库模式转化为好的关系数据库模式。 2.理解并写出下列术语的含义。 函数依赖,平凡函数依赖,非平凡函数依赖, 1NF范式,BCNF范式,3NF范式,规范化,无损连接性,依赖保持性。 答: .函数依赖:设关系模式R(A 1,A 2 ,…,A n ),X,Y是R的两个属性集合, X?R(A 1,A 2 ,…,A n )及Y?R(A 1 ,A 2 ,…,A n ),R[X,Y]是关系只在属性XUY上的 投影,当任何时刻R[X,Y]中任意两个元组中的X属性值相同时,则它们的Y属性值也相同.那么称X函数决定Y,或Y函数依赖于X,记作X→Y。 .平凡函数依赖与非平凡函数依赖:当属性集合Y是属性集合X的子集时,则存在函数依赖X→Y。这说明一组属性函数决定它的所有子集。这种类型的函数依赖称为平凡函数依赖。如果X→Y且Y?X,则称X→Y是非平凡的函数依赖。 .1NF范式:定义;如果关系模式的所有属性的值域中每一个值都是不可再分解的值,则称只属于第一范式(1NF)。 lNF是关系模式的最低要求。这一限制是在关系的基本性质中提出的,每个关系模式都必须遵守。 .BCNF范式:定义:若关系模式R∈lNF且每个非主属性都完全函数依赖于R 的每个键,关系模式及属于第二范式(只E2NF)。 .3NF范式:定义: .规范化:把一个低一级范式的关系模式转换为若干个高一级范式的关系模式的集合的过程叫做规范化。 .范式:规范化理论认为,一个关系数据库中所有的关系,都应满足一定的要求,它把关系应满足的规范要求分成几级,并为每一级定义了相应的约束条件集,称为范式。 .无损连接性:设有关系模R(U)中存在函数依赖集F,R被分解为R1(U 1 ), …,R k (U k ),如果这些关系模式的自然连接与原关系模式R完全相等,则称该分 解具有无损连接性。 .依赖保持性:设有关系模式R(U)中存在函数依赖集F,R被分解加R 1(U 1 ), …,R k (U k ),且R i (U i )(1≤i≤k)所包含的函数依赖集为F i ,如果∪ 1 k F i 与F等 价,则称该分解具有依赖保持性。 3.什么叫关系模式分解?为什么要有关系模式分解?关系模式分解要遵守什么规则? 答:关系模式分解指采用投影的方式将一个关系模式R(U)分解为R 1(U 1 ),…, R k (U k ),其中不存在U i ?U j (1≤i,j≤k),并且U 1 ∪U 2 ∪…∪U k =U。关系模式分 解是规范化的主要手段,通过关系模式分解可以把一个低一级范式的关系模式分解为若干个高一级范式的关系模式的集合。关系模式分解应当具有无损连接性和依赖保持性。

损连接性又保持函数依赖的分解算法

求最小函数依赖集分三步: 1.将F中的所有依赖右边化为单一元素 此题fd={abd->e,ab->g,b->f,c->j,cj->i,g->h};已经满足 2.去掉F中的所有依赖左边的冗余属性. 作法是属性中去掉其中的一个,看看是否依然可以推导 此题:abd->e,去掉a,则(bd)+不含e,故不能去掉,同理b,d都不是冗余属性 ab->g,也没有 cj->i,因为c+={c,j,i}其中包含i所以j是冗余的.cj->i将成为c->i F={abd->e,ab->g,b->f,c->j,c->i,g->h}; 3.去掉F中所有冗余依赖关系. 做法为从F中去掉某关系,如去掉(X->Y),然后在F中求X+,如果Y在X+中,则表明x->是多余的.需要去掉. 此题如果F去掉abd->e,F将等于{ab->g,b->f,c->j,c->i,g->h},而(abd)+={a,d,b,f,g,h},其中不包含e.所有不是多余的. 同理(ab)+={a,b,f}也不包含g,故不是多余的. b+={b}不多余,c+={c,i}不多余 c->i,g->h多不能去掉. 所以所求最小函数依赖集为F={abd->e,ab->g,b->f,c->j,c->i,g->h}; 转换为3NF既具有无损连接性又保持函数依赖的分解算法: 第一步:首先用算法1求出R的保持函数依赖的3NF分解,设为q={R1,R2,…,Rk}(这步完成后分解已经是保持函数依赖,但不一定具有保持无损连接) 第二步:设X是R的码,求出p=q {R(X)} 第三步:若X是q中某个Ri的子集,则在p中去掉R(X) 第四步:得到的p就是最终结果 例题:R(S#,SN,P,C,S,Z) F={S#→SN,S#→P,S#→C,S#→S,S#→Z,{P,C,S}→Z,Z→P,Z→C} ?第一步:求出最小FD集:F={S# →SN, S# →P,S# →C, S#→S, {P,C,S→Z, Z →P,Z →C} // S# →Z冗余,FD:最小函数依赖 按具有相同左部分组:q={R1(S#,SN,P,C,S), R2(P,C,S,Z), R3(Z,P,C)} R3是R2的子集,所以去掉R3 q={R1(S#,SN,P,C,S), R2(P,C,S,Z)} ?第二步:R的主码为S#,于是p=q {R(X)}={R1(S#,SN,P,C,S), R2(P,C,S,Z), R(S#)} ?第三步:因为{S#}是R1的子集,所以从p中去掉R(S#) ?第四步:p ={R1(S#,SN,P,C,S), R2(P,C,S,Z)}即最终结果 判别一个分解的无损连接性 举例2:已知R,U={A,B,C,D,E},F={A→C,B→C,C→D,DE→C,CE→A},R的一个分解为R1(AD),R2(AB),R3(BE),R4(CDE),R5(AE),判断这个分解是否具有无损连接性。 解:用判断无损连接的算法来解。① 构造一个初始的二维表,若“属性”属于“模式”中的属性,则填a j,否则填b ij。 ② 根据A→C,对上表进行处理,由于属性列A上第1、2、5行相同均为a1,所以将属性列C上的b13、b23、b53改为同一个符号b13(取行号最小值)。 ③ 根据B→C,对上表进行处理,由于属性列B上第2、3行相同均为a2,所以将属性列C上的b13、b33改为同一个符号b13(取行号最小值)。 ④ 根据C→D,对上表进行处理,由于属性列C上第1、2、3、5行相同均为b13,所以将属性列D上的值均改为同一个符号a4。 ⑤ 根据DE→C,对上表进行处理,由于属性列DE上第3、4、5行相同均为a4a5,所以将属性列C上的值均改为同一个符号 a3。

相关文档