Review of Databases Demystified
Databases Demystified is written by Andy Oppel and published by Osborne.
phpBB Smith rates this book 3.5 out of 5.
How many databases do you use each day?
The answer is probably a much higher number than you'd expect. Computerized databases have evolved a great deal over the past thirty years or so and have managed to worm their ways into many facets of our daily life. They power web searches, reservations, banking, online shopping, and many other transactions we conduct on a daily basis. The majority of informational web sites existing today are also powered by some form of a database. Most of us never realize that a database powers at least part of the many applications we use or how much work is required to create such databases. Databases Demystified doesn't really do much for the former matter, but it blows the smoke screen right off the later.
A Multitude of Relations
As one might expect with any book about a technological topic, this one provides a little discussion of the basics and early history of the subject before focusing mainly on one aspect. In this case, that aspect is relational databases. There are other types of databases that are covered briefly, such as network and hierarchical databases, but relational databases are the most widely used in today's industries.
As such, there are many relational database management software packages available, including well-known names such as Microsoft Access, Oracle, MySQL, and many others. The book uses Access and Oracle for its examples. A chapter is devoted to the basic usage of each. Chapter Three is a sort of "how to" on using a database in Access, with Chapter Four being similarly devoted to Oracle.
Thankfully, most of the Oracle examples use standard forms of SQL (Structured Query Language) commands that can be applied to other SQL-based packages such as MySQL. Some of the examples require a strong working knowledge of a chosen software package to be adapted, however. Although still useful for other software packages, these portions of Databases Demystified are best used as a slight supplement to the software's manual.
Database Zen?
The remainder of the book is something of a conceptual manual to creating, using, and maintaining a database, with the emphasis on creation. Since these are concepts of database design, they are mostly independent of any software. The final actions of creating or using a database will be software dependent, but until then, it's all about the art of design. This portion begins with a chapter entitled "The Database Life Cycle," which presents some basic concepts expanded on by the following chapters.
Chapter Six, "Logical Database Design Using Normalization," presents what may be the most difficult concept to grasp in the entire book. It deals with reducing the amount and types of data to be stored in a database through the process of normalization, which removes redundant data and certain types of dependencies among your data. It's an extremely important and useful skill, but it takes some work to master. Two practice problems are presented at the end of the chapter, and this is the only chapter with such reinforcement.
Several of the next chapters deal with other parts of a database's life cycle, such as modeling data and process relationships, physical design - or the actual creation - of a database, connecting and implementing a database, and keeping the database secure in a variety of methods. These chapters are replete with various examples and illustrations that assist the text excellently. Nearly all of the examples in these sections are SQL-based. For the most part, these chapters are quite well done, useful, and fairly complete. The "Database Security" chapter barely touches on some aspects of application security, however. Expanding these points a little would be useful for the web development audience. There are some amusing (in a sarcastic way) tales of real-life security nightmares earlier in the chapter that make up for it, however.
The final chapter changes the subject almost entirely, moving from databases designed to handle daily transactions to databases intended for storing and analyzing historical data and discovering trends in that data. While the chapter is still a useful and interesting read, it seems to come out of left field and feels more like an appendix than a final chapter.
Would you like that wrapped?
My number one problem with Databases Demystified is not what it includes, but rather what it lacks: a true concluding chapter. A lot of information is presented in the 306 pages that comprise the twelve chapters, but it is never tied together to give you a sense of closure. Instead, the chapters end with twenty question quizzes, plus a one hundred question quiz after the last chapter. The majority of these quiz questions have multiple answers, turning them into a "what is not true about this?" type of thing. I was left feeling like there should be one more chapter at the end of the book, which is rather disappointing, given how useful I found the rest.
Honestly, this book is not truly aimed at a web development audience. Web developers that are going to use a database for a web site and are not database experts will find it useful; I know I have. Keep in mind, however, that the majority of the book is written for use in a business environment. You would do well to apply the same principles to other types of sites, but some things covered will be not appropriate for them.