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

数据库最小函数依赖集

数据库最小函数依赖集
数据库最小函数依赖集

一、等价和覆盖

定义:关系模式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}

计算(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:利用Armstrong公理系统的推理规则求解①假设CG→B 为冗余的函数依赖,那么,从F中去掉它后能根据Armstrong公理系统的推理规则导出。

因为CG→D (已知)

所以CGA→AD,CGA→ACD (增广律)

因为ACD→B (已知)

所以CGA→B (传递律)

因为C→A (已知)

所以CG→B (伪传递律)

故CG→B是冗余的。

②同理可证:CE→A是多余的。

③又因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}

数据库考题

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}

数据库-部分函数依赖,传递函数依赖,完全函数依赖,三种范式的区别

数据库-部分函数依赖,传递函数依赖,完全函数依赖, 三种范式的区别 要讲清楚范式,就先讲讲几个名词的含义吧: 部分函数依赖:设X,Y是关系R的两个属性集合,存在X→Y,若X’是X的真子集,存在X’→Y,则称Y部分函数依赖于X。 举个例子:学生基本信息表R中(学号,身份证号,姓名)当然学号属性取值是唯一的,在R关系中,(学号,身份证号)->(姓名),(学号)->(姓名),(身份证号)->(姓名);所以姓名部分函数依赖与(学号,身份证号); 完全函数依赖:设X,Y是关系R的两个属性集合,X’是X的真子集,存在X→Y,但对每一个X’都有X’!→Y,则称Y完全函数依赖于X。例子:学生基本信息表R(学号,班级,姓名)假设不同的班级学号有相同的,班级内学号不能相同,在R关系中,(学号,班级)->(姓名),但是(学号)->(姓名)不成立,(班级)->(姓名)不成立,所以姓名完全函数依赖与(学号,班级); 传递函数依赖:设X,Y,Z是关系R中互不相同的属性集合,存在X→Y(Y !→X),Y→Z,则称Z传递函数依赖于X。 例子:在关系R(学号 ,宿舍, 费用)中,(学号)->(宿舍),宿舍!=学号,(宿舍)->(费用),费用!=宿舍,所以符合传递函数的要求;

在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。 所谓第一范式(1NF)是指数据库表的每一列(即每个属性)都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。简而言之,第一范式就是无重复的列。 2、第二范式(2NF) 第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被唯一地区分。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。员工信息表中加上了员工编号(emp_id)列,因为每个员工的员工编号是唯一的,因此每个员工可以被唯一区分。这个唯一属性列被称为主关键字或主键、主码。 第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。简而言之,第二范式就是非主属性依赖于主关键字。

函数依赖习题

1.设有关系模式W(C,P,S,G,T,R),其中各属性的含义是:C课程,P教师,S学生,G成绩,T时间,R 教室,根据定义有如下数据依赖集 D={C→G,(S,C)→G,(T,R)→C,(T,P)→R,(T,S)→R}关系模式W的一个关键字是__,W的规范化程度最高达到__()。 A、(S,C),1NF B、(T,R),3NF C、(T,P),4NF D、(T,S),2NF 2.对于关系R,第三范式是R中的每个非主属性应满足() A、与主关键字存在单值依赖关系 B、与主关键字存在多值依赖关系 C、函数传递依赖主关键字 D、非函数传递依赖主关键字 3.在一个关系R中,若每个数据项都是不可分割的,那么关系R一定属于() A、BCNF B、1NF C、2NF D、3NF 4.根据关系数据库规范化理论,关系数据库中的关系要满足第一范式,下面“部门”关系中,因哪个属性而使它不满足第一范式() 部门(部门号,部门名,部门成员,部门总经理) A、部门总经理 B、部门成员 C、部门名 D、部门号 5.下列关于规范化理论各项中正确的是() A、对于一个关系模式来说,规范化越深越好 B、满足二级范式的关系模式一定满足一级范式 C、一级范式要求一非主码属性完全函数依赖关键字 D、规范化一般是通过分解各个关系模式实现的,但有时也有合并 6.规范化理论是关系数据库进行逻辑设计的理论依据。根据这个理论,关系数据库中的关系必须满足其每一属性都是() A、互不相关的 B、不可分解的 C、长度可变的 D、互相关联的 7.在关系模式R(U,F)中,如果F是最小函数依赖集,则() A、R∈2NF B、R∈3NF C、R∈BCNF D、R的规范化程度与F是否最小函数依赖集无关 8.在关系模式R(U,F)中,R中任何非主属性对键完全函数依赖是R∈3NF的() A、充分必要条件 B、必要条件 C、充分条件 D、既不充分也不必要条件 9在二元关系模式R(U,F)中,X,Y都是单一属性,如果X→Y,则R最高可以达到()A、2NF B、3NF C、BCNF D、4NF

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

一、单选题(在每小题的空括号内填写上正确选项的字母,每小题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};

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

数据库原理试题及答案 一、单项选择题(本大题共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;

第六章 函数依赖

朱彦荣 20132184 软件工程2 第六章作业 一. 简答题 1.数据依赖的分类? 函数依赖,多值依赖,连接依赖 2.关系模式可能存在的4个问题? 插入异常、删除异常、冗余、更新异常 3.函数依赖的分类? 平凡函数依赖、非平凡函数依赖、完全函数依赖、部分函数依赖、传递函数依赖 4.函数依赖范畴内的4个范式? 第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、BCNF范式 5.3NF关系模式存在异常的可能原因? 仍可能出现插入异常、删除异常、冗余和更新异常。原因是:还可能存在主属性部分函数依赖于键。 6.关系模式规范化的方法? 首先要保证属性的原子性,即至少为1NF,然后由1NF到2NF是消除非主属性对键的部分函数依赖,2NF到3NF是消除非主属性对键的传递函数依赖。3NF到BCNF是消除主属性对键的部分函数依赖和传递函数依赖,一般来说到这里就可以了。然后,有BCNF范式到4NF范式消除非平凡且非函数依赖的多值依赖,最后由4NF到5NF是消除不是候选键所蕴含的连接依赖。 7.如果X和Y之间是1:n的联系,则X和Y之间的函数关系是谁决定谁?如果是1:1和 m:n呢? 若X:Y=1:N,则N方决定1方,即Y->X 若X:Y=1:1,则X->Y且Y->X,即X<->Y,X和Y等价 若X:Y=M:N,则不能相互决定 二.设有关系模式:R(Sid,Sname,Cid,Cname,Score,Tid),其中:Sid、Sname、Cid、Cname、Score、Tid分别表示学号、学生姓名、课程编号、课程名、成绩、教师编号,并有如下语义要求: ●课程与教师间的联系为1:1; ●学生与课程间的联系为m:n; ●一名学生只能有一个学号,且学号唯一; ●一门课程只能有一个课程号,且课程号唯一。 请完成:

函数依赖

函数依赖 2.1、属性间的联系 实体间的联系有两类:一类是实体与实体之间的联系;另一类是实体内部各属性间的联系。 属性间的联系可分为以下三类: (1)一对一联系(1∶1) 以职工模式为例:职工(职工号,姓名,职称,部门)。如果该企业(或单位)中职工无重名,则属性职工号与姓名之间是1∶1联系。一个职工号唯一地决定一个姓名,一个姓名也可决定唯一的职工号。 设X、Y是关系R的两个属性(集)。如果对于X中的任一具体值,Y中至多有一个值与之对应,且反之亦然,则称X、Y两属性间是一对一联系。 (2)一对多联系(1∶ m) 在职工模式中,职工号和职称间是一对多联系。一个职工号只对应一种职称(如胡一民只能对应工程师),但一种职称却可对应多个职工号(如工程师可对应多名职工)。 设X、Y是关系R的两个属性(集)。如果对于X中的任一具体值,Y中至多有一个值与之对应,而Y中的一个值却可以和X中的n个值相对应,则称Y对X是一对多联系。 (3)多对多联系(m∶ m) 在职工模式中,职称和部门之间是多对多联系。一种职称可分布在多个部门中(如每一个部门中均可有工程师),而一个部门中也可有多个职称。 设X、Y是关系R的两个属性(集)。如果对于X中的任一具体值,Y中有m个值与之对应,而Y中的一个值也可以和X中的n个值相对应,则称Y对X是多对多联系。 上述属性间的三种联系实际上是属性值之间相互依赖又相互制约的反映,称为属性间的数据依赖。 数据依赖共有三种:函数依赖(FunctionalDependency,简称FD)、多值依赖 (Multiva-luedDependency,简称MVD)和连接依赖(JoinDependency,简称JD),其中最重要的是函数依赖和多值依赖。 2.2、函数依赖 函数依赖是属性之间的一种联系。假设给定一个属性的值,就可以唯一确定(查到)另一个属性的值。 定义:所谓函数依赖是指在关系R中,X、Y为R的两个属性或属性组,如果对于R的任一关系r都存在:对于X的每一个具体值,Y 都只有一个具体值与之对应,则称属性Y函数依赖于属性X。或者说,属性X函数决定属性Y,记作X->Y。其中X叫决定因素,Y叫被决定因素。当Y是X的子集时,称为平凡函数依赖。由于平凡函数依赖总是成立的,因此,若不作特殊声明,本书后面提到的函数依赖,都不包含平凡函数依赖。 此定义可简单表述为:如果属性X的值决定属性Y的值,那么属性Y函数依赖于属性X。 前面讨论的属性间的三种联系,并不是每一种联系中都存在函数依赖。

数据库系统原理模拟题

号座 安阳工学院《数据库系统原理》课程试卷 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

数据库函数依赖

数据库函数依赖 一、函数依赖(Functional Dependency)的概念 数据依赖的一种,它反映属性或属性组之间相依存,互相制约的关系,即反映现实世界的约束关系。 二、定义 设R(U)是属性U上的一个关系模式,X和Y均为U={A1,A2,…,An}的子集,r为R的任一关系,如果对于r中的任意两个元组u,v,只要有u[X]=v[X],就有u[Y]=v[Y],则称X函数决定Y,或称Y函数依赖于X,记为X→Y。 例: (sno-学生ID,tno-教师ID,cno-课程ID,sname-学生姓名,tname-教师姓名,cname-课程名称,grade-成绩) 1、sno→sname, cno→cname,(sno,cno)→grade √ 2、sname→sno, tno→cno, sno→tname × 三、函数依赖是语义范畴 1、语义:数据所反映的现实世界事物本质联系 2、根据语义来确定函数依赖性的存在与否 3、函数依赖反映属性之间的一般规律,必须在关系模式下的任一个关系r中都满足约束条件。 四、属性间的联系决定函数依赖关系 设X、Y均是U的子集 1、X和Y间联系是1:1,则X→Y,Y→X。(相互依赖,可记作X←→Y) 2、X和Y间联系是M:1(M),则X→Y。 3、X和Y间联系是M:N(M,N),则X、Y间不存在函数依赖。 五、完全函数依赖和部分函数依赖 1、函数依赖分为完全函数依赖和部分函数依赖 2、定义: 在R(U)中,如果X→Y,并且对于X的任何真子集X'都有X'Y',则称Y完全依赖于X,记作X→Y;否则,如果X→Y,且X中存在一个真子集X',使得X'→Y成立,则称Y部分依赖于X。 例: 学生ID,学生姓名,所修课程ID,课程名称,成绩 (学生ID,所修课程ID)→成绩 成绩既不能单独依赖于学生ID,也不能单独依赖于所修课程ID,因此成绩完全函数依赖于关键字。 (学生ID,所修课程ID)→学生姓名 学生ID→学生姓名 学生姓名可以依赖于关键字的一个主属性——学生ID,因此学生姓名部分函数依赖于(学生ID,所修课程ID)。 六、平凡函数依赖和非平凡函数依赖 设X,Y均为某关系上的属性集,且X→Y 1)若Y包含于X,则称X→Y为:平凡函数依赖;(Sno, Cno) →Sno (Sno, Cno) →Cno 2)若Y不包含于X,则称X→Y为:非平凡函数依赖。(Sno, Cno) →Grade Y包含于X内,W于X相交,与Y无直接交集。 则:X→Y为平凡函数依赖

数据库简答题 (3)

第一章 3、简述数据库系统的三级模式和两级映像的含义。 答:从数据库管理系统的角度看,数据库系统的结构通常分为三级模式的总体结构,在这种模式下,形成了二级映像,实现了数据的独立性。其中三级模式结构指的是外模式、模式和内模式,二级映像指的是外模式/模式映像、模式/内模式映像。 模式也称逻辑模式和概念模式,是数据库中全体数据逻辑结构和特征的描述,描述现实世界中的实体及其性质与联系,是所有用户的公共数据视图;外模式也称子模式或用户模式,它是用以描述用户看到或使用的数据的局部逻辑结构和特性的,用户根据外模式用数据操作语句或应用程序去操作数据库中的数据;内模式也称存储模式,是整个数据库的最底层表示,它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。 对于外模式/模式映像,当模式改变时,相应的外模式/模式映像作相应的改变,以使外模式保持不变,而应用程序是依据数据的外模式来编写的,外模式不变,应用程序就没必要修改,这保证了数据与程序的逻辑独立性。对于模式/内模式映像,当数据库的存储结构变了,模式/内模式映像会作相应的改变,以使模式保持不变,而模式不变,与模式没有直接联系的应用程序也不会改变,这保证了数据与程序的物理独立性。 5、数据库管理系统的主要功能有哪些? 答:⑴、数据定义功能; ⑵、数据操纵功能; ⑶、数据组织、存取功能; ⑷、数据库运行管理功能; ⑸、数据库建立与维护功能 第五章 1、解释下列术语的含义: 函数依赖、平凡函数依赖、非平凡函数依赖、部分函数依赖、完全函数依赖、传递函数依赖、1NF、2NF、3NF、BCNF、多值依赖、4NF、最小函数依赖、函数依赖保持性、无损连接性。 ①、函数依赖:设R(U)是属性集U上的一个关系模式,X、Y是U的子集。若对于R(U)上的任意一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同,而在Y上的属性值不同,则称“X函数决定Y”或“Y函数依赖X”,记作X→Y。 ②、平凡函数依赖:设R(U)是属性集U上的一个关系模式,X、Y是U的子集。若Y是X的子集,则称X→Y为平凡函数依赖。 ③、非平凡函数依赖:设R(U)是属性集U上的一个关系模式,X、Y是U的子集。如果X→Y,且Y?X,则称X→Y为非平凡函数依赖。 ④、部分函数依赖:如果X→Y,但不完全函数依赖于X,则称Y对X部分函数依赖。 ⑤、完全函数依赖:在R(U)中,如果X→Y,并且对于X的任何一个真子集X’,都有Y函数不依赖于X’,则称Y完全函数依赖于X。 ⑥、传递函数依赖:在R(U)中,如果X→Y ,Y→Z,且Y?X,X也不函数依赖于Y,则称Z传递函数依赖于X。 ⑦、1NF:如果关系模式R的所有属性均为简单属性,即每个属性都是不可再分的,则称R属于第一范式。 ⑧、2NF:如果关系模式R∈1NF,且每个非主属性都完全依赖于R的码,则称R属于第二范式。

计算最小函数依赖集示例

计算最小函数依赖集示例 举例:已知关系模式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.属性

函数依赖(理论及举例)

函数依赖(理论及举例) 教你如何理解函数依赖 一、函数依赖的概念 函数依赖:函数依赖就是讨论一个数据表(关系)中属性值之间所存在的函数关系。函数是一种数学中的概念,被引入到数据库中对数据的联系进行分析。 在一个关系中,属性相当于数学上的变量,属性的域相当于变量的取值范围,属性在一个元组上的取值相当于属性变量的当前值。 例如:在下面的这个职工关系中,职工号、姓名、性别、年龄、职务等属性都相当于变量;职工号属性的域,即四位十进制数字,就是取值范围,性别属性的域:{男、女},就是性别属性的取值范围。此关系中包含有6个元组,如第2个元组为{3051、刘平、男、48、副处},其中的每个属性值都是对应属性在该元组上的当前值。 单值函数和多值函数:元组中一个属性或一些属性值对另一个属性值的影响相当于自变量值对函数值的影响。当给定一个自变量值能求出唯一的一个函数值时,称此为单值函数或单映射函数,否则为多值函数。在单值函数中由自变量的一个值确定函数的一个值,但不同的自变量值允许具有相同的函数值。如f(x)=2x, f(n)=(-1)^n, f(x)=x^3+1等都是单值函数,由自变量x或n的值能够唯一确定f(x)或f(n)的值。

属性的单值函数决定(依赖):在一个关系中,若一个或一组属性的值对另一个或一组属性值起到决定性的作用,则称为单值函数决定(依赖)。如上表中职工号的值就能够函数决定其余每个属性的值,也就是说,当职工号给定后,其他每个属性的值就跟着唯一地确定了。如假定职工号为3074,则他的姓名必定是王海,性别必定为男,年龄必定为32岁,职务必定为正科。这就叫做职工号能够分别单值函数决定姓名、性别和年龄属性,反过来,可以说姓名、性别和年龄等属性单值函数依赖于职工号属性。 二、函数依赖的定义 定义:设一个关系为R(U),X和Y为属性集U上的子集,若对于X上的每个值都有Y上的一个唯一值与之对应,则称X和Y具有函数依赖关系,并称X 函数决定Y,或称Y函数依赖于X,记作X→Y,称X为决定因素。 例如:设一个职工关系为(职工号,姓名,性别,年龄,职务),职工号用来标识每个职工,选作为该关系的主码。对于该关系中每个职工的职工号,都对应着姓名属性中的唯一值,即该职工的姓名,或者说一个职工的姓名由其职工号唯一确定,所以称职工号函数决定姓名,或称姓名函数依赖于职工号,记作“职工号→姓名”,职工号为该函数依赖的决定因素。同理,当一名职工的职工号被确定之后,它所对应的性别、年龄、职务等属性值就被唯一确定下来了,所以职工号函数决定性别、年龄、职务等描述职工特征的每个属性,可以分别记作为“职工号→性别”、“职工号→年龄”、“职工号→职务”。 在该关系中除职工号外,其他属性都不能成为决定因素形成函数依赖,因为对于它们的每个属性值,都可能对应另一属性的多个不同的取值。如对于性别属性的一个取值“男”就会对应多个而不是一个职工号,此不是单值函数依赖,而是多值函数依赖,所以不能由性别来决定职工号。 相互函数依赖:在这个职工关系中,若规定不允许职工有重名,则姓名也能够唯一标识一个元组,这样姓名也能够函数确定其他每个属性,此时职工号和姓名在取值上一一对应,相互成为决定因素,即构成相互函数依赖,记作为“职工号←→姓名”。但通常是允许职工重名的,因为不应该让已经重名的职工重新起名,这样姓名就不能成为关系的候选码,就不能函数决定其他任何属性。 若一个关系中的属性子集X不能函数决定另一个属性子集Y,则记作X Y,读作X不能函数决定Y,或Y不能函数依赖于X。

相关文档