Agile Data

Catalog of Database Refactorings

AgileData.org: Techniques for Disciplined Agile Database Development

Scott Ambler + Associates
   Home  |  Agile DBAs  |  Developers  |  Enterprise Architects  |  Enterprise Administrators  |  Best Practices  |  Agility@Scale Blog  |  Announcements  |  Contact Us 
Refactoring Databases A database refactoring is a small change to your database schema which improves its design without changing its semantics.  This catalog is organized into several categories of database refactoring:
  • Structural.  A change to the table structure of your database schema.
  • Data quality.  A change which improves and/or ensures the consistency and usage of the values stored within the database.
  • Referential integrity.  A change which ensures that a referenced row exists within another table and/or that ensures that a row which is no longer needed is removed appropriately. 
  • Architectural.  A change which improves the overall manner in which external programs interact with a database.
  • Method. A change which improves the quality of a stored procedure, stored function, or trigger. 
  • Non-refactoring transformations.  A change which changes the semantics of your database schema by adding new elements to it or by modifying existing elements. 
 

 

Category Database Refactorings
Structural Refactorings
Data Quality Refactorings
Referential Integrity Refactorings
Architectural Refactorings
Method Refactorings
Non-Refactoring Transformations

 

Recommended Books

Refactoring Databases

This book describes, in detail, how to refactor a database schema to improve its design. The first section of the book overviews 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.  The second section, the majority of the book, is a database refactoring reference catalog.  It describes over 60 database refactorings, presenting data models overviewing each refactoring and the code to implement it.

 

Working Effectively With Legacy Code Working Effectively With Legacy Code describes techniques for refactoring and testing existing, legacy code.  Few teams have the luxury of building everything from scratch, instead they must work from an existing base of code, or minimally integrate with other legacy systems.  In this book Michael Feathers covers the fundamental techniques which agile developers need to effectively work in these sorts of environments.  You don’t need to stop all development and rework your legacy code, instead you can ease into it over time, and this book shows you how to do that successfully. 

 

References and Suggested Online Readings

Agile Database Techniques This book describes the philosophies and skills required for developers and database administrators to work together effectively on project teams following evolutionary software processes such as Extreme Programming (XP), the Rational Unified Process (RUP), the Agile Unified Process (AUP), Feature Driven Development (FDD), Dynamic System Development Method (DSDM), or The Enterprise Unified Process (EUP).  In March 2004 it won a Jolt Productivity award.
The Object Primer 3rd Edition: Agile Model Driven Development (AMDD) with UML 2 This book presents a full-lifecycle, agile model driven development (AMDD) approach to software development.  It is one of the few books which covers both object-oriented and data-oriented development in a comprehensive and coherent manner.  Techniques the book covers include Agile Modeling (AM), Full Lifecycle Object-Oriented Testing (FLOOT), over 30 modeling techniques, agile database techniques, refactoring, and test driven development (TDD).  If you want to gain the skills required to build mission-critical applications in an agile manner, this is the book for you.
 

 

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.

 


Disciplined Agile Delivery: The Foundation for Scaling Agile Agile Modeling: Practices for Scaling Agile Agile Data: Practices for Scaling Agile EnterpriseUP: Agility at Scale AgileUP: Towards Disciplined Agile DeliveryAmbysoft Inc. Software Development Practices Advisor Scott Ambler + Associates Follow @scottwambler on Twitter!


Copyright © 2002-2012 Scott W. Ambler

This site owned by Ambysoft Inc.