According to the textbook by Silberschatz,

A relation schema R is in third normal form with respect to a set $F$ of functional dependencies if, for all functional dependencies in $F^+$ of the form $\alpha$$\beta$, where $\alpha$ ⊆ R and $\beta$ ⊆ R, at least one of the following holds:

$\bullet$ $\alpha$$\beta$ is a trivial functional dependency.

$\bullet$ $\alpha$ is a superkey for R.

$\bullet$ Each attribute A in $\beta - \alpha$ is contained in a candidate key for R.

Another definition from an online video lecture series by a reputed college that I am following states,

A relation is in third normal form if:

$\bullet$ It is in second normal form,

i.e., every non-prime attribute of R is fully functionally dependent on each candidate key of R

(or in other words, no non-prime attribute of R is dependent on any proper subset of any candidate key of R).


$\bullet$ No non-prime attribute of R is functionally dependent on any other non-prime attribute of R.

I understand both these definitions. The Silberschatz definition is the second definition on the wiki page and the one from the video is (I'm guessing) the first definition on the same page.

I'm having a hard time understanding how they are equivalent. I can't understand how they seem so distinct from each other, and yet, at their core, are saying the same thing.

Can someone explain why saying one thing is the same as saying the other?

  • $\begingroup$ There's a strict ordering: anything in BCNF is necessarily in 3NF; anything in 3NF is necessarily in 2NF. But the reverses of those two do not hold. For Silbersatz to say "It is in BCNF ... and if it's not in BCNF ..." is downright confusing. But it is true that nearly every 3NF schema is also in BCNF. IOW all examples of schemas in 3NF but not BCNF seem contrived and unrealistic en.m.wikipedia.org/wiki/Boyce%E2%80%93Codd_normal_form. $\endgroup$ – AntC Dec 15 '18 at 12:46
  • $\begingroup$ Sorry if it's confusing. It's not how he defines it, but an interpretation in my own words of the definition. The more precise thing would be to say a schema is in BCNF if every dependency satisfies one of conditions i) and ii) above and is in 3NF if it satisfies one of conditions i), ii), and iii). $\endgroup$ – Rahul Dec 15 '18 at 15:03
  • $\begingroup$ "It's not how he defines it, but an interpretation in my own words of the definition." Then don't start a question with "According to ..." and (apparently) quoted text when you are not quoting. Please edit the q to show the actual text you're having difficulty with. $\endgroup$ – AntC Dec 21 '18 at 11:39
  • $\begingroup$ Sorry. I have fixed it now. $\endgroup$ – Rahul Dec 21 '18 at 15:58
  • $\begingroup$ So you're now not asking about BCNF? Your q now appears to be a duplicate: stackoverflow.com/questions/45649166/… And in general, StackOverflow has tags [database-normalization] [3nf] $\endgroup$ – AntC Dec 22 '18 at 12:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.