zoukankan      html  css  js  c++  java
  • 数据关系模式设计的标准化

    把关系模式R分解成p以后,如何测试分解p是否为有损分解方法:

    1.根据分解模式和属性列表

    列:分解模式

    行:属性

    比如RABC) 分为p=ABAC)  满足FA—>C

    列表

    A

    B

    C

    AB

    AC

    填表

     若分解模式中包含属性 则填a下标ii为对应列数。

     若分解模式中不包含属性 则填b下标为jij为行号,i为列号

    所以表填完结果为:

    A

    B

    C

    AB

    a1

    a2

    b13

    AC

    a1

    b22

    a3

    2.修改表中元素 根据FD X——>Y

    FD X——>Y,则在X属性列找是否有相同的值:

       若有,则到y属性下修改。(修改规则:有a则改为和a相同的,没有a则修改成 b下标小的那个相同。

       若没有,则不用修改

    所以例题修改如下FA——>C

    A

    B

    C

    AB

    a1

    a2

    a3

    AC

    a1

    b22

    a3

    3.若修改的最后一张表格中,有一行全为a,则称为无损分解,否则为有损分解

    所以例题将b13改为a3

    所以此题为无损分解

    如何判断是否保持函数依赖的分解

    F属性集U上的FD集,ZU的子集,FZ上的投影用 兀zF表示

    p=R1R2.......)是R的一个分解,FR上的FD集,如果式的所有并集 的集合蕴涵F集合,则则称分解保持函数依赖集

    例题 设关系RABC),FR上成立的FD集,F={ B——>CC——>A}p={ABAC}R上的一个分解,那么分解p是否保持FDF

    1.FAB上的投影

    ABF=

    AB可以是

    A——>BA的集合闭包:A+=A 没有B所以不成立

    B——>A B的集合闭包:B+=BCA   A所以,成立,则 兀ABF={B——>A}

     同样方法求在AC上的投影

    ACF=

    AC可以是

    A——>CA+=A  没有C所以 不成立

    C——>A  C+=CA  A所以  成立

    则兀ACF={C——>A}

    2.求投影的并集

    ABFUAC(F={B——>AC——>A}②

    3.判断F是否被式蕴含

    因为都有C——>A,所以F中这个不用判断,判断B——>C  B+=BA  没有C

    注意:::判断闭包时要在式中判断。

    所以 这个题p不保持FDG

    怎么求候选键

    先找到关系R的最大超键

    例如 R(ABCD)  F={B——>CD——>A}  p={BCAD}

      最大超键就是 ABCD

    先在每一个F中 通过求闭包方式 划去冗余的属性

    例如  最大超键ABCD 先从FB——>C 所以把C划去,再从D——>A 划去A 所以此时候选键有可能是BD,再看从D——>A开始,可以划去A,再看 B——>C可以划去C,所以候选键可能是BD

    把可能候选键验证 看是否候选键闭包集是全集U

    例如

    BD闭包集=ABCD=U,所以BD是候选键

    怎么判断范式级别?

    例题 中判断p中的级别,p={BCAD}

    先在BCADF中做投影,然后在投影的集合中找出候选键

    主属性:

    如果A是关系模式R的候选键中的属性,那么称AR的主属性,否则AR的非主属性。

    1范式

    定义:如果关系模式R的每个关系r的属性值都是不可分的原子值

    2范式

    定义  如果关系模式R1NF,且每个非主属性完全函数依赖于候选键

    局部依赖:对于FDW——>A,如果存在X属于W,有X——>A成立,那么称W——>A是局部依赖

    否则 完全依赖

    3范式

    F是关系模式RFD集,如果对于FD中每个X——>Y,都有XR的超键,或者Y的每个属性都是主属性。

    BCNF

    F是关系模式RFD集,如果对于FD中每个X——>Y,都有XR的超键

  • 相关阅读:
    禅道的安装
    项目管理必看的几个网站
    禅道管理中的项目管理--组织进行任务分解
    Redis--Springboot使用
    Mapper.xml--配置map<String, List<String>>输入
    SpringBoot-Dubbo、Zk
    高并发--并发编程的三大辅助类
    笔试-2020年西山居Java笔试题(补上,一直忘记补上了)
    HttpWebRequest.GetRequestStream方法timeout【第3次操作时就超时】的原因及解决办法
    洛谷 P2613 【模板】有理数取余(高精度取余,逆元)
  • 原文地址:https://www.cnblogs.com/fmust/p/9050344.html
Copyright © 2011-2022 走看看