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

2025-02-28 00:11:42
推荐回答(2个)
回答1:

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

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

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

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

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

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

由于存在 J->K,所以K部分依赖于候选码(IJ),所以不满足第二范式。所以该模式只属于第一范式。

回答2:

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