第七章关系数据库理论(2)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
练习2: 如下表所示的关系R,下列选项中关于该关系模 式属于第几范式判断正确的是( D)。
零件号 P1 P2 P3 P4 单价 25 8 25 9
任何一个二元关系必 A、不是3NF B、是3NF但不是2NF 定属于基于函数依赖 C、是3NF但不是BCNF 最高范式BCNF。 D、是BCNF
学习要点: (1)理解Armstrong公理系统。
四、 Armstrong公理系统的有效性、完备性
1、有效性:由F出发可由Armstrong公理推导 出来的每一个函数依赖一定在F+中; 2、完备性是指:F+中的每一个函数依赖,必 定可由F根据Armstrong公理推导出来。
五、属性集关于函数依赖集闭包
定义3:设关系模式R<U,F>, Ai⊆ U(i=1,2,…) 则称所有用Armstrong公理从F可推出的函数 依赖X→Ai,由Ai组成的属性集合称为X关于函 数依赖集F的闭包,记作XF+(或X+)。
back
九、最小依赖集求解算法
定理:每一个函数依赖集F均等价于一个极小函 数依赖集Fm。此Fm称为F的最小依赖集。
具体方法:逐一检查F中各函数依赖 1、计算最小依赖集算法 X→Y,若Y=A1A2…Ak, 输入:一个函数依赖集F。 ( k>2),则用{X→Aj|j=1,2,…,k} 来取代X→Y。 输出:F的一个等价最小依赖集F 。
所以F+共有35个具体如下: ∴∅→∅、A→∅、A→A、A→C、A→AC B→∅、B→B、B→C、B→BC C→∅、C→C、 AB→∅、AB→AB 、AB→A、 AB→B 、AB→C、AB→BC 、AB→AC、 AB→ABC 、 BC→∅、BC→BC、BC→B、BC→C、 AC→∅、AC→BC、AC→B、AC→C、 ABC→∅、ABC→ABC 、ABC→A、 ABC→B 、ABC→C、ABC→BC 、 ABC→AB、ABC→AC
二、推理规则(p183) 如:(sno,sname)❀设关系模式为R <U,F> >sname (1)A1自反律(Reflexivity): 若Y X U,则X →Y为F所蕴含。 证明: 设Y X U (仅需了解! ) R <U,F>的∀r中,对∀元组t,s: 若t[X]=s[X],(1) ∵Y X,则t[Y]=s[Y],(2) 注意:由自反律所得到的 函数依赖均是平凡的函数 ∴由(1),(2)可得X→Y成立,自反律得证。
若已知:sno->sname,sdept 可得:sno->sname, sno->sdept
三、函数依赖闭包定义
定义2:由被F逻辑蕴涵的函数依赖的全体构成 的集合,称为F的闭包,记作F+。
四、 Armstrong公理系统的有效性、完备性 1、有效性:由F出发可由Armstrong公理推导 出来的每一个函数依赖一定在F+中; 2、完备性是指:F+中的每一个函数依赖,必 定可由F根据Armstrong公理推导出来。
(4)由Armstrong公理得到以下推论:(p184) 1)、合并律:如果X→Y和X→Z成立,则X→YZ 成立。 若已知sno->sname, sno->sdept 2)、伪传递律:如果X→Y和WY→Z成立,则 可得: sno->sname,sdept WX→Z成立。 3)、分解律:如果X→Y和Z⊆Y成立,则X→Z成 立。 (5)根据合并规则和分解规则,可得的引理: 引理1: X→A1 A2…Ak成立的充分必要条件是 X→Ai (i=l,2,…,k)成立。
实例
实例5:对于4.l节中的关系模式St<U,F>,
U={sno,sname,sdept,dname,cname,grade}, F={ sno→sdept, sno→sname, sdept→dname, (sno,cname)→grade } 设F’={sno→sdept, sno→dname, sdept→dname, (sno,cname)→grade,(sno,sdept)→sdept} F是最小覆盖,而F ’不是。 因为:F ’-{sno→dname}与F ’等价 F ’-{(sno,sdept)→sdept}也与F ’等价 F ’-{(sno,sdept)→sdept} ∪{sno→sdept}也与F ’等价
m
方法: (1)应用分解规则,使F中每一个依赖的右部属 性单一化。
实例
(2)去掉多余的依赖。 具体方法:逐一检查由每前一步 所得到的新函数依赖集Fi (i=1,…K, k>=1)中的函数依赖, 从Fi中去掉它(假设该依赖为 X→Y),在G=Fi-{X→Y}中求 XG+,看XG+是否包含了Y, 若是,则去掉X→Y; 若不包含Y,则不能去掉X→Y。
实例2、设有关系模式R(A,B,C,D,E), 其上的函数依赖集: F={A→BC,CD→E,B→D,E→A} (1)计算(AC)F+。 (2)计算(A)F+。 (3)计算(B)F+。 解: (1) (AC)F+ X(0)=AC X(1)=ACB X(2)=ACBD X(3)=ACBDE=U ∴ (AC)F+=ABCDE
依赖,自反律的使用并不 依赖于F。
Fra Baidu bibliotek
(2)A2.增广律(Augmentation): 如:sno->sname,sdept⊆U, 则 若X→Y为F所蕴含,且Z (sno,sdept)->(sname,sdept) U,则 XZ→YZ为F所蕴含。 证明: (仅需了解! ) 设R<U,F> 的∀r中,∀元组t,s; 若t[XZ]=s[XZ] (1), 则有t[X]=s[X]和t[Z]=s[Z];(2) ∵X→Y,则有t[Y]=s[Y],(3) 由(2),(3)可得:∴t[YZ]=s[YZ] (4) 由(1),(4)可得,则XZ→YZ为F所蕴含, 增广律得证。
(2)求BF+。 X(0)=B X(1)=BCD X(2)=BCD=X(1),循环终止。所以BF+ =BCD。 (3)求CF+ X(0)=C X(1)=C=X(0),循环终止。所以CF+ =C。
方法
(4)求(BC)F+。 X(0)=BC X(1)=BCD ∵X(2)=BCD=X(1), ∴(BC)F+ =BCD。 (5)求(AC)F+。 X(0)=AC X(1)=ACB ∵ X(2)=ACBD=U ∴(AC)F+ =ACBD。
(3)X(i+1)= X(i) ∪B 。 (4)判断X(i+1)=X(i)吗? (5)若相等或X(i+1)=U,则X(i+1)就是XF+,算 法终止。 (6)若否,则i++,返回第(2)步。
实例
实例1、 U={A, B, C, D}; F={A→B, BC→D, B→C}; (1)求AF+ 解: X(0)=A 方法 ∴X(1)=X(0) ∪B=AB,显然X(1) ≠X(0)。 ∴ X(2)=X(1) ∪ C=ABC,显然X(1) ≠X(2)。 ∴ X(3)=X(2) ∪ D=ABCD=U,循环终止。 则再在F中找出左边是 逐一的扫描F集合中各个 ∴AF+=ABCD。 再逐一的扫描F集合, ABC子集的函数依赖,其结 函数依赖,找左部为A,的函 在F中找出左边是AB子集 果是:A→B, B→C, 数依赖。其结果是: A→B。 的函数依赖,其结果是: B未在闭包中,则将B加入闭 BC→D 。则D将加入闭包集 A→B, B→C。则C将加 中。 包集中。 入闭包集中。
如:sno->sdept,sdept->dname (3)A3.传递律(Transitivity): 可得:sno->dname
若X→Y及Y→Z为F所蕴含,则X→Z为F所 蕴含。
证明:设X→Y及Y→Z为F所蕴含。 对R<U,F> 的∀ r,∀元组 t,s。 若t[X]=s[X] (1),∵X→Y,则 t[Y]=s[Y]; 又∵Y→Z,则有t[Z]=s[Z] (2), ∴由(1),(2)可得:X→Z为F所蕴含,传递律得 证。
(2)掌握闭包计算算法。
(3)掌握最小函数依赖集计算算法。 (4)掌握关系模式分解无损连接性判定方法。
内容提要: 4.1基本知识点 4.2规范化 4.3Armstrong公理系统 4.4模式分解 4.4.1无损连接性判定 4.4.2函数依赖保持性 4.4.3候选码的求解理论和算法 4.4.4不同范式的模式分解算法 小结 4.5其它知识点(了解) 4.5.1多值依赖 4.5.2第四范式 4.5.3多值依赖公理(课后阅读) 4.5.4第四范式模式分解算法(课后阅读)
七、函数依赖集的等价和覆盖
定义4:一个关系模式R(U)上的两个依赖集 F和G,如果F+=G+,则称F和G是等价的,(函 数依赖集F覆盖G(F是G的覆盖,或G是F的覆 盖)。记作F≡G。
注:表示能力上是完全相同的。 如:F1={sno->sname,sno引理3:F+=G+的充要条件是F⊆G+,且G⊆F+。 >sdept,sdept->dname} F2={sno->sname,sdept>dname,sno->sdept,sno>dname} F1≡F2
引理2:设R<U,F>,X,Y⊆U,X→Y能由F根 据Armstrong公理导出的充分必要条件是Y ⊆ XF +。
六、闭包计算算法 1、计算XF+ 算法1:求属性集X关于函数依赖F的属性闭包 XF+。 关系模式R<U,F>,X⊆U。 输入:X,F。 输出:XF+ 步骤: (1)令X(0)=X,i=0 实例 (2)求B,这里 B={A|(∃V)(∃W)(V→W∊F∧V⊆X(i) ∧A ∊ W) 即在F中寻找其左边为X(i)的子集的函数依赖, 将其右边在X(i)中未出现过的属性组成的新集合 B。
八、最小函数依赖集 定义5:F为一个极小函数依赖集(或称最小依赖集 或最小覆盖),记作Fm;应满足条件如下: (1)Fm的右部都是单个属性。
(2)确保在Fm中没有多余的函数依赖。(不存 在X→A,使得Fm-{X→A}与原Fm等价)。
(3)Fm中左部没有多余的属性。 (不存在X→A,Z⊂X,(Fm-{X→A})∪ {Z→A} 与原Fm等价)
第四章
关系数据理论
之二
回顾小结与练习:
关系模式规范化的基本步骤(考查非平凡函数依赖) 1NF ↓ 消除非主属性对候选码的部分函数依赖 2NF ↓ 消除非主属性对候选码的传递函数依赖 3NF ↓ 消除决定因素不包含候选码的函数依赖 BCNF
练习1:
问:关系模式R中的属性全部是主属性,则R的 必定是_____。 3NF
4.3Armstrong公理系统 ——函数依赖公理 ✽一套推理规则,是模式分解算法的理论基础。 ✽用途: (1)求函数依赖集闭包、属性集闭包。 (2)求最小函数依赖集。 (3)求给定关系模式的候选码。 (4)模式分解。
一、逻辑蕴含的定义(p183) 定义1: 设F是关系模式R <U>的一个函数依赖 集,X,Y⊆U,对∀r,X→Y都成立, 则称F逻辑蕴 含X →Y。 另一等价定义:设F是关系模式R <U>的一个 函数依赖集,X,Y⊆U,若从F中的函数依赖可推 出X →Y, 则称F逻辑蕴含X →Y。
(2) (A)F+=ABCDE。 (3) (B)F+=BD。 实例3、设关系模式R(U,F), U={A,B,C,D,E,G},且 F={D→G,C→A,CD→E,A→B}; 求D+,C+,(AD)+ 解: D+=DG C+=CAB (AD)+=ADGB
2、计算F+
(会方法即可)
实例4:已知关系模式R(ABC),F={A→C,B→C}, 求F+。 解:∵U={A,B,C},左部不同的属性集组合 有23=8种:∅、A、B、C、AB、BC、AC、 ABC。
(1)∴∅→∅
(2)∵(A)F+=AC ∴A→∅、A→A、A→C、A→AC。
(3)∵(B)F+=BC ∴B→∅、B→B、B→C、B→BC。 (4)∵(C)F+=C ∴C→∅、C→C。 (5)∵(AB)F+=ABC ∴AB→∅、AB→AB 、AB→A、AB→B 、 AB→C、AB→BC 、AB→AC、AB→ABC 。 (6)∵(BC)F+=BC ∴BC→∅、BC→BC、BC→B、BC→C。 (7)∵(AC)F+=BC ∴AC→∅、AC→BC、AC→B、AC→C。 (8)∵(ABC)F+=ABC ∴ABC→∅、ABC→ABC 、ABC→A、 ABC→B 、ABC→C、ABC→BC 、ABC→AB、 ABC→AC。