含有多个候选码的主属性范围以及数据库范式判定问题

关系模式R(U,F),U={H,I,J,K,L},F={H->I, H->J, J->K, IJK->L, L->H, L->K},从这个关系模式中明显看出有三个候选码,分别是(H)、(L)、(I J),请问此时的主属性和非主属性到底又是什么?在多个候选码的情况下如何判断范式?该模式属于第几范式?

主属性:一个属性只要在任何一个候选码中出现过,这个属性就是主属性。
非主属性:与上面相反,没有在任何候选码中出现过,这个属性就是非主属性。

所以 此时的主属性是:H,L,I,J。 非主属性是:K

范式的判断:
第一范式(1NF)无重复的列 ‍属性不可分

第二范式(2NF)属性完全依赖于主键[消除非主属性对主码的部分函数依赖] 符合1NF,并且,非主属性完全依赖于码

第三范式(3NF)属性不依赖于其它非主属性[消除传递依赖] 符合2NF,并且,消除传递依赖

‍ BC范式(BCNF):符合3NF,并且,主属性不依赖于主属性

由于存在 J->K,所以K部分依赖于候选码(IJ),所以不满足第二范式。所以该模式只属于第一范式。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-08-02
在有多个候选码的时候仅仅对于这道题目的话选哪一个当作主键都可以的,主属性包括:h,l ,i和j,非主属性就是剩下的属性了……先去看看主属性和非主属性的定义就清楚了,判断范式的话需要明白各个范式的定义。一二范式很好理解。所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被唯一地区分。第三范式就是要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式。 鲍依斯-科得范式(BCNF):在第三范式的基础上,数据库表中如果不存在任何字段对任一候选关键字段的传递函数依赖则符合第三范式。还有两三个范式需要理解,再理解了所有范式之后看看题目属于那个范式就很明白了

含有多个候选码的主属性范围以及数据库范式判定问题
主属性:一个属性只要在任何一个候选码中出现过,这个属性就是主属性。非主属性:与上面相反,没有在任何候选码中出现过,这个属性就是非主属性。所以 此时的主属性是:H,L,I,J。 非主属性是:K 范式的判断:第一范式(1NF)无重复的列 ‍属性不可分 第二范式(2NF)属性完全依赖于...

数据库闭包和候选码求解方法是什么?
在数据库理论中,候选码是能够唯一标识一个关系模式中所有元组的属性集。推论2指出,如果一个属性集X包含关系模式R的N类和L类属性,并且X+包含了R的所有属性,则X是R的唯一候选码。这里的N类和L类属性通常指的是非主属性和主属性。非主属性指的是那些在候选码中不出现的属性,而主属性则是候选码...

候选码的概述有哪些呢?
求解候选码通常需要以下步骤:首先,找到最小函数依赖集F;其次,分别计算UL(左部闭包),UR(右部闭包),UB(两者闭包);最后,通过UL闭包计算得出候选码。在数据库设计中,候选码的求解是非常关键的,因为它决定了主键的选择。一般而言,选择任一候选码作为主键即可,但为了优化查询效率和减少数据冗余...

在数据库关系模式R(A,B,C,D)中,存在函数依赖关系{A→B,A→C,A→D...
先明确:本题的候选码为A,(B,C),所以判定ABC为主属性,D为非主属性。A→B,A→C,可写成A→(B,C)的形式,反过来(B,C)→A,A→D,此时(B,C)→D为直接依赖关系【此处大部分考生均容易出错】,非主属性D对码(A或者(B,C))只存在完全函数依赖关系,所以至少是3NF。继续,3NF的基...

相似回答