全部科目 > 数据库系统工程师 >
2017年上半年 上午试卷 综合知识
第 31 题
知识点 Armstrong公理系统   函数依赖   结论  
关键词 函数依赖   函数  
章/节 关系数据库  
 
 
给定关系模式R<U ,F> ,其中U为关系R的属性集,F是U上的一组函数依赖,X、Y、Z、W是U上的属性组。下列结论正确的是( )。
 
  A.  若WX→Y,Y→Z成立,则X →Z成立
 
  B.  若WX→Y,Y→Z成立,则W→Z成立
 
  C.  若X→Y,WY→Z成立,则XW→Z成立
 
  D.  若X→Y,Z⊆U成立,则X→YZ成立
 
 




 
 
相关试题     Armstrong公理系统 

  第30题    2016年上半年  
对于关系模式R(X,Y, Z),下列结论错误的是(30)。

  第51题    2013年上半年  
下列描述中,不属于最小函数依赖集应满足的条件是(51)。

  第39题    2016年上半年  
假设关系R(A1,A2,A3)上的函数依赖集F={A1→A2,A1→A3,A2→A3},则函..

 
知识点讲解
· Armstrong公理系统
· 函数依赖
· 结论
 
        Armstrong公理系统
        Armstrong公理系统(或称函数依赖的公理系统):设关系模式R(U,F),其中U为属性集,F是U上的一组函数依赖,那么有如下推理规则:
        (1)A1自反律:若,则X→Y为F所蕴涵。
        (2)A2增广律:若X→Y为F所蕴涵,且,则XZ→YZ为F所蕴涵。
        (3)A3传递律:若X→Y,Y→Z为F所蕴涵,则X→Z为F所蕴涵。
        根据上述三条推理规则又可推出下述三条推理规则:
        (1)合并规则:若X→Y,X→Z,则X→YZ为F所蕴涵。
        (2)伪传递率:若X→Y,WY→Z,则XW→Z为F所蕴涵。
        (3)分解规则:若X→Y,,则Ⅹ→Z为F所蕴涵。
        引理:X→A1A2…Ak成立的充分必要的条件是X→Ai成立(i=1,2,3,…,k)。证明略。
 
        函数依赖
        【定义7.4】设R(U)是属性集U上的关系模式,X、Y是U的子集。若对R(U)的任何一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数决定Y或Y函数依赖于X,记作:X→Y。
        .如果X→Y,但,则称X→Y是非平凡的函数依赖。一般情况下总是讨论非平凡的函数依赖。
        .如果X→Y,但,则称X→Y是平凡的函数依赖。
        注意:函数依赖X→Y的定义要求关系模式R的任何可能的r都满足上述条件。因此不能仅考察关系模式R在某一时刻的关系r,就断定某函数依赖成立。
        例如,关系模式Student(Sno,Sname,SD,Sage,Sex)可能在某一时刻,Student的关系r中每个学生的年龄都不同,也就是说没有两个元组在Sage属性上取值相同,而在Sno属性上取值不同,但我们决不可据此就断定Sage→Sno。很有可能在某一时刻,Student的关系r中有两个元组在Sage属性上取值相同,而在Sno属性上取值不同。
        函数依赖是语义范畴的概念,我们只能根据语义来确定函数依赖。例如,在没有同名的情况下,Sname→Sage,而在允许同名的情况下,这个函数依赖就不成立了。
        【定义7.5】在R(U)中,如果X→Y,并且对于X的任何一个真子集X',都有X'不能决定Y,则称Y对X完全函数依赖,记作:。如果X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作:。部分函数依赖也称局部函数依赖。
        例如,给定一个学生选课关系SC(Sno,Cno,G),我们可以得到F={(Sno,Cno)→G},对(Sno,Cno)中的任何一个真子集Sno或Cno都不能决定G,所以,G完全依赖于Sno,Cno。
        【定义7.6】在R(U,F)中,如果X→Y,,Y→Z,则称Z对X传递依赖。
 
        结论
        从上面的概念和例子可以看出,要进行上面的白盒测试是需要投入巨大的测试资源,包括人力、物力和时间等。但是为什么还要进行白盒测试呢?原因如下。
        . 逻辑错误和不正确假设与一条程序路径被运行的可能性成反比。当我们设计和实现主流之外的功能、条件或控制时,错误往往开始出现在我们的工作中。日常处理往往被很好地了解(和很好地细查),而“特殊情况”的处理则难以发现。
        . 我们经常相信某逻辑路径不可能被执行,而事实上,它可能在正常的基础上被执行。程序的逻辑流有时是违反直觉的,这意味着我们关于控制流和数据流的一些无意识的假设,可能导致设计错误。只有路径测试才能发现这些错误。
        . 印刷上的错误是随机的。当一个程序被翻译为程序设计语言源代码时,有可能产生某些打印错误,很多将被语法检查机制发现,但是,其他的错误只有在测试开始时才会被发现。打印错误出现在主流上和出现在不明显的逻辑路径上的可能性是一样的。



更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2023 All Rights Reserved
软考在线版权所有