Chapter 5. Class Normalization

Good designs are highly cohesive and loosely coupled. The more ways that you have to reach this goal the better.

In Chapter 4, you saw that data normalization is a technique by which you organize data in such a way as to reduce and even eliminate data redundancy, effectively increasing the cohesiveness of your data schema. Can the rules of data normalization be applied to object schemas? Yes, but you need to modify them a bit. The rules of data normalization aren't ideal for objects because they only address data and not behavior. You need to consider both when normalizing an object schema. Class normalization (Ambler 1997) is a process by which you reorganize the structure of your object schema in such a way as to increase the cohesion of classes while minimizing the coupling between them.

To explore the techniques associated with class normalization, the following topics are discussed in this chapter:

  • How does class normalization relate to other object-oriented design practices?

  • The role of the agile DBA

  • First object normal form (1ONF)

  • Second object normal form (2ONF)

  • Third object normal form (3ONF)

  • Beyond 3ONF

How Does Class Normalization Relate to Other Object Design Practices?

Fundamentally class normalization is a technique for improving the quality of your object schemas. The exact same thing can be said of the application of common design pattern, such as those defined by the "Gang of Four (GoF)" in Design Patterns (Gamma et. al. 1995). Design patterns ...

Get Agile Database Techniques: Effective Strategies for the Agile Software Developer now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.