When the performance of a relational database isn’t acceptable, we face two choices: either replace the relational database with another technology (e.g., NoSQL) or break some of the design rules to improve performance. This lesson covers partitioning, which splits a relational table into multiple tables and distributes them across multiple machines, and denormalization, which sacrifices redundancy in exchange for reducing the number of joins when processing queries.

Learning Objectives

  • Describe horizontal and vertical partitioning for relational schemas
  • Describe the concept of denormalization and when to consider it

How to Complete this Lesson

  1. Read “Physical Database Design Techniques” in Fundamentals of Database Management Systems Chapter 8: Physical Database Design (60 minutes)
  2. Watch Scaling Databases (7 minutes)
  3. Watch What is Database Denormalization in DBMS (7 minutes)
  4. Take the quiz
  5. Complete the B+ tree assignment (30–60 minutes)
  6. Work on the project’s web application (30–60 minutes)

At this point, the B+ tree implementation should be largely complete. If substantial work remains, focusing on the project may be a better use of time (though you’ll need to use your own judgment based on the points allocated to each).

Due

As a reminder, the following are due this lesson: