Refactoring Databases: Evolutionary Database Design by Scott Ambler and Pramod Sadalage


Today I am adding a new book to my shelf. It is Refactoring Databases: Evolutionary Database Design by Scott Ambler and Pramod Sadalage. This book extends the concept of refactoring to relational databases. Large enterprise databases are often accessed by multiple applications developed by different teams at different times and updated on different schedules. These additional dependencies between databases, applications, teams and schedules make databases refactoring much more difficult then code refactoring. First part of the book provides a good overview of why databases refactoring is important and defines the process that makes it possible. Second part of the book contains a catalog of different refactorings, describing their motivation, trade-offs and implementation mechanics. Some of the information in this book is available in this article on www.agiledata.org.

For me, the most important thing in this book was the concept of transition period in the refactoring process and specific examples of how it can be implemented. Transition period allows the database and applications to evolve independently, enabling database changes while keeping the applications working. I think it is applicable to code refactoring as well, in particular, refactoring of frameworks, also accessed by multiple applications. .NET framework has ObsoleteAttribute designed specifically for that, which suggests that idea of transition period in refactoring is gaining wider acceptance in the industry.

I picked up this book at the right time. As soon as HillsClerk Traffic (court case management) System goes live, we will need to start extending the system to support other court types (Criminal, Family Violence, etc). Our goal is to have a single database for all courts and refactoring will be necessary to keep the system evolving. Ideas from this book will be directly applicable to our project.

Information and Links

Join the fray by commenting, tracking what others have to say, or linking to it from your blog.


Other Posts
Regulator by Roy Osherove
TFS Power Tools

Write a Comment

Take a moment to comment and tell us what you think. Some basic HTML is allowed for formatting.

Reader Comments

Be the first to leave a comment!