You are previewing Building the Agile Database: How to Build a Successful Application Using Agile Without Sacrificing Data Management.
O'Reilly logo
Building the Agile Database: How to Build a Successful Application Using Agile Without Sacrificing Data Management

Book Description

Is fast development the enemy of good development? Not necessarily. Agile development requires that databases are designed and built quickly enough to meet fast-based delivery schedules - but in a way that also delivers maximum business value and reuse. How can these requirements both be satisfied? This book, suitable for practitioners at all levels, will explain how to design and build enterprise-quality high-value databases within the constraints of an Agile project.

Starting with an overview of the business case for good data management practices, the book defines the various stakeholder groups involved in the software development process, explains the economics of software development (including "time to market" vs. "time to money"), and describes an approach to Agile database development based on the five PRISM principles.

This book explains how to work with application developers and other stakeholders, examines critical issues in Agile Development and Data Management, and describes how developers and data professionals can work together to make Agile projects successful while delivering maximum value data to the enterprise.

Building the Agile Database will serve as an excellent reference for application developers, data managers, DBAs, project managers, Scrum Masters and IT managers looking to get more value from their development efforts. Among the topics covered:

  • 1. Why Agile is more than just the latest development fad

  • 2. The critical distinction between the logical and physical views of data

  • 3. The importance of data virtualization, and how to achieve it

  • 4. How to eliminate the "object-relational impedance mismatch"

  • 5. The difference between logical modeling and physical design

  • 6. Why databases are more than "persistence engines"

  • 7. When and how to do logical modeling and physical design

  • 8. Use of the logical data model in model-driven development

  • 9. Refactoring made easier

  • 10. Developing an "Agile Attitude"

Table of Contents

  1. Contents at a Glance
  2. Contents
  3. Acknowledgements
  4. Foreword
  5. Read me first!
    1. Case Study: The Blue Moon Guitar Company
  6. Introduction
  7. CHAPTER 1
  8. Taking the Business View
    1. The Importance of Stakeholders
    2. The Economics of Application Development
    3. The Role of Business Data Management
  9. CHAPTER 2
  10. Agile Explained
    1. The Importance of Agility
    2. Agile Development Explained
    3. Implications of an Agile Approach
    4. Critical Issues in Agile Development
    5. A Building or a Garden?
    6. Agile vs. Software Engineering
  11. CHAPTER 3
  12. Agile Data Management
    1. PRISM: The 5 Principles of Data Management
    2. Agile Data Management
    3. What is a Database?
    4. In Defense of the “Intelligent” Database
  13. CHAPTER 4
  14. Data Management Roles and Responsibilities
    1. The Art of Data Management
    2. The Data Manager Role
    3. The Data Analyst Role
    4. The Database Developer Role
    5. The Database Administrator Role
    6. The Data Steward Role
    7. The Data Development Cycle
    8. Data Managers as Intermediaries
    9. Database Development Tasks
    10. The Evolution of Data Management
  15. CHAPTER 5
  16. Managing the Logical-Physical Divide
    1. The Object-Relational Impedance Mismatch
    2. Sources of Confusion
    3. The Virtual Data Layer
    4. The Virtual Data Layer in Action
  17. CHAPTER 6
  18. Agile Data Design
    1. The Focus of Data Design
    2. The Cost of Losing Focus
    3. How Much Design is “Just Enough”?
    4. The Purpose of Normalization in Logical Design
    5. When to do Data Design
  19. CHAPTER 7
  20. Agile Database Design
    1. The Focus of Database Design
    2. The Physical Design Process
    3. Database Design Deliverables
    4. How Much Should You Implement?
    5. The Purpose of Normalization in Physical Design
    6. When Should You Denormalize?
    7. When Shouldn’t You Denormalize?
    8. Normalization “After the Fact”
    9. When to do Physical Design
    10. Moving From the Logical to the Physical
  21. CHAPTER 8
  22. Agile Modeling and Documentation
    1. What is an “Agile Model”?
    2. Is the Logical Data Model an “Agile Model”?
    3. Is the Physical Database Model an “Agile Model”?
    4. Agile Documentation
  23. CHAPTER 9
  24. Building the Agile Database
    1. Abstraction and Encapsulation
    2. Cohesion and Coupling
    3. Virtualizing the Database
    5. Stored Procedures
    6. Fundamental Stored Procedures
    7. Triggers
    8. Functions
    9. Work Tables and Materialized Views
    10. Application Data Objects
    11. Complex Datatypes
    12. Standards for Database Coding
    13. What Should Go Where?
    14. Testing and Diagnostics
    15. Optimizing Performance
  25. CHAPTER 10
  26. Refactoring Made Easier
    1. Managing Change
    2. Determining Where and How to Change
    3. Refactoring the Logical Model
    4. Refactoring the Physical Design
    5. Refactoring the Database Schema
    6. Refactoring the Virtual Data Layer
    7. Refactoring Data
    8. An Example of Multi-Level Refactoring
  27. CHAPTER 11
  28. Developing an Agile Attitude
    1. The Three Agile Attitudes
    2. Agile in the Organization
  29. CHAPTER 12
  30. Case Study: Sales Option Management Application
    1. Description of the Problem
    2. Pre-Development Activities
    3. Development Activities
    4. Post-Development Activities
  31. Afterword
  32. Notes and Resources
  33. Acronyms and Terms
  34. Index