重構(gòu)已經(jīng)在眾多領(lǐng)域的開發(fā)項目中證明了其自身的價值――幫助軟件專業(yè)人士改善系統(tǒng)的設(shè)計、可維護(hù)性、可擴(kuò)展性和性能。如今,世界一流的敏捷方法理論家Scott W. Ambler和著名咨詢顧問Pramod J. Sadalage首次披露了為數(shù)據(jù)庫系統(tǒng)專門設(shè)計的強(qiáng)大的重構(gòu)技術(shù)。.Ambler和Sadalage展示了如何在不改變語義的情況下,對表結(jié)構(gòu)、數(shù)據(jù)、存儲過程及觸發(fā)器等略作改動,就可以給幾乎任何數(shù)據(jù)庫設(shè)計帶來實質(zhì)上的飛躍。讀者將學(xué)會如何讓數(shù)據(jù)庫模式與源代碼同步漸進(jìn)――從而依靠迭代的敏捷方法在項目中發(fā)揮更多的作用。這是一本內(nèi)容全面的參考、指南書,全面介紹了數(shù)據(jù)庫重構(gòu)涉及的每個基本觀念,可以幫助讀者克服重構(gòu)數(shù)據(jù)庫所遇到的實際困難。本書作者運(yùn)用完整的實例,帶領(lǐng)讀者學(xué)習(xí)從重構(gòu)簡單的孤立數(shù)據(jù)庫應(yīng)用程序到重構(gòu)復(fù)雜的多應(yīng)用程序環(huán)境的全過程。讀者將掌握與重構(gòu)數(shù)據(jù)庫模式有關(guān)的全部任務(wù),找到最佳的方法,將重構(gòu)的結(jié)果布置到哪怕是最復(fù)雜的產(chǎn)品環(huán)境中。..本書第二部分系統(tǒng)講述了數(shù)據(jù)庫重構(gòu)的五大主要類別。讀者將學(xué)會如何運(yùn)用重構(gòu)改善數(shù)據(jù)庫結(jié)構(gòu)、數(shù)據(jù)質(zhì)量和參照完整性,如何同時對結(jié)構(gòu)和方法進(jìn)行重構(gòu)。本書提供了用Oracle和Java建立的多種實例,可以方便地轉(zhuǎn)換成C#、C++、VB.NET等其它語言或DB2、SQL Server、MySQL、Sybase等其他數(shù)據(jù)庫。本書適合數(shù)據(jù)庫設(shè)計、開發(fā)、維護(hù)人員及數(shù)據(jù)庫技術(shù)愛好者。...
作者簡介
本書提供作譯者介紹Scott W. Ambler,世界一流的軟件過程改進(jìn)咨詢顧問,開創(chuàng)了敏捷建模、敏捷數(shù)據(jù)、企業(yè)統(tǒng)一過程(Enterprise UP)以及敏捷統(tǒng)一過程方法論。曾在軟件開發(fā)、JavaOne、OOPSLA、DAMA等會議上做基調(diào)發(fā)言和演講。獨(dú)立撰寫和與人合著有Agile Modeling、Agile Database Techniques、The Object Primer(Third Edition)、Elements of UML 2.0 Style及The Enterprise Unified Process。.Pramod J. Sadalage,ThoughtWorks公司咨詢顧問,在1999年在使用極限編程方法工作在一大型J2EE應(yīng)用程序上的...
圖書目錄
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