| Contents at a Glance | 5 |
|---|
| Contents | 7 |
|---|
| About the Author | 18 |
|---|
| Preface | 19 |
|---|
| Part I: Introduction | 23 |
|---|
| Chapter 1: Introduction to Usage-Driven Database Design | 24 |
| Database Design Principle 1: Separation Principle | 26 |
| Database Design Principle 2: Distinction Principle | 27 |
| The Difference Between Separation and Distinction | 29 |
| Database Design Principle 3: Convergence Principle | 29 |
| The Separation, Distinction, and Convergence Principles | 30 |
| Database Design Principle 4: Minimal Regression Principle | 30 |
| Usage-Driven Database Design | 30 |
| Logical Data Modeling | 31 |
| Physical Schema Definition | 32 |
| The Terminology Trap | 32 |
| Notes | 33 |
| Part II: Logical Data Modeling | 34 |
|---|
| Chapter 2: The E-R Approach | 35 |
| A Little Data Modeling History | 37 |
| Some Important Definitions | 38 |
| Logical Data Modeling Objects | 39 |
| Entities | 39 |
| Type-Instance Distinction | 40 |
| Relationships | 40 |
| Attributes | 41 |
| Notes | 42 |
| Chapter 3: More About the E-R Approach | 43 |
| More About Relationships | 43 |
| Membership Class | 43 |
| Cardinality | 44 |
| Modality | 45 |
| Degree | 47 |
| Binary Relationship | 47 |
| N-ary Relationships | 48 |
| Unary or Recursive Relationships | 48 |
| Relationship Constraints | 49 |
| Inclusion | 49 |
| Exclusion | 50 |
| Conjunction | 50 |
| Simple Conjunction | 50 |
| Conditional Conjunction | 51 |
| Recursive Modality Constraints | 52 |
| More About Entities | 55 |
| Attributive Entity | 55 |
| Associative Entities | 56 |
| Supertype and Subtype Entities (Generalization and Specialization) | 56 |
| More About Attributes | 58 |
| Attribute Domain | 58 |
| Attribute Source: Primitive and Derived | 59 |
| Attribute Descriptor and Unique Identifier | 59 |
| Compound or Concatenated Unique Identifiers | 60 |
| Attribute Complexity: Simple and Group | 60 |
| Attribute Valuation: Single Value and Multivalue | 61 |
| Attribute Complexity and Valuation | 61 |
| Chapter 4: Building the Logical Data Model | 64 |
| The Interview Process | 65 |
| Gather Information and Review | 66 |
| 1. Identify the Users Who Are Authorities or Experts on the Subject | 66 |
| 2. Meet and Interview the Experts and Identify the Subject (Application) Entities | 66 |
| Preparation | 66 |
| The First Interview | 67 |
| 3. Identify Relationships Between the Entities | 67 |
| 4. Identify the Properties or Attributes of the Entities and Relationships | 67 |
| Analyze Information | 67 |
| Construct Model | 68 |
| Repeat as Necessary | 68 |
| Making Sense of the Interview | 68 |
| Modeling Rules | 70 |
| Verifying What You Have Heard | 72 |
| Immediate Interview Feedback | 72 |
| Formal Walk-Throughs | 72 |
| Increasing E-R Diagram Comprehension | 74 |
| Subject Areas | 74 |
| Entity Fragments | 75 |
| Neighborhood Diagrams | 76 |
| Relationship Bridges and Stubs | 77 |
| Some Model Building Best Practices | 78 |
| Getting Started | 78 |
| Don’t Lose Control of the Project to Users | 79 |
| Don’t Lose Control of the Project to Technical Staff | 79 |
| Don’t Become Dependent on Tools or Techniques | 80 |
| Don’t Get Bogged Down in Endless Analysis | 80 |
| The Players…and the Rules of Engagement | 81 |
| Deliverables | 82 |
| Examples of Deliverables | 83 |
| Sample Data Dictionary, Data Object Definitions | 84 |
| Notes | 86 |
| Chapter 5: LDM Best Practices | 87 |
| Abbreviations | 88 |
| Almost Unique Identifiers | 89 |
| Clarity | 90 |
| Compound Unique Identifiers | 90 |