Agile Data

Yet another great website I was pointed to by Darin (who really should be blogging all this himself). This one is the AgileData page. It appears to either be a page sort of centered around a book or perhaps the book came from the web page. Either way, it is focused on the problems of refactoring databases. This one is near and dear to my heart, working as I do every day with a horrible database schema that needs much help but will never get it. The problems of refactoring are so great and break so much in so many ways that it will never happen, minus a miracle. Well, these techniques might actually be that miracle.

There is no sense in me rehashing the page, since it does that quite well for itself. However, let me point out one particularly good essay describing the process of database refactoring. This is all good stuff. In an ideal world, none of us would need this. In the world we sadly inhabit, almost anyone that uses any sort of deployed database can learn a lot in this regard.

Update: I forgot to mention something earlier. On this page, they flag as important the fact that all the work product of the database refactoring should be version controlled. This includes any definition artifacts, scripts that manage or migrate the data, text files that support it, etc. This particular notion is something that I brought up as important over a year ago in a situation where there was a “reference database”, one instance of a database that was cloned at delivery time and shipped to customers. “How do you know if/when it was changed, and if it was when and by whom for what reason?” “Dunno” was the only response I ever got. I tried like a demon to get it into a versioned system, had succeeded at that, only to find it all undone and reverted to the uncontrolled, unversioned system. Que sera.