I made a
brief mention of
The Art of SQL, but in light of my last fairly 'meh' book review, I wanted to talk about good books a bit more. I've been working with databases for a few years now, and I had some really great mentors on the subject early on... so I have felt pretty comfortable with my level of expertise in the area. Still, Faroult and Robson completely blew me away with this book, and reading it helped me understand and solve a whole new range of problems in databases.
The attempt at mapping chapters and subjects onto The Art of War is a bit of a waste of time, but it seems to mostly involve goofy chapter titles and preface. More frustrating for me personally was the discussion of (yes, here we go again) trees and hierarchies in SQL. It's a nice discussion of accessing data in hierarchical formats, but it avoids handling some very important areas: nodes with multiple parents (consider MMO crafting recipes as an example: ingredients can be used in multiple recipes, and some recipes yield things that can be used as ingredients in other recipes), and on-the-fly inserts into trees.
The authors' best advice regarding trees, incidentally, is "SQL still lacks a truly adequate, scaleable[sic] processing of tree structures." It's hard to disagree with that conclusion, and it's hard to argue the authors' decision - in light of that conclusion - to not fully address tree structures in SQL. Out of curiosity I'll probably take a look at Joe Celko's Trees and Hierarchies in SQL for Smarties soon, but to be honest I think professionally my solution is going to be "stay the hell away."
However, in general the book covers a lot of ground in much better depth than most books - offering interesting examples, SQL demonstrations of principles, and performance comparisons of different approaches that is well worth reading, and keeping handy as a reference. It is, frankly, the only database book I've read thoroughly and still been satisfied enough with to recommend.