This is an archived course. A more recent version may be available at ocw.mit.edu.

Lecture 3: Schema Normalization

Lectures: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23

Overview

The reading for this lecture is Chapter 19 of Amazon logo Ramakrishnan, Raghu, and Johannes Gehrke. Database Management Systems. New York, NY: McGraw-Hill, 2002. ISBN: 0072465638.

This chapter discusses the problem of refining your database schema in a systematic way to eliminate particular kinds of anomalies that lead to operational problems in database system execution. You should focus on understanding BCNF and 3NF; we will not discuss the higher normal forms in much detail.

As you read this chapter, think about and be prepared to answer the following questions in Lecture:

  • What problems does schema normalization solve? Do you believe that these are important problems?
  • What is the distinction between BCNF and 3NF? Is there a reason to prefer one over the other?
  • Think about a data set you have worked with recently, and try to derive a set of functional dependencies that correspond to it. What assumptions did you have to make in modeling your data in this way?