6.3 数据依赖的公理系统

数据依赖的公理系统,特别是Armstrong公理系统,是数据库理论中的核心概念,用于推理函数依赖和模式分界算法。该系统包括自反律、增广律和传递律等推理规则,用于从已知函数依赖推导新的依赖。闭包是函数依赖的逻辑蕴含集合,可通过特定算法求得。最小依赖集是不包含冗余的函数依赖集,求解过程涉及化简和去除冗余属性。函数依赖集的等价性判断通过比较它们的闭包实现。这些理论在数据库设计和优化中起着关键作用。
摘要由CSDN通过智能技术生成

6.3 数据依赖的公理系统

➢ 数据依赖的公理系统是模式分界算法的理论基础
➢ 函数依赖的一个有效而玩呗的公理系统——Armstrong公理系统,一套推理规则,是模式分界算法的理论基础。
用途:
    ◾ 从一组函数依赖求得蕴含的函数依赖。例如求X→Y是否被F所蕴含
    ◾ 求给定关系模式的码
➢ 逻辑蕴含
定义6.11 对于满足一组函数依赖F的关系模式R<U, F>,其任何一个关系r,若函数依赖X→Y都成立(即r中任意两元组 t, s,若t[X] = s[X]),则t[Y] = s[Y]),则称F逻辑蕴含X→Y

Armstrong公理系统
设U是属性集总体,F是U上的一组函数依赖,于是有关系模式R<U, F>。对R<U, F>来说有一下的推理规则:
    ◾ A1.自反律(Reflexivity):若Y⊆X⊆U,则X→Y为F所蕴含
    ◾ A2.增广律(Augmentation):若X→Y为F所蕴含,且Z⊆U,则XZ→YZ为F所蕴含
    ◾ A3.传递律(Transitivity):若X→Y及Y→Z为F所蕴含,则X→Z为F所蕴含。
1.根据A1,A2,A3这三条推理规则可以得到下面三条推理规则
    ◾ 合并规则:由X→Y,X→Z,有X→YZ
    ◾ 伪传递规则:由X→Y,WY→Z,有XW→Z
    ◾ 分解规则:由X→Y及Z⊆Y,X→Z
2.根据合并规则和分解规则,可得引理6.1
引理6.1 X→ A 1 A 2 . . . A k A_1A_2...A_k A1A2...Ak成立的充分必要条件 X → A i X→Ai XAi成立(i = 1, 2, …, k)
➢ 闭包 F + F^+ F+
定义6.12 在关系模式R<U, F>中为F所逻辑蕴含的函数依赖的全体叫做F的闭包(closure),记为 F + F^+ F+
➢ X关于函数依赖集F的闭包 F + F^+ F+
定义6.13 设F为属性集U上的一组函数依赖X⊆U, X F + X_F+ XF+ = {A | X→A能有F根据ArmStrong公理导出}, X F + X_F+ XF+称为属性集X关于函数依赖集F的闭包
➢ 关于闭包的引理
引理6.2 设F为属性集U上的一组函数依赖,X,Y⊆U,X→Y能由F根据Armstrong功力导出的充分必要条件是Y⊆ X F + X_F+ XF+
➢ 引理6.2的用途

  1. 将判定X→Y是否能由F根据Armstrong公理导出的问题,就转化为求出 X F + X_F+ XF+,判定Y是否为 X F + X_F+ XF+的子集的问题
  2. 如果 X F + X_F+ XF+=U,X是R<U, F>的候选码

➢  X F + X_F+ XF+可以用算法来求得!

算法6.1
对于R<U, F>,求属性集X(X⊆U)关于U上的函数依赖集F的闭包 X F + X_F+ XF+
输入:X,F
输出: X F + X_F+ XF+
步骤:是一个迭代算法
(1)令 X ( 0 ) X^{(0)} X(0) = X,i=0
(2)求B,这里B = {A | (∃V)(∃W)(V→W∈F ⋀ V ⊆ X ( i ) X^{(i)} X(i) ⋀ A ∈ W)}
     X ( i ) X^{(i)} X(i)中的每个元素,依次检查相应的函数依赖,将依赖他的属性加入B
(3) X ( i + 1 ) X^{(i+1)} X(i+1) = B ∪ X ( i ) X^{(i)} X(i)
(4)判断 X ( i + 1 ) X^{(i+1)} X(i+1) = X ( i ) X^{(i)} X(i)吗?
(5)若相等 X ( i ) X^{(i)} X(i) = U,则 X ( i ) X^{(i)} X(i)就是 X F + X_F+ XF+,算法终止
(6)若否,则i=i+1,返回第(2)步
在这里插入图片描述

[例 1] 已知关系模式R<U, F>,其中U={A,B,C,D,E};F={AB→C, B→D, C→E, EC→B, AC→B}。
( A B ) F + (AB)_F^+ (AB)F+
解:
    设 X 0 X^0 X0 = AB
    计算 X 1 X^1 X1:由AB→C, B→D X 1 X^1 X1 = AB ∪ CD = ABCD
    因为 X 0 X^0 X0 X 1 X^1 X1
    计算 X 2 X^2 X2:由C→E, AC→B X 2 X^2 X2 = X 1 X^1 X1 ∪ BE = ABCDE
    这是 X 2 X^2 X2 X 1 X^1 X1,但是 X 2 X^2 X2已等于全部属性集合,所以
     ( A B ) F + (AB)_F^+ (AB)F+ = ABCDE
    注:还有一种情况:如果 X i X^i Xi = X i − 1 X^{i-1} Xi1,则 X i X^i Xi即为所求的闭包

➢ Armstrong公理系统的有效性和完备性
➢ 有效性和完备性的含义
    ◾ 有效性:由F触发根据Armstrong公理系统倒出来的每一个函数依赖一定在 F + F^+ F+
    ◾ 完备性: F + F^+ F+中的每一个函数依赖,必定可以由F根据Armstrong公理推导出来
定理6.2 Armstrong公理系统是有效的、完备的
➢ 函数依赖集等价的定义
定义6.14 如果 G + G^+ G+= F + F^+ F+,就说函数依赖集F覆盖G(F是G的覆盖,或G是F的覆盖),或F与G等价
(即:判断两个函数依赖集是不是等价,就是判断两个函数依赖集的闭包是否相等——两个函数依赖集等价是指它们的闭包等价)

➢ 最小依赖集
➢ 也称为极小函数依赖集,最小覆盖
定义6.15 如果函数依赖集F满足下列条件,则称F为一个最小依赖集
(1)F中任一函数依赖的右部仅含有一个属性
(2)F中不存在这样的函数依赖X→A,使得F与F-{X→A}等价(即F中的函数依赖均不能由F中其他函数依赖导出
(3)F中不存在这样的函数依赖X→A,X有真子集Z是的F-{X→A} ∪ {Z→A}与F等价即F中各函数依赖左部为最小属性集(不存在冗余属性)
在这里插入图片描述

➢ R<U, F>, U=ABCD
函数依赖集F = {A→BD, AB→C, C→D}
求:F最小函数依赖集
解法步骤:
    ◾ 1.将F中所有函数依赖的右边化为单一属性
    ◾ 2.去掉F中所有函数依赖左边的冗余属性
    ◾ 3.去掉F中所有冗余的函数依赖
(1)将F中所有函数依赖的右边化为单一属性
F = {A→BD, AB→C, C→D}——>F = {A→B, A→D, AB→C, C→D}
(2)去掉F中所有函数依赖左边的冗余属性

F = {A→B, A→D, AB→C, C→D}
A+ = {A,B,C,D} B+ = {B}
(针对于AB→C,确定AB中是否存在冗余,所以求A、B的闭包)
F = {A→B, A→D, A→C, C→D}
(3)去掉F中所有冗余的 函数依赖 F = {A→B, A→D, A→C, C→D}——>F = {A→B, A→C, C→D}

➢ F的最小依赖集 F m F_m Fm不是唯一的
[例] F = {A→B, B→A, B→C, A→C, C→A}
F的最小依赖集:
F m 1 F_{m1} Fm1 = {A→B, B→C, C→A}
F m 2 F_{m2} Fm2 ={A→B, B→A, A→C, C→A}
F的最小依赖集 F m F_m Fm不是唯一的,它与对各函数依赖 F D i FD_i FDi及X→A中X各属性的处置的顺序有关

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值