Preface |
|
xix | |
|
Part I The Context of Database Management |
|
|
1 | (42) |
|
|
1 | (1) |
|
Chapter 1 The Database Environment and Development Process |
|
|
2 | (41) |
|
|
2 | (1) |
|
|
2 | (2) |
|
Basic Concepts and Definitions |
|
|
4 | (3) |
|
|
4 | (1) |
|
|
5 | (1) |
|
|
6 | (1) |
|
Traditional File Processing Systems |
|
|
7 | (1) |
|
Disadvantages of File Processing Systems |
|
|
7 | (1) |
|
|
7 | (1) |
|
|
8 | (1) |
|
|
8 | (1) |
|
Lengthy Development Times |
|
|
8 | (1) |
|
Excessive Program Maintenance |
|
|
8 | (1) |
|
|
8 | (14) |
|
|
8 | (1) |
|
|
8 | (1) |
|
|
9 | (1) |
|
|
10 | (1) |
|
Database Management Systems |
|
|
10 | (1) |
|
Advantages of the Database Approach |
|
|
11 | (1) |
|
Program-Data Independence |
|
|
11 | (1) |
|
|
11 | (1) |
|
Improved Data Consistency |
|
|
11 | (1) |
|
|
11 | (1) |
|
Increased Productivity of Application Development |
|
|
12 | (1) |
|
|
12 | (1) |
|
|
12 | (1) |
|
Improved Data Accessibility and Responsiveness |
|
|
13 | (1) |
|
Reduced Program Maintenance |
|
|
13 | (1) |
|
Improved Decision Support |
|
|
13 | (1) |
|
Cautions About Database Benefits |
|
|
13 | (1) |
|
Costs and Risks of the Database Approach |
|
|
13 | (1) |
|
New, Specialized Personnel |
|
|
14 | (1) |
|
Installation and Management Cost and Complexity |
|
|
14 | (1) |
|
|
14 | (1) |
|
Need for Explicit Backup and Recovery |
|
|
14 | (1) |
|
|
14 | (1) |
|
Components of the Database Environment |
|
|
14 | (2) |
|
The Database Development Process |
|
|
16 | (1) |
|
Systems Development Life Cycle |
|
|
17 | (1) |
|
Planning---Enterprise Modeling |
|
|
18 | (1) |
|
Planning---Conceptual Data Modeling |
|
|
18 | (1) |
|
Analysis---Conceptual Data Modeling |
|
|
18 | (1) |
|
Design---Logical Database Design |
|
|
18 | (1) |
|
Design---Physical Database Design and Definition |
|
|
19 | (1) |
|
Implementation---Database Implementation |
|
|
19 | (1) |
|
Maintenance---Database Maintenance |
|
|
19 | (1) |
|
Alternative Information Systems (IS) Development Approaches |
|
|
20 | (1) |
|
Three-Schema Architecture for Database Development |
|
|
21 | (1) |
|
Evolution of Database Systems |
|
|
22 | (2) |
|
The Range of Database Applications |
|
|
24 | (4) |
|
|
25 | (1) |
|
Two-Tier Client/Server Databases |
|
|
25 | (1) |
|
Multitier Client/Server Databases |
|
|
26 | (1) |
|
|
26 | (2) |
|
Developing a Database Application for Pine Valley Furniture Company |
|
|
28 | (15) |
|
Database Evolution at Pine Valley Furniture Company |
|
|
29 | (1) |
|
|
30 | (1) |
|
Analyzing Database Requirements |
|
|
30 | (2) |
|
|
32 | (3) |
|
|
35 | (1) |
|
Administering the Database |
|
|
36 | (1) |
|
Future of Databases at Pine Valley |
|
|
36 | (1) |
|
|
37 | (1) |
|
|
38 | (1) |
|
|
38 | (1) |
|
|
39 | (1) |
|
|
40 | (1) |
|
|
40 | (1) |
|
|
41 | (2) |
|
Part II Database Analysis |
|
|
43 | (76) |
|
|
43 | (2) |
|
Chapter 2 Modeling Data in the Organization |
|
|
45 | (48) |
|
|
45 | (1) |
|
|
45 | (2) |
|
The E-R Model: An Overview |
|
|
47 | (3) |
|
|
47 | (2) |
|
|
49 | (1) |
|
Modeling the Rules of the Organization |
|
|
50 | (3) |
|
Data Names and Definitions |
|
|
50 | (1) |
|
|
51 | (1) |
|
|
51 | (1) |
|
|
51 | (2) |
|
Modeling Entities and Attributes |
|
|
53 | (9) |
|
|
53 | (1) |
|
Entity Type Versus Entity Instance |
|
|
53 | (1) |
|
Entity Type Versus System Input, Output, or User |
|
|
54 | (1) |
|
Strong Versus Weak Entity Types |
|
|
55 | (1) |
|
Naming and Defining Entity Types |
|
|
55 | (2) |
|
|
57 | (1) |
|
Required Versus Optional Attributes |
|
|
57 | (1) |
|
Simple Versus Composite Attributes |
|
|
58 | (1) |
|
Single-Valued Versus Multivalued Attributes |
|
|
59 | (1) |
|
Stored Versus Derived Attributes |
|
|
59 | (1) |
|
|
59 | (2) |
|
Naming and Defining Attributes |
|
|
61 | (1) |
|
|
62 | (16) |
|
Basic Concepts and Definitions in Relationships |
|
|
63 | (1) |
|
Attributes on Relationships |
|
|
63 | (2) |
|
|
65 | (1) |
|
|
66 | (1) |
|
|
67 | (1) |
|
|
67 | (1) |
|
|
68 | (1) |
|
|
69 | (2) |
|
|
71 | (1) |
|
|
71 | (1) |
|
|
72 | (1) |
|
Some Examples of Relationships and Their Cardinalities |
|
|
72 | (1) |
|
|
73 | (1) |
|
Modeling Time-Dependent Data |
|
|
74 | (1) |
|
Modeling Multiple Relationships Between Entity Types |
|
|
75 | (1) |
|
Naming and Defining Relationships |
|
|
76 | (2) |
|
E-R Modeling Example: Pine Valley Furniture Company |
|
|
78 | (2) |
|
Database Processing at Pine Valley Furniture |
|
|
80 | (13) |
|
Showing Product Information |
|
|
81 | (1) |
|
Showing Product Line Information |
|
|
81 | (1) |
|
Showing Customer Order Status |
|
|
82 | (1) |
|
|
83 | (1) |
|
|
84 | (1) |
|
|
84 | (1) |
|
|
85 | (7) |
|
|
92 | (1) |
|
|
92 | (1) |
|
|
92 | (1) |
|
Chapter 3 The Enhanced E-R Model |
|
|
93 | (26) |
|
|
93 | (1) |
|
|
93 | (1) |
|
Representing Supertypes and Subtypes |
|
|
94 | (6) |
|
Basic Concepts and Notation |
|
|
94 | (1) |
|
An Example of a Supertype/Subtype Relationship |
|
|
95 | (1) |
|
|
96 | (1) |
|
When to Use Supertype/Subtype Relationships |
|
|
97 | (1) |
|
Representing Specialization and Generalization |
|
|
97 | (1) |
|
|
98 | (1) |
|
|
99 | (1) |
|
Combining Specialization and Generalization |
|
|
100 | (1) |
|
Specifying Constraints in Supertype/Subtype Relationships |
|
|
100 | (6) |
|
Specifying Completeness Constraints |
|
|
101 | (1) |
|
Total Specialization Rule |
|
|
101 | (1) |
|
Partial Specialization Rule |
|
|
101 | (1) |
|
Specifying Disjointness Constraints |
|
|
101 | (1) |
|
|
102 | (1) |
|
|
102 | (1) |
|
Defining Subtype Discriminators |
|
|
102 | (1) |
|
|
103 | (1) |
|
|
103 | (2) |
|
Defining Supertype/Subtype Hierarchies |
|
|
105 | (1) |
|
An Example of a Supertype/Subtype Hierarchy |
|
|
105 | (1) |
|
Summary of Supertype/Subtype Hierarchies |
|
|
106 | (1) |
|
EER Modeling Example: Pine Valley Furniture Company |
|
|
106 | (4) |
|
|
110 | (9) |
|
A Revised Data Modeling Process with Packaged Data Models |
|
|
110 | (2) |
|
Summary of Prepackaged Data Models |
|
|
112 | (1) |
|
|
112 | (1) |
|
|
113 | (1) |
|
|
113 | (1) |
|
|
114 | (2) |
|
|
116 | (1) |
|
|
117 | (1) |
|
|
117 | (2) |
|
|
119 | (70) |
|
An Overview of Part Three |
|
|
119 | (2) |
|
Chapter 4 Logical Database Design and the Relational Model |
|
|
121 | (45) |
|
|
121 | (1) |
|
|
121 | (1) |
|
The Relational Data Model |
|
|
122 | (4) |
|
|
122 | (1) |
|
Relational Data Structure |
|
|
123 | (1) |
|
|
123 | (1) |
|
|
124 | (1) |
|
Removing Multivalued Attributes from Tables |
|
|
124 | (1) |
|
|
124 | (2) |
|
|
126 | (5) |
|
|
126 | (1) |
|
|
126 | (2) |
|
|
128 | (1) |
|
Creating Relational Tables |
|
|
129 | (1) |
|
Well-Structured Relations |
|
|
130 | (1) |
|
Transforming EER Diagrams into Relations |
|
|
131 | (13) |
|
Step 1 Map Regular Entities |
|
|
132 | (1) |
|
|
132 | (1) |
|
|
133 | (1) |
|
|
133 | (1) |
|
When to Create a Surrogate Key |
|
|
134 | (1) |
|
Step 3 Map Binary Relationships |
|
|
135 | (1) |
|
Map Binary One-to-Many Relationships |
|
|
135 | (1) |
|
Map Binary Many-to-Many Relationships |
|
|
135 | (1) |
|
Map Binary One-to-One Relationships |
|
|
136 | (1) |
|
Step 4 Map Associative Entities |
|
|
137 | (1) |
|
|
137 | (1) |
|
|
138 | (1) |
|
Step 5 Map Unary Relationships |
|
|
139 | (1) |
|
Unary One-to-Many Relationships |
|
|
139 | (1) |
|
Unary Many-to-Many Relationships |
|
|
139 | (2) |
|
Step 6 Map Ternary (and n-ary) Relationships |
|
|
141 | (1) |
|
Step 7 Map Supertype/Subtype Relationships |
|
|
141 | (2) |
|
Summary of EER-to-Relational Transformations |
|
|
143 | (1) |
|
Introduction to Normalization |
|
|
144 | (4) |
|
|
145 | (1) |
|
Functional Dependencies and Keys |
|
|
146 | (1) |
|
|
146 | (1) |
|
|
146 | (2) |
|
Normalization Example: Pine Valley Furniture Company |
|
|
148 | (5) |
|
Step 0 Represent the View in Tabular Form |
|
|
148 | (1) |
|
Step 1 Convert to First Normal Form |
|
|
149 | (1) |
|
|
149 | (1) |
|
|
149 | (1) |
|
|
150 | (1) |
|
Step 2 Convert to Second Normal Form |
|
|
150 | (1) |
|
Step 3 Convert to Third Normal Form |
|
|
151 | (1) |
|
Removing Transitive Dependencies |
|
|
152 | (1) |
|
Determinants and Normalization |
|
|
152 | (1) |
|
|
153 | (13) |
|
|
154 | (1) |
|
View Integration Problems |
|
|
154 | (1) |
|
|
154 | (1) |
|
|
155 | (1) |
|
|
155 | (1) |
|
Supertype/Subtype Relationships |
|
|
156 | (1) |
|
|
156 | (1) |
|
|
157 | (1) |
|
|
157 | (1) |
|
|
158 | (7) |
|
|
165 | (1) |
|
|
165 | (1) |
|
|
165 | (1) |
|
Chapter 5 Physical Database Design and Performance |
|
|
166 | (23) |
|
|
166 | (1) |
|
|
166 | (1) |
|
The Physical Database Design Process |
|
|
167 | (2) |
|
Physical Database Design As a Basis for Regulatory Compliance |
|
|
168 | (1) |
|
|
169 | (2) |
|
|
169 | (1) |
|
|
170 | (1) |
|
|
171 | (1) |
|
|
171 | (4) |
|
|
172 | (1) |
|
Opportunities For and Types of Denormalization |
|
|
172 | (2) |
|
|
174 | (1) |
|
Designing Physical Database Files |
|
|
175 | (7) |
|
|
176 | (2) |
|
Sequential File Organizations |
|
|
178 | (1) |
|
Indexed File Organizations |
|
|
179 | (1) |
|
Hashed File Organizations |
|
|
180 | (2) |
|
Designing Controls for Files |
|
|
182 | (1) |
|
Using and Selecting Indexes |
|
|
182 | (2) |
|
Creating a Unique Key Index |
|
|
182 | (1) |
|
Creating a Secondary (Nonunique) Key Index |
|
|
183 | (1) |
|
|
183 | (1) |
|
Designing a Database for Optimal Query Performance |
|
|
184 | (5) |
|
|
185 | (1) |
|
|
185 | (1) |
|
|
186 | (1) |
|
|
186 | (2) |
|
|
188 | (1) |
|
|
188 | (1) |
|
|
188 | (1) |
|
|
189 | (164) |
|
|
189 | (2) |
|
Chapter 6 Introduction to SQL |
|
|
191 | (41) |
|
|
191 | (1) |
|
|
191 | (1) |
|
Origins of the SQL Standard |
|
|
192 | (2) |
|
|
194 | (5) |
|
Defining a Database in SQL |
|
|
199 | (4) |
|
Generating SQL Database Definitions |
|
|
199 | (1) |
|
|
200 | (2) |
|
Creating Data Integrity Controls |
|
|
202 | (1) |
|
Changing Table Definitions |
|
|
202 | (1) |
|
|
203 | (1) |
|
Inserting, Updating, and Deleting Data |
|
|
203 | (2) |
|
Deleting Database Contents |
|
|
205 | (1) |
|
Updating Database Contents |
|
|
205 | (1) |
|
Internal Schema Definition in RDBMSs |
|
|
205 | (2) |
|
|
206 | (1) |
|
|
207 | (25) |
|
Clauses of the SELECT Statement |
|
|
207 | (2) |
|
|
209 | (1) |
|
|
210 | (3) |
|
|
213 | (1) |
|
Using Comparison Operators |
|
|
213 | (1) |
|
|
214 | (1) |
|
|
214 | (2) |
|
Using Ranges for Qualification |
|
|
216 | (1) |
|
|
217 | (2) |
|
Using IN and NOT IN with Lists |
|
|
219 | (1) |
|
Sorting Results: The ORDER BY Clause |
|
|
219 | (1) |
|
Categorizing Results: The GROUP BY Clause |
|
|
220 | (1) |
|
Qualifying Results by Categories: The HAVING Clause |
|
|
221 | (2) |
|
|
223 | (2) |
|
|
225 | (1) |
|
|
226 | (1) |
|
|
226 | (1) |
|
|
227 | (3) |
|
|
230 | (1) |
|
|
230 | (1) |
|
|
231 | (1) |
|
|
232 | (36) |
|
|
232 | (1) |
|
|
232 | (1) |
|
Processing Multiple Tables |
|
|
233 | (17) |
|
|
234 | (1) |
|
|
235 | (1) |
|
|
236 | (2) |
|
Sample Join Involving Four Tables |
|
|
238 | (1) |
|
|
239 | (2) |
|
|
241 | (5) |
|
|
246 | (1) |
|
|
247 | (1) |
|
|
248 | (2) |
|
Tips for Developing Queries |
|
|
250 | (3) |
|
Guidelines for Better Query Design |
|
|
252 | (1) |
|
Ensuring Transaction Integrity |
|
|
253 | (2) |
|
Data Dictionary Facilities |
|
|
255 | (1) |
|
|
256 | (5) |
|
|
256 | (2) |
|
|
258 | (1) |
|
Example Routine in Oracle's PL/SQL |
|
|
259 | (2) |
|
Embedded SQL and Dynamic SQL |
|
|
261 | (7) |
|
|
262 | (1) |
|
|
263 | (1) |
|
|
263 | (1) |
|
|
264 | (3) |
|
|
267 | (1) |
|
|
267 | (1) |
|
|
267 | (1) |
|
Chapter 8 Database Application Development |
|
|
268 | (32) |
|
|
268 | (1) |
|
|
268 | (1) |
|
Client/Server Architectures |
|
|
269 | (2) |
|
Databases in a Two-Tier Architecture |
|
|
271 | (4) |
|
|
272 | (2) |
|
|
274 | (1) |
|
|
275 | (3) |
|
Web Application Components |
|
|
278 | (1) |
|
Databases in Three-Tier Applications |
|
|
278 | (5) |
|
|
279 | (3) |
|
|
282 | (1) |
|
Key Considerations in Three-Tier Applications |
|
|
283 | (5) |
|
|
284 | (1) |
|
|
285 | (1) |
|
|
285 | (1) |
|
Key Benefits of Three-Tier Applications |
|
|
285 | (2) |
|
Cloud Computing and Three-Tier Applications |
|
|
287 | (1) |
|
Extensible Markup Language (XML) |
|
|
288 | (5) |
|
|
290 | (1) |
|
|
290 | (3) |
|
|
293 | (1) |
|
|
293 | (7) |
|
|
297 | (1) |
|
|
297 | (1) |
|
|
298 | (1) |
|
|
298 | (1) |
|
|
299 | (1) |
|
|
299 | (1) |
|
|
299 | (1) |
|
Chapter 9 Data Warehousing |
|
|
300 | (53) |
|
|
300 | (1) |
|
|
300 | (2) |
|
Basic Concepts of Data Warehousing |
|
|
302 | (4) |
|
A Brief History of Data Warehousing |
|
|
303 | (1) |
|
The Need for Data Warehousing |
|
|
303 | (1) |
|
Need For a Company-Wide View |
|
|
303 | (3) |
|
Need to Separate Operational and Informational Systems |
|
|
306 | (1) |
|
Data Warehouse Architectures |
|
|
306 | (8) |
|
Independent Data Mart Data Warehousing Environment |
|
|
306 | (2) |
|
Dependent Data Mart and Operational Data Store Architecture: A Three-Level Approach |
|
|
308 | (2) |
|
Logical Data Mart and Real-Time Data Warehouse Architecture |
|
|
310 | (2) |
|
Three-Layer Data Architecture |
|
|
312 | (1) |
|
Role of the Enterprise Data Model |
|
|
313 | (1) |
|
|
313 | (1) |
|
Some Characteristics of Data Warehouse Data |
|
|
314 | (3) |
|
|
314 | (1) |
|
Transient Versus Periodic Data |
|
|
315 | (1) |
|
An Example of Transient and Periodic Data |
|
|
315 | (1) |
|
|
315 | (1) |
|
|
316 | (1) |
|
Other Data Warehouse Changes |
|
|
317 | (1) |
|
|
317 | (14) |
|
Characteristics of Derived Data |
|
|
318 | (1) |
|
|
318 | (1) |
|
Fact Tables and Dimension Tables |
|
|
319 | (1) |
|
|
320 | (1) |
|
|
321 | (1) |
|
|
322 | (1) |
|
|
322 | (1) |
|
|
323 | (1) |
|
|
324 | (1) |
|
|
324 | (1) |
|
|
325 | (3) |
|
Slowly Changing Dimensions |
|
|
328 | (1) |
|
Determining Dimensions and Facts |
|
|
329 | (2) |
|
Big Data and Columnar Databases |
|
|
331 | (1) |
|
If You Knew SQL Like I NoSQL |
|
|
332 | (1) |
|
|
333 | (8) |
|
|
334 | (1) |
|
|
334 | (1) |
|
Online Analytical Processing (OLAP) Tools |
|
|
335 | (1) |
|
|
336 | (1) |
|
|
336 | (1) |
|
Summarizing More than Three Dimensions |
|
|
337 | (1) |
|
|
338 | (1) |
|
Business Performance Management and Dashboards |
|
|
338 | (1) |
|
|
339 | (1) |
|
|
340 | (1) |
|
|
340 | (1) |
|
Data Governance and Data Quality |
|
|
341 | (12) |
|
|
341 | (1) |
|
|
342 | (1) |
|
Characteristics of Quality Data |
|
|
343 | (1) |
|
|
344 | (1) |
|
|
345 | (1) |
|
|
345 | (1) |
|
|
346 | (4) |
|
|
350 | (1) |
|
|
351 | (1) |
|
|
351 | (2) |
Glossary of Acronyms |
|
353 | (2) |
Glossary of Terms |
|
355 | (6) |
Index |
|
361 | |