MySQL is a relational database system that is finding increasingly wide acceptance as a backend solution for developing data-driven Web sites and applications. MySQL is fast, powerful, and in most cases free. In his book, Paul DuBois seeks to provide a comprehensive reference and learning tool for this high-performance database engine, and succeeds quite well.
Reading this book for the first time, I had already had some small experience with MySQL. What I knew about using it I’d picked up by reading the online reference manual that comes with the software. For the record, this is an awful way to be introduced to the world of databases. MySQL, despite being a sleek, elegant piece of software, is distributed largely as freeware. And as with most free products, the manual really seemed to be more of an afterthought, written out of necessity to have a technical record of how everything is supposed to work rather than out of any desire to provide a nice, easy introduction to beginners.
This book is very different. In many ways, it can be thought of as “the user’s guide MySQL never had.” Not only is the author a contributor to the MySQL reference manual, which explains his great familiarity with the nuances and intricacies of the program, but he communicates those concepts in a polished writing style that manages to keep things interesting.
The book divides the topics it treats into three parts: “General MySQL Use”, “Using MySQL Programming Interfaces”, and “MySQL Administration”. The first section leads off with a tutorial walk-through command-line interaction with the database, introducing the basic Structured Query Language (SQL) commands in the process. The tutorial develops two simple databases that are used throughout the remainder of the book in discussing various examples. With this quick overview completed, the book delves into a deeper presentation of MySQL data/column types, the SQL syntax supported by MySQL, and optimization techniques such as indexing.
The second part of the book covers the most popular API’s that allow access to a MySQL database system to be embedded in some other application, be it a corporate legal database, a Web-based photo gallery, or anything in between. The three API’s that are covered are for C, Perl DBI, and PHP. While coverage of these topics is surprisingly complete considering this is a book about MySQL, a basic grounding in each of the languages is assumed. A discussion of JDBC (the Java database interface) is not provided, which seems a strange omission considering the increasing popularity of Java as a development platform.
The last section of the book, MySQL Administration, will probably be the one that readers will refer to the least, but at the same time provides some of the most vital information in the book. The section of the reference manual for MySQL treating areas such as security and access control are especially difficult to grasp, and once again this book fulfills its role as surrogate user’s guide wonderfully. Topics such as security, account management, and database maintenance and repair are covered with great insight in an easy-to-read style.
The appendices provide everything from a complete installation guide to generous references for SQL syntax, operations, and functions, finishing with a guide to shopping for an ISP that provides MySQL support for building data-driven Web sites.
For all that this book does cover, it may come as a surprise that it does not attempt to provide an introduction to relational database concepts. While readers having no previous experience with relational databases should be able to pick up the basic concepts fairly quickly, topics of good database design such as data normalization are touched on barely, if at all. Does this mean you can’t get started building your first database-driven Web site with this book? Not entirely, but unless you have an intuitive feel for designing good databases (many people do), you’ll find yourself making mistakes and going back to redesign your database more often than if this book had included a chapter on pure database design.
This book provides everything you’ll need to become an expert on MySQL, or just to get started using it in short order. Since MySQL is basically free, the price of admission can either be the time you spend sorting through the dry and technical online reference guide, or the cost of this well-written book that will guide you through every step of the learning process with practical examples and invaluable insight.
“MySQL” is available from Amazon.com for $39.99.