Book Review: Refactoring Databases
Disclaimer: I've had the pleasure of working with Pramod on a project. He's a thoroughly lovely chap. Now that's out of the way....
The concept behind Refactoring Databases is that developers shouldn't be the only ones having success with refactorings. It's time for the DBAs to be provided with the patterns needed to successfully manage the transition from harder to use, less well organised data to clearer, well structured information.
In doing this, one of the things that the book brings home is that the time-scales for changes in a databases' schema can be dramatically longer than those in application code; I liked the fact that this was made clear to the reader. Given the time-scales involved it seems fortunate that the refactorings covered provide recipes to keep code that depends on the older, unrefactored, schema up and running.
The book also provides a strategy for providing confidence in your refactorings by introducing the concept of staged environments --- a series of environments which are increasingly controlled leading from the developer's workstation all the way to the production environment. This sort of concept should hardly be alien to developers, and is something that I've seen happen informally on many projects with databases, but promoting this concept to the fore when working with databases can only be a Good Thing.
This leads me to my next point: like many things, once the ideas and concepts presented in this book are laid out in front of you, they seem pretty obvious. Whether this is good or not is for the reader to decide, but I thought that it was one of the stand-out features of the book --- spotting the obvious is one of the hardest things to do in computing.
In summary, I enjoyed the book and would recommend it to anyone who has to work on anything other than a greenfield database. Is it perfect? Of course not, but it's a clearly put-together big step in the right direction.
Posted in: /computing /tech
You may comment...