• 数据库 之 极小化的原理


    极小函数依赖集求解方法

    每一个函数依赖集F均等价于一个极小函数依赖集Fm。称Fm为F的最小依赖集。

    1. 逐一检查F中各函数依赖FDi:X->Y,若Y=A1A2 Ak,k>=2,则用{X->Aj|j = 1,2, ,k}来取代 X -> Y
    2. 逐一检查F中各函数依赖FDi:X->A,令G = F -{X -> A},若A ∈ XG+,则从F中去掉此函数依赖(因为F与G等价的充要条件A)
    3. 逐一检查F中各函数依赖FDi:X->A,设X = B1B2 Bm,逐一考查Bi(i =1,2, ,m),若A ∈ (X - Bi)F+,则以X - Bi 取代X(因为F与F-{X->A}∪{Z->A}等价的充要条件是A∈ZF+,其中Z = X - Bi)。
    ###以上是极小化的算法思想,下面举一个例子进行详细的解释 F = {B -> CD,C -> D,DE -> C,CE -> AB,E -> C},求其极小依赖集。 1、分解右部为多属性的函数依赖得:F={B -> C,B -> D,C -> D,DE -> C,CE -> A,CE -> B,E -> C} 2、去多余函数依赖 考查B -> C:G = F-{B->C},因为 C 不属于 (B)的G的闭包{BD},所以不能去掉B->C。 考查B->D:G=F-{B->D},因为D ∈(B)G+={BCD},所以应该去掉B->D。 F = {B->C,C->D,DE->C,CE->A,CE->B,E->C} 考查C->D:G=F-{C->D},因为D 不属于(C)G+ = {C},所以不能去掉C ->D。 考查DE ->C:G = F-{DE->C},因为C ∈ (DE)G+={DECAB},所以应该去掉 B->D。 F={B->C,C->D,CE->A,CE->B,E->C} 考查CE -> A:G = F -{ CE->A },因为 A 不属于 (CE)G+ ={CEBD},所以不能去掉 CE ->A. 考查CE->B:G = F-{CE->B},因为B 不属于(CE)G+ ={CEAD},所以不能去掉CE->B。 考察E -> C:G =F - {E->C},因为 C不属于(E)G+={E},所以不能去掉CE->C. 于是F = {B->C,C->D,CE->A,CE->B,E->C} 3、去左部多余属性 考查CE->A。(CE)F+={ABCDE} 假设E是多余的,C->A代替CE->A,(C)F+(C的F闭包)={ADC}。因为(C)F+的闭包≠(CE)F+的闭包,所以E不是多余的,不能去掉。 假设C是多余的,E->A代替CE->A,(E)F+(E的F闭包)={ACBDE},因为(E)F+的闭包=(CE)F+的闭包,所以C是多余的 之后的F ={B->C,C->D,E->A,CE->B,E->C} 考查CE->B,(CE)F+={ACBDE} 假设E是多于的,C->B代替CE->B,(C)F+={ADC}。因为(C)F+的闭包≠(CE)F+的闭包,所以E不是多余的,不能去掉。 假设C是多余的,E->A代替CE->A,(E)F+={ACBDE},因为(E)F+的闭包=(CE)F+的闭包,所以C是多余的 之后的F = {B->C,C->D,E->A,E->B,E->C} 所以根据定理,求得的F位与函数依赖集等价的极小函数依赖集。
  • 相关阅读:
    控制流测试与条件测试
    12306的“短信公众号”到底是个啥?
    ISTQB名词辨析
    ISTQB TA
    启动Chrome时自动开启开发者模式
    LoadRunner Community Edition 12.60 无法获取Community License
    用言的活用声调变化规则
    ISTQB TTA大纲中提到的参考书目
    Java调用方法参数究竟是传值还是传址?
    Java中的Lambda表达式简介及应用
  • 原文地址:https://www.cnblogs.com/gxcstyle/p/6994767.html
Copyright © 2020-2023  润新知