zoukankan      html  css  js  c++  java
  • 数据库规范化:候选码的求解

    什么是候选码?

    首先来看候选码的定义:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码。

    若W是候选键,则必须满足两个条件:W的闭包是U;W没有冗余。

    准则:

    确定关系模式的候选码是进行规范化分析的出发点,有下述准则可以使用:
    关系R(U,F)中,F是最小函数依赖集。
    准则1:如果属性A只在F中各函数依赖的左端出现,则A必是码中的属性;
    准则2:如果属性A只在F中各函数依赖的右端出现,则A必不是码中的属性;

    步骤

    对于关系模式R(U,F),求F的最小函数依赖集,仍用F表示。
    根据准则1,确定码中必须有的属性集(设为M)。
    根据准则2,去掉码中没有的属性集。
    确定余下的属性集(设为W)。
    从M开始,令K=M,如果,K的闭包等于U,则K就是候选码。否则从W选择属性加入到K中,直到K的闭包等于U,K就是候选码。
    注意可能有多个候选码。

    例子

    设R(U,F),U=ABCDEG,
    F{BE→G,BD→G,CDE→AB,CD→A,CE→G,BC→A,B→D,C→D},求R的码。
    解:(1) 求得
    Fmin={B→G,CE→B,C→A,CE→G,B→D,C→D }
    (2) 只在左端出现的属性CE (M=CE)。
    (3) 只在右端出现的属性ADG。
    (4) 余下的属性B (W=B)。
    R的候选码只可能是CE、CEB。
    经计算
    在这里插入图片描述
    因此R的码是CE。

  • 相关阅读:
    《机器学习实战》K近邻算法
    第 4 章 单例模式
    第 3 章 闭包和高阶函数
    第2章 this 、 call 和 apply
    第1章 面向对象的JavaScript
    前言 发展历史
    Linux常用的基本命令
    VLSM
    IP编址和子网划分
    RADIUS操作命令
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13308063.html
Copyright © 2011-2022 走看看