函数依赖公理体系
函数依赖公理系统
函数依赖公理系统
函数依赖公理系统是一种逻辑框架,用于描述数据库中各种数据之间的依赖关系。
这个系统包括多个公理和规则,它们定义了函数依赖的基本性质和相关的推理规则。
其中最基本的公理是函数依赖传递公理,它表明如果X → Y,且Y → Z,则X → Z。
这个公理说明了函数依赖的传递性质,也是其他推理规则的基础。
另外,函数依赖公理系统还包括了等式推理规则、合并规则、拆分规则等等,这些规则可以用来简化和优化函数依赖的描述。
通过这些公理和规则,我们可以更加精确地描述数据库中不同数据之间的依赖关系,并推导出一些重要的结论和性质,比如关系模式的最小化、函数依赖的规范化等等。
总之,函数依赖公理系统是数据库理论中的一个基础概念,它不仅对于理论研究有重要的意义,也为实际的数据库设计和优化提供了一定的指导和支持。
- 1 -。
[总结]关系数据库设计基础(函数依赖、无损连接性、保持函数依赖、范式、……)
[总结]关系数据库设计基础(函数依赖、⽆损连接性、保持函数依赖、范式、……)≏≎≟≗≖≍≭∼∽≁≃≂≅≊≈≉≇≳⪞⪆⋧⪊≵≲⪝⪅⋦⪉≴⊂ subset ⋐⊄⊊ ⊈⊃⊇ ⋑⊅⊋ ⊉≺⪯≼⋞≾⪷⋨⪵⪹⊀≻⪰≽⋟≿⪸⋩⪶⪺⊁ in ∋∉∌∝≬⊸函数依赖(Function Dependency)定义设关系模式R(U),属性集合U= {A1,A2,…,An},X,Y为属性集合U的⼦集,如果对于关系模式R(U)的任⼀可能的关系r,r中的任意两个元组u、v,若有 u[X]=v[X],就有u[Y]=v[Y],则称X函数决定Y,或称Y函数依赖于X。
⽤符号X→Y表⽰。
其中X为决定因素,Y为被决定因素。
若对于R(U)的任意⼀个可能的关系r,r中不可能存在两个元组在X上的属性值性等,⽽在Y上的属性值不等。
(1) 函数依赖是语义范畴的概念,只能根据语义来确定⼀个函数依赖关系。
(2) 函数依赖X→Y的定义要求关系模式R的任何可能的关系r中的元组都满⾜函数依赖条件。
术语 (1)若X→Y,则X称作决定因素(Determinant) (2)若X→Y,Y→X,称作X<->Y。
(3)若Y不函数依赖于X,称作X -/-> Y。
(4)X→Y,若Y不包含X,即X ⊄ Y,则称X→Y为⾮平凡的函数依赖。
正常讨论的都是⾮平凡的函数依赖。
(5)X→Y,若Y包含X,即X ⊂ Y,则称X→Y为平凡的函数依赖。
(6)完全函数依赖(full functional dependency):在R(U)中,设X、Y是关系模式R(U)中不同的属性⼦集(即X ⊂ U,Y ⊂ U), 若存在 X→Y,且不存在 X的任何真⼦集X'(即 X' ⊊ X),使得 X'→Y,则称Y完全函数依赖 ( full functional dependency ) 于X。
记作 X-F->Y。
(7)部分函数依赖:在关系模式R(U)中,X、Y是关系模式R(U)中不同的属性⼦集(即X ⊂ U,Y ⊂ U), 若X→Y成⽴,如果X中存在任何真⼦集X'(即 X' ⊊ X),⽽且有X'→Y也成⽴,则称Y对X是部分函数依赖,记作:X-P->Y。
关系数据理论课后答案
关系数据理论课后答案第五章关系数据理论习题解答和解析1.理解并给出下列术语的定义:函数依赖、部分函数依赖、完全函数依赖、传递依赖、候选码、主码、外码、全码(All-key)、1NF、2NF、3NF、BCNF、多值依赖、4NF。
解析:解答本题不能仅仅把《概论》上的定义写下来。
关键是真正理解和运用这些概念。
答:函数依赖:设R(U)是一个关系模式,U是R的属性集合,X和Y是U的子集。
对于R(U)的任意一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同,而在Y上的属性值不同,则称"X函数确定Y"或"Y函数依赖于X",记作X→Y。
解析:(1)函数依赖是最基本的一种数据依赖,也是最重要的一种数据依赖。
(2)函数依赖是属性之间的一种联系,体现在属性值是否相等。
由上面的定义可以知道,如果X→Y,则r中任意两个元组,若它们在X上的属性值相同,那么在Y上的属性值一定也相同。
(3)要从属性间实际存在的语义来确定他们之间的函数依赖,即函数依赖反映了(描述了)现实世界的一种语义。
(4)函数依赖不是指关系模式R在某个时刻的关系(值)满足的约束条件,而是指R任何时刻的一切关系均要满足的约束条件。
答:完全函数依赖、部分函数依赖:在R(U)中,如果X→Y,并且对于X的任何一个真子集X',都有X'Y,则称Y对X完全函数依赖,记作:若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作:?→Z,则称Z对X传递函数依赖。
传递依赖:在R(U)中,如果X→Y,(Y候选码、主码:设K为R<u,f>中的属性或属性组合,若K→U(完全依赖)则K为R的候选码(Candidate key)。
若候选码多于一个,则选运其中的一个为主码(Pdmary key)。
解析:1)这里我们用函数依赖来严格定义码的概念。
在第二章中我们只是描述性地定义码(可以复习若关系中的某一属性组的值能惟一地标识一个元组,则称该属性组为候选码(Candidate key)。
函数依赖闭包
函数依赖闭包函数依赖闭包⼀、函数依赖的逻辑蕴涵定义:设有关系模式R(U)及其函数依赖集F,如果对于R的任⼀个满⾜F的关系r函数依赖X→Y都成⽴,则称F逻辑蕴涵X→Y,或称X→Y可以由F推出。
例:关系模式 R=(A,B,C),函数依赖集F={A→B,B→C}, F逻辑蕴涵A→C。
证:设u,v为r中任意两个元组:若A→C不成⽴,则有u[A]=v[A],⽽u[C]≠v[C]⽽且A→B, B→C,知u[A]=v[A], u[B]=v[B], u[C]=v[C],即若u[A]=v[A]则u[C]=v[C],和假设⽭盾。
故F逻辑蕴涵A→C。
满⾜F依赖集的所有元组都函数依赖X→Y(X→Y不属于F集),则称F逻辑蕴涵X→Y(X→Y由F依赖集中所有依赖关系推断⽽出)⼆、Armstrong公理1、定理:若U为关系模式R的属性全集,F为U上的⼀组函数依赖,设X、Y、Z、W均为R的⼦集,对R(U,F)有:F1(⾃反性):若X≥Y(表X包含Y),则X→Y为F所蕴涵;(F1':X→X)F2(增⼴性): 若X→Y为F所蕴涵,则XZ→YZ为F所蕴涵;(F2':XZ→Y)F3(传递性): 若X→Y,Y→Z为F所蕴涵,则X→Z为F所蕴涵;F4(伪增性):若X→Y,W≥Z(表W包含Z)为F所蕴涵,则XW→YZ为F所蕴涵;F5(伪传性): 若X→Y,YW→Z为F所蕴涵, 则XW→Z为F所蕴涵;F6(合成性): 若X→Y,X→Z为F所蕴涵,则X→YZ为F所蕴涵;F7(分解性): 若X→Y,Z≤Y (表Z包含于Y)为F所蕴涵,则X→Z为F所蕴涵。
函数依赖推理规则F1∽F7都是正确的。
2、Armstrong公理:推理规则F1、F2、F3合称Armstrong公理;F4 ∽ F7可由F1、F2、F3推得,是Armstrong公理的推论部分。
三、函数依赖的闭包定义:若F为关系模式R(U)的函数依赖集,我们把F以及所有被F逻辑蕴涵的函数依赖的集合称为F的闭包,记为F+。
函数依赖理论第一讲
结果为closure=ABCGHI。
– 算法第二次循环后的结果为closure=ABCGHI,没有变化,算法终止。 – (AG)+=ABCGHI。
计算属性集闭包的作用
• 计算属性集闭包的作用可归纳如下: – 验证α→β是否在F+中:看是否有β⊆α+。 – 判断α是否为r(R)的超码:通过计算α+,看其是否包含R 的所有属性。例如,(AG)+=ABCGHI,则AG为r(R)的超码。 – 判断α是否为r(R)的候选码:若α是超码,可检验α包含 的所有子集的闭包是否包含R的所有属性。若不存在任 何这样的属性子集,则α是r(R)的候选码。 – 计算F+。对于任意γ⊆R,可通过找出γ+,对任意的S⊆γ+, 可输出一个γ→S。
函数依赖理论
郑子仪
函数依赖定义
函数依赖(functional dependency, 简称FD)是一种 完整性约束,是现实世界事物属性之间的一种制约 关系,它广泛地存在于现实世界之中。
为关系模式, 设r(R)为关系模式,α⊆R,β⊆R。对任意合法关系 及其 为关系模式 。对任意合法关系r及其 中任两个元组t 中任两个元组 i和tj,i≠j,若ti[α]=tj[α],则ti[β]=tj[β],则称α ≠, , , 函数确定β 或 β 函数依赖于α,记作α→β。
判断属性集是否为候选码举例
• r(R)和F定义同上例,判断AG是否为r(R)的候选码。 – 上例已计算出(AG)+=ABCGHI, 则还要进一步分 别计算A+和G+。 – 经计算得,A+=ABCH、G+=G,它们都不包含R的 所有属性。因此,AG为r(R)的候选码。
α β
图5-3 α→β 函数依赖图
6.第六章关系的规范化
第六章关系的规范化设计第六章关系的规范化设计第一节问题的提出第二节函数依赖第三节范式第四节数据依赖的公理系统第一节关系模式设计问题的提出如何设计一个合理的关系数据库模式?c3c2c1c3c1cno 77OS丁惠s283DS 丁惠s290DB 丁惠s287OS 李立s178DB 李立s1gradecname sname sno 泛关系模式泛关系:泛关系模式中存在的问题c3c2c1c3c1cno 77OS丁惠s283DS 丁惠s290DB 丁惠s287OS 李立s178DB 李立s1gradecname sname sno反映现实世界操作性能例:设计教学管理关系数据库模型sc问题分析Sno Cno Tno Sname Grade Cname Tname S1C1T1赵民90OS彭S1C2T2赵民90DS杨S1C3T3赵民85C++刘S1C4T4赵民87DB张S2C1T4李军90OS张S3C1T4陈江75OS张S3C2T2陈江70DS杨S3C4T4陈江56DB张S4C1T1魏致90OS彭S4C2T2魏致85DS杨S5C1T1乔远95OS彭S5C4T4乔远80DB张关系SCT产生问题的原因?解:sct(sno, cno, tno, sname, grade, cname, tname)属性间约束关系(即数据间的依赖关系)太强解一:(sno,(cno,tno,(tno,cno, tname (sno,cno,解二:(sno,(cno,(tno, tname (sno,cno,(tno,cno)分解关系解决问题的方法:例sc解(sno, cno, tno, sname, grade, cname, tnameS n o S n a m e S 1赵民S 2李军S 3陈江S 4魏致S 5乔远StudentsCno Cname C1OS C2DS C3C++C4DBCoursesSnoCno Grade S1C190S1C290S1C385S1C487S2C190S3C175S3C270S3C456S4C190S4C285S5C195S5C480scTno Tname T1 彭 T2 杨 T3 刘 T4 张TeachersTeachCno Tno C1T1C1T4C2T2C3T3C4T4本章要解决的主要问题理想第二节:函数依赖数据依赖函数依赖(1)、函数依赖定义X 函数决定Y Y函数依赖于XX Y例:只能根据语义来确定函数依赖性的存在与否。
第3-4讲函数依赖和公理
定义(传递FD):设关系模式R,X、Y、Z是R的属性子集, 若FD X→Y,Y → X,Y→Z,则有FD X→Z,称FD X→Z为 传递函数依赖。
函数依赖、完全依赖、传递依赖等基本概念是第四章关系 数据库范式的基础。
18
算法3.2.3
判定F是否蕴涵X→Y的成员测试算法
输入:函数依赖集F和FD X→Y。
输出:若F蕴涵X→Y输出为true,否则为false MEMBER(F, X→Y) begin if Y CLOSURE(X,F) then return(true) eles return(false) end.
={AB→E,E→G, BE→I, GI→H}
13
定义(函数依赖集F的闭包 F +)
设F是关系r(R)上的函数依赖集,F所蕴含的所有FD的集
合称为F的闭包,记作F +。 F
+
= { X→Y
|
所有F |= X→Y }
例:设F={AB→C,C→B}。 求F+
14
设F={AB→C,C→B}。 F+ 为: F+ = {A→A, AB→A, AC→A, ABC→A, B→B, AB→B, BC→B,ABC→B,C→C,AC→C,BC→C,ABC→C,AB→AB, ABC→AB,AC→AC,ABC→AC,BC→BC, ABC→BC, ABC→ABC, AB→C, AB→AC, AB→BC, AB→ABC,C→B,
(3)并比较两种方法更好用语言来实现。
21
(1)设F ={AB→C,B→D,CD→E,CE→GH,G→A},
数据库学习摘记——关系模式的函数依赖
数据库学习摘记——关系模式的函数依赖关系与关系模式的联系:关系模式是相对稳定的,静态的,是把所有元组删去后的⼀张空表格,是对元组数据组织⽅式的结构描述,⽽关系却是动态变化的,不稳定的,是将若⼲元组填⼊关系模式后得到的⼀个取值实例。
每⼀个关系对应⼀个关系模式,每⼀个关系模式可以定义多个关系。
关系模式R(U)对应的具体关系通常⽤⼩写字母r来表⽰。
函数依赖:设R(U)是属性集U={A1, A2, …, An}上的关系模式,X和Y是U的⼦集。
若对R(U)的任⼀具体关系r中的任意两个元组t1和t2,只要t1[X]=t2[X] 就有t1[Y]=t2[Y]。
则称"X函数确定Y" 或"Y函数依赖于X",记作X→Y,X为这个函数依赖的决定因素。
函数依赖要求R(U)的⼀切具体关系r都要满⾜的约束条件。
若X→Y且Y→X,则记作X⇿Y平凡函数依赖:X→Y,Y⊆X // 对于任⼀关系模式,平凡函数依赖必然是成⽴的⾮平凡函数依赖:X→Y,Y⊄X完全函数依赖:如果X→Y,且对于X的任何⼀个真⼦集X',都有X不函数确定Y ,则称Y对X完全函数依赖或者X完全决定Y,记作:部分函数依赖:如果X→Y,但Y不是完全函数依赖于X,则称Y 对X部分函数依赖,记作:传递函数依赖:如果X→Y,Y→Z,且 Y→X,Y⊄X,Z⊄Y,则称Z对X传递函数依赖,记作:候选键:对关系模式R(U),设K⊆U,且K完全函数确定U,则K为能够唯⼀确定关系中任何⼀个元组(实体)的最少属性集合,称K为R(U)的候选键或候选关键字。
【R(U,F),U={ A,B,C,D,E,G },F={AB→C,CD→E,E→A,A→G},求候选键】因G只在右边出现,所以G⼀定不属于候选码⽽B,D只在左边出现,所以B,D⼀定属于候选码BD的闭包还是BD,则对BD进⾏组合,除了G以外,BD可以跟A,C,E进⾏组合先看ABDABD本⾝⾃包ABD,⽽AB→C,CD→E,A→G,所以ABD的闭包为ABDCEG=U再看BDCCD→E,E→A,A→G,BDC本⾝⾃包,所以BDC的闭包为BDCEAG=U最后看BDEE→A,A→G,AB→C,BDE本⾝⾃包,所以BDE的闭包为BDEAGC=U因为(ABD)、(BCD)、(BDE)的闭包都是ABCDEG所以本问题的候选码有3个分别是ABC、BCD和BDE主键:通常在R(U)的多个候选键中任意选定⼀个候选键作为主键,也称为主码或主关键字。
函数依赖的公理系统资料
定义4.15 最小覆盖. 满足下列条件的函数依赖集F称为最小覆盖(最 小依赖集, 极小依赖集),记作Fmin:
(1) 单属性:F中任一函数依赖 XA,A必是单属 性。 (2) 无冗余性:F中不存在这样的函数依赖X A, 使得 F与 F {X A}等价。 (3) 既约性:F中不存在这样的函数依赖 X A, X是多属性,在X中有真子集 Z,使得 F 与 F {X A} {Z A}等价。
2
函数依赖集的闭包F+
定义 4.12 在关系模式 R<U,F> 中,被 F 所 逻辑蕴涵的函数依赖的全体所构成的集合称 作F的闭包,记作 F+ = {XY | F├ XY} + 显然,F F 。 F+的计算很麻烦,F不大,其F+也可能很大。 例如: 设 R<U, F>, U={X, Y, Z}, F = {XY, YZ} F+ = { XX, XY,X Z, YY, YZ, Z Z, XYX,XYY,XYXY, XZ→X, ……}
函数依赖的公理系统
建立函数依赖推理系统的目的:
(1) 求关系模式的候选码 (2) 判断关系模式的范式级别 (3) 给定一组函数依赖,需要导出另外一些函数依赖, 或判断另外的函数依赖是否成立。例如: FD={A B,B C},判断 A C是否成立?
本节内容:
1. 逻辑蕴涵; 2. Armstrong函数依赖公理系统; 3. 函数依赖集的闭包; 4. 属性集闭包; 5. 函数依赖集的等价和覆盖; 6. 最小函数依赖集。
XY
t[XZ] = s[XZ]
t[Y] = s[Y] t[Z] = s[Z]
t[YZ] = s[YZ]
函数依赖的公理系统
函数依赖集的等价和覆盖
求最小函数依赖集的方法:
应用分解规则,使F中每一个依赖的右部单一化。 去掉各函数依赖左部多余的属性。
方法:检查F中左边是非单属性的依赖,如: XY→A, 要判定Y是否多余,只要求X闭包,若X闭包A,则Y 是多余的,以X →Y 代替XY→A。
去掉多余的依赖。
方法:从第一个依赖开始,若要从F中去掉X →Y ,则在 剩下的依赖中求X闭包,若X闭包包含Y,则去掉X →Y
属性集闭包计算举例
练习 已知R<U,F>, U= (A, B, C, G, H, I),F={AB, AC, CGH,
CGI, BH},计算(AG)+。 – 算法第一次循环的执行步骤: 步骤 FD closure
1.
2. 3. 4. 6. 6.
初值
AB AC CGH CGI BH
增广律得证。
定理 Armstrong推理规则是正确的
(3) 传递律:若X→Y及Y→Z为F所蕴含,则 X→Z为 F所蕴含。
证:设X→Y及Y→Z为F所蕴含。
对R<U,F> 的任一关系 r中的任意两个元组 t,s。 若t[X]=s[X],由于X→Y,有 t[Y]=s[Y];
再由Y→Z,有t[Z]=s[Z],所以X→Z为F所蕴含.
引理: X→A1 A2…Ak成立的充分必要条件 是X→Ai成立(i=l,2,…,k)。
总结:函数依赖(FD)的推理规则
函数依赖有一个正确的和完备的推理规则集——Armstrong 推理规则:
设有关系模式R(U),X,Y,Z,W均是U的子集,F是R上只涉及到U 中属性的函数依赖集, 推理规则如下:
候选码的判断
设有关系R({A1,A2,…,An},F),F为R的函数依赖集,X为
数据库函数依赖和范式总结
数据库函数依赖和范式总结1 函数依赖1.1 定义:一个集合R(U,F),U为属性全集,F为函数依赖集合。
F中存在着{Xi->Yi...};对于每个X都存在着一个Y与之唯一对应。
意思就是相当于X为主键,Y由主键决定。
比如一个学生他的学号相当于X,而他的姓名与年龄这些其他信息相当于Y。
但是X有时候并不是一个值,比如一个学生他的成绩需要有两个属性才能知道他的成绩,学号+课程号->成绩1.2 平凡函数依赖与非平凡函数依赖平时我们主要讨论的是非平凡函数依赖。
平凡函数依赖概念:Y集合属性属于X集合属性的子集非平凡函数则相反1.3 逻辑蕴涵(为后面求闭包做好基础)X,Y为属性集合U的子集,且X->Y不存在于F中。
即我们需要通过F中的函数依赖推出X->Y称为函数依赖。
而所有函数依赖的集合则称为闭包1.4 函数依赖的推理规则(就是求函数依赖的逻辑蕴涵)1.4.1 几个公理1.4.1.1 公理一(自反律):Y属于X的子集,则X->Y 数学公式描述 Y?X?U1.4.1.2 公理二(增广律):X->Y成立,Z?U也成立,则 XZ?YZ1.4.1.3 公理三(传递律):X->Y成立,Y->Z成立,则 X->Z1.4.2 公理的推广1.4.2.1 推广一(合并律):X->Y,X->Z,则X->YZ1.4.2.2 推广二(伪传递律):X->Y,YW->Z,则XW->Z(证明只需要在XY两边*W)1.4.2.3 推广三(分解律):X->Y成立,Z?Y,则 X->Z1.4.2.4 推广四(复合律):X->Y,W->Z,则XW->YZ1.5 完全函数依赖与部分函数依赖(范式中基础知识)X->Y的集合中,若X的任一真子集x都能 x->Y则为部分函数依赖,若不能则的完全函数依赖,如果X没有真子集则也称为完全函数依赖。
465.3数据依赖的公理系统
Haichang Gao , Software School , Xidian University
7
DataBase System
Design of the Bank Database
Example (decompose, 分解) :
we cannot reconstruct the original employee relation
Functional Dependencies
DataBase System
Functional Dependencies (函数依赖)
The functional dependency
holds on R if and only if for any legal relations r(R), whenever any two tuples t1 and t2 of r agree on the attributes (在上取值相同), they also agree on the
5
DataBase System
Design of the Bank Database
Suppose we combine borrow and loan to get Schema: bor_loan = (customer_id, loan_number, amount ) Instance:
customer = (customer_id, customer_name, customer_street, customer_city)
loan = (loan_number, amount)
account = (account_number, balance)
约束数据库中的函数依赖公理系统与设计理论
定 义 和 分 解 为 第 3范 式 和 B 范 式 的 算 法 , 而 基 C 从 本 完 成 了在 函数 依 赖 范 畴 内 的 约 束关 系 模 式 设 计 工
定 义 1 设 为 一 类 约 束 , 为 其 论 域 , : D 则
.
这 是 一 种 与 时 空 数 据 关 系 密 切 的 约 束 . D 为 若 定 义 2 设 R是 x 上 的 K 元 约 束 关 系 , 的 约 它
一
般的全序集 , 类 约束称为密序约束. 这
1 )变 量 集 X 一 ( , , , ) 的 约 束 K 元 。 : … 。 上 组 是 一 个 约 束 合 取 式 , 一 ^ … A , 中每 其
据 库 的 无损 连 接 问 题 , 到 很 好 的 结 果 . 文 即 是 研 得 本
4 )约 束 数 据 库 定 义 为 有 限 个 约 束 关 系 组 成 的 集合. 5 )设 R( x)是 约 束 关 系模 式 , R( 上 的 数 则 x)
据 依 赖 D 定 义 为 一个 映 射 , 的定 义 域 为 R( 它 x)所
成 了约 束数据 库设 计 的核 心工 作 : 约束 关 系模式 分解 为 3 把 NF或 B NF的算 法. C
关 键 词 :约束 数 据 库 ; 函数 依赖 ; 函数依 赖 公理 系统 ; 式设 计 模
中 图分 类 号 : P3 11 1 T 1.3
文 献 标 识 码 : A
个 ( ≤ i N) 1 ≤ 是 中 的定 义 在 变 量 集 X 上 的一
据 库 可 看 成 是关 系 数 据 库 的 自然 扩 充 , 此 自然 希 因
模式分解算法
函数依赖的公理系统:设有关系模式R(U),X,Y,Z,W均是U的子集,F是R上只涉及到U中属性的函数依赖集,推理规则如下:∙自反律:如果Y X U,则X→Y在R上成立。
∙增广律:如果X→Y为F所蕴涵,Z U,则XZ→YZ在R上成立。
(XZ表示X∪Z,下同)∙传递律:如果X→Y和Y→Z在R上成立,则X→Z在R上成立。
以上三条为Armstrong公理系统∙合并律:如果X→Y和X→Z成立,那么X→YZ成立。
∙伪传递律:如果X→Y和WY→Z成立,那么WX→Z成立。
∙分解律:如果X→Y和Z Y成立,那么X→Z成立。
这三条为引理注意:∙函数依赖推理规则系统(自反律、增广律和传递律)是完备的。
∙由自反律所得到的函数依赖均是平凡的函数依赖。
模式分解的几个重要事实:∙若只要求分解具有“无损连接性”,一定可以达到4NF;∙若要求分解要“保持函数依赖”,可以达到3NF,但不一定能达到BCNF;∙若要求分解既要“保持函数依赖”,又要具有“无损连接性”,可以达到3NF,但不一定能达到BCNF;试分析下列分解是否具有无损联接和保持函数依赖的特点:设R(ABC),F1={A→B} 在R上成立,ρ1={AB,AC}。
首先,检查是否具有无损联接特点:第1种解法--算法4.2:(1) 构造表(2)根据A→B进行处理结果第二行全是a行,因此分解是无损联接分解。
第2种解法:(定理4.8)R1(AB)∩R2(AC)=AR2- R1=B∵A→B,∴该分解是无损联接分解。
然后,检查分解是否保持函数依赖πR1(F1)={A→B,以及按自反率推出的一些函数依赖}πR2(F1)={按自反率推出的一些函数依赖}F1被πR1(F1)所蕴涵,∴所以该分解保持函数依赖。
保持函数依赖的模式分解一、转换成3NF的保持函数依赖的分解算法:ρ={R1<U1,F1>,R2<U2,F2>,...,R k<U k,F k>}是关系模式R<U,F>的一个分解,U={A1,A2,...,An},F={FD1,FD2,...,FDp},并设F是一个最小依赖集,记FDi为X i →Alj,其步骤如下:① 对R<U,F>的函数依赖集F进行极小化处理(处理后的结果仍记为F);② 找出不在F中出现的属性,将这样的属性构成一个关系模式。
关于函数信赖性的公理系统
• 引理4.5 一个函数依赖集F总可找到另一 个其所有函数依赖的右端均只有一个属性 的函数依赖集G,F被G所覆盖。
• 证明:令G是由所有这样的X→A组成的函数 依赖集:如果X→Y∈F且A∈Y,则X→A在G 中。
• 这时,显然能由X→Y按分解律导出X→A, 从而有GF+ 。但又有FG+成立,因为若 Y=A1A2…Ak,则F中的X→Y能由G中的 X→A1,…,X→Ak用合并律导出。
• ③ 对于传递性,设r是R的任意一个关系, u,v是r的任意两个元组。如果u[X]=v[X], 则由X→Y,应有u[Y]=v[Y],又由Y→Z,推 出有u[Z]=v[Z]。也就是说当u[X]=v[X]时 有u[Z]=v[Z]。这就说明X→Z成立,即传递 性是正确的。
• 证毕。
从阿姆斯特朗公理能导出若干条其他推 导规则。在下一个引理里,我们给出其 中的三个。 引理4.2 1)合并律:若X→Y且X→Z,则有X→YZ。 2)伪传递律:若X→Y且WY→Z,则有XY→Z。 3)分解律:若X→Y且Z Y,则有X→Z。
• ② 充分性:设Y同上,如果YXF+ ,由 定义4.4可知能用Armstrong公理从F可
以推导出X→Ai(i=1,2,…,k)。再
由合并规则可知能用Armstrong公理从F
可以推导出X→Y。
• 定理4.1 Armstrong公理是有效的和 完备的。
• 有效性已在引理4.1给出。这里我们 只需要证明完备性。
所以V→W在关系r中成立。②
V。由xf图4.1可
见,V在u、v两个元组上的属性值必不一致。这时,
不管是否存在WXF+,V→W在关系r中一定成立。
• 结论:只要X→Y不能根据Armstrong公理从 F中推导出来,F就不逻辑蕴涵X→Y。换句 话说,凡是被F逻辑蕴涵的函数依赖一定能 用Armstrong公理推导出来。证毕。
关系数据模型之函数依赖
函数依赖的重要性
保持数据完整性
通过函数依赖,可以确保数据库中的数 据满足一定的约束条件,从而保持数据
的完整性。
提高查询效率
在数据库查询过程中,可以利用函数 依赖优化查询计划,提高查询效率。
简化数据库设计
通过合理地利用函数依赖,可以简化 数据库设计,减少冗余数据和数据不 一致的情况。
关系数据模型之函数依赖
contents
目录
• 引言 • 函数依赖的定义与分类 • 函数依赖的推理规则 • 函数依赖在关系数据库设计中的应用 • 关系数据模型中的其他概念 • 关系数据模型的实际应用案例
01 引言
什么是函数依赖?
函数依赖是关系数据模型中的一个基本概念,它表示一个或多个属性的值决定另一个属性的值的关系 。
部分函数依赖
要点一
定义
如果一个属性集合Y中的所有属性决定了一个属性集合X中 的部分属性,则称X部分函数依赖于Y。
要点二
举例
在关系模式"学生(学号,姓名,年龄,性别)"中,性别只依赖于 学号,因此学号→性别。
传递函数依赖
定义
如果Y→X,且X不决定Y,则称X传递依赖于Y。
举例
在关系模式"学生(学号,姓名,年龄,性别)"中,学号→姓名,性别→年龄,因此姓名传递依赖于学号,年龄传递依赖 于性别。
数据完整性维护案例
案例二:银行账户管理系统 账户表:账户号、客户号、余额等字段。 交易表:交易号、账户号、交易金额等字段。
设计一个银行账户管理系统,包括账户、客户、交易等 表。
客户表:客户号、姓名、身份证号等字段。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
属性,…,将其记为集合B,并求(XB)F+ :若(XB)F+包含了R的全部属性,且自身 不包含已求出的候选键,则XB为R的一个 候选键; • ⑦ 重复⑥,直到Y中的属性按⑥的组合依 次取完为止; • ⑧ 输出候选键,算法结束。
2020/6/3
2020/6/3
1、函数依赖集的等价与覆盖
• 定义5.5 • 设F和G是两个函数依赖集,如果F+=
G+,则称F和G等价。如果F和G等价,则 称F覆盖G,同时也称G覆盖F。
2020/6/3
定理
• 定理5.7 F+=G+的充要条件是FG+和 GF+。
所 有
F
F+= G+
X→Y G+
X→Y能否Y由GX根G据+ ?公理导出?
2020/6/3
三、最小函数依赖集
• 一个函数依赖集F的闭包F+通常包含 很多函数依赖,有些函数依赖是无意义的 ,如平凡的函数依赖,还有一些是可以推 导出的,即无关的函数依赖。如果将每一 个函数依赖看作是对关系的一个约束,要 检查F+中的每一个函数依赖对应的约束, 显然是一件很繁重的任务。如果能找出一 个与F等价的、包含较少数目函数依赖的 函数依赖集G,则可以简化此工作。最小 函数依赖集的概念由此而提出。
② F22=
ABC , CA , BCD , ACDB , DE , DG , BEC , CGD,CEG
③ F3=
2020/6/3
ABC , CA , BCD, CDB , DE , DG , BEC , CGD , CEG
3、举例(续四)
• 例5.5:求函数依赖集F的最小函数依赖集
• 法2:
① F1=
必为R的唯一候选键; • (3)若X是R类属性,则X不是任一候选键的成员; • (4)若X是N类属性,则X必包含在R的某一候选键中; • (5)若X是R的N类属性和L类属性组成的属性集,且X
+包含了R的全部属性,则X是R的唯一候选键。
2020/6/3
四、候选键的求解方法
• 3、候选键的一般求解方法 • ① 将所有属性分为L、R、N和LR四类,
• 1,…,n)均成立。
作用:将一个FD分解成若干个右边是单属性 的FD。用于确定关系的主键。
2020/6/3
二、X关于F的闭包及其计算
• 例:已知关系模式R(A,B,C),其函数依赖 集为F={A→B,B→C},求函数依赖集F的 闭包F 。 +
A→ , AB→ , AC→ , ABC→ , B→ , C→ A→ A, AB→ A, AC→ A, ABC→ A, B→ B, C→ C A→ B, AB→ B, AC→ B, ABC→ B, B→ C,
2020/6/3
1、X关于F的闭包
• 设 有 关 系 模 式 R(U,F) 和 属 性 集
U={A1,A2,…,An}的子集X。则称所有用阿 姆斯特朗公理从F推导出的函数依赖X→Ai 的属性Ai组成的集合称为X关于F的闭包, 记为XF+,通常简记为X+。即
•
XF+={Ai|用公理从F推出的X→Ai}
Armstrong公理的推论 分解规则:若XY,且ZY,则XZ
2020/6/3
求解方法(续一)
• (2)去掉F中冗余的函数依赖 • 对于F中任一FD:XY • ① G = F-{XY}; • ② 求X关于G的闭包XG+; • ③ 看XG+是否包含Y。如果XG+包含Y,
则在G中逻辑蕴涵XY,说明XY是多余 的函数依赖,所以F=G;如果X+不包含Y ,则保留XY。
性; • ② R类:仅出现在F的函数依赖右部的属
性; • ③ N类:在F的FD左右两边均未出现的属
性; • ④ 2020/6/3 LR类:在F的FD左右两边均出现的属
四、候选键的求解方法
• 2、快速求解候选键的一个充分条件
• (1)若X是L类属性,则X必为R的某一候选键的成员; • (2)若X是L类属性,且X+包含了R的全部属性,则X
2、定理5.1
• Armstrong公理是正确的。 • 方法:从函数依赖的定义出发
• A1 自反律:若YX,则XY
• 证:设u、v为r的任意两个元组。 • 若u[X]=v[X],则u和v在X的任何子集
上必然相等。 • 由条件YX ,所以有:u[Y]=v[Y], • 由u、v的任意性,并根据函数依赖的定
F+= A→ C, AB→ C, AC→ C, ABC→ C, B→ BC,
A→ AB, AB→ AB, AC→ AB, ABC→ AB, BC→ , A→ AC, AB→ AC, AC→ AC, ABC→ AC, BC→ B, A→ BC, AB→ BC, AC→ BC, ABC→ BC, BC→ C, A→ ABC,AB→ ABC,AC→ ABC,ABC→ ABC,BC→ BC,
Armstrong公理导出的问题 求出X+,判定Y是否为X+的子集的问题。
2020/6/3
3、X关于F的闭包X+的计算
• 算法5.1 求属性集X关于函数依赖集F的闭 包X+
• 输入: • 关系模式R的全部属性集U,U上的函数
依赖集F,U的子集X。 • 输出: • X关于F的闭包X+。 • 计算方法:
2020/6/3
3、举例
• 例5.5:求函数依赖集F的最小函数依赖集
F=
• 法1:
ABC , CA , BCD , ACDB , DEG , BEC, CGBD,CEAG
① F1=
2020/6/3
ABC , CA , BCD , ACDB, DE,DG,BEC,CGB , CGD,CEA,CEG
3、举例(续一)
义,可得 XY。
2020/6/3
3、 阿姆斯特朗公理的推论
• 合并规则:若XY且XZ,则XYZ
• 分解规则:若XY,且ZY,则XZ
• 伪传递规则:若XY且WYZ,则 WXZ
证:
增广律 X Y
WX→ WY WY→ Z
传递律
WX→ Z
2020/6/3
4、定理5.2
• 如果Ai(i=1,…,n)是关系模式R的属性, 则XA1A2…An成立的充分必要条件是 XAi(i=
2020/6/3
主要内容
• 阿姆斯特朗公理及推论 • X关于F的闭包及其计算 • 最小函数依赖集 • 候选键的求解方法2020/6/3一、阿姆斯特朗公理及推论
问题引入:
侯选键
F=X→Y
F+
能从F导出的所有 X→Y
X→Y在R 中是否成立
推导工具?
是一系列推理规则 最早出现在1974年W.W.Armstrong的论文 里 他人与1977年提出改进形式
2020/6/3
小结
Armstrong公理 及推论
X→Y是否能从F导出
候选键
求最小FD集
L类、N类、LR类
YX+
求X+
FD右边 单属性
无多余FD
F+=G+
FD左边 无多余属性
2020/6/3
并令X代表L和N类,Y代表LR类; • ② 求XF+:若XF+包含了R的全部属性,则
X是R的唯一候选键,转⑧; • ③ 在Y中取一属性A,并求(XA)F+ :若
(XA)F+包含了R的全部属性,则XA为的一 个候选键; • ④ 重复③,直到Y中的属性依次取完为止 ;
2020/6/3
四、候选键的求解方法
四、候选键的求解方法
• 3、候选键的一般求解法
• 例:设有关系模式R(A,B,C,D,E),R的函
数 依 赖 集 F = {ABC,CDE,BD,EA} ,求R的所有候选键。
均为LR类,令Y=ABCDE。 A+=ABCDE E+=ABCDE BC+=ABCDE CD+=ABCDE R的候选键:A、E、BC和CD
FG+ GF+
2020/6/3
推论
• 每一个函数依赖集F都被其右端只有一 个属性的函数依赖组成的依赖集G所覆盖 。
作用:任一函数依赖集都可转化成由右端只 有单一属性的依赖组成的集合。
该结论是最小函数依赖集的基础。
2020/6/3
2、最小函数依赖集
• 满足下列条件的函数依赖集F称为最小 函数依赖集。
• 例5.5:求函数依赖集F的最小函数依赖集
② F21=
ABC , CA , BCD , ACDB, DE,DG , BEC , CGD , CEA,CEG
② F22=
ABC , CA , BCD , ACDB , DE , DG , BEC , CGD,CEG
2020/6/3
3、举例(续三)
• 例5.5:求函数依赖集F的最小函数依赖集
• 例5.5:求函数依赖集F的最小函数依赖集
① F1=
ABC , CA , BCD , ACDB, DE,DG,BEC,CGB , CGD,CEA,CEG
② F21=
ABC , CA , BCD , ACDB , DE , DG , BEC , CGD , CEA,CEG
2020/6/3
3、举例(续二)
2020/6/3
4、举例
• 例5.4 已知R(U),U={A,B,C,D,E,G}, R上的
FD集 • F={AB→C,C→A,BC→D,ACZD=E→GB BD=,X(0)
D→EG,BE→C, • CG→BD,CE→AG},
X+=ABCDEG
• X=BD,求X+,BD→A是否成立? • (1)X(0)=BA∈DB。D+,故BD→A成立 • (2)X(1)=BDEG • (3)X(2)=BCDEG