Preface |
|
xi | |
I. Getting Started With Design |
|
1 | (98) |
|
|
3 | (32) |
|
|
3 | (1) |
|
|
4 | (11) |
|
Looking at Alternative Methods and Approaches |
|
|
15 | (3) |
|
Planning the Design Phase |
|
|
18 | (2) |
|
|
20 | (15) |
|
2. Why Is Design So Important for Oracle? |
|
|
35 | (25) |
|
Designing for Specific Architectures |
|
|
35 | (4) |
|
Designing for Performance |
|
|
39 | (3) |
|
Other Design Considerations |
|
|
42 | (2) |
|
|
44 | (14) |
|
|
58 | (2) |
|
|
60 | (39) |
|
|
61 | (1) |
|
|
62 | (3) |
|
Entity Relationship Diagrams |
|
|
65 | (4) |
|
Quality-Assuring the Conceptual Information Model |
|
|
69 | (23) |
|
Entity Life Histories and Data Flow Diagrams |
|
|
92 | (4) |
|
Data-Driven Design and Meta Models |
|
|
96 | (3) |
II. Designing the Database |
|
99 | (166) |
|
4. Deciding When to Denormalize |
|
|
101 | (12) |
|
Denormalization: What, Why, and When? |
|
|
101 | (4) |
|
Methods of Implementing Denormalization |
|
|
105 | (2) |
|
Other Types of Denormalization |
|
|
107 | (6) |
|
5. Choosing Datatypes and Nulls |
|
|
113 | (18) |
|
|
114 | (1) |
|
|
115 | (2) |
|
Date and Time (Temporal) Data |
|
|
117 | (2) |
|
|
119 | (3) |
|
Unstructured Data and BLOBs |
|
|
122 | (1) |
|
|
123 | (2) |
|
|
125 | (6) |
|
6. Choosing Keys and Indexes |
|
|
131 | (33) |
|
|
132 | (9) |
|
|
141 | (2) |
|
|
143 | (4) |
|
Index Types and Indexing Techniques |
|
|
147 | (17) |
|
7. Dealing with Temporal Data |
|
|
164 | (27) |
|
The Problem with Temporal Data |
|
|
164 | (4) |
|
Design Issues for Temporal Databases |
|
|
168 | (21) |
|
|
189 | (2) |
|
8. Loading and Unloading Data |
|
|
191 | (24) |
|
Dealing with External Systems |
|
|
191 | (3) |
|
Data Compatibility Issues |
|
|
194 | (7) |
|
|
201 | (2) |
|
|
203 | (4) |
|
|
207 | (1) |
|
Ordering, Recovery, and Commit Frequency |
|
|
208 | (1) |
|
|
209 | (2) |
|
Oracle7 to Oracle7: a Special Case |
|
|
211 | (2) |
|
|
213 | (2) |
|
9. Deciding on Object Placement and Storage |
|
|
215 | (10) |
|
Specifying Object Placement |
|
|
215 | (3) |
|
|
218 | (2) |
|
Specifying Storage Parameters |
|
|
220 | (3) |
|
|
223 | (1) |
|
|
223 | (2) |
|
10. Safeguarding Your Data |
|
|
225 | (40) |
|
|
226 | (7) |
|
|
233 | (10) |
|
|
243 | (12) |
|
|
255 | (10) |
III. Designing for Specific Architectures |
|
265 | (126) |
|
11. Designing for Client/Server |
|
|
267 | (32) |
|
|
268 | (1) |
|
|
269 | (1) |
|
|
270 | (2) |
|
Basic Design Issues for Client/Server |
|
|
272 | (1) |
|
Designing for Client/Server |
|
|
273 | (3) |
|
|
276 | (1) |
|
Anatomy of a SQL Statement |
|
|
277 | (3) |
|
Cutting in the Middle Man |
|
|
280 | (2) |
|
Special Design Considerations |
|
|
282 | (17) |
|
12. Designing for Distributed Databases |
|
|
299 | (36) |
|
When Should You Use Distributed Databases? |
|
|
299 | (1) |
|
Evolution of Oracle Support for Data Distribution |
|
|
300 | (12) |
|
Selecting a Data Distribution Strategy |
|
|
312 | (16) |
|
|
328 | (4) |
|
Using Distributed Database for Fallback |
|
|
332 | (1) |
|
Other Design Considerations |
|
|
332 | (1) |
|
Data Distribution Summary |
|
|
333 | (2) |
|
13. Designing for Data Warehouses |
|
|
335 | (34) |
|
|
335 | (2) |
|
What Is a Data Warehouse? |
|
|
337 | (10) |
|
Design Issues for Data Warehouses |
|
|
347 | (11) |
|
Extracting and Loading the Data |
|
|
358 | (6) |
|
|
364 | (1) |
|
Transformation Types and Methods |
|
|
364 | (3) |
|
Retrieving the Data via Data Mining and OLAP Tools |
|
|
367 | (2) |
|
14. Designing for Parallel Processing |
|
|
369 | (22) |
|
Why Do We Need Parallelism? |
|
|
370 | (5) |
|
Designing to Achieve Parallelism |
|
|
375 | (5) |
|
Parallel Query Option (PQO) |
|
|
380 | (4) |
|
Oracle Parallel Server (OPS) |
|
|
384 | (7) |
IV. Designing the Code Modules |
|
391 | (84) |
|
15. Introduction to Code Design |
|
|
393 | (17) |
|
|
394 | (3) |
|
Mapping Functions to Modules |
|
|
397 | (2) |
|
Don't Forget the System Modules |
|
|
399 | (3) |
|
Source and Version Control |
|
|
402 | (3) |
|
|
405 | (1) |
|
|
406 | (1) |
|
CASE Products in Run Unit Design |
|
|
407 | (3) |
|
16. Determining Where to Locate the Processing |
|
|
410 | (13) |
|
Data Rules vs. Process Rules vs. Interface Rules |
|
|
410 | (6) |
|
|
416 | (2) |
|
|
418 | (2) |
|
How Does This Relate to Three-Tier Architectures? |
|
|
420 | (3) |
|
17. Metrics, Prototypes, and Specifications |
|
|
423 | (14) |
|
Developing Design and Build Metrics for Modules |
|
|
423 | (2) |
|
|
425 | (3) |
|
|
428 | (5) |
|
Where are my Specs? Guidelines for Module Specifications |
|
|
433 | (2) |
|
Specifying Screens and Reports |
|
|
435 | (1) |
|
Specifying Batch Processes |
|
|
436 | (1) |
|
|
437 | (9) |
|
|
437 | (3) |
|
|
440 | (1) |
|
|
441 | (1) |
|
|
442 | (4) |
|
19. Selecting the Toolset |
|
|
446 | (7) |
|
|
446 | (1) |
|
Which Selection Criteria Are Important? |
|
|
447 | (1) |
|
|
448 | (3) |
|
Designing for the World Wide Web |
|
|
451 | (2) |
|
20. Designing Screens, Reports, Batch Programs, and More |
|
|
453 | (22) |
|
|
453 | (3) |
|
|
456 | (2) |
|
|
458 | (10) |
|
|
468 | (1) |
|
|
469 | (2) |
|
|
471 | (4) |
V. Appendixes |
|
475 | (38) |
|
A. Off-the-Shelf Packages |
|
|
477 | (10) |
|
|
478 | (1) |
|
|
479 | (4) |
|
|
483 | (2) |
|
|
485 | (2) |
|
|
487 | (26) |
|
Fixing Those Mutating Tables |
|
|
487 | (8) |
|
Dealing with the Millennium Date Problem: An Oracle Perspective |
|
|
495 | (8) |
|
Providing User Extensibility |
|
|
503 | (10) |
Index |
|
513 | |