Skip to content

Instantly share code, notes, and snippets.

Created October 31, 2017 20:36
Show Gist options
  • Save anonymous/53c7498698dfd237ec595e8573260989 to your computer and use it in GitHub Desktop.
Save anonymous/53c7498698dfd237ec595e8573260989 to your computer and use it in GitHub Desktop.
Database Normalization

1NF (definiton of a table)

  • has a primary key
  • no repeating columns
  • all values are scalar (atomic)
  • no dependent columns (computed columns)

2NF

  • in 1NF
  • no partial dependencies
  • i.e. if there is a composite key, no values rely on just a portion of the composite key

3NF

  • in 2NF
  • no transitive dependencies in non-key attributes
  • i.e. if {A} -> (B, C) and {B} -> C, then C shouldn't be in the first table

BCNF (3.5NF)

  • in 3NF
  • all determinants are key attributes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment