...中,存在函数依赖关系{A→B,A→C,A→D,(B,C)→A},
发布网友
发布时间:2024-10-20 00:31
我来回答
共4个回答
热心网友
时间:2024-11-09 21:13
强烈不同意楼上@micro0369的答案,此题答案应是BCNF。
具体原因如下:
《数据库系统概论》(王珊萨师煊版)P181页,明确提出,X→Y(X推出Y),且Y推不出X,Y→Z,此时才叫传递依赖。若X→Y且Y→X(即X←→Y),Y→Z,此时X→Z为直接依赖关系。
先明确:本题的候选码为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的基础上,主属性对码只有完全函数依赖关系,即不存在(消除)主属性对码的传递和部分依赖,所以进一步确定是BCNF。
此题为大连理工大学软件学院的考研题原题,答案由“大连理工大学软件学院在读研究生考研辅导团”给出,如有异议欢迎留言讨论。
热心网友
时间:2024-11-09 21:19
这道题有点晕,先来看看各范式的重点:
◆ 第一范式(1NF):强调的是列的原子性,即列不能够再分成其他几列。
◆ 第二范式(2NF):首先是 1NF,另外包含两部分内容,一是表必须有一个主键;二是没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分。
◆ 第三范式(3NF):首先是 2NF,另外非主键列必须直接依赖于主键,不能存在传递依赖。即不能存在:非主键列 A 依赖于非主键列 B,非主键列 B 依赖于主键的情况。
第二范式(2NF)和第三范式(3NF)的概念很容易混淆,区分它们的关键点在于,2NF:非主键列是否完全依赖于主键,还是依赖于主键的一部分;3NF:非主键列是直接依赖于主键,还是直接依赖于非主键列。
所以,如果强解这道题的话,(B,C)→A,A→D 存在传递依赖,故属于2范式,不属于3范式
热心网友
时间:2024-11-09 21:15
A->D,(B,C)->A,但是A->(B,C),所以A和(B,C)是相互决定的,所以D直接依赖于(B,C)因此不存在传递函数依赖,满足3NF。A->B,A->C,A->D,(B,C)->A,满足BCNF条件,所以该关系模式满足BCNF。
热心网友
时间:2024-11-09 21:18
(B,C)→A,A→D,但是A→(B,C),所以没有传递依赖,此题应该先求最小函数依赖集
F={A→B,A→C,A→D},所以这个应该是4NF