| |
| |
Preface | |
| |
| |
| |
Getting Started With Design | |
| |
| |
| |
Introduction | |
| |
| |
What Is Design? | |
| |
| |
A Case Study | |
| |
| |
Looking at Alternative Methods and Approaches | |
| |
| |
Planning the Design Phase 18 Design Tasks | |
| |
| |
| |
Why Is Design So Important for Oracle? | |
| |
| |
Designing for Specific Architectures | |
| |
| |
Designing for Performance | |
| |
| |
Other Design Considerations | |
| |
| |
Designing for Oracle7 | |
| |
| |
Introducing Oracle8 | |
| |
| |
| |
Data Modeling | |
| |
| |
Types of Models | |
| |
| |
What Is Data Modeling? | |
| |
| |
Entity Relationship Diagrams | |
| |
| |
Quality-Assuring the Conceptual Information Model | |
| |
| |
Entity Life Histories and Data Flow Diagrams | |
| |
| |
Data-Driven Design and Meta Models | |
| |
| |
| |
Designing the Database | |
| |
| |
| |
Deciding When to Denormalize | |
| |
| |
Denormalization: What, Why, and When? | |
| |
| |
Methods of Implementing Denormalization | |
| |
| |
Other Types of Denormalization | |
| |
| |
| |
Choosing Datatypes and Nulls | |
| |
| |
Available Datatypes | |
| |
| |
Numeric Data | |
| |
| |
Date and Time (Temporal) Data | |
| |
| |
String Data | |
| |
| |
Unstructured Data and BLOBs | |
| |
| |
Other Datatypes | |
| |
| |
Null Values | |
| |
| |
| |
Choosing Keys and Indexes | |
| |
| |
Primary Keys 132 Other Keys | |
| |
| |
Indexes: An Overview | |
| |
| |
Index Types and Indexing Techniques | |
| |
| |
| |
Dealing with Temporal Data | |
| |
| |
The Problem with Temporal Data | |
| |
| |
Design Issues for Temporal Databases | |
| |
| |
Temporal Data: A Summary | |
| |
| |
| |
Loading and Unloading Data | |
| |
| |
Dealing with External Systems | |
| |
| |
Data Compatibility Issues | |
| |
| |
Data Migration Steps | |
| |
| |
Data Transformation | |
| |
| |
File Formats | |
| |
| |
Ordering, Recovery, and Commit Frequency | |
| |
| |
Using SQL*Loader | |
| |
| |
Oracle7 to Oracle7: a Special Case | |
| |
| |
Outbound Data | |
| |
| |
| |
Deciding on Object Placement and Storage | |
| |
| |
Specifying Object Placement | |
| |
| |
Sizing | |
| |
| |
Specifying Storage Parameters | |
| |
| |
Creating Scripts | |
| |
| |
Implementation Planning | |
| |
| |
| |
Safeguarding Your Data | |
| |
| |
Archiving | |
| |
| |
Auditing | |
| |
| |
Security | |
| |
| |
Backup | |
| |
| |
| |
Designing for Specific Architectures | |
| |
| |
| |
Designing for Client/Server | |
| |
| |
Why Client/Server? | |
| |
| |
What Is Client/Server? | |
| |
| |
What Kind of Hardware? | |
| |
| |
Basic Design Issues for Client/Server | |
| |
| |
Designing for Client/Server | |
| |
| |
SQL*Net Basics | |
| |
| |
Anatomy of a SQL Statement | |
| |
| |
Cutting in the Middle Man | |
| |
| |
Special Design Considerations | |
| |
| |
| |
Designing for Distributed Databases | |
| |
| |
When Should You Use Distributed Databases? | |
| |
| |
Evolution of Oracle Support for Data Distribution | |
| |
| |
Selecting a Data Distribution Strategy | |
| |
| |
Example Scenarios | |
| |
| |
Using Distributed Database for Fallback | |
| |
| |
Other Design Considerations | |
| |
| |
Data Distribution Summary | |
| |
| |
| |
Designing for Data Warehouses | |
| |
| |
Why Data Warehouses? | |
| |
| |
What Is a Data Warehouse? | |
| |
| |
Design Issues for Data Warehouses | |
| |
| |
Extracting and Loading the Data | |
| |
| |
Meta Data | |
| |
| |
Transformation Types and Methods | |
| |
| |
Retrieving the Data via Data Mining and OLAP Tools | |
| |
| |
| |
Designing for Parallel Processing | |
| |
| |
Why Do We Need Parallelism? | |
| |
| |
Designing to Achieve Parallelism | |
| |
| |
Parallel Query Option (PQO) | |
| |
| |
Oracle Parallel Server (OPS) | |
| |
| |
| |
Designing the Code Modules | |
| |
| |
| |
Introduction to Code Design | |
| |
| |
Analysis Deliverables | |
| |
| |
Mapping Functions to Modules | |
| |
| |
Don''t Forget the System Modules | |
| |
| |
Source and Version Control | |
| |
| |
Template Code | |
| |
| |
Designing for Testing | |
| |
| |
CASE Products in Run Unit Design | |
| |
| |
| |
Determining Where to Locate the Processing | |
| |
| |
Data Rules vs Process Rules vs Interface Rules | |
| |
| |
Logic Placement | |
| |
| |
Locking Issues | |
| |
| |
How Does This Relate to Three-Tier Architectures? | |
| |
| |
| |
Metrics, Prototypes, and Specifications | |
| |
| |
Developing Design and Build Metrics for Modules | |
| |
| |
Banishing Megamodules | |
| |
| |
Shall We Prototype? | |
| |
| |
Where are my Specs? Guidelines for Module Specifications | |
| |
| |
Specifying Screens and Reports | |
| |
| |
Specifying Batch Processes | |
| |
| |
| |
Locking | |
| |
| |
Locking Strategies | |
| |
| |
Deadlocks | |
| |
| |
Serializability | |
| |
| |
Other Design Issues | |
| |
| |
| |
Selecting the Toolset | |
| |
| |
Types of Tools | |
| |
| |
Which Selection Criteria Are Important? | |
| |
| |
Client/Server Tools | |
| |
| |
Designing for the World Wide Web | |
| |
| |
| |
Designing Screens, Reports, Batch Programs, and More | |
| |
| |
Designing Screens | |
| |
| |
Designing Reports | |
| |
| |
Designing Batch Programs | |
| |
| |
Error Handling | |
| |
| |
Navigation | |
| |
| |
Online Help | |
| |
| |
| |
Appendixes | |
| |
| |
| |
Off-the-Shelf Packages | |
| |
| |
Evaluating a Package | |
| |
| |
Does It Fit? | |
| |
| |
Can It Be Tailored? | |
| |
| |
The Big Data Model Issue | |
| |
| |
| |
Tricks of the Trade | |
| |
| |
Fixing Those Mutating Tables | |
| |
| |
Dealing with the Millennium Date Problem: An Oracle Perspective | |
| |
| |
Providing User Extensibility | |
| |
| |
Index | |