PATTERNS OF DATA MODELING- P5: Models provide the means for building quality software in a predictable manner. Models let developers think deeply about software and cope with large size and complexity. Developers can think abstractly before becoming enmeshed in the details of writing code. Although models are beneficial, they can be difficult to construct. That is where patterns come in. Patterns provide building blocks that help developers construct models faster and better. | 1 Introduction Models provide the means for building quality software in a predictable manner. Models let developers think deeply about software and cope with large size and complexity. Developers can think abstractly before becoming enmeshed in the details of writing code. Although models are beneficial they can be difficult to construct. That is where patterns come in. Patterns provide building blocks that help developers construct models faster and better. This chapter starts with a discussion of models and then introduces the topic of patterns. What Is a Model A model is an abstraction of some aspect of a problem. Most software models are expressed as graphical diagrams and by their form appeal to human intuition. Developers must understand a problem before attempting a solution. Models let developers express their understanding of a problem and communicate it to others technologists business experts users managers and other project stakeholders. Developers can focus on the essence of an application and defer implementation details. Chapter 8 of Blaha-2001 lists additional reasons for building models. There are various kinds of models such as data models state-transition models and data-flow models that are used for databases programming and other purposes. This book concerns data models and the focus is on databases. Modeling Notation Data modeling has no widely-accepted dominant notation. To appeal to a broad audience this book uses two notations UML Unified Modeling Language and IDEF1X and presents most patterns and models with both notations. These notations largely express the same i 2 Chapter 1 Introduction content so you can readily understand this book as long as you are fluent with either one. The Appendix summarizes both notations and gives references for further details. UML The UML s data structure notation specifies entities and their relationships. This sets the scope and level of abstraction for subsequent development. The UML .