Having reviewed several books recently, and currently working on another book – I was offered the chance to look at MySQL Workbench: Data Modelling & Development by Michael McLaughlin which I took up as I was interested to know more about the Workbench tool (despite having worked with MySQL on and off for about 10 years, I’ve only really used command line and SQL editors or Eclipse plugins when working with MySQL).
From a pure readability perspective, this is undoubtedly technically well written. My difficulty with the book comes from the style, and presumed level of intelligence of the reader. The difficulty comes from several perspectives’ firstly the author can feel a little condescending, to illustrate my point on page 180 the book says ‘Select Schemata step (that’s a fancier word for the fancy word schema) ‘. Do you really need such a statement? Further the book spends the best part of the first 100 pages on walking through UI based installers for Windows 7, Linux (Debian and Fedora), and Mac OS X. Although the look and feel of these installers will differ slightly, aside from some of the environmental considerations (configuring your hosts file for example) the installation process is consistent enough (and obvious enough given it is UI wizards) to only need to explain the end to end process for one platform, and then just address the differences for the other platforms, not repeat the entire process. The only blessing in these first couple of chapters the author has thought to highlight a few common install issues and their resolutions (addressing my classic complaint people only think about the happy path). During the installation, the book makes reference to the use of DNS, but I don’t believe the use of DNS in a production environment is particularly well explained.
Having waded through to chapter 3 we can get started with the modelling aspect of the workbench. The chapter sets out first to explain some modelling concepts – starting with Object Orientation (OO) but doesn’t do a great job of it, starting out making reference to a number principles but then talking about the ‘principle of the one’, given my experience I did understand what the author was trying to express but, for someone experienced it could have been more simply expressed. after OO, Normalisation is explained, and what defines the different levels of normalisation, but not the mechanics that can be followed to go from the levels of normalisation (something I was taught over 20 years ago). Given that book talks about modelling, I had expected the book to at-least touched upon other modelling approaches used for delivering the needs of data warehousing (star schemas etc), but his didn’t even obtain an aside. Having spent nearly 100 image heavy pages on installation, all of these concepts are introduced in a single very text heavy chapter, which feels like we’ve swung too far the other way.
As the book goes on into development aspects it errs away from addressing SQL at all, and focuses entirely on designing with INNODB table behaviours. Admittedly INNODB is the common engine (and the default assumed behaviour when thinking about database tables) but isn’t the only table type. All of which is a shame as if you want to get the most out of MySQL the other table types have their value and benefits.
So, what value does the book bring. Well for a student learning about databases for the 1st time (hard visualize when you think how pervasive the technology is today – even smart phones carry DBs now) this book along with a good guide on SQL and you’d be well on your way to getting some practical experience with MySQL. to be honest the book would have setup far better expectations if it had been called MySQL Workbench for Dummies. For the seasoned engineer who has worked with MySQL, understands database design then you might want to think twice about getting this book; that said I did pickup a few useful titbits – but getting them was hardwork.
Useful Links for the book: