Preface |
|
xix | |
Acknowledgments |
|
xxiii | |
Authors |
|
xxv | |
Introduction |
|
xxvii | |
|
Chapter 1 Data, Databases, and the Software Engineering Process |
|
|
1 | (10) |
|
|
1 | (1) |
|
|
1 | (1) |
|
|
2 | (1) |
|
1.4 What Is the Software Engineering Process? |
|
|
3 | (4) |
|
1.5 Entity-Relationship Diagrams and the Software Engineering Life Cycle |
|
|
7 | (2) |
|
1.5.1 Phase 1: Get the Requirements for the Database |
|
|
8 | (1) |
|
1.5.2 Phase 2: Specify the Database |
|
|
8 | (1) |
|
1.5.3 Phase 3: Design the Database |
|
|
9 | (1) |
|
|
9 | (2) |
|
|
10 | (1) |
|
|
10 | (1) |
|
Chapter 2 Data and Data Models |
|
|
11 | (22) |
|
|
11 | (1) |
|
2.2 Files, Records, and Data Items |
|
|
11 | (3) |
|
2.3 Moving From 3 × 5 Cards to Computers |
|
|
14 | (5) |
|
|
19 | (9) |
|
2.4.1 The Hierarchical Model |
|
|
20 | (4) |
|
2.4.1.1 The Hierarchical Model with a Linked List |
|
|
24 | (2) |
|
2.4.1.2 Relationship Terminology |
|
|
26 | (1) |
|
2.4.1.3 Drawbacks of the Hierarchical Model |
|
|
27 | (1) |
|
|
28 | (3) |
|
|
31 | (1) |
|
|
32 | (1) |
|
|
32 | (1) |
|
Chapter 3 The Relational Model and Functional Dependencies |
|
|
33 | (38) |
|
|
33 | (1) |
|
3.2 Fundamentals of Relational Database |
|
|
33 | (3) |
|
3.3 Relational Database and Sets |
|
|
36 | (2) |
|
3.4 Functional Dependency |
|
|
38 | (2) |
|
|
40 | (4) |
|
3.6 The Second Normal Form |
|
|
44 | (8) |
|
|
48 | (1) |
|
|
49 | (3) |
|
3.7 The Third Normal Form |
|
|
52 | (5) |
|
3.8 The Equijoin Operation |
|
|
57 | (2) |
|
3.9 Some Functional Dependency Rules |
|
|
59 | (6) |
|
3.10 The Boyce--Codd Normal Form |
|
|
65 | (3) |
|
|
68 | (3) |
|
|
68 | (1) |
|
|
69 | (2) |
|
Chapter 4 The Basic ER Diagram: A Data Modeling Schema |
|
|
71 | (36) |
|
|
71 | (1) |
|
4.2 What Is a Data Modeling Schema? |
|
|
71 | (2) |
|
4.2.1 What Is an Entity-Relationship Diagram? |
|
|
72 | (1) |
|
4.3 Defining a Database---Some Definitions: Entity, Relationship, and Attribute |
|
|
73 | (3) |
|
4.3.1 A Beginning Methodology |
|
|
74 | (1) |
|
4.3.2 ER Design Methodology |
|
|
75 | (1) |
|
4.4 A First "Entity-Only" ER Diagram: An Entity with Attributes |
|
|
76 | (3) |
|
4.5 More about Attributes |
|
|
79 | (8) |
|
4.5.1 The Simple or Atomic Attribute |
|
|
79 | (1) |
|
4.5.2 The Composite Attribute |
|
|
80 | (1) |
|
4.5.3 The Multivalued Attribute |
|
|
81 | (1) |
|
4.5.4 The Derived Attribute |
|
|
82 | (1) |
|
|
82 | (5) |
|
4.6 English Description of the Entity |
|
|
87 | (7) |
|
|
87 | (1) |
|
|
87 | (1) |
|
|
87 | (1) |
|
|
88 | (1) |
|
4.6.2 ER Design Methodology |
|
|
88 | (1) |
|
|
88 | (1) |
|
4.6.3.1 Figure 4.3 Example |
|
|
89 | (1) |
|
4.6.3.2 Figure 4.4 Example |
|
|
90 | (1) |
|
4.6.3.3 Figure 4.5a Example |
|
|
91 | (1) |
|
4.6.3.4 Figure 4.6 Example |
|
|
91 | (1) |
|
4.6.3.5 Figure 4.7 Example |
|
|
92 | (2) |
|
4.7 Mapping the Entity Diagram to a Relational Database |
|
|
94 | (5) |
|
|
99 | (8) |
|
|
99 | (1) |
|
|
100 | (4) |
|
|
104 | (1) |
|
|
104 | (3) |
|
Chapter 5 Beyond the First Entity Diagram |
|
|
107 | (22) |
|
|
107 | (1) |
|
5.2 Examining an Entity: Changing an Attribute to Be an Entity |
|
|
108 | (1) |
|
5.3 Defining a Relationship for Our New Entity |
|
|
109 | (3) |
|
5.3.1 ER Design Methodology |
|
|
111 | (1) |
|
5.4 A Preliminary Grammar for ER Diagrams |
|
|
112 | (1) |
|
|
112 | (1) |
|
5.5 Defining a Second Entity |
|
|
112 | (5) |
|
5.6 Does a Relationship Exist? |
|
|
117 | (1) |
|
5.7 Attribute or Relationship? |
|
|
117 | (2) |
|
5.7.1 ER Design Methodology |
|
|
118 | (1) |
|
|
119 | (10) |
|
|
119 | (1) |
|
|
120 | (8) |
|
|
128 | (1) |
|
Chapter 6 Extending Relationships/Structural Constraints |
|
|
129 | (50) |
|
|
129 | (1) |
|
6.2 The Cardinality Ratio of a Relationship |
|
|
129 | (5) |
|
|
131 | (1) |
|
|
131 | (1) |
|
|
132 | (1) |
|
|
132 | (2) |
|
6.3 Participation: Full/Partial |
|
|
134 | (1) |
|
|
135 | (2) |
|
|
137 | (10) |
|
6.5.1 Pattern 1---x:y::k:1 |
|
|
139 | (1) |
|
6.5.2 Pattern 2---x:y::k:1 |
|
|
139 | (1) |
|
6.5.3 Pattern 3---x:y::k:M |
|
|
140 | (1) |
|
6.5.4 Pattern 4---x:y::k:M |
|
|
140 | (1) |
|
6.5.5 Summary of the Patterns and Relationships |
|
|
141 | (1) |
|
|
141 | (1) |
|
|
141 | (1) |
|
|
142 | (1) |
|
|
143 | (1) |
|
|
143 | (1) |
|
|
143 | (1) |
|
|
144 | (1) |
|
|
145 | (1) |
|
6.5.6 ER Design Methodology |
|
|
146 | (1) |
|
6.6 Some Examples of Other Relationships |
|
|
147 | (6) |
|
6.6.1 An Example of the One-to-Many Relationship (1:M) |
|
|
147 | (1) |
|
6.6.1.1 Pattern 4-1:M, From the 1 Side, Partial Participation |
|
|
148 | (1) |
|
6.6.1.2 Pattern 2---M(Partial):1, From M Side, Optional Participation |
|
|
149 | (1) |
|
6.6.2 An Example of the Many-to-One Relationship (M:1) |
|
|
150 | (1) |
|
6.6.2.1 Pattern 1---M:1, From the M Side, Full Participation |
|
|
150 | (1) |
|
6.6.2.2 Pattern 3-1:M, From the 1 Side, Full Participation |
|
|
151 | (1) |
|
6.6.3 An Example of the Many-to-Many Relationship (M:N) |
|
|
151 | (1) |
|
6.6.3.1 Pattern 3---M:N, From the M Side, Full Participation |
|
|
152 | (1) |
|
6.6.3.2 Pattern 4---N:M, From the N Side, Partial Participation |
|
|
152 | (1) |
|
|
153 | (6) |
|
6.7.1 ER Design Methodology |
|
|
154 | (1) |
|
|
155 | (1) |
|
|
156 | (2) |
|
6.7.2 Pattern 1---M:1, From the M Side, Full Participation |
|
|
158 | (1) |
|
6.7.3 Pattern 3--1:M, From the 1 Side, Full Participation |
|
|
159 | (1) |
|
6.8 Mapping Relationships to a Relational Database |
|
|
159 | (9) |
|
6.8.1 Mapping Binary M:N Relationships |
|
|
159 | (2) |
|
6.8.2 Mapping Binary 1:1 Relationships |
|
|
161 | (6) |
|
6.8.3 Mapping Binary 1:N Relationships |
|
|
167 | (1) |
|
|
168 | (11) |
|
|
168 | (4) |
|
|
172 | (6) |
|
|
178 | (1) |
|
|
178 | (1) |
|
Chapter 7 The Weak Entity |
|
|
179 | (22) |
|
|
179 | (1) |
|
7.2 Strong and Weak Entities |
|
|
179 | (5) |
|
7.3 Weak Entities and Structural Constraints |
|
|
184 | (1) |
|
7.4 Weak Entities and the Identifying Owner |
|
|
184 | (2) |
|
7.4.1 Another Example of a Weak Entity and the Identifying Owner |
|
|
186 | (1) |
|
7.5 Weak Entities Connected to Other Weak Entities |
|
|
186 | (3) |
|
7.6 Revisiting the Methodology |
|
|
189 | (1) |
|
|
190 | (1) |
|
|
190 | (1) |
|
7.8 Mapping Weak Entities to a Relational Database |
|
|
191 | (2) |
|
|
193 | (8) |
|
|
194 | (1) |
|
|
194 | (6) |
|
|
200 | (1) |
|
Chapter 8 Further Extensions for ER Diagrams with Binary Relationships |
|
|
201 | (38) |
|
|
201 | (1) |
|
8.2 Attributes of Relationships |
|
|
201 | (3) |
|
|
203 | (1) |
|
8.3 Relationships Developing into Entities: The M:N Relationship Revisited |
|
|
204 | (2) |
|
|
205 | (1) |
|
|
206 | (1) |
|
|
206 | (1) |
|
8.4 More Entities and Relationships |
|
|
206 | (7) |
|
8.4.1 More Than Two Entities |
|
|
206 | (1) |
|
8.4.1.1 Pattern 4--- x:y::1:M, From the 1 Side, Partial Participation |
|
|
207 | (1) |
|
8.4.1.2 Pattern 1---x:y::M:1, From the M Side, Full Participation |
|
|
207 | (2) |
|
8.4.2 Adding More Attributes That Evolve into Entities |
|
|
209 | (4) |
|
8.5 More Evolution of the Database |
|
|
213 | (1) |
|
8.6 Attributes That Evolve into Entities |
|
|
213 | (3) |
|
8.7 Recursive Relationships |
|
|
216 | (6) |
|
8.7.1 Recursive Relationships and Structural Constraints |
|
|
219 | (1) |
|
8.7.1.1 One-to-One Recursive Relationship (Partial Participation on Both Sides) |
|
|
219 | (1) |
|
8.7.1.2 One-to-Many Recursive Relationship (Partial Participation on Both Sides) |
|
|
220 | (1) |
|
8.7.1.3 Many-to-Many Recursive Relationship (Partial on Both Sides) |
|
|
220 | (2) |
|
8.8 Multiple Relationships |
|
|
222 | (2) |
|
8.9 The Derived or Redundant Relationship |
|
|
224 | (4) |
|
8.10 Optional: An Alternative ER Notation for Specifying Structural Constraints on Relationships |
|
|
228 | (2) |
|
8.11 Review of the Methodology |
|
|
230 | (2) |
|
8.11.1 ER Design Methodology |
|
|
230 | (1) |
|
|
231 | (1) |
|
|
231 | (1) |
|
|
232 | (1) |
|
8.12 Mapping Rules for Recursive Relationships |
|
|
232 | (2) |
|
|
234 | (5) |
|
|
234 | (1) |
|
|
235 | (3) |
|
|
238 | (1) |
|
Chapter 9 Ternary and Higher-Order ER Diagrams |
|
|
239 | (26) |
|
|
239 | (1) |
|
9.2 Binary or Ternary Relationship? |
|
|
240 | (3) |
|
9.3 Structural Constraints for Ternary Relationships |
|
|
243 | (2) |
|
9.3.1 Many to Many to Many (M1:M2:M3) |
|
|
243 | (2) |
|
9.4 An Example of an n-ary Relationship |
|
|
245 | (1) |
|
9.5 n-ary Relationships Do Not Preclude Binary Relationships |
|
|
246 | (1) |
|
9.6 Methodology and Grammar for the n-ary Relationship |
|
|
247 | (5) |
|
9.6.1 A More Exact Grammar |
|
|
249 | (1) |
|
9.6.1.1 Pattern 3---M:N, From the M Side, Full Participation |
|
|
249 | (1) |
|
9.6.1.2 Pattern 3---k:M, from the k Side, Full Participation (k = 1 or N) |
|
|
249 | (1) |
|
9.6.1.3 Pattern 5 (n-ary)--- x:y:z::a:b:c, From the a Side, Full/Partial Participation |
|
|
250 | (1) |
|
9.6.2 Grammar in a Partial Participation, Ternary Relationship with an M1:1:M2 Relationship |
|
|
251 | (1) |
|
9.7 Ternary Relationships From Relationship-Relationship Situations |
|
|
252 | (2) |
|
9.8 n-ary Relationships That May Be Resolved into Binary Relationships |
|
|
254 | (5) |
|
9.9 Mapping n-ary Relationships to a Relational Database |
|
|
259 | (1) |
|
9.10 Review of the Methodology |
|
|
260 | (1) |
|
9.10.1 ER Design Methodology |
|
|
260 | (1) |
|
|
261 | (4) |
|
|
262 | (1) |
|
|
263 | (2) |
|
Chapter 10 The Enhanced Entity-Relationship (EER) Model |
|
|
265 | (34) |
|
|
265 | (1) |
|
10.2 What Is a Generalization or Specialization? |
|
|
265 | (2) |
|
|
267 | (1) |
|
10.4 Examples of Generalizations or Specializations |
|
|
268 | (6) |
|
10.5 Methodology and Grammar for Generalization/Specialization Relationships |
|
|
274 | (2) |
|
10.6 Mapping Rules for Generalizations and Specializations |
|
|
276 | (7) |
|
|
277 | (3) |
|
|
280 | (1) |
|
|
281 | (1) |
|
|
282 | (1) |
|
10.7 Subclasses of Subclasses |
|
|
283 | (3) |
|
|
285 | (1) |
|
10.8 Categories or Union Types |
|
|
286 | (6) |
|
10.8.1 Participation Ratios in Categories or Union Types |
|
|
288 | (3) |
|
10.8.2 Mapping Categories or Union Types When Superclasses Have the Same Primary Keys |
|
|
291 | (1) |
|
10.8.3 Mapping Categories or Union Types When Superclasses Have Different Primary Keys |
|
|
291 | (1) |
|
10.9 Final ER Design Methodology |
|
|
292 | (2) |
|
10.9.1 ER Design Methodology |
|
|
293 | (1) |
|
|
294 | (5) |
|
|
294 | (1) |
|
|
295 | (3) |
|
|
298 | (1) |
|
Chapter 11 Relational Mapping and Reverse Engineering ER/EER Diagrams |
|
|
299 | (26) |
|
|
299 | (1) |
|
11.2 Steps Used to Map ER/EER Diagrams to Relational Databases |
|
|
299 | (7) |
|
|
306 | (16) |
|
11.3.1 Reverse Engineering Rule 1. Develop Strong Entities |
|
|
307 | (1) |
|
11.3.2 Reverse Engineering Rule 2. Look for 1:1 and 1:N (1:x) Relationships |
|
|
308 | (3) |
|
11.3.3 Reverse Engineering Rule 2a. Check for Attributes of the 1:x Relationship |
|
|
311 | (1) |
|
11.3.4 Reverse Engineering Rule 3. Look for Weak Entities and Multivalued Attributes |
|
|
311 | (3) |
|
11.3.5 Reverse Engineering Rule 3a. Checking for Weak Entities |
|
|
314 | (1) |
|
11.3.6 Reverse Engineering Rule 3b. Checking for Multivalued Attributes |
|
|
314 | (2) |
|
11.3.7 Reverse Engineering Rule 4. Check for M:N and n-ary Relationships |
|
|
316 | (1) |
|
11.3.8 Reverse Engineering Rule 4a. Check for the Binary Case |
|
|
316 | (1) |
|
11.3.9 Reverse Engineering Rule 4b. Check for the n-ary Case |
|
|
316 | (2) |
|
11.3.10 Reverse Engineering Rule 5. Check for Generalization/Specialization Relationships |
|
|
318 | (1) |
|
11.3.11 Reverse Engineering Rule 5a. Check for Generalization/Specialization Relationships with Disjoint or Overlap Relationships with Total or Partial Participation Constraints |
|
|
319 | (1) |
|
11.3.12 Reverse Engineering Rule 5b. Check for Disjoint Generalization/Specialization Relationships with Single-Predicate-Defined Attributes |
|
|
320 | (1) |
|
11.3.13 Reverse Engineering Rule 5c. Check for Overlap Generalization/Specialization Relationship with More Than One Flag |
|
|
321 | (1) |
|
11.3.14 Reverse Engineering Rule 6. Check for Shared Subclasses |
|
|
321 | (1) |
|
11.3.15 Reverse Engineering Rule 7. Check for Categories or Union Types |
|
|
321 | (1) |
|
|
322 | (3) |
|
|
323 | (1) |
|
|
324 | (1) |
|
Chapter 12 A Brief Overview of the Barker/Oracle-Like Model |
|
|
325 | (16) |
|
|
325 | (1) |
|
12.2 A First "Entity-Only" ER Diagram: An Entity with Attributes |
|
|
326 | (1) |
|
12.3 Attributes in the Barker/Oracle-Like Model |
|
|
327 | (2) |
|
12.3.1 Optional versus Mandatory Attributes |
|
|
327 | (2) |
|
12.4 Relationships in the Barker/Oracle-Like Model |
|
|
329 | (1) |
|
12.5 Structural Constraints in the Barker/Oracle-Like Model |
|
|
329 | (3) |
|
12.6 Dealing with the Concept of the Weak Entity in the Barker/Oracle-Like Model |
|
|
332 | (1) |
|
12.7 Dealing with the Concept of Multivalued Attributes in the Barker/Oracle-Like Model |
|
|
333 | (3) |
|
12.8 Treatment of Foreign Keys |
|
|
336 | (1) |
|
12.9 Recursive Relationships in the Barker/Oracle-Like Model |
|
|
336 | (1) |
|
12.10 Mapping M:N Relationships |
|
|
336 | (4) |
|
|
340 | (1) |
|
|
340 | (1) |
Bibliography |
|
341 | (2) |
Glossary |
|
343 | (4) |
Index |
|
347 | |