coisini002 2023-03-28 20:51 采纳率: 51.3%
浏览 244
已结题

若关系R的候选码都是由单属性构成的,则R的最高范式必定是

若关系R的候选码都是由单属性构成的,则R的最高范式必定是( B  )。
A. 1NF            
B. 2NF
C. 3NF           
D.无法确定
为什么是2NF的

  • 写回答

2条回答 默认 最新

  • 星拱北辰 Python领域优质创作者 2023-03-28 22:36
    关注

    先温习基础知识:
    若关系中的一个属性或属性组的值能够唯一地标识一个元组,且他的真子集不能唯一的标识一个元组,则称这个属性或属性组做候选码。
    若一个关系有多个候选码,则选定其中一个为主码。
    1NF:确保每个属性都是原子性的,即不可再分。一个属性中不能包含另一个属性的集合,例如一个地址属性中不能包含街道、城市、国家等属性。
    2NF:在满足1NF的基础上,每个非主属性完全依赖于主键,而不是只依赖于主键的一部分。如果主键是由多个属性组成的复合键,那么非主属性就要依赖于所有的主键属性,而不是只依赖于其中一部分。
    3NF:在满足2NF的基础上,每个非主属性不依赖于其他非主属性。换句话说,每个非主属性都必须直接依赖于主键。如果存在非主属性之间的依赖关系,就要把它们拆分成单独的表,每个表都应该有自己的主键。
    下面分析选项:
    R是一个关系,关系型数据库的关系必然满足1NF,即每个属性都是原子的,而不是复合的。
    在R满足1NF的基础上,由于关系R的候选码都是由单属性构成的,因此即便存在非主码属性依赖于主码属性,那也只能完全依赖于主码,而不能部分依赖于主码,因此R满足2NF。
    “关系R的候选码都是由单属性构成的”不能保证关系R的每个非主属性不依赖于其他非主属性。如果R的非主属性之间存在传递依赖关系,即存在一个非主属性A,它依赖于R的主属性,而另一个非主属性B又依赖于A,则R就不满足3NF。这时候就需要对R进行分解,使得新关系集合能够保持函数依赖关系,同时保持数据的一致性和完整性。因此,关系R不满足3NF。
    因此,关系R最高必然满足2NF,不一定满足3NF,所以选B。
    如果我的回答对你有帮助,还望采纳。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月12日
  • 已采纳回答 4月4日
  • 请采纳用户回复 3月29日
  • 创建了问题 3月28日

悬赏问题

  • ¥15 制裁名单20240508芯片厂商
  • ¥20 易康econgnition精度验证
  • ¥15 msix packaging tool打包问题
  • ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致