One immaturity of the software business is its production of systems so complicated and so flexible that even the designers are at a loss to configure them for some user’s particular purpose. Or perhaps the designers have not bothered to investigate what real users do. Either way, if the staff does develop such insights, they may be packaged as an aftermarket book so the vendor profits more by bewildering its customer than by providing clear and complete instruction in the first place. Similar volumes produced independently of the software house do not raise this ethical concern, but are still problematic. How well would a hardback called “Getting started with your microwave oven” sell at the bookstore?
This book, written by two Oracle Corporation applications developers, walks us through the development of an ORACLE application. (A third author, not associated with Oracle, did the typesetting.) Along the way, the authors introduce many previously undocumented “tricks of the trade,” with the goal of improving our skill at writing ORACLE applications. They could have written nearly the same book to reach a wider audience, simultaneously avoiding the self-serving appearance. Many features of ORACLE are ANSI-standard SQL, and others are common to most relational database management systems (RDBMSs). These commonalties could have been exploited by writing the book for a generic RDBMS, with examples and extensions specific to ORACLE.
Although the authors suggest that readers should have “significant experience” with ORACLE, they review the fundamentals well enough that light experience with any RDBMS is generally sufficient. For instance, an introductory chapter explains how to develop an entity-relationship model for an application and how to convert the model to a relational schema. It requires little background of the reader, yet it introduces many rules of thumb used in application design and implies some of the issues in the RDBMS versus object-oriented debate. Another chapter reviews the fundamentals of the SQL language.
One annoying feature of the text is its digression into project management and configuration control. While these are important to a successful venture, the authors propose simplistic conventions that would be inappropriate in many environments. The development checklists and specimen conventions and standards may be helpful to an organization that is trying to document and standardize its development process.
The book’s largest chapter covers online applications using SQL*Forms. Most of this material, including the many hints and pitfalls, is peculiar to ORACLE. Companion chapters discuss report generation and integration via menus. This material should have been covered in ORACLE’s standard documentation. A chapter on application tuning has some valuable advice, including a discussion of ORACLE’s query optimization strategy.
As in far too many real-world projects, the documentation is left until last. The authors suggest several types of user and technical documents that can be partially generated via ORACLE tools. The book itself could stand a little more editorial attention; for example, the phrase “is comprised of” slipped through at least twice.