Chapter 10. JDs and 5NF (Formal)

After great pain, a formal feeling comes

Emily Dickinson

Just as Chapter 5 consisted of a more formal treatment of material introduced in Chapter 4, so this chapter consists of a more formal treatment of material introduced in Chapter 9. But there’s rather more to cover in this chapter than there was in Chapter 5, as you’ll soon see. Let me just say up front that, just as Chapter 5 had little to say about 2NF or 3NF, so this chapter has little to say about 4NF, either; like 2NF and 3NF, in fact, 4NF is—from some points of view, at least—mainly of historical interest. However, I’ll have more to say about it in a later chapter (Chapter 12).


I begin with a precise and accurate definition of what a JD is, followed by some explanatory text that deliberately parallels the corresponding text in Chapter 5. (Similar remarks apply to the next section also.)

  • Definition: Let H be a heading; then a join dependency (JD) with respect to H is an expression of the form {X1,...,Xn}, where X1, ..., Xn (the components of the JD) are subsets of H whose union is equal to H. Note: The phrase JD with respect to H can be abbreviated to just JD, if H is understood.

Here are some examples:

      { { SNO , SNAME , CITY } , { CITY , STATUS } }
      { { CITY , SNO } , { CITY ...

Get Database Design and Relational Theory now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.