High Performance Oracle8 Object-Oriented Design

By David A. Anstey

Galderma, Inc.

High Performance Oracle8 Object-Oriented Design (Coriolis Group Books, 1998, paperback, ISBN 1-57610-186-X, 497 pp., $39.99, including CD-ROM) introduces the many new object-oriented (OO) features in the latest version of the popular commercial database product, Oracle8 ™. The book aggressively addresses the real-world problems of data modeling, and, in particular, how a traditional relational database programmer would decide when and how to actually use the new "object relational database" tools. Written by an experienced database consultant, the book will appeal to persons who have actually experienced the data modeling problems that relational databases cannot easily handle.

In High Performance Oracle8 Object-Oriented Design, Anstey explains that while relational databases work extremely well in many business applications they also suffer from several drawbacks. These shortcomings include the ability to describe the semantics of a customer's business using the set-oriented rules defined by relational systems. For example, relational systems cannot adequately combine the behavior of an entity with data about the entity, nor can they model the recursive nature of complex objects, such as engineering parts lists where "parts" may contain more "parts." Anstey presents the solutions to these problems using a flowing and informal style mixed with many "lessons learned" from his extensive experience working with databases.

High Performance Oracle8 Object-Oriented Design contains numerous diagrams, illustrations, and example snippets of code to illustrate the points in the book. I found this particularly refreshing given the dearth of concrete code in other database books. Anstey very nicely explains each subject, provides a diagram, if appropriate, to illustrate the subject, and then supplies the actual SQL statements that enact the subject. This makes each topic very easy to follow and will appeal to readers who, like me, want to see how something really works.

Chapter 5, "Oracle Reference Pointers and Database Design," provides one of the highlights of the book. In it Anstey describes the use of reference pointers to implement some of the most difficult real-world data modeling scenarios. Anstey again uses extensive examples and code segments to illustrate the possible solutions. Through them, the reader can easily see how to use the new object extensions to a traditional relational database to implement complex objects, recursion, and sequencing.

Despite the clear explanation of each topic, Anstey does not write for a novice database developer. High Performance Oracle8 Object-Oriented Design assumes a working knowledge of databases and especially current commercial relational database technology. The reader does not have to have an extensive knowledge of any particular product (e.g., Oracle7), although it would help. Anstey both explains the new features in Oracle8 as well as emphasizing the important new design issues that come with mixing relational and object paradigms to solve realistic, practical problems.

Anstey covers a wide range of topics, from object extensions to SQL and the emerging SQL3 Standard to planning for the support of class hierarchies and inheritance due in a future incremental release of Oracle8. The book has detailed explanations and examples of how to model relational object systems, to include an entire chapter devoted to the Unified Modeling Language (UML). Anstey also explains how two popular new toolsets, Oracle's Object Database Designer and Logic Works' OR-Compass, support the new object-relational environment. Specifics include:

I found Oracle8: Object-Oriented Design easy to read and to follow. Anstey colors his book with many anecdotes and real-life experiences. I found these sections particularly enlightening as they add considerable credibility to the advice and guidelines put forward in the book. High Performance Oracle8 Object-Oriented Design will make a useful addition to the library of any current data modeler, database programmer, database administrator, or consultant.

Reviewed by Jeffrey S. Poulin, (Jeffrey.Poulin@lmco.com), Lockheed Martin Federal Systems, MD 0210, Owego, New York 13827.