Designing Effective Database Systems shows you how to design an effective, high-performance database to solve it. Riordan begins by thoroughly demystifying the principles of relational design, making them accessible to every professional developer. Next, she offers the field's clearest introduction to dimensional database modeling, practical insight for designing today's increasingly important analytical applications. One task at a time, the author illuminates every facet of database analysis and design for both traditional databases and the dimensional databases used for data warehousing, showing how to avoid common architectural pitfalls that complicate development and reduce extensibility. The book concludes with comprehensive, expert guidance on designing databases for maximum usability. This book will teach you to
Riordan has helped thousands of professionals master database design and development, earning Microsoft's coveted MVP honor for her exceptional contributions. Nobody is more qualified to help you master database design and apply it in your real-world environment.
Review By: Stephen Long
02/13/2006This is an excellent book for learning database design and systems development. Author Rebecca M. Riorden writes in a refreshingly direct style, uses simple words, and does not try to overwhelm the reader with superfluous facts. Every concept is clearly explained and each follows in a logical progression. The section on relational theory is a solid overview of a complex subject. Each part of the theory--including normalization, relationship modeling, and relational algebra--is supported in visual form that makes understanding the concepts much more intuitive. There is plenty of white space that makes the book appealing and easy on eye--not many pages are just text.
Riordan provides a broad-brush discussion of relational database design using the Microsoft Access Northwind sample database for the majority of the examples. She presents the material in an informal, easy-to-grasp manner. She emphasizes the need to model the database design around the work processes, not the data being managed--she is very user-centered.
The book is divided into four parts: relational database theory, dimensional database theory, designing database systems, and designing the user interface. I had difficulty fitting part two in the logical flow of the book; this section seemed to break the progression from the theory presented in first part to the practical application concepts presented in the final two sections. The book also ended abruptly--I expected some type of summary detailing the major themes of the book.
This is a good introduction into the complexity involved in developing even simple databases--if you want to it right. The book is not a step-by-step manual on designing a database but rather a discussion of what is needed to design an efficient database: understanding the design process, defining system parameters, determining work processes, developing the data model and schema, and communicating the design to the users. Almost every concept is demonstrated by an example from the sample Northwind database--there are a few mismatches between text and example but not enough to be distracting.
Riordan is unorthodox in a few areas. Contrary to standard relational theory, she advocates the usefulness of using nulls (three-valued logic). That creates a place for non-enforcement of database integrity constraints: intrinsic constraints are sacrosanct but business constraints (business rules) can be temporarily held in abeyance to keep the work processes flowing smoothly.
Although this book is Microsoft-centric in its examples, the information that is presented is applicable to any relational database. Not everyone has access to Access (no pun intended!) so using an open-source (free) database would be more universal, especially with a downloadable database example. For the few errors I noticed, I checked the publisher’s Web site but, unlike O’Reilly books, there was no errata link.
For a tester, this book is a useful reference for the requirements analysis and design phases of the project, if you are lucky enough to be on a project where the test team gets involved early in the process. There is lots of useful information (ammunition?) for asking intelligent questions about the design.
This is a readable book, and I highly recommend it as a solid introduction into database design. Riordan makes it seem easy to use Microsoft Access to prototype your next database project. However, she does warn about the danger of turning a prototype into the deliverable--read the book to find out why!
This book is a good introduction into the complexity involved in developing even simple databases. It is not a step-by-step manual on designing a database but rather a discussion of what is needed to design an efficient database. This is an excellent book for learning database design and systems development.