ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

求最小依赖集、求候选码和判断满足第几范式

2021-06-26 22:31:00  阅读:219  来源: 互联网

标签:候选 依赖 范式 函数 第几 2NF 非主 属性


求最小依赖集

  1. F中任一函数依赖的右部仅含有一个属性
  2. F中不能存在 函数依赖X->A(此时F与F-{X->A}等价)
  3. F中不能存在 函数依赖X->A(此时A的真子集Z使得F与F-{X->A}∪{Z->A}等价)(左侧单一化)

例题:关系模式R<U,F>,U={A,B,C,D,E},F={A→BC,ABD→CE,E→D},求F的最小依赖集。
第一步:得到{A->B,A->C,ABD->C,ABD->E,E->D}
第二部:得到{A->B,A->C,ABD->E,E->D}
第三步:得到{A->B,A->CAD->E,E->D}

求候选码

  1. 仅在函数依赖集F中的依赖左边出现的属性必定属于候选码;
  2. 仅在函数依赖集F中的依赖右边出现的属性必定是非主属性;
  3. 函数依赖集F中的依赖两边均不出现的属性必定属于候选码;
  4. 函数依赖集F中的依赖两边均出现的属性 与1.3选出的属性进行闭包运算,如果闭包结果为U,即候选码。

判断满足第几范式

  1. 1NF是关系型数据库的基本的要求,如果连这个都不满足的话,就不能称为关系型数据库。
    1NF:所有的属性都不可再分。

  2. 2NF:在1NF的基础上,每一个非主属性完全函数依赖于任何一个候选码
    例子:
    例一:U={A,B,C,D,E},F={AD->E,A->B,AD->B,A->C,AD->C,B->C},那么主码为AD,非主属性为BCE,B、C并不完全依赖于码,不满足2NF。
    例二:U={A,B,C,D,E},F={AB->C,A->D,B->E},那么主码为AB,但是A->D,D仅仅依赖于主码的部分属性A,所以不满足2NF.
    如果所有的候选码都只有一个属性,那么他起码是2NF

  3. 3NF:每一个非主属性既不传递依赖与码,也不部分依赖于码。
    如果非主属性之间存在依赖关系,那么就不是3NF
    例子:
    F={X->Y,X->Z,Y->Z};可以看出,主码为X,但是存在非主属性Z对非主属性Y的依赖,所以不满足3NF.

  4. BCNF:每一个决定因素都包含码
    例子:
    U={S,T,J},F={(S,T)->T,(S,T)->J,T->J}。这里(S,J)和(S,T)都是候选码,但是在函数依赖T->J中,左边没有包含任一候选码(是(S,J)或者(S,T))。所以,该模式不能称为BCNF

例题:设有关系R(A,B,C,D),其函数依赖集F={B->C,C->D,D->A},则关系r至多满足(3NF)。
第一步:求候选码
找出B只在左侧,C,D两侧都有,A只在右侧,对B进行闭包运算,发现不需要(C,D)就可以得到U。得到候选码B。
第二部:判断范式
不满足非属性间得传递性,所以是2NF。

标签:候选,依赖,范式,函数,第几,2NF,非主,属性
来源: https://blog.csdn.net/qq_45654873/article/details/118253773

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有