The author states in the preface: “This book is intended for anyone who has been given the responsibility for designing or maintaining a relational database (or whose college degree requirements include a database course).” She goes on to say, “It will teach you how to look at the environment your database serves and to tailor the design of the database to that environment.”
This book provides an overview and description of the main concepts associated with the creation and development of relational databases. A great addition to this edition is its full coverage of Structured Query Language (SQL). Also, “materials to support a ... course in database management” can be found on the publisher’s website, with assignments and several case studies and exam scenarios. The book is divided into six parts and three appendices.
Part 1, “Introduction,” includes two chapters. Chapter 1 deals with the database environment and requirements. There are discussions of several hardware and network architectures on which databases work, including some database management software. In chapter 2, “Systems Analysis and Database Requirements,” the author introduces a classic process for conducting a system analysis, including two alternative methods.
The second part includes nine chapters. The first one (chapter 3) talks about the theoretical aspects of relational database design, discussing the importance of good design and including examples of bad design and the problems bad design brings. The author states: “A bad design can make achieving the goal very difficult, especially because you may not always know that a problem exists.” Chapter 4, “Entities and Relationships,” shows the basis for all database systems, a data model; the importance of identifying data relationships is shown. Chapter 5, “The Relational Data Model,” presents concepts about relational databases and the representations of data relationships. Chapter 6, “Relational Algebra,” presents seven relational algebra operations fundamental to SQL and database design operations. Chapter 7, “Normalization,” introduces the process of normalization, through which relations that avoid most of the problems that arise from bad relational design are created. Chapter 8, “Database Design and Performance Tuning,” presents techniques for optimizing database performance. The last chapter in this second part is chapter 9, “Codd’s Rules for Relational DBMSs”; it presents the 12 criteria to which a “fully relational” database should adhere.
Part 3, “Relational Database Design Practice,” talks about SQL, including “Introduction to SQL” (chapter 10), “Using SQL to Implement a Relational Design” (chapter 11), “Using CASE Tools for Database Design” (chapter 12), and three design case studies: “Mighty-Mite Motors” (chapter 13), “East Coast Aquarium” (chapter 14), and “SmartMart” (chapter 15). These chapters begin with an overview of the environment in which SQL exists, starting with SQL history and which SQL commands are processed and the software environments in which they function. The next chapter (11) presents the SQL commands that are used to create and maintain the tables that make up a relational database. The last chapters (the case studies) present the computer-aided software engineering (CASE) tool; three examples of its application are found in chapter 12.
Part 4, “Using Interactive SQL to Manipulate a Relational Database,” is an in-depth look at the uses and syntax of interactive SQL. There are six chapters, from “Simple SQL Retrieval” (chapter 16) to syntax for including a join in SQL queries and the implementation of additional relational algebra operations in SQL. Chapter 19 (“Working with Groups of Rows”) presents what is possible to do to and with grouped data. Data modification is presented in chapter 20; it shows how to populate tables and modify data using SQL syntax. The last chapter of this part, “Creating Additional Structural Elements” (chapter 21), is complementary, showing two things that need to be considered: which views are really needed and if these views can be used for updating data.
Part 5 discusses “Database Implementation Issues”: “Concurrency Control” and “Database Security” (chapters 22 and 23); “Data Warehousing” (chapter 24), when there is too much data to be managed; and last but not least, “Data Quality” (chapter 25), where the author says that it is much easier to ensure data quality before data gets into a database than once it is stored.
The last effective part of the book is Part 6 (the rest of the book is appendices). This part, “Beyond the Relational Data Model,” presents some alternatives to the relational database model as “XML Support” (chapter 26), where the basics of the structure of XML documents are shown. In chapter 27, “Object-Relational Databases,” the author presents an overview of some object-oriented concepts. Chapter 28, “Relational Databases and ‘Big Data’: The Alternative of a NoSQL Solution,” is about the group of database management systems (DBMSs) designed to handle big amounts of data, which is difficult to handle with simple relational DBMSs.
There are three appendixes. Appendix A, “Historical Antecedents,” covers early file processing up through the complex network data model. Appendix B is about SQL programming and its elements, and Appendix C contains a summary of the SQL syntax used in this book.
This is definitely a book that covers the real implementation of relational databases, from simpler concepts up to SQL programming and concepts of data warehousing, big data, and so on. I recommend this book to anyone interested in database management. Of course, there is a focus group that includes information technology (IT) professionals and graduate and undergraduate students in systems analysis. Besides the author saying that this edition is harder than the first one, readers don’t need many computer skills to understand all the chapters and have an excellent cost-benefit investment.