6.5830/6.5831: Database Systems
Fall 2022
The reading for this lecture is
  • Section 3.2 and 3.3 of "A Practical Introduction to Databases", by Christopher Painter-Wakefield and Section 2 of of "A Practical Introduction to Databases", by Christopher Painter-Wakefield. The first reading discusses the "relational algebra" proposed by Ted Codd, which we will discuss at the beginning of lecture, as well as a formal model based on the notion of functional dependencies that makes it possible to reason about whether schemas are free 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.

    The second reading discusses ER modeling, which is one practical way which can be used to model a database and generate relational database schemas.

    The relationship between these three readings is that ER modeling generally produces relational schemas that conform to 3NF/BCNF, though this isn't strictly true.

    As you read these chapters, 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?
    • How is it that ER modeling generally leads to BCNF/3NF schemas?