|Refactoring Databases: Evolutionary Database Design|
|Author: Scott W. Ambler and Pramod J. Sadalage|
|Pages: 350||Published: 2006|
|Publisher: Addison Wesley||ISBN: 0321293533|
|Click to Buy|
| || |
|Topics: Development & Deployment|
Refactoring has proven its value in a wide range of development projects–helping software professionals improve system designs, maintainability, extensibility, and performance. Now, for the first time, leading agile methodologist Scott Ambler and renowned consultant Pramodkumar Sadalage introduce powerful refactoring techniques specifically designed for database systems.
Ambler and Sadalage demonstrate how small changes to table structures, data, stored procedures, and triggers can significantly enhance virtually any database design–without changing semantics. You'll learn how to evolve database schemas in step with source code–and become far more effective in projects relying on iterative, agile methodologies.
This comprehensive guide and reference helps you overcome the practical obstacles to refactoring real-world databases by covering every fundamental concept underlying database refactoring. Using start-to-finish examples, the authors walk you through refactoring simple standalone database applications as well as sophisticated multi-application scenarios. You'll master every task involved in refactoring database schemas, and discover best practices for deploying refactorings in even the most complex production environments.
The second half of this book systematically covers five major categories of database refactorings. You'll learn how to use refactoring to enhance database structure, data quality, and referential integrity; and how to refactor both architectures and methods. This book provides an extensive set of examples built with Oracle and Java and easily adaptable for other languages, such as C#, C++, or VB.NET, and other databases, such as DB2, SQL Server, MySQL, and Sybase.
Using this book’s techniques and examples, you can reduce waste, rework, risk, and cost–and build database systems capable of evolving smoothly, far into the future.
| ||Review by Rahul Khanna email@example.com|
Back to Top
Authors Scott Ambler and Pramod Sadalage waste no time in getting to their point: refactoring databases in today’s rapidly changing environment. The book is organized to build and extend concepts like refactoring structure and data quality. Each chapter focuses on specific tips, advice, and how-to’s, from identifying refactoring needs to testing refactoring and data migration. Each refactoring has been labeled and referenced throughout the book (as well as defined in the front and back covers for your convenience). Although the authors implemented the examples using Oracle as the relational database management system, they attempt to provide a product-agnostic viewpoint (ANSI SQL-92 syntax) in the book.
It assumes a background in application development and data modeling, as the focus of the book is to apply changes to evolve the information system.
This book could not have been timelier for me as I begin to take on a re-engineering effort replace a limited functioning client/server application with a Web-based system, relying on agile/XP concepts to build rapidly and deploy a solution using iterative development. Since the client-server system currently has data important to the business, this book provides me with a great vantage point to refactor strategically the database and quickly migrate my client to reduce downtime.
I already was familiar with Ambler’s agile modeling guidance and viewpoints, but this book gave me further insight into his background, particularly with data modeling and database design. Many of the concepts the authors discuss are evident in the work force, as database communities try to provide centralized mechanisms with minimal change impact resulting in the capability to change the database minimally. Programmers and developers constantly change their code or application to keep up with business (or scientific) demands and end up needing to change the database to ensure a flexible, extensible, and evolved system.
This book does a great job of talking to both groups by demonstrating how to manage database refactoring. Ambler and Sadalage deliver great wisdom to quality engineering that promotes testing, testing, and more testing.
Building upon what Martin Fowler termed “refactoring,” the authors demonstrate the concepts in great depth. The book shows how to bridge the gap between developer and database communities by illustrating examples affecting both sides.