This tip originally appeared on TechTarget's Expert Answer Center as a post in Craig Mullins' blog. Craig served as the on-demand expert on the Expert Answer Center for two weeks in February, during which he was available to quickly answer questions on EAC topic as well as to write daily blog entries. Keep an eye on the Expert Answer Center for topics that could help your IT shop.
Achieving success working with a database system can be a difficult task. In order to prosper you must have an inquisitive mind and an ongoing desire to learn. In this day and age of frugality and meager training budgets, much of your education will be self-taught. One of the most cost-effective ways to learn something new is still by reading books. Fortunately, there is no shortage of excellent material for database professionals to choose from. In this tip I will recommend some of my favorite database books.
There sure are a lot of books out there written about database management systems. Most of them are useful, but which ones are indispensable? I'm sure that question is debatable, but I'm going to give you my opinion.
First of all, let's set some limits. I am not going to recommend any books that cover only a single DBMS -- so no books that cover just DB2 or only Oracle. There are quite a few good ones out there like that, and I even wrote one for DB2. Secondly, I will not talk about any book that is out of print or difficult to obtain. No one wants to pay over $100 for a rare database book anyway, so why talk about such books...?
Also, I won't hype my own books -- oh, well, if you must know, I do recommend my Database Administration book, but I won't try to hard sell you on it. I really want to share with you some of my favorite database books. First of all, let's talk about some good SQL books.
Every professional programmer (and DBA) should have a good book or two on SQL. There are many to choose from, and a lot of them are very good. I have two to recommend that I think are outstanding. The first SQL book is SQL Performance Tuning by Peter Gulutzan and Trudy Pelzer. It provides a treasure trove of tips for improving SQL performance on all of the major DBMSs. This book does not teach SQL syntax, but instead helps the reader to understand the differences between eight DBMSs, including Oracle, DB2, SQL Server, Sybase ASE, MySQL, Informix, Ingres and even InterBase. Throughout this book the authors present and test techniques for improving SQL performance and grade the technique for its usefulness on each of the major DBMSs. If you deal with heterogeneous database implementations, this book will be of great assistance, whether you are a programmer, consultant, DBA or technical end user. The contents of this book can help you to decide which tuning techniques will work for which DBMS.
My next SQL book recommendation is altogether different in purpose than the first. It is SQL in a Nutshell, 2nd edition by Kevin Kline, Daniel Kline and Brand Hunt. This book offers a great cross-platform syntax reference for SQL. It probably is not the easiest reference to use for finding the exact syntax for one particular DBMS, but it is absolutely the best reference for those who work with multiple DBMSs. Be sure to get the second edition, which is more up to date and offers more depth than the skinny first edition.
Another excellent book that I highly recommend is Joe Celko's SQL for Smarties. This is a book that delivers on its title. Joe offers a plethora of useful SQL coding techniques that might take years to assemble if you go it alone. The current edition is a little dated (published in 1999), but it still contains enough useful nuggets to make it a worthwhile investment. And never fear -- Joe is hard at work updating his book and a new edition will be available soon.
An Introduction to Database Systems, 8th Edition by Chris Date belongs on every database professional's bookshelf. This book is expensive, but worth every penny of its price. It will not teach you how to use existing commercial DBMS products, but it is the best book on the market for teaching the fundamental of database management.
Finally, it is a good idea to have a nice reference on database design and data modeling. There are a lot of books on this topic, too, but one of my favorites is Data Modeling Essentials, 3rd edition by Graeme Simsion and Graham C. Witt. This book provides a good, solid tutorial on data modeling from two of the foremost experts on the topic. It is useful for all levels (beginner to expert) of data modeling expertise.