Option A : A relation with only two attributes is always in BCNF
let relation R(A,B), then possible FD’s are
- A → B, in this case A is minimal Superkey, So this relation should be in BCNF
- B → A, in this case B is minimal Superkey, So this relation should be in BCNF
- AB → AB , in this case AB is minimal Superkey, So this relation should be in BCNF
So, given statement is Correct.
Alternatively we can think like, We can’t further divide a relation which had only two attributes, then it must be in BCNF.
Option B : If all the attributes of a relation are Prime attributes, then the relation is in BCNF
classic counter example : R(A,B,C) with FD set = {AB → C, C → A}
in this relation all attributes are prime but this relation is not in BCNF due to “ C → A ”
Correct statement is : If all the attributes in the relation are Prime attributes, then it is in 3NF.
Option C : Every relation has at least one non-prime attribute
counter example : R(A,B,C) with FD set = {AB → C, C → A}
in this relation all attributes are prime
Correct statement is : Every relation has atleast one prime attribute.
Option D : BCNF decompositions preserve functional dependencies
for any relation, we can guarentee there exist atleast one decomposition which is in 3NF, lossless and Dependency Preserving. But we can not guarentee that atleast one decomposition which is BCNF, lossless and Dependency Preserving.
Option A is correct