Preface
Introduction
1. Chapter 1: Data, Databases, and the Software Engineering Process
1.1. What Is the Software Engineering Process?
1.2. Entity-Relationship Diagrams and the Software Engineering Life Cycle
1.3. Phase 1: Get the Requirements for the Database
1.4. Phase 2: Specify the Database
1.5. Phase 3: Design the Database
2. Chapter 2: Data and Data Models
2.1. Files, Records, and Data Items
2.2. Moving From 3 × 5 Cards to Computers
2.3. Te Hierarchical Model
2.4. Te Hierarchical Model with a Linked List
2.5. Drawbacks of the Hierarchical Model
2.6. Te Network Model
2.7. Te Relational Model
3. Chapter 3: The Relational Model and Functional Dependencies
3.1. Fundamentals of Relational Database
3.2. Relational Database and Sets
3.3. Non-1NF to 1NF
3.4. Te Second Normal Form
3.5. Non-2NF to 2NF
3.6. Te Tird Normal Form
3.7. Te Equijoin Operation
3.8. Some Functional Dependency Rules
3.9. Te Boyce–Codd Normal Form
4. Chapter 4: The Basic ER Diagram: A Data Modeling Schema
4.1. What Is a Data Modeling Schema?
4.2. What Is an Entity-Relationship Diagram?
4.3. Defning a Database—Some Defnitions: Entity, Relationship, and Attribute
4.4. ER Design Methodology
4.5. A First “Entity-Only” ER Diagram: An Entity with Attributes
4.6. More about Attributes
4.6.1. Te Simple or Atomic Attribute
4.6.2. Te Composite Attribute
4.6.3. Te Multivalued Attribute
4.6.4. Te Derived Attribute
4.7. English Description of the Entity
4.8. ER Design Methodology
4.9. Mapping the Entity Diagram to a Relational Database
5. Chapter 5: Beyond the First Entity Diagram
5.1. Examining an Entity: Changing an Attribute to Be an Entity
5.2. Defning a Relationship for Our New Entity
5.3. ER Design Methodology
5.4. A Preliminary Grammar for ER Diagrams
5.5. Defning a Second Entity
5.6. Does a Relationship Exist?
5.7. Attribute or Relationship?
5.8. ER Design Methodology
6. Chapter 6: Extending Relationships/Structural Constraints
6.1. Te Cardinality Ratio of a Relationship
6.1.1. One to One (1:1)
6.1.2. Many to One (M:1)
6.1.3. One to Many (1:M)
6.1.4. Many to Many (M:N)
6.2. Participation: Full/Partial
6.3. Summary of the Patterns and Relationships
6.4. ER Design Methodology
6.5. Some Examples of Other Relationships
6.5.1. An Example of the One-to-Many Relationship (1:M)
6.5.1.1. Pattern 4–1:M, From the 1 Side, Partial Participation
6.5.1.2. Pattern 2—M(Partial):1, From M Side, Optional Participation
6.5.2. An Example of the Many-to-One Relationship (M:1)
6.5.2.1. Pattern 1—M:1, From the M Side, Full Participation
6.5.2.2. Pattern 3–1:M, From the 1 Side, Full Participation
6.5.3. An Example of the Many-to-Many Relationship (M:N)
6.5.3.1. Pattern 3—M:N, From the M Side, Full Participation
6.5.3.2. Pattern 4—N:M, From the N Side, Partial Participation
6.6. One Final Example
6.6.1. ER Design Methodology
6.6.2. Pattern 1—M:1, From the M Side, Full Participation
6.6.3. Pattern 3–1:M, From the 1 Side, Full Participation
6.7. Mapping Relationships to a Relational Database
6.7.1. Mapping Binary M:N Relationships
6.7.2. Mapping Binary 1:1 Relationships
6.7.3. Mapping Binary 1:N Relationships
7. Chapter 7: The Weak Entity
7.1. Strong and Weak Entities
7.2. Weak Entities and Structural Constraints
7.3. Weak Entities and the Identifying Owner
7.3.1. Another Example of a Weak Entity and the Identifying Owner
7.4. Weak Entities Connected to Other Weak Entities
7.5. Revisiting the Methodology
7.6. Weak Entity Grammar
7.7. Mapping Weak Entities to a Relational Database
8. Chapter 8: Further Extensions for ER Diagrams with Binary Relationships
8.1. Attributes of Relationships
8.2. Relationships Developing into Entities: Te M:N Relationship Revisited
8.3. More Entities and Relationships
8.3.1. More Tan Two Entities
8.3.1.1. Pattern 4—x:y::1:M, From the 1 Side, Partial Participation
8.3.1.2. Pattern 1—x:y::M:1, From the M Side, Full Participation
8.3.2. Adding More Attributes Tat Evolve into Entities
8.4. More Evolution of the Database
8.5. Attributes Tat Evolve into Entities
8.5.1. Recursive Relationships and Structural Constraints
8.5.1.1. One-to-One Recursive Relationship (Partial Participation on Both Sides)
8.5.1.2. One-to-Many Recursive Relationship (Partial Participation on Both Sides)
8.5.1.3. Many-to-Many Recursive Relationship (Partial on Both Sides)
8.6. Te Derived or Redundant Relationship
8.7. Optional: An Alternative ER Notation for Specifying Structural Constraints on Relationships
8.8. Review of the Methodology
8.9. ER Design Methodology
8.10. Mapping Rules for Recursive Relationships
9. Chapter 9: Ternary and Higher-Order ER Diagrams
9.1. Binary or Ternary Relationship?
9.2. Structural Constraints for Ternary Relationships
9.2.1. Many to Many to Many (M1:M2:M3)
9.3. An Example of an n-ary Relationship
9.4. n-ary Relationships Do Not Preclude Binary Relationships
9.5. Methodology and Grammar for the n-ary Relationship
9.5.1. A More Exact Grammar
9.5.1.1. Pattern 3—M:N, From the M Side, Full Participation
9.5.1.2. Pattern 3—k:M, from the k Side, Full Participation (k = 1 or N)
9.5.1.3. Pattern 5 (n-ary)—x:y:z::a:b:c, From the a Side, Full/Partial Participation
9.5.2. Grammar in a Partial Participation, Ternary Relationship with an M1:1:M2 Relationship
9.6. Ternary Relationships From Relationship-Relationship Situations
9.7. n-ary Relationships Tat May Be Resolved into Binary Relationships
9.8. Mapping n-ary Relationships to a Relational Database
9.9. Review of the Methodology
9.10. ER Design Methodology
10. Chapter 10: The Enhanced Entity-Relationship (EER) Model
10.1. What Is a Generalization or Specialization?
10.2. Examples of Generalizations or Specializations
10.3. Methodology and Grammar for Generalization/ Specialization Relationships
10.4. Mapping Rules for Generalizations and Specializations
10.5. Subclasses of Subclasses
10.6. Categories or Union Types
10.6.1. Participation Ratios in Categories or Union Types
10.6.2. Mapping Categories or Union Types When Superclasses Have the Same Primary Keys
10.6.3. Mapping Categories or Union Types When Superclasses Have Diferent Primary Keys
10.7. Final ER Design Methodology
10.8. ER Design Methodology
11. Chapter 11: Relational Mapping and Reverse Engineering ER/EER Diagrams
11.1. Steps Used to Map ER/EER Diagrams to Relational Databases
11.1.1. Reverse Engineering Rule 1. Develop Strong Entities
11.1.2. Reverse Engineering Rule 2. Look for 1:1 and 1:N (1:x) Relationships
11.1.3. Reverse Engineering Rule 2a. Check for Attributes of the 1:x Relationship
11.1.4. Reverse Engineering Rule 3. Look for Weak Entities and Multivalued Attributes
11.1.5. Reverse Engineering Rule 3a. Checking for Weak Entities
11.1.6. Reverse Engineering Rule 3b. Checking for Multivalued Attributes
11.1.7. Reverse Engineering Rule 4. Check for M:N and n-ary Relationships
11.1.8. Reverse Engineering Rule 4a. Check for the Binary Case
11.1.9. Reverse Engineering Rule 4b. Check for the n-ary Case
11.1.10. Reverse Engineering Rule 5. Check for Generalization/Specialization Relationships
11.1.11. Reverse Engineering Rule 5a. Check for Generalization/Specialization Relationships with Disjoint or Overlap Relationships with Total or Partial Participation Constraints
11.1.12. Reverse Engineering Rule 5b. Check for Disjoint Generalization/Specialization Relationships with Single-Predicate- Defned Attributes
11.1.13. Reverse Engineering Rule 5c. Check for Overlap Generalization/Specialization Relationship with More Tan One Flag
11.1.14. Reverse Engineering Rule 6. Check for Shared Subclasses
11.1.15. Reverse Engineering Rule 7. Check for Categories or Union Types
12. Chapter 12: A Brief Overview of the Barker/Oracle-Like Model
12.1. A First “Entity-Only” ER Diagram: An Entity with Attributes
12.2. Attributes in the Barker/Oracle-Like Model
12.2.1. Optional versus Mandatory Attributes
12.3. Relationships in the Barker/Oracle-Like Model
12.4. Structural Constraints in the Barker/ Oracle-Like Model
12.5. Dealing with the Concept of the Weak Entity in the Barker/Oracle-Like Model
12.6. Dealing with the Concept of Multivalued Attributes in the Barker/Oracle-Like Model
12.7. Treatment of Foreign Keys
12.8. Recursive Relationships in the Barker/ Oracle-Like Model