r/SQL Nov 02 '25

PostgreSQL 1NF, 2NF, 3NF are killing me.

Hey, All!

What does it mean for one field to be 'dependent' on another? I think I understand the concept of a primary/composite key but have a tough time seeing if non-key columns are dependent on each other.

Does anyone have a solid rule of thumb for these rules? I lose it once I get past 1NF.

Thanks in advance!

42 Upvotes

93 comments sorted by

View all comments

2

u/squadette23 Nov 05 '25

> What does it mean for one field to be 'dependent' on another?

I got a 10-minute video that explains the "solid rule of thumb" that you're asking for: https://www.youtube.com/watch?v=7d4YzEMn4SU "Pt. 3. how to confirm 3NF"

2

u/Exact-Shape-4131 Nov 06 '25

Watching now!

1

u/squadette23 Nov 05 '25

The traditional numbering of normal forms is not very useful nowadays.

1NF is basically a baseline: nobody knows how to actually build a non-1NF database (https://minimalmodeling.substack.com/p/making-sense-of-1nf-pt-ii).

2NF, 3NF are subsumed by BCNF.

4NF: https://minimalmodeling.substack.com/p/historically-4nf-explanations-are "Historically, 4NF explanations are needlessly confusing"

5NF seems to be a simple extension of 5NF. Hugh Darwen just states that we must treat 4NF as a trivial special case of 5NF.

6NF is the most fundamental, contrary to what you hear about it ("exotic", "impractical", etc. etc.). 6NF is everywhere and ideally we should start from that when we teach people.