In the series of my blog posts in the context of agile software development, it’s necessary to mention “Database refactoring”.
Actually, the past few years have seen the rise of agile or evolutionary methods in software development. These methods embrace change in requirements even late in the project. The ability to change software is because of certain practices that are followed within teams, such as Test Driven Development, Pair Programming, and Continuous Integration. Continuous Integration provides a way for software teams to integrate their work more than once a day, and promotes confidence in the software that is being developed by the team. It is thought that this practice is difficult to apply when continuously integrating the database with application code; hence, Evolutionary Database Development is considered a mismatch with agile methods.
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.
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.
Actually, the past few years have seen the rise of agile or evolutionary methods in software development. These methods embrace change in requirements even late in the project. The ability to change software is because of certain practices that are followed within teams, such as Test Driven Development, Pair Programming, and Continuous Integration. Continuous Integration provides a way for software teams to integrate their work more than once a day, and promotes confidence in the software that is being developed by the team. It is thought that this practice is difficult to apply when continuously integrating the database with application code; hence, Evolutionary Database Development is considered a mismatch with agile methods.
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.
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.
Key points in the favor of database refactoring:
- A change to the table structure of your database schema.
- A change which improves and/or ensures the consistency and usage of the values stored within the database.
- 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.
- A change which improves the overall manner in which external programs interact with a database.
- A change which improves the quality of a stored procedure, stored function, or trigger.
- A change which changes the semantics of your database schema by adding new elements to it or by modifying existing elements.
Enjoy Programming!!!
No comments:
Post a Comment