zoukankan      html  css  js  c++  java
  • BCNF/3NF的判断方法

    判断是否是 3NF 的条件: 对于 R 上的每个函数依赖 X->A (X 是关系 R 属性的一个子集,
    A 是 R 的一个属性) ,以下条件中的一个成立:
    1 X ∈ A
    2 X 是超码
    3 A 是 R 的码的一部分

    判断是否是 BCNF 的条件:对于 R 上的每个函数依赖 X->A(X 是关系 R 属性的一个子
    集,A 是 R 的一个属性) ,以下条件中的一个成立:
    1 X ∈ A
    2 X 是超码

    例子如下:

    (a).
    {ACD}+
    = {A、C、D、B、E}
    {BCD}+
    ={B、C、D、E、A}
    {EDC}+
    ={E、D、C、A、B}
    ACD、BCD、CDE are keys for R.

    (b)判断是否是 3NF 的条件: 对于 R 上的每个函数依赖 X->A (X 是关系 R 属性的一个子集,
    A 是 R 的一个属性) ,以下条件中的一个成立:
    1 X∈ A
    2 X 是超码
    3 A 是 R 的码的一部分
    A->B 满足条件 3
    BC->E 满足条件 3
    ED->A 满足条件 3
    所以 R 是 3NF
    (c)判断是否是 BCNF 的条件:对于 R 上的每个函数依赖 X->A(X 是关系 R 属性的一个子
    集,A 是 R 的一个属性) ,以下条件中的一个成立:
    1 X ∈ A
    2 X 是超码
    A->B 不满足 1&2
    BC->E 不满足 1&2
    ED->A 不满足 1&2
    所以 R 不是 BCNF

  • 相关阅读:
    PHP的GD库
    PHP正则表达式
    Redis学习笔记
    C++的vector对象
    Python的with用法理解
    python 类属性与方法
    python lambda表达式
    Python3的decode()与encode()
    PHP的魔法方法__set() __get()
    MySQL的基本知识 -- 函数
  • 原文地址:https://www.cnblogs.com/instant7/p/4201160.html
Copyright © 2011-2022 走看看