This is the fourth edition of a text that was published 25 years ago. The main purpose of the book is to explain the logical design phase of the database development process, independently on a particular database software. Note that a situation is considered where an organization already has a database and is designing a new database.
The voluminous book is divided into three parts: “Relational Database Design,” “The Design Process,” and “Other Database Design Issues.” The rest of the book contains eight appendices.
The individual chapters are very well structured, including the topics covered by the chapter, content, summary, and review questions.
Part 1 (chapters 1 through 3) provides a very informal introduction to relational databases, design objectives, and terminology. The classical relational database theory--for example, functional dependencies, normal forms, and so on--is not considered here at all. The very natural and useful third normal form (3NF) is also not considered.
Part 2, the main part of the book, discusses establishing table structures and associated integrity constraints in detail. Chapter 4 provides a brief overview of the database design process, which are then divided into seven phases and discussed in detail in chapters 5 through 13. Chapter 5 begins with a discussion of the interview process as an important part of database design. It also includes new interview opportunities that came out of the COVID-19 pandemic. Important aspects include the mission statement, mission objectives, and interviews. The extensive chapter 6 shows the importance of analyzing the organization’s current databases. This includes reviewing how data is collected and how information is presented, as well as conducting interviews with the organization’s staff, both users and management.
Chapters 7 to 9 are devoted to establishing table structures, keys, and field specifications. The author uses relations in 1NF, that is, without the possibility to use, for example, multivalued attributes as today’s SQL language allows. In other words, such an approach does not reflect the many possibilities offered today in the world of relational database management systems (RDBMSs).
Chapter 10 is focused on table relationships. It really covers possibilities for two tables, that is, only binary relationships. Foreign keys are discussed in this context. Chapter 11 deals with business rules that extend the semantics of many usual integrity constraints. They include not only database-oriented business rules but also application-oriented ones.
The valuable chapter 12 deals with database views in a similar style as they are allowed in SQL. Emphasis is placed on documenting views using specification sheets.
A very important part of the database design process is discussed in chapter 13, “Reviewing Data Integrity.” Integrity constraints gained during this process should be reviewed to ensure that data integrity is absolutely as sound as possible.
Part 3 looks at some other database design issues. Chapter 14 briefly shows some situations that lead to bad design with flat files, spreadsheets, or design based on RDBMS software, but without any design methodology.
In conclusion, the book does not support the usual three-level approach to the database design process, that is, the conceptual level is completely ignored. This means that tables are designed ad hoc, based mainly on interviews. This may be appropriate for a small number of tables, but not in general. Such an approach reduces the quality of the book.
More reviews about this item: Amazon