Refactoring Databases : Evolutionary Database Design

nashley

Developer Community Track
Scheduled Time: 
Monday 19 November 2007, 11:00 to 12:30
Room: 
Southwark Cathedral, The John Trevor Williams Room
Session type: 
tutorial
Intended audience and experience level: 

Developers, DBAs, deployment folks

Prerequisites: 

Understanding of Continuous Integration read this http://martinfowler.com/articles/continuousIntegration.html. Basic agile understanding would be nice to have.

For years the norm for object developers was to work in an evolutionary (iterative and incremental) manner but for database developers to work in a more serial manner. The predominance of evolutionary development methodologies such as Extreme Programming (XP), Feature Driven Development (FDD) it is clear that the two groups need to work in the same manner to be productive as a team.

Nick will present material from the book “Refactoring Databases : Evolutionary Database Design” on how to go about doing evolutionary database development and will talk about the following techniques:

  1. Database refactoring. Evolve an existing database schema a small bit at a time to improve the quality of its design without changing its semantics.

  2. Evolutionary data modeling. Model the data aspects of a system iteratively and incrementally, just like all other aspects of a system, to ensure that the database schema evolves in step with the application code.

  3. Database regression testing. Ensure that the database schema actually works.

  4. Configuration management of database artifacts. Your data models, database tests, test data, and so on are important project artifacts which should be managed just like any other artifact.

  5. Database Schema Deployment. Ensure that the scripts used to build development environments are the exact same used in QA, UAT and production. Ensure deployment to production is not a surprise and not a project in itself.

nashley

One of the leaders of the Jolt award winning dbdeploy project, Nick is an experienced agile consultant specialising in data management issues.