




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
函数依赖(理论及举例)教你如何理解函数依赖一、函数依赖的概念函数依赖:函数依赖就是讨论一个数据表(关系)中属性值之间所存在的函数关系。函数是一种数学中的概念,被引入到数据库中对数据的联系进行分析。在一个关系中,属性相当于数学上的变量,属性的域相当于变量的取值范围,属性在一个元组上的取值相当于属性变量的当前值。例如:在下面的这个职工关系中,职工号、姓名、性别、年龄、职务等属性都相当于变量;职工号属性的域,即四位十进制数字,就是取值范围,性别属性的域:男、女,就是性别属性的取值范围。此关系中包含有6个元组,如第2个元组为3051、刘平、男、48、副处,其中的每个属性值都是对应属性在该元组上的当前值。单值函数和多值函数:元组中一个属性或一些属性值对另一个属性值的影响相当于自变量值对函数值的影响。当给定一个自变量值能求出唯一的一个函数值时,称此为单值函数或单映射函数,否则为多值函数。在单值函数中由自变量的一个值确定函数的一个值,但不同的自变量值允许具有相同的函数值。如f(x)=2x, f(n)=(-1)n, f(x)=x3+1等都是单值函数,由自变量x或n的值能够唯一确定f(x)或f(n)的值。属性的单值函数决定(依赖):在一个关系中,若一个或一组属性的值对另一个或一组属性值起到决定性的作用,则称为单值函数决定(依赖)。如上表中职工号的值就能够函数决定其余每个属性的值,也就是说,当职工号给定后,其他每个属性的值就跟着唯一地确定了。如假定职工号为3074,则他的姓名必定是王海,性别必定为男,年龄必定为32岁,职务必定为正科。这就叫做职工号能够分别单值函数决定姓名、性别和年龄属性,反过来,可以说姓名、性别和年龄等属性单值函数依赖于职工号属性。二、函数依赖的定义定义:设一个关系为R(U),X和Y为属性集U上的子集,若对于X上的每个值都有Y上的一个唯一值与之对应,则称X和Y具有函数依赖关系,并称X函数决定Y,或称Y函数依赖于X,记作XY,称X为决定因素。例如:设一个职工关系为(职工号,姓名,性别,年龄,职务),职工号用来标识每个职工,选作为该关系的主码。对于该关系中每个职工的职工号,都对应着姓名属性中的唯一值,即该职工的姓名,或者说一个职工的姓名由其职工号唯一确定,所以称职工号函数决定姓名,或称姓名函数依赖于职工号,记作“职工号姓名”,职工号为该函数依赖的决定因素。同理,当一名职工的职工号被确定之后,它所对应的性别、年龄、职务等属性值就被唯一确定下来了,所以职工号函数决定性别、年龄、职务等描述职工特征的每个属性,可以分别记作为“职工号性别”、“职工号年龄”、“职工号职务”。在该关系中除职工号外,其他属性都不能成为决定因素形成函数依赖,因为对于它们的每个属性值,都可能对应另一属性的多个不同的取值。如对于性别属性的一个取值“男”就会对应多个而不是一个职工号,此不是单值函数依赖,而是多值函数依赖,所以不能由性别来决定职工号。相互函数依赖:在这个职工关系中,若规定不允许职工有重名,则姓名也能够唯一标识一个元组,这样姓名也能够函数确定其他每个属性,此时职工号和姓名在取值上一一对应,相互成为决定因素,即构成相互函数依赖,记作为“职工号姓名”。但通常是允许职工重名的,因为不应该让已经重名的职工重新起名,这样姓名就不能成为关系的候选码,就不能函数决定其他任何属性。若一个关系中的属性子集X不能函数决定另一个属性子集Y,则记作XY,读作X不能函数决定Y,或Y不能函数依赖于X。三、平凡和非平凡函数依赖定义:设一个关系为R(U),X和Y为属性集U上的子集,若XY且X不包含Y,则称XY为非平凡函数依赖,否则若XY则必有XY,称此XY为平凡函数依赖。例如:在一个职工关系中,职工号总能函数决定它本身,记作“职工号职工号”,对于任一个给定的职工号,都有它本身的职工号值唯一对应,此为平凡函数依赖。又如:职工号和性别构成的属性子集总是能够函数决定其中的职工号或性别属性,可分别记作为“(职工号,性别)职工号”和“(职工号,性别)性别”,因为对于任何给定的一个元组中的职工号和性别的组合值,都唯一对应一个职工号值或性别值,不可能出现其他的职工号值或性别值,此种也为平凡函数依赖。通常,主要讨论的是非平凡函数依赖,即XY且XY。如在职工关系中,职工号函数决定其他每个属性都是非平凡函数依赖,另外“(职工号,姓名)性别”也是非平凡函数依赖,虽然在这里由决定因素中所含的职工号单属性就能够函数决定性别,而带有的姓名属性有些多余。四、完全和部分函数依赖定义:设一个关系为R(U),X和Y为属性集U上的子集,若存在XY,同时X的一个真子集X也能够函数决定Y,即存在XY,则称XY的函数依赖为部分函数依赖,或者说,X部分函数决定Y,Y部分函数依赖于X;否则若在X中不存在一个真子集X,使得X也能够函数决定Y,则称X完全函数决定Y,或Y完全函数依赖于X。XY的部分函数依赖也称为局部函数依赖。例如:在上面介绍的职工关系中,职工号同其他每个属性之间的函数依赖都是完全函数依赖,因为职工号是一个单属性决定因素,它不可能再包含其他任何属性,也就不可能存在真子集函数决定其他每个属性的情况存在。另外,如“(职工号,性别)”的值虽然能够函数决定相应职工的年龄,但其中的真子集职工号就能够函数决定其年龄,所以(职工号,性别)到年龄之间的函数依赖为部分函数依赖。即在“(职工号,性别)年龄”的函数依赖中存在着“职工号年龄”的函数依赖。又例如:设一个教师任课关系为(教工号,姓名,职称,课程号,课程名,课时数,课时费),该关系给出某个学校每个教师在一个学期内任课安排的情况,假定每个教师可以讲授多门课程,每门课程可以由不同教师来讲授。侯选码:在该关系中,由教工号和课程号的组合能够唯一确定一个元组,即确定哪个教师讲授哪门课程,所以(教工号,课程号)为关系的候选码。函数依赖分析:一个教师的姓名和职称完全由该教师的教工号决定,所以该关系中存在“教工号姓名”和“教工号职称”这两个函数依赖。一个教师所讲授某门课程的课程名和课时数,完全由该门课程的课程号所决定,所以该关系中又存在“课程号课程名”和“课程号课时数”这两个函数依赖。一个教师所讲某门课程的课时费通常是由教师的职称和课程号共同决定的,即存在“(职称,课程号)课时费”这个函数依赖,它也是一种完全函数依赖,因为职称和课程号中的任何一个属性都不能单独决定课时费的多少。该关系的侯选码为(教工号,课程号),“(教工号,课程号)姓名”,“(教工号,课程号)职称”,“(教工号,课程号)课程名”,“(教工号,课程号)课时数”等都是部分函数依赖,因为它们前项中的一个属性就能够函数决定后面的属性。五、传递函数依赖定义:一个关系为R(U),X,Y和Z为属性集U上的子集,其中存在XY和YZ,但Y不决定X,同时Y不包含Z,则存在XZ,称此为传递函数依赖,即X传递函数决定Z,Z传递函数依赖于X。注意:在这里必须强调的是Y不反过来函数决定X,因为如果XY同时YX,则X和Y为相互决定的函数依赖关系,记作为“XY”,这样X和Y是等价的,在函数依赖中是可以互换的,XZ就是直接函数依赖,而不是传递函数依赖了。另外,Y不包含Z也是必须满足的条件,因为如果YZ,则XY必然包含着X直接函数决定Y中的每个子集,这使得XZ为直接函数依赖而不是传递函数依赖。例如:设一个学生关系为(学号,姓名,性别,系号,系名,系主任名),通常每个学生只属于一个系,每个系有许多学生,每个系都对应唯一的系名和系主任名。函数依赖分析:在该关系中,学号能够函数决定姓名、性别和系号,即存在“学号姓名”、“学号性别”、“学号系号”,系号又能够函数决定系名和系主任名,即存在“系号系名”和“系号系主任名”。由于学号决定系号,系号又决定系名和系主任名,所以给定一个学号之后也就能够唯一对应一个系名或系主任名,也就是说,在学生关系中还存在“学号系名”和“学号系主任名”这两个函数依赖是传递函数依赖。六、函数依赖之间的变换规则设一个关系为R(U),其中X、Y、Z、W是U上的子集,则函数依赖存在着以下一些常用的变换规则:(1)自反性:若YXU,则存在XY。即整体决定部分。如(学生号,课程号)学生号。(2)增广性:若XY,则存在XZYZ。即函数依赖的两边同时增加一个相同的属性,其函数依赖保持不变。如学生号系号,则“(学生号,课程号)(系号,课程号)”同样成立。(3)传递性:若XY和YZ,则存在XZ。如教工号职称,职称职务工资,则存在教工号职务工资。(4)合并性:若XY和XZ,则存在XYZ。如学生号姓名,学生号性别,则学生号(姓名,性别)。(5)分解性:若XY,且ZY,则存在XZ。如学生号(姓名,性别),则存在学生号姓名,学生号性别。(6)伪传递性:若XY和WYZ,则存在WXZ。如教工号职称,(职称,工龄)基本工资,则存在(教工号,工龄)基本工资。(7)复合性:若XY和ZW,则存在XZYW。如学生号姓名,课程号课程名,则(学生号,课程号)(姓名,课程名)。(8)自增性:若XY,则存在WXY。即在函数依赖的左边添加任何属性,其依赖关系保持不变。如学生号姓名,则存在:(学生号,课程号)姓名,不过由直接依赖变为部分依赖。七、最小函数依赖定义:设一个关系为R(U),X和Y为U的子集,若XY为完全函数依赖,同时Y为单属性,则称XY为R的最小函数依赖。由R中所有最小函数依赖构成R的最小函数依赖集,并且在最小函数依赖集中不应含有冗余的传递函数依赖。例如:设一个关系为R(A,B,C,D),它的函数依赖集为FD=AB,BC,AC,BD,判断它是否为R的最小函数依赖集。分析:由FD中的AB和BC可得到AC,也就是说AB和BC中已经蕴涵AC,所以给出的AC是冗余的,应去掉。原FD不是R的一个最小依赖集,若修改为FD=AB,BC,BD,就成为R的最小函数依赖集。八、根据函数依赖求出关系中的侯选码定义:设一个关系为R(U),X为U的一个子集,若X能够函数决定U中的每个属性,并且X的任何真子集都不能函数决定U中的每个属性,则称X为关系R的一个候选码。等价定义:由于一个候选码能够函数决定关系中的每个属性,根据函数依赖的合并规则,可知候选码能够函数决定整个元组,即所有属性。所以候选码的另一个等价定义为:若关系中的一个属性或属性组能够函数决定整个元组,并且它的任何子集都不能函数决定整个元组,则它被称为该关系的一个候选码。例如:在上面介绍过的职工关系中,职工号属性能够函数决定职工号、姓名、性别、年龄、职务等所有属性,并且职工号为单属性,不可再分,肯定不会存在任何子集能够函数决定整个元组,所以职工号为该关系的一个候选码;若在该关系中还带有身份证号属性,则身份证号属性的每一个值也能够唯一标识一个元组,所以也能够函数决定关系中的所有属性,因此身份证号也是一个候选码。又如:在上面介绍过的教师任课关系中,它的最小函数依赖集为:教工号姓名,教工号职称,课程号课程名,课程号课时数,(职称,课程号)课时费。求侯选码分析:由于任一个单属性都不能函数决定关系中的所有属性,所以都不是候选码,若选取一个属性子集(教工号,课程号),由于它能够函数决定所有属性,所以它是该关系的一个候选码,并且是唯一的候选码。注意:(教工号,课程号)到教工号、姓名、职称、课程号、课程名、课时数等是部分函数决定,而到课时费是传递函数决定。即“(教工号,课程号)(职称,课程号)课时费”是伪传递性。九、根据函数依赖求关系的侯选码举例例:设一个教学关系为(教师号,姓名,课程号,课程名,课程学分,专业号,专业名,教学等级分),假定每个教师有一个唯一的教师号,每门课程有一个唯一的课程号,每个专业有一个唯一的专业号,每个教师号对应一个姓名,每个课程号对应一个课程名和一个课程学分,每个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 税务等级动态管理办法
- 网店美工素材管理办法
- 税务建账个体管理办法
- 企业安全生产培训政策课件
- 2025年乡村振兴战略与实践考试试卷及答案
- 2025中央一号文件考题及答案
- 统编版语文七年级上册《皇帝的新装》练习题(含答案)
- 出差报销培训课件
- 出差安全培训计划课件
- 出国留学课件
- 人工智能文献检索方法课件
- 幼儿园经营与管理课件
- 航空发动机强度与振动:Chapter 4 Vibrations of Disc and Shells (盘和壳体的振动)
- 《英语教师职业技能训练简明教程》全册配套优质教学课件
- 光伏电站组件清洗周边除草治理方案
- 高考语文复习-引号的作用 课件37张
- 农业模型PPT讲稿课件
- 国家开放大学电大专科《政治经济学》网络课机考网考形考单项选择题题库及答案
- 核质保监查员考试复习题(答案)
- Q∕GDW 10356-2020 三相智能电能表型式规范
- 电工电子技术基础教学大纲
评论
0/150
提交评论