Consider a relational table R that is in 3NF, but not in BCNF. Which one of the following statements is TRUE?
- R has a nontrivial functional dependency X → A, where X is not a superkey and A is a prime attribute.
- BR has a nontrivial functional dependency X → A, where X is not a superkey and A is a non-prime attribute and X is not a proper subset of any key.
- CR has a nontrivial functional dependency X → A, where X is not a superkey and A is a non-prime attribute and X is a proper subset of some key.
- DA cell in R holds a set instead of an atomic value.
Explanation
3NF permits a nontrivial FD X→A with X not a superkey ONLY if A is a prime attribute (that's the '3NF exception' clause BCNF doesn't have). BCNF requires every determinant to be a superkey, full stop, with no such exception. So if R is in 3NF but violates BCNF, the violating FD must be exactly the kind 3NF allows but BCNF forbids: X→A with X not a superkey and A prime. If A were non-prime instead (options B/C), that FD would ALSO violate 3NF, contradicting the premise that R is in 3NF. Option D describes a 1NF violation, unrelated to the 3NF/BCNF gap.
Source: GATE CS 2020 (2020)
This question is part of a 15-day revision cycle — sign in and Project Forge will bring it back the day before you'd forget it.