The author covers methods for database design, with an emphasis on the relational model and secondarily on the entity-relationship (E-R) approach, using N-ary relations with attributes on relations permitted. The presentation is quite clear, with good use of examples and exercises. The use of functional dependency as a foundation for understanding data is a good choice; relations are then explained in terms of these dependencies. Other topics included in this volume are the translation from E-R diagrams to normalized relations, relational DBMS systems, SQL, and application development in the relational environment.
As a text for an introductory course in database management, this volume would be excellent. A few additional readings would be required to cover missing material, such as data administration and data dictionaries.
A few things about the book are puzzling. Despite an initial diagram that shows E-R models leading to normalized relations (and several chapters devoted to how to do it), relations are covered first and then E-R models are defined. This seems backwards. Several explanations are not satisfying. For example, normalized relations are good because they enable consistency; consistency makes it possible “to change any single row of any relation independently of any other row in any relation.” This assertion is invalid when we consider referential integrity (which is covered later in the book). We are also told that “if a value of an attribute is important even though there is no entity with that value as a property, then that attribute should be modeled as an entity.” What does “important” mean? Two explanations are possible: either the value is important as a possible valid value (even though no entity has it at the moment), in which case a discussion of the data dictionary/repository would have helped, or the value itself has attributes, in which case it must be an entity. We are not given these explanations.