Book description
Describes Agile Modeling Driven Design (AMDD) and Test-Driven Design (TDD) approaches, database refactoring, database encapsulation strategies, and tools that support evolutionary techniques
Agile software developers often use object and relational database (RDB) technology together and as a result must overcome the impedance mismatch
The author covers techniques for mapping objects to RDBs and for implementing concurrency control, referential integrity, shared business logic, security access control, reports, and XML
An agile foundation describes fundamental skills that all agile software developers require, particularly Agile DBAs
Includes object modeling, UML data modeling, data normalization, class normalization, and how to deal with legacy databases
Scott W. Ambler is author of Agile Modeling (0471202827), a contributing editor with Software Development (
www.sdmagazine.com
), and a featured speaker at software conferences worldwide
Table of contents
- Copyright
- Foreword by jon Kern
- Foreword by Douglas K. Barry
- Acknowledgments
- Introduction
- About the Author
-
I. Setting the Foundation
- 1. The Agile Data Method
-
2. From Use Cases to Databases — Real-World UML
- 2.1. An Overview of Object-Oriented Concepts
- 2.2. An Introduction to the Unified Modeling Language (UML)
-
2.3. A UML Profile for Data Modeling
- 2.3.1. Indicating the Type of Model or Storage Mechanism
- 2.3.2. Modeling Tables, Entities, and Views
- 2.3.3. Modeling Relationships
- 2.3.4. Modeling Data Attributes and Columns
- 2.3.5. Modeling Keys
- 2.3.6. Modeling Constraints and Triggers
- 2.3.7. Modeling Stored Procedures
- 2.3.8. Modeling Sections within a Database
- 2.3.9. Modeling Everything Else
- 2.4. Summary
- 3. Data Modeling 101
- 4. Data Normalization
- 5. Class Normalization
- 6. Relational Database Technology, Like It or Not
- 7. The Object-Relational Impedance Mismatch
-
8. Legacy Databases — Everything You Need to Know But Are Afraid to Deal With
- 8.1. The Role of the Agile DBA
- 8.2. Sources of Legacy Data
- 8.3. Understanding Common Problems with Legacy Data
-
8.4. Strategies for Working with Legacy Data
- 8.4.1. Try to Avoid Working with Legacy Data
- 8.4.2. Develop a Data-Error-Handling Strategy
- 8.4.3. Work Iteratively and Incrementally
- 8.4.4. Prefer Read-Only Legacy Data Access
- 8.4.5. Encapsulate Legacy Data Access
- 8.4.6. Introduce Data Adapters for Simple Legacy Access
- 8.4.7. Introduce a Staging Database for Complex Data Access
- 8.4.8. Adopt Existing Tools
- 8.5. Data Integration Technologies
- 8.6. Summary
-
II. Evolutionary Database Development
- 9. Vive L' Évolution
- 10. Agile Model-Driven Development (AMDD)
- 11. Test-Driven Development (TDD)
-
12. Database Refactoring
- 12.1. Refactoring
- 12.2. Database Refactoring
- 12.3. Why Database Refactoring Is Hard
-
12.4. How to Refactor Your Database
-
12.4.1. Step 1: Start in Your Development Sandbox
- 12.4.1.1. Verify That a Database Refactoring Is Required
- 12.4.1.2. Choose the Most Appropriate Database Refactoring
- 12.4.1.3. Determine Data Cleansing Needs
- 12.4.1.4. Write Your Unit Tests
- 12.4.1.5. Deprecate the Original Schema (Structural Refactorings Only)
- 12.4.1.6. Implement the Change
- 12.4.1.7. Update Your Database Management Script(s)
- 12.4.1.8. Run Your Regression Tests
- 12.4.1.9. Document the Refactoring
- 12.4.1.10. Version Control Your Work
- 12.4.2. Step 2: Implement the Code in Your Integration Sandbox(es)
- 12.4.3. Step 3: Install the Code in Production
-
12.4.1. Step 1: Start in Your Development Sandbox
- 12.5. Common Database Refactoring Smells
- 12.6. Adopting Database Refactoring within Your Organization
- 12.7. Database Refactoring Best Practices
- 12.8. Database Refactoring in the Real World
- 12.9. Summary
- 13. Database Encapsulation Strategies
-
14. Mapping Objects to Relational Databases
- 14.1. The Role of the Agile DBA
- 14.2. Basic Mapping Concepts
- 14.3. Mapping Inheritance Structures
- 14.4. Mapping Object Relationships
- 14.5. Mapping Class Scope Properties
- 14.6. Why Data Schemas Shouldn't Drive Object Schemas
- 14.7. Implementation Impact on Your Objects
- 14.8. Implications for the Model Driven Architecture (MDA)
- 14.9. Patternizing the Mappings
- 14.10. Summary
-
15. Performance Tuning
- 15.1. An Overview of Performance Tuning
- 15.2. The Role of the Agile DBA
- 15.3. Step One: Identify a Performance Problem
- 15.4. Step Two: Profile the Problem
- 15.5. Step Three: Tune the Problem Away
- 15.6. Summary
- 16. Tools for Evolutionary Database Development
-
III. Practical Data-Oriented Development Techniques
- 17. Implementing Concurrency Control
- 18. Finding Objects in Relational Databases
-
19. Implementing Referential Integrity and Shared Business Logic
- 19.1. The Role of the Agile DBA
- 19.2. How Object Technology Complicates Referential Integrity
- 19.3. Where Should You Implement Referential Integrity?
- 19.4. Summary
- 20. Implementing Security Access Control
- 21. Implementing Reports
-
22. Realistic XML
- 22.1. The Role of the Agile DBA
- 22.2. An XML Primer
- 22.3. Practical Applications for XML
- 22.4. Vocabularies
- 22.5. How to Model XML
- 22.6. XML Mapping and Data Binding
- 22.7. How to Persist XML in Relational Databases
- 22.8. How to Persist XML in XML Databases
- 22.9. XML Development Strategies
- 22.10. Summary
- IV. Adopting Agile Database Techniques
Product information
- Title: Agile Database Techniques: Effective Strategies for the Agile Software Developer
- Author(s):
- Release date: October 2003
- Publisher(s): Wiley
- ISBN: 9780471202837
You might also like
book
Improving Business Process Performance
With an abundance of improvement methodologies and frameworks quickly gaining momentum, many question where to begin. …
book
Project Managing E-Learning
Launching and managing a successful e-learning project is much easier when you use the proven steps …
book
Agile Software Requirements: Lean Requirements Practices for Teams, Programs, and the Enterprise
This is the Safari online edition of the printed book. “We need better approaches to understanding …
book
Writing Effective Business Rules
Writing Effective Business Rules moves beyond the fundamental dilemma of system design: defining business rules either …