Amazon.com
Oracle8 Design Using UML Object Modeling brings traditional relational database design into the new world of objects and UML notation. With numerous real-world examples that use ERD and UML diagrams, the authors show you how to "think in objects" to create simpler and more maintainable Oracle databases.
After an introduction to database history, the authors dig right in with support for objects in Oracle 8i. They look at database basics, including normalization. (This section is thick with theory, though the rest of the book is very accessible.) Then traditional ERD notation is examined, along with the advantages of using UML for designing with objects.
Next the book looks at modeling classes, including primary and foreign keys, naming conventions, domains for data validation, and value list classes (for lookup values). Subsequent sections introduce object-oriented design concepts such as cardinality, composition, and inheritance, all illustrated with both ERD and UML notation. (Sample PL/SQL code for both Oracle 7 and the new version 8i is also provided.) More advanced sections show you how to model recursive structures, trees, and lists. The book closes with some excellent ideas on how to track historical information and database denormalization, as well as a short section on using Oracle's Object Database Designer tool.
With its mix of practical advice and object design expertise, Oracle8 Design Using UML Object Modeling lets relational database developers add objects to any programming project. --Richard Dragan/p>
Reviews From AMAZON.COM
Disappointing
The title seduced this reader with its promise of insight into object-oriented features introduced with Oracle8. Numerous examples show their coding syntax, but not one justifies their use. The authors deserve some credit for explaining their shortcomings and drawbacks, but more blame for selling a book offering no reason to be read. One uses features for a reason.
Let it be said from the start that Oracle8 introduced many valuable new features for performance and scalability. Some of these are briefly catalogued in Chapter 1. The bulk of the book, however, is a review of recurrent data structures, comparing (1) their ERD models against their UML models and (2) their relational implementations against their object-oriented implementations in Oracle8. The main subject is external design of application databases.
Appealing subject from this reader's perspective, but the devil is in the details.
Chapter 1 ends with a section entitled "Advantages of an Object-Oriented Approach," wherein the authors are able to do no more than to cite examples of their own successes using design abstractions. They seem to believe that every employment of an abstract design deserves to be called "object-oriented." This fallacy recurs from cover to cover, short-selling object-orientation and shortchanging the reader.
Chapter 3 attempts and fails to demonstrate the superiority of UML over ERD for database design. Aiming for a balanced consideration of these alternative techniques, it includes a section "Disadvantages of UML Diagramming" that omits mentioning the absence of a notational convention for representing identity--UML's most serious disadvantage in this reader's opinion.
The side-by-side UML versus ERD data model comparisons presented throughout the rest of the book show how little real difference there is between the two conventions. These comparisons were nevertheless valuable when the book first appeared and UML was new stuff. Since then UML has so far extended its mind share that today's reader may focus on UML alone--not because it is superior, but just because it is a standard.
Many of the code examples could also be eliminated. They often do no more than illustrate a simple idea or variation more economically explained in text. It is not hard to find long samples of code differing from their predecessors by only a single line (see pp. 148-150, 152-155).
Another problem with the code examples is that they are generally separated from the data models whose implementations they illustrate. While reading an example, one must travel several pages back to view the diagram of the subject data structure.
Nevertheless, as catalogs of data structures and introductions to Oracle8's object syntax, chapters 4-18 merit lunchtime browsing in one's favorite bookstore. Favorite chapters: 10, 11, 12, 15, 16, 18.
Error and ignorance are more commonly encountered than they ought to be in a volume so priced. The authors misconstrue the object-oriented term "overloading" (p. 326). They do not know that Oracle supports table-level check constraints: ". . . check constraints are not allowed to reference other columns (p.314)." They propose (p. 137) a range constraint between 000 and 999 as a method to exclude alphas from a character field. They relate that they used an index to improve the read performance of a table with only 96 short rows. To this same table they also added a redundant Y/N-valued column so that rows could be retrieved ". . . without an inefficient search for a null end date (p. 425)"!
Oracle's "mutating table problem" recurs in several examples, and the only solution offered is a "mirror table." Better to consult Appendix B of the excellent book "Oracle Design" by Dave Ensor and Ian Stevenson (O'Reilly, 1997). They offer a much more elegant solution requiring only a few lines of trigger code.
In one code sample the mutating table problem occurs only because of the awkward implementation chosen by the authors--even though a simple alternative is available (pp. 443-444). This slip is all the more lamentable for having nothing to do with "Redundant Total Fields," the title of the section in which it occurs.
In fact, there are many passages (even some good ones) that digress. There are introductory paragraphs delving into details (pp. 429-430) as well as summary paragraphs in detailed sections (pp. 393, 422). One of the four major parts, "Time-Related Modeling: Tracking History," dedicates only one of its five chapters to its named subject. Careless organization makes reference difficult.
The authors are obviously seasoned application developers with significant expertise. Their wisdom comes through in many of their general comments on the art of database design. Clearly, they could have written a better book.
Still a groundbreaking book
This was the first book ever written on UML data modeling. It was (and continues to be) an outstanding effort. I am struck by the fact that the reviews that say bad things about this book are unsigned and useless while the reviews that praise the book are detailed, insightful and by people well known in the Oracle world. This is an EXCELLENT book. It is clear, to the point and is a great book on data modeling (even without the UML). Anyone seriously interested in UML data modeling should have this book.

ISBN:0078824745