Database Design for Smarties: Using UML for Data Modeling
Whether building a relational, object-relational, or object-oriented database, database developers are increasingly relying on an object-oriented design approach as the best way to meet user needs and performance criteria. This book teaches you how to use the Unified Modeling Language--the official standard of the Object Management Group--to develop and implement the best possible design for your database.
Inside, the author leads you step by step through the design process, from requirements analysis to schema generation. You'll learn to express stakeholder needs in UML use cases and actor diagrams, to translate UML entities into database components, and to transform the resulting design into relational, object-relational, and object-oriented schemas for all major DBMS products.
Review By: Niteen Athavale
05/11/2004This book is hard to put down. The book starts at a general level of database modeling concept and followed by very focused discussions on patterns, modeling techniques, and development of schema. It presents the complex topic of database design in an unexpected pleasant manner. It doesn’t matter if you are a “smartie” or not, this book guides you through difficult terrain of essential software engineering techniques in a very organized manner.
There are three main sections in this book. The initial section (chapters 1-5) presents an entire software lifecycle from requirements through testing and acceptance. The author begins the book with database lifecycle, but the discussion is well suited for a software system as well. The author has put a UML in focus in this first section; however, readers should not expect this book to be “The UML Guide.”
The second section (chapters 6-10) describes data and object modeling. A brief introduction to the patterns is well placed within its context. The book targets an intelligent audience and thus does not give many examples for the concepts presented. Readers should expect to apply concepts defined in this section to their own set of examples.
The last section (chapters 11-13) presents ways to develop relational to object-oriented schema. Readers interested exclusively in object-oriented database design will benefit most from this section. However, it is a good exercise even for veteran DBAs to refer to the previous section. The author has made an extra effort to describe and present alternatives to object-oriented implementation using stored procedures and triggers in nonobject-oriented database environments. This author has made use of his Oracle background very wisely throughout this book. He has given examples in Oracle which can be changed to other database environments quickly because of the discussion that precedes these examples.
Overall this book is a guiding light for smarties and nonsmarties alike in an object-oriented era. It is well organized and concise. It allows readers to apply object-oriented concepts to the databases to reduce complexity and increase maintainability.
The author has highlighted requirements-gathering processes with a clever use of Sherlock Holmes investigative stories. He has used a Sherlock Holmes theme throughout the book to provide a novel-like approach to many complex topics. The author also discusses the patterns concept to lay a foundation for the most critical topic--using UML, class diagrams, and schema to generate relational, object-relational, and object-oriented databases.
The author presents various testing and Q/A techniques in the summary-and-comments sections of the book. He has devoted a full chapter to testing of the data model. He describes the success factors using metrics, but not in terms of traditional Q/A methods one would expect in software testing (unit testing, integration testing, system testing, etc.). Nevertheless, his measure for success focuses on the overall quality of the data model.
The book is full of valuable information and especially provides a great reference book for DBAs interested in applying OO techniques and learning about OO database design and the UML. Finally, his list of references is extremely useful for additional information.