Chapter 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
Chapter 2:Database Refactoring
2.1 Code Refactoring
2.2 Database Refactoring
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
Chapter 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.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
Chapter 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
Chapter 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 68 Online Resources
Chapter 6:Structural Refactorings
Common Issues When Implementing Structural Refactorings
Drop Column
Drop Table
Drop View
Introduce Calculated Column
Introduce Surrogate Key
Merge Columns
Merge Tables
Move Column
Rename Column
Rename Table
Rename View
Replace LOB With Table
Replace Column
Replace One-To-Many With Associative Table
Replace Surrogate Key With Natural Key
Split Column
Split Table
Chapter 7:Data Quality Refactorings
Common Issues When Implementing Data Quality Refactorings
Add Lookup Table
Apply Standard Codes
Apply Standard Type
Consolidate Key Strategy
Drop Column Constraint
Drop Default Value
Drop Non-Nullable
Introduce Column Constraint
Introduce Common Format
Introduce Default Value
Make Column Non-Nullable
Move Data
Replace Type Code With Property Flags
Chapter 8:Referential Integrity Refactorings
Add Foreign Key Constraint
Add Trigger For Calculated Column
Drop Foreign Key Constraint
Introduce Cascading Delete
Introduce Hard Delete
Introduce Soft Delete
Introduce Trigger For History
Chapter 9:Architectural Refactorings
Add CRUD Methods
Add Mirror Table
Add Read Method
Encapsulate Table With View
Introduce Calculation Method
Introduce Index
Introduce Read-Only Table
Migrate Method From Database
Migrate Method To Database
Replace Method(s) With View
Replace View With Method(s)
Use Official Data Source
Chapter 10:Method Refactorings
10.1 Interface Changing Refactorings
10.2 Internal Refactorings
Chapter 11:Transformations
Insert Data
Introduce New Column
Introduce New Table
Introduce View
Update Data
Appendix:The UML Data Modeling Notation
Glossary
References and Recommended Reading
Index