I have come across two flavors of the normalization procedure while referring the Internet and textbooks:

Type 1. Normal forms based only on the primary key.

In this type,

  • 2NF disallows Partial dependencies on the primary key.

  • 3NF disallows transitive dependencies on the primary key.

Type 2. A much more general Normal form based on ALL of the candidate keys

In this type,

Partial dependencies and transitive dependencies on ALL candidate keys are taken into account.

In most of the sites I referred, I have found tutorials and notes based only on the 1st type. But the textbook 'Fundamentals of Database Systems' by Navathe and Elmasri describes both the types. Even Wikipedia's page on 2NF mentions separately about '2NF and candidate keys' which is based on the 2nd type (See 2NF and Candidate Keys - Wiki).

But neither the textbook nor the Wikipedia article mentions anything regarding which type is better or which one is practically preferred.

Which type should be followed when nothing is mentioned about the type?


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.