27 04 2010
Agile Database Techniques: Effective Strategies for the Agile Software Developer
Agile development expects mind shift and developers are not the only ones who must be agile. Every chain is as strong as it’s weakest link and same goes also for development teams. Agile Database Techniques: Effective Strategies for the Agile Software Developer by Scott W. Ambler is book that calls also data professionals to be part of agile development.
Often are DBA-s in situation where they are not part of application development and later they have to survive large set of applications that all use databases different way. Of course, only some of these applications are not problematic when looking what database server has to do to serve them. I have seen many applications that rape database servers because developers have no clue what is going on in database (~3K queries to database per web application request – have you seen something like this? I have…)
Agile Database Techniques covers some object and database design technologies and gives suggestions to development teams about topics they need help or assistance by DBA-s. The book is also good reading for DBA-s who usually are not very strong in object technologies. You can take this book as bridge between these two worlds.
I think teams that build object applications that use databases should buy this book and try at least one or two projects out with Ambler’s suggestions.
Table of contents
Foreword by Jon Kern.
Foreword by Douglas K. Barry.
About the Author.
Part One: Setting the Foundation.
Chapter 1: The Agile Data Method.
Chapter 2: From Use Cases to Databases — Real-World UML.
Chapter 3: Data Modeling 101.
Chapter 4: Data Normalization.
Chapter 5: Class Normalization.
Chapter 6: Relational Database Technology, Like It or Not.
Chapter 7: The Object-Relational Impedance Mismatch.
Chapter 8: Legacy Databases — Everything You Need to Know But Are Afraid to Deal With.
Part Two: Evolutionary Database Development.
Chapter 9: Vive L’ Évolution.
Chapter 10: Agile Model-Driven Development (AMDD).
Chapter 11: Test-Driven Development (TDD).
Chapter 12: Database Refactoring.
Chapter 13: Database Encapsulation Strategies.
Chapter 14: Mapping Objects to Relational Databases.
Chapter 15: Performance Tuning.
Chapter 16: Tools for Evolutionary Database Development.
Part Three: Practical Data-Oriented Development Techniques.
Chapter 17: Implementing Concurrency Control.
Chapter 18: Finding Objects in Relational Databases.
Chapter 19: Implementing Referential Integrity and Shared Business Logic.
Chapter 20: Implementing Security Access Control.
Chapter 21: Implementing Reports.
Chapter 22: Realistic XML.
Part Four: Adopting Agile Database Techniques.
Chapter 23: How You Can Become Agile.
Chapter 24: Bringing Agility into Your Organization.
Appendix: Database Refactoring Catalog.
References and Suggested Reading.