Like others with many years in academics, I would like to have a book for a database design course (or, for that matter, any other course) that would not only cover all of the essential topics on the subject, but that would also be easy to read and simple to understand, especially for students. This was one of the items on my long wish list before I started reading this book.
As the authors claim, the book is not only good for beginners, but it also provides greater insight for experienced learners. Perhaps this is why it has evolved into its fifth edition.
The book is generally well organized. It starts with the first step in the database life cycle, and progresses in a chronological order to more advanced concepts such as object relational design, Extensible Markup Language (XML), and Web databases. The writing style of the book is simple and straightforward, and the use of database terminology is very concise.
Since the relational database model is still the choice for most business application developers, the authors have made sure that the book starts with very basic terminology and concepts, using the entity-relationship (ER) model. They then move on to the relational database model, unified modeling language (UML) and object-relational design, and finally to XML databases. Many database designers prefer UML instead of ER because of its graphical nature and the ease with which object-oriented concepts can be presented.
The book then nicely divulges the relationship between requirements analysis and conceptual data modeling, explaining top-down, bottom-up, and combined approaches. An interesting touch in the explanation of the database life cycle is the way the authors show the correlation between the conceptual schema and the structured query language (SQL) statements used for creating corresponding entity types and relationship types.
Finally, the book covers database tools such as data warehousing, online analytical processing, and data mining under the business intelligence heading, thus enlightening readers on the interrelationship between the three.
In my opinion, the book could be used as a course text, with some help from other sources to cover SQL query-related concepts. However, I would have liked a chapter on SQL that covered simple and complex query design, as well as optimization.