zoukankan      html  css  js  c++  java
  • 候选码、主码、超码、全码、主属性、非主属性、非码属性的定义理解

    候选码、主码、超码、全码、主属性、非主属性、非码属性的定义理解

    候选码(码):设K为R<U,F>中的属性或属性组合,若U完全依赖K,则K为R的候选码。

    具体一些,比如一个学生表,有了学号可以查到一个学生所有个人信息,这就是所说的完全依赖。

    超码:如果说U部分依赖K,则K为R的候选码,候选码是最小的超码,如果任意超码的真子集不能包括超码,则称其为候选码,超码包括候选码。

    主码:若候选码只有一个,则该候选码为主码。若候选码多于一个,则选定其中一个为主码。候选码可以作为主码,主码一定是候选码,但候选码不一定是主码。

    理解:主码是人为挑选出来的,是随机的,不是确定的。

    实例:如果说有学生(学号,姓名,身份证),候选码就是(学号,身份证),主码可以是学号,也可以是身份证,随您喜欢

    1587655705021

    主属性:包含任何一个候选码的属性集合称为主属性。

    比如,竞赛表(竞赛编号,竞赛名称,竞赛组织者) PS:竞赛名称和竞赛组织者都可以重复

    很明显可以看出竞赛编号能够唯一标识整张竞赛表,因此候选码是竞赛编号,并且仅此一个候选码,其他属性都不能唯一标识整张表,所竞赛编号同时也是主码

    这时候判断一下这几个属性or属性组是否是主属性,(竞赛编号)(竞赛编号,竞赛名称)(竞赛名称,竞赛组织者),(竞赛编号)只有一个属性,这个属性是主码,主码必定为候选码,因此属性含有一个候选码,这个属性是主属性。(竞赛编号,竞赛名称)有两个属性,其中竞赛编号是候选码,而竞赛名称不是候选码,那他是啥呢~前面有提到了,因为它跟候选码在同一个属性组里,所以,竞赛名称是超码,回过头来,最后得出该属性组含有了一个候选码,因此该属性组中的各个属性都是主属性。(竞赛名称,竞赛组织者)有两个属性,可以看出这两个属性都不是候选码,因此这个属性组不包含候选码,属性组中中得各个元素称为非主属性。

    do you know?~

    非主属性(或非码属性):不包含任何一个候选码的属性集合称为非主属性。

    实例:对于表Student(A,B,C),有关系集合R{A→B,B→C},可以得出A为候选码(求候选码求不阐述啦博客里有),则A为主属性,BC为非主属性。

    全码:所有属性都是候选码,则称为全码。

    写得比较散QAQ但是偶自己在几个月后看还是有所收获的,相信大家能有所收获XD有不对的或者疑问的可及时指出

  • 相关阅读:
    Windows进程通信(2)使用内存映射文件
    VC2010添加头文件目录
    CString(ANSI/Unicode)与string/wstring的安全转换
    1005 ( Number Sequence )
    1004 ( Let the Balloon Rise )
    1003 ( Max Sum )
    CreateMutex
    CloseHandle
    delphi的Frame简单演示
    DLL中显示模式窗体
  • 原文地址:https://www.cnblogs.com/lightice/p/12764782.html
Copyright © 2011-2022 走看看