|
PART I. DATABASE CONCEPTS |
|
|
|
Business Vignette: The Relational Revolution |
|
|
3 | (1) |
|
|
4 | (26) |
|
|
5 | (1) |
|
Introducing the Database and the DBMS |
|
|
6 | (4) |
|
Role and Advantages of the DBMS |
|
|
7 | (1) |
|
|
8 | (2) |
|
Why Database Design Is Important |
|
|
10 | (1) |
|
Historical Roots: Files and File Systems |
|
|
10 | (4) |
|
Problems with File System Data Management |
|
|
14 | (4) |
|
Structural and Data Dependence |
|
|
15 | (1) |
|
Field Definitions and Naming Conventions |
|
|
15 | (2) |
|
|
17 | (1) |
|
|
18 | (12) |
|
The Database System Environment |
|
|
19 | (2) |
|
|
21 | (4) |
|
Managing the Database System:A Shift in Focus |
|
|
25 | (1) |
|
|
26 | (1) |
|
|
26 | (1) |
|
|
27 | (1) |
|
|
27 | (3) |
|
|
30 | (32) |
|
Data Modeling and Data Models |
|
|
31 | (1) |
|
The Importance of Data Models |
|
|
31 | (1) |
|
Data Model Basic Building Blocks |
|
|
32 | (1) |
|
|
33 | (2) |
|
Discovering Business Rules |
|
|
34 | (1) |
|
Translating Business Rules into Data Model Components |
|
|
34 | (1) |
|
The Evolution of Data Models |
|
|
35 | (13) |
|
|
36 | (1) |
|
|
37 | (1) |
|
|
38 | (2) |
|
The Entity Relationship Model |
|
|
40 | (3) |
|
The Object-Oriented (OO) Model |
|
|
43 | (1) |
|
The Convergence of Data Models |
|
|
44 | (1) |
|
Database Models and the Internet |
|
|
45 | (1) |
|
|
45 | (3) |
|
Degrees of Data Abstraction |
|
|
48 | (13) |
|
|
48 | (2) |
|
|
50 | (1) |
|
|
51 | (1) |
|
|
52 | (1) |
|
|
53 | (1) |
|
|
54 | (1) |
|
|
54 | (1) |
|
|
55 | (6) |
|
|
|
Business Vignette: Database Modeling Supporting Communities |
|
|
61 | (1) |
|
The Relational Database Model |
|
|
62 | (42) |
|
|
63 | (3) |
|
Tables and Their Characteristics |
|
|
63 | (3) |
|
|
66 | (5) |
|
|
71 | (1) |
|
|
72 | (6) |
|
The Data Dictionary and the System Catalog |
|
|
78 | (2) |
|
Relationships within the Relational Database |
|
|
80 | (8) |
|
|
80 | (2) |
|
|
82 | (2) |
|
|
84 | (4) |
|
Data Redundancy Revisited |
|
|
88 | (2) |
|
|
90 | (1) |
|
Codd's Relational Database Rules |
|
|
91 | (13) |
|
|
93 | (1) |
|
|
93 | (1) |
|
|
94 | (2) |
|
|
96 | (8) |
|
Entity Relationship (ER) Modeling |
|
|
104 | (48) |
|
The Entity Relationship Model (ERM) |
|
|
105 | (22) |
|
|
105 | (1) |
|
|
105 | (6) |
|
|
111 | (1) |
|
Connectivity and Cardinality |
|
|
111 | (2) |
|
|
113 | (1) |
|
|
113 | (3) |
|
|
116 | (2) |
|
Relationship Participation |
|
|
118 | (2) |
|
|
120 | (2) |
|
|
122 | (3) |
|
Associative (Composite Entities |
|
|
125 | (2) |
|
|
127 | (8) |
|
Database Design Challenges: Conflicting Goals |
|
|
135 | (17) |
|
|
139 | (1) |
|
|
139 | (1) |
|
|
140 | (1) |
|
|
141 | (11) |
|
Normalization of Database Tables |
|
|
152 | (41) |
|
Database Tables and Normalization |
|
|
153 | (1) |
|
The Need for Normalization |
|
|
153 | (4) |
|
The Normalization Process |
|
|
157 | (7) |
|
Conversion to First Normal Form |
|
|
158 | (3) |
|
Conversion to Second Normal Form |
|
|
161 | (2) |
|
Conversion to Third Normal Form |
|
|
163 | (1) |
|
|
164 | (4) |
|
Surrogate Key Considerations |
|
|
168 | (1) |
|
Higher-Level Normal Forms |
|
|
169 | (5) |
|
The Boyce-Codd Normal Form (BCNF) |
|
|
170 | (3) |
|
|
173 | (1) |
|
Normalization and Database Design |
|
|
174 | (4) |
|
|
178 | (15) |
|
|
182 | (2) |
|
|
184 | (1) |
|
|
184 | (1) |
|
|
185 | (8) |
|
|
193 | (31) |
|
The Extended Entity Relationship Model |
|
|
194 | (6) |
|
Entity Supertypes and Subtypes |
|
|
194 | (1) |
|
|
195 | (1) |
|
|
196 | (1) |
|
|
197 | (1) |
|
Disjoint and Overlapping Constraints |
|
|
197 | (2) |
|
|
199 | (1) |
|
Specialization and Generalization |
|
|
199 | (1) |
|
|
200 | (1) |
|
Entity Integrity: Selecting Primary Keys |
|
|
201 | (5) |
|
Natural Keys and Primary Keys |
|
|
202 | (1) |
|
|
202 | (1) |
|
When to Use Composite Primary Keys |
|
|
203 | (1) |
|
When to Use Surrogate Primary Keys |
|
|
204 | (2) |
|
Design Cases: Learning Flexible Database Design |
|
|
206 | (5) |
|
Design Case #1: Implementing 1:1 Relationships |
|
|
206 | (1) |
|
Design Case #2: Maintaining History of Time-Variant Data |
|
|
207 | (2) |
|
Design Case #3: Fan Traps |
|
|
209 | (1) |
|
Design Case #4: Redundant Relationships |
|
|
210 | (1) |
|
|
211 | (12) |
|
|
213 | (1) |
|
|
213 | (1) |
|
|
214 | (1) |
|
|
214 | (9) |
|
PART III. ADVANCED DESIGN AND IMPLEMENTATION |
|
|
|
Business Vignette: Using Queries to Score Runs |
|
|
223 | (1) |
|
Introduction to Structured Query Language (SQL) |
|
|
224 | (73) |
|
|
225 | (1) |
|
|
226 | (14) |
|
|
227 | (2) |
|
|
229 | (1) |
|
|
229 | (1) |
|
|
230 | (2) |
|
Creating Table Structures |
|
|
232 | (3) |
|
|
235 | (4) |
|
|
239 | (1) |
|
Data Manipulation Commands |
|
|
240 | (7) |
|
|
240 | (2) |
|
|
242 | (1) |
|
|
242 | (2) |
|
|
244 | (1) |
|
|
244 | (1) |
|
|
245 | (1) |
|
Inserting Table Rows with a Select Subquery |
|
|
245 | (2) |
|
|
247 | (10) |
|
Selecting Rows with Conditional Restrictions |
|
|
247 | (4) |
|
Arithmetic Operators: The Rule of Precedence |
|
|
251 | (1) |
|
Logical Operators: And, Or, and Not |
|
|
251 | (2) |
|
|
253 | (4) |
|
Advanced Data Definition Commands |
|
|
257 | (6) |
|
Changing a Column's Data Type |
|
|
257 | (1) |
|
Changing a Column's Data Characteristics |
|
|
257 | (1) |
|
|
258 | (1) |
|
|
258 | (1) |
|
|
259 | (2) |
|
|
261 | (1) |
|
Adding Primary and Foreign Key Designations |
|
|
262 | (1) |
|
Deleting a Table from the Database |
|
|
263 | (1) |
|
|
263 | (10) |
|
|
263 | (2) |
|
|
265 | (1) |
|
|
265 | (5) |
|
|
270 | (3) |
|
Virtual Tables: Creating a View |
|
|
273 | (1) |
|
|
274 | (23) |
|
Joining Tables with an Alias |
|
|
277 | (1) |
|
|
277 | (1) |
|
|
278 | (2) |
|
|
280 | (1) |
|
|
281 | (1) |
|
|
281 | (4) |
|
|
285 | (12) |
|
|
297 | (75) |
|
|
298 | (6) |
|
|
299 | (1) |
|
|
300 | (1) |
|
|
301 | (1) |
|
|
301 | (2) |
|
|
303 | (1) |
|
|
304 | (9) |
|
|
306 | (1) |
|
|
307 | (1) |
|
|
308 | (1) |
|
|
309 | (1) |
|
|
310 | (3) |
|
Subqueries and Correlated Queries |
|
|
313 | (11) |
|
|
314 | (1) |
|
|
315 | (1) |
|
|
316 | (1) |
|
Multirow Subquery Operators: Any and All |
|
|
317 | (1) |
|
|
318 | (1) |
|
Attribute List Subqueries |
|
|
319 | (2) |
|
|
321 | (3) |
|
|
324 | (7) |
|
|
325 | (2) |
|
|
327 | (1) |
|
|
328 | (2) |
|
|
330 | (1) |
|
|
331 | (4) |
|
|
335 | (3) |
|
|
338 | (21) |
|
|
342 | (9) |
|
|
351 | (6) |
|
PL/SQL Processing with Cursors |
|
|
357 | (2) |
|
|
359 | (1) |
|
|
359 | (13) |
|
|
365 | (1) |
|
|
366 | (1) |
|
|
366 | (1) |
|
|
367 | (5) |
|
|
372 | (40) |
|
|
373 | (2) |
|
The Systems Development Life Cycle (SDLC) |
|
|
375 | (3) |
|
|
376 | (1) |
|
|
376 | (1) |
|
|
377 | (1) |
|
|
377 | (1) |
|
|
378 | (1) |
|
The Database Life Cycle (DBLC) |
|
|
378 | (24) |
|
The Database Initial Study |
|
|
379 | (4) |
|
|
383 | (14) |
|
Implementation and Loading |
|
|
397 | (4) |
|
|
401 | (1) |
|
|
401 | (1) |
|
Maintenance and Evolution |
|
|
401 | (1) |
|
Database Design Strategies |
|
|
402 | (1) |
|
Centralized vs. Decentralized Design |
|
|
403 | (8) |
|
|
407 | (1) |
|
|
407 | (1) |
|
|
407 | (1) |
|
|
408 | (3) |
|
PART IV. ADVANCED DATABASE CONCEPTS |
|
|
|
Business Vignette: JetBlue's Database Crisis |
|
|
411 | (1) |
|
Transaction Management and Concurrency Control |
|
|
412 | (30) |
|
|
413 | (7) |
|
Evaluating Transaction Results |
|
|
414 | (3) |
|
|
417 | (1) |
|
Transaction Management with SQL |
|
|
418 | (1) |
|
|
418 | (2) |
|
|
420 | (4) |
|
|
420 | (1) |
|
|
421 | (1) |
|
|
422 | (1) |
|
|
423 | (1) |
|
Concurrency Control with Locking Methods |
|
|
424 | (7) |
|
|
425 | (3) |
|
|
428 | (1) |
|
Two-Phase Locking to Ensure Serializability |
|
|
429 | (1) |
|
|
430 | (1) |
|
Concurrency Control with Time Stamping Methods |
|
|
431 | (2) |
|
Wait/Die and Wound/Wait Schemes |
|
|
432 | (1) |
|
Concurrency Control with Optimistic Methods |
|
|
433 | (1) |
|
Database Recovery Management |
|
|
433 | (9) |
|
|
434 | (4) |
|
|
438 | (1) |
|
|
439 | (1) |
|
|
439 | (1) |
|
|
440 | (2) |
|
Database Performance Tuning and Query Optimization |
|
|
442 | (35) |
|
Database Performance-Tuning Concepts |
|
|
443 | (5) |
|
Performance Tuning: Client and Server |
|
|
444 | (1) |
|
|
444 | (2) |
|
|
446 | (2) |
|
|
448 | (3) |
|
|
449 | (1) |
|
|
450 | (1) |
|
|
450 | (1) |
|
Query Processing Bottlenecks |
|
|
450 | (1) |
|
Indexes and Query Optimization |
|
|
451 | (2) |
|
|
453 | (3) |
|
Using Hints to Affect Optimizer Choices |
|
|
455 | (1) |
|
|
456 | (3) |
|
|
456 | (1) |
|
|
457 | (2) |
|
|
459 | (1) |
|
|
460 | (2) |
|
Query Optimization Example |
|
|
462 | (15) |
|
|
471 | (1) |
|
|
472 | (1) |
|
|
472 | (1) |
|
|
473 | (4) |
|
Distributed Database Management Systems |
|
|
477 | (36) |
|
The Evolution of Distributed Database Management Systems |
|
|
478 | (2) |
|
DDBMS Advantages and Disadvantages |
|
|
480 | (1) |
|
Distributed Processing and Distributed Databases |
|
|
481 | (2) |
|
Characteristics of Distributed Database Management Systems |
|
|
483 | (1) |
|
|
484 | (1) |
|
Levels of Data and Process Distribution |
|
|
485 | (4) |
|
Single-Site Processing, Single-Site Data (SPSD) |
|
|
486 | (1) |
|
Multiple-Site Processing, Single-Site Data (MPSD) |
|
|
487 | (1) |
|
Multiple-Site Processing, Multiple-Site Data (MPMD) |
|
|
488 | (1) |
|
Distributed Database Transparency Features |
|
|
489 | (1) |
|
Distribution Transparency |
|
|
490 | (2) |
|
|
492 | (5) |
|
Distributed Requests and Distributed Transactions |
|
|
492 | (4) |
|
Distributed Concurrency Control |
|
|
496 | (1) |
|
Two-Phase Commit Protocol |
|
|
496 | (1) |
|
Performance Transparency and Query Optimization |
|
|
497 | (2) |
|
Distributed Database Design |
|
|
499 | (6) |
|
|
499 | (4) |
|
|
503 | (2) |
|
|
505 | (1) |
|
|
505 | (1) |
|
C. J. Date's Twelve Commandments for Distributed Databases |
|
|
506 | (7) |
|
|
508 | (1) |
|
|
509 | (1) |
|
|
509 | (1) |
|
|
510 | (3) |
|
Business Intelligence and Data Warehouses |
|
|
513 | (59) |
|
The Need for Data Analysis |
|
|
514 | (1) |
|
|
514 | (2) |
|
Business Intelligence Architecture |
|
|
516 | (4) |
|
|
520 | (5) |
|
Operational Data vs. Decision Support Data |
|
|
520 | (3) |
|
Decision Support Database Requirements |
|
|
523 | (2) |
|
|
525 | (5) |
|
Decision Support Architectural Styles |
|
|
528 | (1) |
|
Twelve Rules that Define a Data Warehouse |
|
|
528 | (2) |
|
Online Analytical Processing |
|
|
530 | (11) |
|
Multidimensional Data Analysis Techniques |
|
|
530 | (1) |
|
Advanced Database Support |
|
|
531 | (1) |
|
Easy-to-Use End-User Interface |
|
|
532 | (1) |
|
Client/Server Architecture |
|
|
532 | (1) |
|
|
533 | (4) |
|
|
537 | (2) |
|
|
539 | (1) |
|
Relational vs. Multidimensional OLAP |
|
|
540 | (1) |
|
|
541 | (10) |
|
|
541 | (1) |
|
|
542 | (1) |
|
|
542 | (2) |
|
|
544 | (2) |
|
Star Schema Representation |
|
|
546 | (2) |
|
Performance-Improving Techniques for the Star Schema |
|
|
548 | (3) |
|
Implementing a Data Warehouse |
|
|
551 | (2) |
|
The Data Warehouse as an Active Decision Support Framework |
|
|
551 | (1) |
|
A Company-Wide Effort That Requires User Involvement |
|
|
552 | (1) |
|
Satisfy the Trilogy: Data, Analysis, and Users |
|
|
552 | (1) |
|
Apply Database Design Procedures |
|
|
552 | (1) |
|
|
553 | (3) |
|
|
556 | (15) |
|
|
557 | (1) |
|
|
558 | (1) |
|
|
559 | (5) |
|
|
564 | (1) |
|
|
565 | (1) |
|
|
565 | (1) |
|
|
566 | (5) |
|
PART V. DATABASES AND THE INTERNET |
|
|
|
Business Vignette: Casio Upgrades Customer Web Experience |
|
|
571 | (1) |
|
Database Connectivity and Web Technologies |
|
|
572 | (34) |
|
|
573 | (10) |
|
|
573 | (1) |
|
|
573 | (4) |
|
|
577 | (3) |
|
|
580 | (2) |
|
Java Database Connectivity (JDBC) |
|
|
582 | (1) |
|
|
583 | (7) |
|
Web-to-Database Middleware: Server-Side Extensions |
|
|
584 | (2) |
|
|
586 | (1) |
|
|
587 | (2) |
|
|
589 | (1) |
|
|
589 | (1) |
|
Extensible Markup Language (XML) |
|
|
590 | (15) |
|
Document Type Definitions (DTD) and XML Schemas |
|
|
592 | (4) |
|
|
596 | (2) |
|
|
598 | (2) |
|
|
600 | (1) |
|
|
601 | (1) |
|
|
601 | (1) |
|
|
602 | (3) |
|
PART VI. DATABASE ADMINISTRATION |
|
|
|
Business Vignette: Oreck Revises Disaster Recovery Plan After Katrina |
|
|
605 | (1) |
|
Database Administration and Security |
|
|
606 | (51) |
|
Data as a Corporate Asset |
|
|
607 | (1) |
|
The Need for and Role of a Database in an Organization |
|
|
608 | (1) |
|
Introduction of a Database: Special Considerations |
|
|
609 | (1) |
|
The Evolution of the Database Administration Function |
|
|
610 | (3) |
|
The Database Environment's Human Component |
|
|
613 | (13) |
|
The DBA's Managerial Role |
|
|
615 | (5) |
|
|
620 | (6) |
|
|
626 | (4) |
|
|
627 | (1) |
|
|
627 | (1) |
|
|
628 | (2) |
|
Database Administration Tools |
|
|
630 | (4) |
|
|
630 | (2) |
|
|
632 | (2) |
|
Developing a Data Administration Strategy |
|
|
634 | (2) |
|
The DBA at Work: Using Oracle for Database Administration |
|
|
636 | (21) |
|
Oracle Database Administration Tools |
|
|
636 | (1) |
|
|
637 | (1) |
|
Ensuring an Automatic RDBMS Start |
|
|
638 | (1) |
|
Creating Tablespaces and Datafiles |
|
|
639 | (2) |
|
Managing the Database Objects:Tables, Views, Triggers, and Procedures |
|
|
641 | (1) |
|
Managing Users and Establishing Security |
|
|
642 | (2) |
|
Customizing the Database Initialization Parameters |
|
|
644 | (1) |
|
|
645 | (8) |
|
|
653 | (1) |
|
|
654 | (1) |
|
|
654 | (3) |
Glossary |
|
657 | (21) |
Index |
|
678 | |