Refactoring Databases: Evolutionary Database Design (paperback)

Paperback (Print)
Buy New
Buy New from BN.com
$34.99
(Save 30%)
Used and New from Other Sellers
Used and New from Other Sellers
from $27.80
Usually ships in 1-2 business days
(Save 44%)
Other sellers (Paperback)
  • All (15) from $27.80   
  • New (9) from $38.46   
  • Used (6) from $27.80   

Overview

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.

Read More Show Less

Product Details

  • ISBN-13: 9780321774514
  • Publisher: Addison-Wesley
  • Publication date: 5/4/2011
  • Series: Addison-Wesley Signature Series (Fowler) Series
  • Edition description: New Edition
  • Pages: 384
  • Sales rank: 912,850
  • Product dimensions: 6.90 (w) x 9.20 (h) x 0.80 (d)

Meet the Author

Scott W. Ambler is a software process improvement (SPI) consultant living just north of Toronto. He is founder and practice leader of the Agile Modeling (AM) (www.agilemodeling.com), Agile Data (AD) (www.agiledata.org), Enterprise Unified Process (EUP) (www.enterpriseunifiedprocess.com), and Agile Unified Process (AUP) (www.ambysoft.com/unifiedprocess) methodologies. Scott is the (co-)author of several books, including Agile Modeling (John Wiley & Sons, 2002), Agile Database Techniques (John Wiley & Sons, 2003), The Object Primer, Third Edition (Cambridge University Press, 2004), The Enterprise Unified Process (Prentice Hall, 2005), and The Elements of UML 2.0 Style (Cambridge University Press, 2005). Scott is a contributing editor with Software Development magazine (www.sdmagazine.com) and has spoken and keynoted at a wide variety of international conferences, including Software Development, UML World, Object Expo, Java Expo, and Application Development. Scott graduated from the University of Toronto with a Master of Information Science. In his spare time Scott studies the Goju Ryu and Kobudo styles of karate.

Pramod J. Sadalage is a consultant for ThoughtWorks, an enterprise application development and integration company. He first pioneered the practices and processes of evolutionary database design and database refactoring in 1999 while working on a large J2EE application using the Extreme Programming (XP) methodology. Since then, Pramod has applied the practices and processes to many projects. Pramod writes and speaks about database administration on evolutionary projects, the adoption of evolutionary processes with regard to databases, and evolutionary practices’ impact upon database administration, in order to make it easy for everyone to use evolutionary design in regards to databases. When he is not working, you can find him spending time with his wife and daughter and trying to improve his running.

Read More Show Less

Table of Contents

About the Authors xv

Forewords xvii

Preface xxi

Acknowledgments xxvii

Chapter 1: Evolutionary Database Development 1

Chapter 2: Database Refactoring 13

Chapter 3: The Process of Database Refactoring 29

Chapter 4: Deploying into Production 49

Chapter 5: Database Refactoring Strategies 59

Chapter 6: Structural Refactorings 69

Chapter 7: Data Quality Refactorings 151

Chapter 8: Referential Integrity Refactorings 203

Chapter 9: Architectural Refactorings 231

Chapter 10: Method Refactorings 277

Chapter 11: Transformations 295

Appendix: The UML Data Modeling Notation 315

Glossary 321

References and Recommended Reading 327

Index 331

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star

(0)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

 
Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously
Sort by: Showing all of 2 Customer Reviews
  • Anonymous

    Posted May 8, 2006

    Excellent refactoring reference and eye-opening book

    This is an excellent book that, in my opinion, serves two purposes. First, it is a compendium of well thought-out ways to evolve a database design. Each refactoring includes descriptions of why you might make this change, tradeoffs to consider before making it, how to update the schema, how to migrate the data, and how applications that access the data will need to change. Some of the refactorings are simple ones that even the most change-resistant DBAs will have used in the past (¿Add index¿). Most others (such as ¿Merge tables¿ or ¿Replace LOB with Table¿) are ones many conventional thinking DBAs avoid, even to the detriment of the applications their databases support. This brings me to the second purpose of this book. Many DBAs view their jobs as protectors of the data. While that is admirable, they sometimes forget that they are part of a software development team whose job is to provide value to the organization through the development of new (and enhancement of existing) applications. One of the best DBAs I ever worked with viewed himself as a ¿Data Valet.¿ He said his job was to make sure the data was presented to applications when and where they wanted and to protect the doors from getting dinged while under his care. Through its first five chapters and then the refactorings that follow, this book will help DBAs expand their view of their role in the organization from one of simply protecting data to one of enhancing the value of data to the organization. This book is one that you¿ll keep on your reference shelf for many years to come. Highly recommended.

    Was this review helpful? Yes  No   Report this review
  • Anonymous

    Posted April 1, 2006

    a different mindset for maintaining a database?

    Ambler and Sadalage describe a potentially very useful idea. That you can migrate the idea of code refactoring to databases. This appears to be a relatively new activity. Due in no small part to the database developer community having been separate from programmers using general purpose languages like C++ or Java. If you are in a large company with both types of people, you have probably noticed that the skill sets and interactions between them can be and indeed often are limited. The authors quite reasonably suggest that this caused database developers to miss out on various changes in the programming field since the 90s. Notably in the rise of object oriented programming. Rather different from the dominant SQL relational approaches. The OO mindset in turn led to the rise of code refactoring. In response, this book suggests ways that databases might be refactored. The pragmatic aim is to easily accomodate changing user requirements, by being able to perform relatively small, evolutionary changes. Readers should be warned that applying the lessons of this book may be harder than standard code refactoring. A database might be tightly coupled, both internally and to numerous downstream applications. Nonetheless, many possible refactorings are suggested. Each being easy to understand and perhaps even to implement, in your database. The authors have also tried to suggest refactorings that can be applied across any specific SQL database. Of course, different database vendors means different optimisations, usually for speed of handling queries. So possibly the book's refactorings are best suited for handling changing requirements and code maintenance. But for raw performance improvements, you may have to consult specific texts for your database.

    Was this review helpful? Yes  No   Report this review
Sort by: Showing all of 2 Customer Reviews

If you find inappropriate content, please report it to Barnes & Noble
Why is this product inappropriate?
Comments (optional)