Refactoring Databases: Evolutionary Database Design

by Scott W. Ambler and Pramod J. Sadalage

Addison Wesley Professional    ISBN#:  0-321-29353-3

Scott W. Ambler + Associates
    Home  |  Articles  |  Books  |  IT Surveys  |  Podcasts  |  Contact Us  |  Announcements  |  Site Map
Refactoring Databases  



A database refactoring is a small change to your database schema which improves its design without changing its semantics (e.g. you don't add anything nor do you break anything).  The process of database refactoring is the evolutionary improvement of your database schema so as to improve your ability to support the new needs of your customers, support evolutionary software development, and to fix existing legacy database design problems.

The book describes database refactoring from the point of view of:

  1. Technology.  It includes full source code for how to implement each refactoring at the database level and for most refactorings we show how the application would change to reflect the change in the database.  Our code examples are in Oracle, Java, and Hibernate meta-data (the refactorings are easy to translate to other environments, and sometimes we discuss vendor-specific features which simplify some refactorings). 

  2. Process.  It describes in detail the process of database refactoring in both the simple situation of a single application accessing the database as well as the situation of the database being accessed by many programs, many of which are out of the scope of your authority.  The technical examples assume the latter situation, so if you're in the simple situation you may find some of our solutions to be a little more complicated than you need (lucky you!).

  3. Culture.  Although it is technically simple to implement individual refactorings, and clearly possible (albeit a little complicated) to adapt your internal processes to support database refactoring, the fact is that cultural challenges within your organization will likely prove to be the most difficult hurdle to overcome.

This book is organized into two sections:

  1. Evolutionary database development and database refactoring.  This section covers the fundamentals evolutionary database techniques in general and of database refactoring in detail.  More importantly it presents strategies for implementing and deploying database refactorings, in the context of both "simple" single application databases and in "complex" multi-application databases.

  2. Database refactoring reference catalog.  This section, the majority of the book, describes over 65 database refactorings, presenting data models overviewing the each refactoring and the code to implement it.  

Chapter List

Who Should Read This Book?

Anyone who is interested in improving their productivity as a developer, who wishes to bring effective database development practices into their team, or agile data management practices into their organization.



How to Obtain This Book

Amazon U.S.

Order now!

Amazon U.K.

Order now!

Amazon Canada

Order now!


Related Resources

Let Us Help

We actively work with clients around the world to improve their information technology (IT) practices, typically in the role of mentor/coach, team lead, or trainer.  A full description of what we do, and how to contact us, can be found at Scott W. Ambler + Associates