Database refactoring
Encyclopedia
A database refactoring is a simple change to a database schema that improves its design while retaining both its behavioral and informational semantics. A database refactoring is conceptually more difficult than a code refactoring; code refactorings only need to maintain behavioral semantics while database refactorings also must maintain informational semantics.
The process of database refactoring is the act of applying database refactorings to evolve an existing database schema (database refactoring is a core practice of evolutionary database design). You refactor a database schema for one of two reasons: to develop the schema in an evolutionary manner in parallel with the evolutionary design of the rest of your system or to fix design problems with an existing legacy database schema
Database refactoring does not change the way data is interpreted or used and does not fix bugs or add new functionality. Every single refactoring to a database leaves the system in a working state, thus not causing maintenance lags, provided the meaningful data exists in the production environment.
An example of database refactoring would be splitting an aggregate table into two different tables in the process of database normalization
The process of database refactoring is the act of applying database refactorings to evolve an existing database schema (database refactoring is a core practice of evolutionary database design). You refactor a database schema for one of two reasons: to develop the schema in an evolutionary manner in parallel with the evolutionary design of the rest of your system or to fix design problems with an existing legacy database schema
Database refactoring does not change the way data is interpreted or used and does not fix bugs or add new functionality. Every single refactoring to a database leaves the system in a working state, thus not causing maintenance lags, provided the meaningful data exists in the production environment.
An example of database refactoring would be splitting an aggregate table into two different tables in the process of database normalization
Database normalization
In the design of a relational database management system , the process of organizing data to minimize redundancy is called normalization. The goal of database normalization is to decompose relations with anomalies in order to produce smaller, well-structured relations...
External links
- Database refactoring presentation at InfoQ.com by Scott W. Ambler
- The Process of Database Refactoring by Scott W. Ambler
- Catalog of Database Refactorings. by Scott W. Ambler.
- Database Refactoring Website by Pramod Sadalage