函数依赖集等价和最小集关于
- 格式:doc
- 大小:72.50 KB
- 文档页数:2
函数依赖集这里,我想从函数依赖性质谈起。
从函数依赖的定义我们可以知道,一个函数在A上有依赖关系的话,那么它在B上也必定有依赖关系,就像两个多面体的棱互相依靠一样。
如果把这种函数依赖的现象叫做函数依赖性质的话,我认为是恰当不过的了。
但我要纠正一下,函数依赖性质并不是说函数具有依赖性质就叫函数依赖性质,函数依赖性质也不能保证函数在其他集合上也存在依赖性质,只能说明函数在A和B上都有依赖关系。
考虑一个由三元组构成的集合,其中每一个元素分别是三个函数的定义域,则该集合是否满足函数依赖呢?我们来看看下面的集合:①=0;② =1;③=2;④=3。
那么,以上四个集合中的函数是否满足函数依赖呢?我们来看看下面的集合:①=1;②=2;③=4;④=5。
那么,以上四个集合中的函数是否满足函数依赖呢?答案肯定是否定的。
因为函数依赖性质并不是说函数在其他集合上也存在依赖性质,而仅仅是说函数在这两个集合上都有依赖性质。
上面两个集合中的函数虽然在第三个集合中满足函数依赖性质,但是却在第二个集合中不满足函数依赖性质。
我认为,函数依赖性质应该指出在这些集合中某个集合中的函数,必须满足这个集合中的函数才能满足函数依赖性质。
也就是说,函数依赖性质是指出在A和B中都有函数依赖关系的时候,一定在A中和B中都存在这个函数依赖关系,并不需要再去说明这个函数在A和B上都有依赖性质。
(1)(3)(一)。
在A中的满足函数依赖性质的数有4个:x=x^3;y=y^3;z=z^3;则它们分别在A的四个象限中。
例:两个函数a、 b,若a可导则b也可导,如果a和b分别可导且分别连续,那么一定也可导,这种函数称为无穷依赖;如果a和b同时可导,则称a和b为无穷连续,如果a和b可导且不连续,那么称a和b为无穷间断。
其实函数依赖的重点不在于有无依赖性,而在于函数在依赖的集合中是否存在。
对于这样的集合,可以用排除法。
可以用函数a-1=1代入集合:(2)(1)。
得到函数y=1^3, x=0;可以用函数b-1=-2代入集合:(3)(1)。
一、选择题1. 数据独立性是数据库技术的重要特点之一,所谓数据独立性是指(D )。
A )数据与程序独立存放B )不同的数据被存放在不同的文件中C )不同的数据只能被队友的应用程序所使用D )以上三种说法都不对2. 在数据库管理系统提供的数据语言中,负责数据的模式定义和数据的物理存取构建的是(A )。
A )数据定义语言B )数据转换语言C )数据操纵语言D )数据控制语言3. 数据库系统的三级模式结构中,下列不属于三级模式的是(B )。
A )内模式B )抽象模式C )外模式D )概念模式4. 下列叙述中,错误的是(C )。
A )数据库技术的根本目标是要解决数据共享的问题B )数据库设计是指设计一个能满足用户要求,性能良好的数据库C )数据库系统中,数据的物理结构必须与逻辑结构一致D )数据库系统是一个独立的系统,但是需要操作系统的支持5. 在数据库管理系统提供的数据语言中,负责数据的查询及增、删、改等操作的是(D )。
A ) 数据定义语言B )数据转换语言C )数据控制语言D )数据操纵语言1 关系数据库管理系统能实现的专门关系运算包括 (B )。
A )排序、索引、统计B )选取、投影、连接C )关联、更新、排序D )显示、打印、制表2、设有一个学生档案的关系数据库,关系模式是:S (SNo ,SN ,Sex ,Age ),其中 Sno ,SN ,Sex ,Age 分别表示学生的学号、姓名、性别、年龄。
则“从学生档案数据库中检索学生年龄大于20岁的学生的姓名”的关系代数式是 (B )。
A ))()(20Age SN S ∏>σ B ))()(20Age SN S σ>∏ C ))()(20A ge SN S ∏∏> D ))()(20Age SN S σσ> 3、在关系模型中,以下有关关系键的描述正确的是(C )。
A )可以由任意多个属性组成B )至多由一个属性组成C )由一个或多个属性组成,其值能唯一标识关系中的一个元组D ) 以上都不对4、一个关系数据库文件中的各条记录 ( B )。
习题1——数据库系统基本概念1.1名词解释DB——DB是长期存储在计算机内、有组织的、统一管理的相关数据的集合。
DB能为各种用户共享,具有较小冗余度、数据间联系紧密而又有较高的数据独立性等特点。
DBMS——是位于用户与操作系统之间的一层数据管理软件,它为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。
DBS——是实现有组织地、动态地存储大量关联数据、方便多用户访问的计算机硬件、软件和数据资源组成的系统,即它是采用数据库技术的计算机系统。
联系——是实体间的相互关系。
联系的元数——与一个联系有关的实体集个数。
1:1联系——如果实体集E1中每个实体至多和实体集E2中一个实体有联系,反之亦然,那么实体集E1和E2的联系称为“一对一联系”,记为“1:1”。
1:N联系——如果实体集E1中的每个实体可以与实体集E2中的任意个(0个或多个)实体有联系,而E2中的每个实体至多和E1中的一个实体有联系,那么称E1对E2的联系是一对多联系,记作:“1:N ”。
M:N联系——如果实体集E1中的每个实体可以与实体集E2中的任意个(0个或多个)实体有联系,反之亦然,那么称E1和E2的联系是“多对多联系”,记作“M:N”。
数据模型——在数据库技术中,我们用数据模型的概念描述数据库的结构和语义,对现实世界的数据进行抽象。
根据数据抽象级别定义了四种模型:概念数据模型、逻辑数据模型、外部数据模型和内部数据模型。
概念模型——表达用户需求观点的数据全局逻辑结构的模型。
逻辑模型——表达计算机实现观点的DB全局逻辑结构的模型。
主要有层次、网状、关系模型等三种。
外部模型——表达用户使用观点的DB局部逻辑结构的模型。
内部模型——表达DB物理结构的模型。
层次模型——用树型(层次)结构表示实体类型及实体间联系的数据模型。
网状模型——用有向图结构表示实体类型及实体间联系的数据模型。
关系模型——是由若干个关系模式组成的集合。
数据库常用名词解释(3)数据库常用名词解释◆基本表:在SQL中,把传统的关系模型中的关系模式称为基本表(Base Table),基本表是本身独立的表,一个关系就对应一个基本表。
◆存储文件:在◆ 视图:在SQL中,把传统的关系模型中的存储模式称为存储文件(Stored File)。
SQL中,把传统的关系模型中的子模式称为视图(View),视图是从一个或多个基本表导出的表。
◆行:在◆列:在SQL中,把传统的关系模型中的元组称为行(row)。
SQL 中,把传统的关系模型中的属性称为列(column)。
◆实表:基本表就被称为实表,它是实际存放在数据库中的表。
◆虚表:视图就被称为虚表,因为在数据库中只存储视图的定义而不存放视图所对应的数据。
◆相关子查询:在嵌套查询中,内层查询称为‘相关子查询’,子查询中查询条件依赖于外层查询中的某个值,所以子查询的处理不只一次,要反复求值,以供外层查询使用。
◆联接查询:查询时先对表进行笛卡尔积操作,然后再做等值联接、选择、投影等操作。
联接查询的效率比嵌套查询低。
◆交互式◆ 嵌入式SQL:在终端交互方式下使用的SQL语言称为交互式SQL。
SQL:嵌入在高级语言的程序中使用的SQL语言称为嵌入式SQL。
SQL语句中引用宿主语言的程序变量称为共享变量。
◆共享变量:在嵌入的◆游标:游标是与某一查询结果相联系的符号名,用于把集合操作转换成单记录处理方式。
◆ 卷游标:卷游标在推进时不但能沿查询结果中元组顺序从头到尾一行行推进,也能一行行返回(而游标是不能返回的)。
◆函数依赖:FD(function dependency),设有关系模式R(U),X,Y是U的子集,r是R的任一具体关系,如果对r的任意两个元组t1,t2,由t1[X]=t2[X]导致t1[Y]=t2[Y],则称X函数决定Y,或Y函数依赖于X,记为X→Y。
X→Y为模式R的一个函数依赖。
◆函数依赖的逻辑蕴涵:设F是关系模式R的一个函数依赖集,X,Y是R的属性子集,如果从F中的函数依赖能够推出X→Y,则称F逻辑蕴涵X→Y,记为F|=X→Y。
例1:设有关系模式R(A,B,C,D,E),其上的函数依赖集:F= {A→BC,CD→E,B→D,E→A}计算B+和CD+解B+ = BDCD+ = ABCDE例2:设有依赖集F={AB→C, C→A, BC→D,ACD→B,D→EG,BE→C,CG→BD,CE→AG} 计算最小等价依赖集。
解:(1). 右边属性单一化F1= {AB→C BE→CC→A CG→BBC→D CG→DACD→B CE→AD→E CE→GD→G }(2).去掉F1中的左部多余属性F2= {AB→C BE→CC→A CG→BBC→D CG→DCD→B CE→GD→ED→G }(3). 去掉F2中的多余的依赖F3= {AB→C BE→CC→A CG→DBC→D CE→GCD→BD→ED→G }或者F3= {AB→C BE→CC→A CG→BBC→D CE→GD→ED→G }侯选码求解理论和算法(两种情况)(F min)对于给定的关系R和函数依赖集F,可将其属性分为4类:L类:仅出现在F min的函数依赖左部的属性;R类:仅出现在F min的函数依赖右部的属性;N类:在F min中函数依赖的左右两边均未出现的属性;LR类:在F min中函数依赖的左右两边均出现过的属性;定理:对于给定的关系模式R及其函数依赖集F,若X是L和N类属性,则X 必为R的任一候选码的成员。
算法1:单属性依赖集图论求解法。
(1).求F的最小依赖集F min;(2).构造函数依赖图;(3).从图中找出关键属性集X(L、N类属性);(4).查看图中有无独立回路,若无,则输出X即为R的唯一候选码,转6;若有,则转5;(5).从各独立回路中各取一结点对应的属性与X组合成一候选码,并重复这一过程,取尽可能所有的组合,即为R的全部候选码。
(6).结束。
例3:设有R=(O, B, I, S, Q, D), F={S→D, D→S, I→B, B→I, B→O, O→B, I→O }, 求R的所有候选码。
数据库常用名词解释◆DB:数据库(Database), DB是统一管理的相关数据的集合。
DB能为各种用户共享,具有最小冗余度,数据间联系密切,而又有较高的数据独立性。
◆超键:在关系中能唯一标识元组的属性集称为关系模式的超键。
(注意,超键是一个属性集)◆候选键:不含有多余属性的超键称为候选键。
◆主键:用户选作元组标识的一个候选键为主键。
◆外键:某个关系的主键相应的属性在另一关系中出现,此时该主键在就是另一关系的外键,如有两个关系S和SC,其中S#是关系S的主键,相应的属性S#在关系SC中也出现,此时S#就是关系SC的外键。
◆实体完整性规则:这条规则要求关系中元组在组成主键的属性上不能有空值。
如果出现空值,那么主键值就起不了唯一标识元组的作用。
◆参照完整性规则:这条规则要求“不引用不存在的实体”。
其形式定义如下:如果属性集K是关系模式R1的主键,K也是关系模式R2的外键,那么R2的关系中,K的取值只允许有两种可能,或者为空值,或者等于R1关系中某个主键值。
这条规则在使用时有三点应注意:1) 外键和相应的主键可以不同名,只要定义在相同值域上即可。
2) R1和R2也可以是同一个关系模式,表示了属性之间的联系。
3) 外键值是否允许空应视具体问题而定。
◆过程性语言:在编程时必须给出获得结果的操作步骤,即“干什么”和“怎么干”。
如Pascal和C语言等。
◆非过程性语言:编程时只须指出需要什么信息,不必组出具体的操作步骤的语言,各种关系查询语言均属于非过程性语言。
◆无限关系:当一个关系中存在无穷多个元组时,此关系为无限关系。
如元组表达式{t|┐R(t)}表示所有不在关系R中的元组的集合,这是一个无限关系。
◆无穷验证:在验证公式时需对无穷多个元组进行验证就是无穷验证。
如验证公式(∨u)(P(u))的真假时需对所有的元组u进行验证,这是一个无穷验证的问题。
◆DBMS:数据库管理系统(Database Management System), DBMS是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。
数据库原理单选题:1.DOS中“脱机存储器”是指:光盘和磁带2.在DBS中,DBMS和OS之间的关系是:DBMS调用OS3.在数据库方式下,信息处理中占据中心位置的是:数据4.DB的三级模式之间应满足:可以差别很大5.在DBS中,“数据独立性”和“数据联系”这两个概念之间的联系是:没有必然的联系6.DB的三级模式结构中最接近用户的是:外模式7.对DB中数据的操作分成两大类:查询和更新8.文件系统与数据系统的最大区别是:数据结构化9.设计数据库时首先应该设计:数据库的概念结构10.数据库需求分析时,数据字典的含义是:数据库中所涉及的数据流、数据项和文件等描述的集合11.下列不属于需求分析阶段工作的是:建立ER图12.数据流图是在数据库()阶段完成:需求分析13.ER图是数据库设计的工具之一,它适用于建立数据库的:概念模型14.一个M:N:P:联系可以转换成()个关系模型: 115.关系模式规范化设计是为解决关系数据库中的()问题而引入的:A:数据冗余和操作异常16.在关系模式R中,函数依赖X→Y语义B:在R 的每一关系中,若两个元组的X值相等,则Y值也相等17.如果X→Y和WY→Z成立,那么WX→Z成立。
这条规则称为:伪传递性18.在最小依赖集F中,下面叙述不正确的是:B:F 中每个FD的左部都是单属性19.设有关系模型R(A,B,C,D),F是R上成立的FD 集,F={AB→C,D→A},则属性集(CD)的闭包(CD)+为:B:ACD20.关系模式中各级范式之间的关系为:A:3NF∝2NF∝1NF21.能够消除多值依赖引起的冗余是:C:4NF22.若关系R的候选键都是有单属性构成的,则R 的最高范式必定是:B:2NF23.关系模范化实质是围绕()进行的B:函数依赖24.关系模范化过程中,消除了()依赖后,1NF变成了3NF:A:部分函数依赖和传递函数依赖25.在关系中,“元数”是指:D:属性个数26.下面哪种运算是单目运算:C:投影27.在域关系演算中,域变量的变化范围是:B某个域值28.设关系R,S,W各有10个元组,那么这两个关系的自然连接的元组个数为:B:3029.设关系R和S的结构相同,且各有10个元组,那么这两个关系的并操纵结果的元组个数为:D:小于等于20 30.如果两个关系没有公共属性,那么其自然连接操纵:A:转化为笛卡儿积操纵31.自然连接是构成新关系的有效方法,一般情况下,当对关系R和S使用自然连接时,要求R和S含有一个或多个共有的:D:属性32.在关系代数表达式的查询优化中,不正确的叙述是:A:尽可能早地执行连接33.在SQL中,用户可以直接操作的是:D:基本表和视图34.在SQL中,外模式一级数据结构的基本单位是:C:视图35.在SELECT语句中,需对分组情况满足的条件进行判断时应该使用:D:HAVING36.下列SQL语句中,用来修改表结构的是:A:ALTER37.SQL中,谓词EXISTS可用来测试一个集合是否:C:为非空集合38.允许在嵌入的SQl语句中,引用主语言的程序变量,在引用时:C:这些变量前必须加符号“:”39.SQL语言具有两种使用方式,分别称为交互式SQL和:C:嵌入式SQL40.用()命令可建立唯一索引:D:CREATE UNIQUE INDEX42.“日志“文件用于保存:B:数据操作41.事务的并发执行不会破坏DB的完整性,这个性质称为事务的:D:原子性43.在DB恢复时,对已经COMMIT但更新未写入磁盘的事务执行:A:REDO处理44.在DB技术中,“脏数据“是指:D:未提交随后又被撤销的数据45.如果有n个事务串行调度,那么不同的有效调度有:D:n!46.“断言“是DBS采用的:A:完整性措施47.事务的执行次序称为:C:调度48.解决并发操作带来的数据不一致性问题是普遍采用的技术是:A:封锁49.在SQL Server2000 所提供的服务中,最核心的部分是:A:MS SQL Server50.SQL Server2000的哪个子目录用来存放备份文件:B:\Backup51.下列哪个关键字不能用来激活触发器:D:Select52.T—SQL中默认的批处理分隔符是:A:go53.一个工作空间中可以建立多个目标,一个目标对应一个扩展名为()的文件:B:.pbt54.在PB中,为开发人员提供关于工作空间的活动状态视图的是:B:系统树窗口55.PB中,设置焦点的函数是:C:setFoucus() 56.下面几种不是数据库应用系统开发工具的是:D:Flash MX填空题:1.文件系统中的数据独立性是指(设备)独立性2.DBMS是位于(用户)和(OS)之间的一层数据管理软件3.数据库的三级模式结构是对(数据)的三个抽象级别4.DBS中存放三级结构定义的DB称为(数据字典(DD))5.DBS的全局结构体现了其(模块功能)结构6.ER数据模型一般在数据库设计的(概念设计)阶段使用7.数据库应用系统设计中逻辑设计的主要内容是吧ER模型的(实体)和(联系)转换为关系模式8.ER方法是设计(概念数据模型)的方法9.现实世界到机器世界过渡的中间层次是(概念模型)10.在DBD中子类具有一个很重要的性质(继承性)11.DBS的维护工作由(DBA)承担12.关系模式的操作异常问题往往是由(数据冗余)引起的13.若关系模式R中没有非主属性,关系模式R∝(3NF)范式14.关系模范化过程的实质是(对关系模式不对分解的过程)15.“不能从已知的FD集使用推理规则导出的FD 不在F+中”,这是推理规则的(完备)性16.在关系模式R中,能函数决定所有属性的属性组,称为模式R的(超键)17.消除了非主属性对候选键局部依赖的关系模式,称为(2NF)模式18.两个函数依赖集F和G等价的充分必要条件是(F+=G+)19.查询优化是指系统对关系代数表达式进行优化组合,它的目的是(提高系统效率)20.自然连接要求被连接的两个关系具有(一个或多个相同的属性名)21.关系中没有行序的原因是(关系被定义为一个集合)22.关系模型的基本数据结构是(关系),其数据库存储时的基本组织方式是(文件)23.自然连接操作由(x,σ,π)等基本操作组合而成24.对关系进行垂直分割的操作称为(投影),对关系进行水平分割的操作称为(选择)25.视图是一个虚表,它是从(基本表)导出的表26.索引的用途是(快速查询)27.SQL中表结构的修改命令是(ALTER TABLE)28.DELETE删除的最小单位是(一个完整的元组)29.在SQL中的一个关系对应于一个(基本表)30.事务的原子性是由DBMS的(事务管理)子系统来实现的31.封锁技术中基本的两种封锁是排他型封锁和(共享型封锁)32.若事务T对数据A加上(X)锁,则允许T读取修改A,其他任何事务都不允许对A加任何类型的锁,直到T释放A上的锁33.在数据库技术中,把未提交的随后被撤销的数据称为(脏数据)34.S锁解决了丢失更新问题,但同时又可能会引起(死锁)问题35.SQL2中,程序开始时默认的事务存取模式是(PEAD WRITE)36.服务管理器在启动(SQL Server)服务后才能进行数据库操作37.企业管理器提高遵从(Microsoft管理控制台)的用户界面38.导入和导出数据可以完成多个数据库之间的(数据转化和转移)39.在SQL Server中,将一组具有相同权限的用户组织在一起称为(角色)40.T—SQL语言中局部变量的作用域是(当前的批处理)41.T—SQL中用于循环结构的流程控制语句是(While语句)42.创建局部临时表必须使用由(#)开头的表名43.PowerBuilder是一种企业级(数据库前端应用)和多层体系结构开发工具44.PB问世于1991年,最初是由(Powersoft)公司开发的45.PB采用面向对象的编程方法和(事件驱动)的工作原理46.PB9.0的开发空间的三个层次是Workspace、Target和(Library)47.Target(目标)用于描述加入到工作空间中的(应用)48.(输出窗口)用于显示对开发人员做出的操作响应49.PB9.0中,连接数据库时用(Connect)命令简答题:1.文件系统阶段的数据管理有些什么缺陷?试举例说明。
复习题参考答案一、填空题(第11、12、22小题每空1分,其余每空0.5分,共35分)1.对现实世界进行第一层抽象的模型称为概念数据模型,概念模型常用ER模型进行表示;对现实世界进行第二层抽象的模型称为逻辑数据模型,常用的逻辑模型有四种,包括层次模型、网状模型、关系模型、对象模型。
2.在ER模型中,实体用矩形框表示,联系用菱形框表示,属性用椭圆形框表示。
3.数据库的体系结构采用三级模式、两级映象,从而保证数据库系统具有两级数据独立性,两级数据独立性是指物理数据独立性和逻辑数据独立性。
4.数据定义语言的英文缩写为DDL ,数据操纵语言的英文缩写为DML 。
5.DBMS对数据库提供四个方面的控制功能,包括:安全性保护、完整性检查、并发控制、数据库恢复。
6.关系模型在实际使用中有多种类型的键,包括超键、候选键、主键、外键。
7.关系模型的三类完整性规则包括实体完整性规则、参照完整性规则和用户定义的完整性规则。
8.关系代数操作中,对一个关系进行垂直分隔,消去某些列的运算称为投影运算;根据某些条件对关系做水平分隔,即选取符合条件的元组的运算称为选择运算。
9.若关系R有m个元组,S有n个元组,则R×S有m×n 个元组。
10.关系演算可分为元组关系演算和域关系演算,其中的∃称为存在量词,∀称为全称量词。
11.在SQL Server 2000中,若在表S中增加一列,列名为Address,类型为变长字符串,最大长度为30,则相应的SQL语句为alter table S add Address varchar(30) ;若在表S中删除年龄Age列,则相应的SQL语句为alter tableS drop column Age 。
12.在学生表S(S#, SName, Age, Sex)上针对男同学创建一个视图,视图名为S_Male,视图包括S#、SName、Age三列,则相应的SQL语句为create view S_Male as select S#, SName, Age from S where Sex='男' ;删除该视图的SQL语句为drop view S_Male 。
第二章节数据库设计和ER模型1.数据库系统的生存期分成哪几个阶段?数据库结构的设计在生存期中的地位如何?分为七个阶段:规划阶段、需求分析概念设计、逻辑设计、物理设计实现阶段、运行和维护阶段数据库结构的设计是数据库应用系统设计的基础,它的好坏直接影响数据库的效率和质量,是数据库生存期中的一个非常重要的阶段。
2.数据库设计的规划阶段应做哪些事情?A、进行建立数据库的必要性及可行性分析。
B、确定数据库系统在组织中和信息系统中的地位。
C、以及各个数据库之间的联系。
3.数据库设计的需求分析阶段是如何实现的?目标是什么?这一阶段是计算机人员(系统分析员)和用户双方共同收集数据库所需要的信息内容和用户对处理的需求。
并以需求说明书的形式确定下来,作为以后系统开发的指南和系统验证的依据。
需求分析的工作主要由下面四步组成:A、分析用户活动,产生业务流程图。
B、确定系统范围,产生系统关联图。
C、分析用户活动涉及的数据,产生数据流图。
D、分析系统数据,产生数据字典。
4.数据字典的内容和作用是什么?数据字典通常包括:数据项、数据流、数据结构、数据存储和处理过程五个部分。
数据字典是系统中各类数据描述的集合,是一系列二维表格,是进行详细的数据收集和数据分析所获得的主要成果。
数据字典在数据库设计中占有很重要的地位。
5.试叙述概念设计的步骤。
分三步完成:A、进行数据抽象,设计局部概念模式。
B、将局部概念模式综合成全局概念模式。
C、对全局概念模式进行评审和确认。
6.什么是ER图?构成ER图的基本要素是什么?描述现实世界概念结构模型的有效方法称为ER方法,用ER方法建立的概念结构模型称为ER模型,或称为ER图。
ER图是由实体、实体的属性和实体之间的联系三个要素组成的。
7.试述采用ER方法的数据库概念设计的过程。
A、设计局部ER模式:确定局部结构范围,实体定义,联系定义,属性分配。
B、设计全局ER模式:确定公共实体类型,ER模式的合并,冲突的消除。
函数依赖集闭包、属性集闭包、超键、候选键和最⼩函数依赖集的求法。
函数依赖集的闭包F:FD的集合称为函数依赖集。
F闭包:由F中的所有FD可以推导出所有FD的集合,记为F+。
例1,对于关系模式R(ABC),F={A→B,B→C},求F+。
根据FD的定义,可推出F+={φ→φ,A→φ,A→A,A→B,A→C,A→AB,A→BC,A→ABC,…},共有43个FD。
其中,φ表⽰空属性集。
属性集闭包属性集闭包定义:对F,F+中所有X→A的A的集合称为X的闭包,记为X+。
可以理解为X+表⽰所有X可以决定的属性。
属性集闭包的算法:A+:将A置⼊A+。
对每⼀FD,若左部属于A+,则将右部置⼊A+,⼀直重复⾄A+不能扩⼤。
超键、候选键若X+包含R的所有属性,则X是超键。
当X不可约时则为候选键。
如上例:A+=ABC,则A为超键,因为A不可约则为候选键。
设关系模式R中U=ABC.......等N个属性,U中的属性在FD中有四种范围:(1)左右出现;(2)只在左部出现;(3)只在右部出现;(4)不在左右出现;求候选键算法:1.R:只在FD右部出现的属性,不属于候选码;2.L:只在FD左部出现的属性,⼀定存在于某候选码当中;3.N:外部属性⼀定存在于任何候选码当中;4.其他属性逐个与2,3的属性组合,求属性闭包,直⾄X的闭包等于U,若等于U,则X为候选码。
例2,对于关系模式R(ABCD),F={A→B,B→C,D→B},求其候选键。
先按照属性集闭包的算法,求各个闭包,然后求得候选键。
(1) 求A+。
① A+=A。
②由A→B,⽽A €A+可知,则A+=AB。
③由B→C,⽽B A+可知,则A+=ABC。
④ A+封闭,即A+=ABC。
(2) 求B+、C+、D+。
按步骤(1)可得:B+=BC,C+=C,D+=BCD。
(3) 求其候选键。
显然,R的候选键为AD。
例3,对于关系模式R(ABC),F={A→BC,BC→A},求其候选键。
第一部分:一、求最小依赖集例:设有依赖集:F={AB→C,C→A,BC→D,ACD→B,D→EG,BE→C,CG→BD,CE→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)+=ABCEDG,故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∪DC=ACDE;因为X(0)≠X(1),且X(1)≠U,所以在F中找出左边是ACDE子集的函数依赖,其结果是:CD→I。
于是X(2)=ACDE∪I=ACDEI。
虽然X(2)≠X(1),但在F中未用过的函数依赖的左边属性已没有X (2)的子集,所以不必再计算下去,即(AE)+=ACDEI。
三、求候选键例1:关系模式R(U,F),其中U={A,B,C,D},F={A→B,C→D},试求此关系的候选键。
解:首先求属性的闭包:(A)+=AB,(B)+ =B,(C)+ =CD,(D)+ =D(AB)+ =AB,(AC)+=ABCD=U,(AD)+ =ABD,(BC)+ =BCD,(BD)+ =BD,(CD)+ =CD(ABD)+ =ABD,(BCD)+ =BCD,因(AC)+=ABCD=U,且(A)+=AB,(C)+ =CD,由闭包的定义,AC→A,AC→B,AC→B,AC→D,由合并规则得AC→ABCD=U;由候选码的定义可得AC为候选码。