Contents

About the Authors
Forewords
Preface
Acknowledgments
1. Evolutionary Database Development
1.1 Database Refactoring
1.2 Evolutionary Data Modeling
1.3 Database Regression Testing
1.4 Configuration Management of Database Artifacts
1.5 Developer Sandboxes
1.6 Impediments to Evolutionary Database Development Techniques
1.7 What You Have Learned
2. Database Refactoring
2.1 Code Refactoring
2.2 Database Refactoring
2.2.1 Single-Application Database Environments
2.2.2 Multi-Application Database Environments
2.2.3 Maintaining Semantics
2.3 Categories of Database Refactorings
2.4 Database Smells
2.5 How Database Refactoring Fits In
2.6 Making It Easier to Refactor Your Database Schema
2.7 What You Have Learned
3. The Process of Database Refactoring
3.1 Verify That a Database Refactoring Is Appropriate
3.2 Choose the Most Appropriate Database Refactoring
3.3 Deprecate the Original Database Schema
3.4 Test Before, During, and After
3.4.1 Testing Your Database Schema
3.4.2 Validating Your Data Migration
3.4.3 Testing Your External Access Programs
3.5 Modify the Database Schema
3.6 Migrate the Source Data
3.7 Refactor External Access Program(s)
3.8 Run Your Regression Tests
3.9 Version Control Your Work
3.10 Announce the Refactoring
3.11 What You Have Learned
4. Deploying into Production
4.1 Effectively Deploying Between Sandboxes
4.2 Applying Bundles of Database Refactorings
4.3 Scheduling Deployment Windows
4.4 Deploying Your System
4.5 Removing Deprecated Schema
4.6 What You Have Learned
5. Database Refactoring Strategies
5.1 Smaller Changes Are Easier to Apply
5.2 Uniquely Identify Individual Refactorings
5.3 Implement a Large Change by Many Small Ones
5.4 Have a Database Configuration Table
5.5 Prefer Triggers over Views or Batch Synchronization
5.6 Choose a Sufficient Transition Period
5.7 Simplify Your Database Change Control Board (CCB) Strategy
5.8 Simplify Negotiations with Other Teams
5.9 Encapsulate Database Access
5.10 Be Able to Easily Set Up a Database Environment
5.11 Do Not Duplicate SQL
5.12 Put Database Assets Under Change Control
5.13 Beware of Politics
5.14 What You Have Learned
Online Resources
6. Structural Refactorings
Common Issues When Implementing Structural Refactorings
Drop Column
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Drop Table
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Drop View
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Introduce Calculated Column
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Introduce Surrogate Key
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Merge Columns
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Merge Tables
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Move Column
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Rename Column
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Rename Table
Motivation
Potential Tradeoffs
Schema Update Mechanics via a New Table
Schema Update Mechanics via an Updateable View
Data-Migration Mechanics
Access Program Update Mechanics
Rename View
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Replace LOB With Table
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Replace Column
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Replace One-To-Many With Associative Table
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Replace Surrogate Key With Natural Key
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Split Column
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Split Table
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
7. Data Quality Refactorings
Common Issues When Implementing Data Quality Refactorings
Add Lookup Table
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Apply Standard Codes
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Apply Standard Type
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Consolidate Key Strategy
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Drop Column Constraint
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Drop Default Value
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Drop Non-Nullable
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Introduce Column Constraint
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Introduce Common Format
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Introduce Default Value
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Make Column Non-Nullable
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Move Data
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Replace Type Code With Property Flags
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
8. Referential Integrity Refactorings
Add Foreign Key Constraint
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Add Trigger For Calculated Column
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Drop Foreign Key Constraint
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Introduce Cascading Delete
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Introduce Hard Delete
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Introduce Soft Delete
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Introduce Trigger For History
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
9. Architectural Refactorings
Add CRUD Methods
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Add Mirror Table
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Add Read Method
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Encapsulate Table With View
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Introduce Calculation Method
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Introduce Index
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Introduce Read-Only Table
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Migrate Method From Database
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Migrate Method To Database
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Replace Method(s) With View
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Replace View With Method(s)
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Use Official Data Source
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
10. Method Refactorings
10.1 Interface Changing Refactorings
10.1.1 Add Parameter
10.1.2 Parameterize Method
10.1.3 Remove Parameter
10.1.4 Rename Method
10.1.5 Reorder Parameters
10.1.6 Replace Parameter with Explicit Methods
10.2 Internal Refactorings
10.2.1 Consolidate Conditional Expression
10.2.2 Decompose Conditional
10.2.3 Extract Method
10.2.4 Introduce Variable
10.2.5 Remove Control Flag
10.2.6 Remove Middle Man
10.2.7 Rename Parameter
10.2.8 Replace Literal with Table Lookup
10.2.9 Replace Nested Conditional with Guard Clauses
10.2.10 Split Temporary Variable
10.2.11 Substitute Algorithm
11. Transformations
Insert Data
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Introduce New Column
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Introduce New Table
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Introduce View
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
Update Data
Motivation
Potential Tradeoffs
Schema Update Mechanics
Data-Migration Mechanics
Access Program Update Mechanics
The UML Data Modeling Notation
Glossary
References and Recommended Reading
List of Refactorings and Transformations
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset