Welcome to Debtech International


Onsite Seminar

Agile Data Modeling


Agile databases are iterative, collaborative and evolutionary. These are natural and inherent characteristics of data modeling. Data models need to be created quickly enough to satisfy the rapid-paced delivery schedule of the business and to conform the Agile principles. Conversely, databases must be designed and built in a way that delivers maximum business value. Data models should also enable data reuse. Stovepiped databases will interfere with long term business agility. Such parochial databases interfere with business growth and agility. A poor data model that is delivered fast benefits no one. Redundant data bases pose similar problems. The class will teach what a data model is, what a good data model is, and how you can use agile methods to transition rapidly from model to database.

How do you satisfy all of these requirements? To produce a good data model requires collaboration among the data modeler, the subject matter experts, the developers and the database administrator. The process to do this must be enforced iteratively. Instead of delivering a “big bang” data model, the model can evolve. To achieve this, a data model is divided into sensible pieces that can be delivered incrementally. This course, applicable to participants at all levels, will explain how to create and build high-quality, high-value databases within an agile timeframe and context. It will explain what a data model is, what its main components are, how to produce a good one, and how to do so with maximum agility. It provides criteria for determining when it is best to go ahead and build the data base and when it is better to do further data model validation. It will explain how and why you can work with application developers and other stakeholders, examine critical issues in agile development and data management, and describe how developers and data professionals can work together to make agile projects successful while delivering maximum-benefit data to the business

Who Should Attend
Business and Systems Managers, Business and Systems Users, Business Systems Analysts,  Project Managers, Project Team Members, Data/Database Administrators. 

Objectives
Upon completion of this course attendees will produce models that are:

  • Independent of implementation and organizational structure
  • Accurate representation of the business
  • Stable
  • Simple (because they use refinement)
  • Appropriately scoped
  • Based on sound theoretical principles
  • Easy to understand.

This is a pragmatic workshop. There are many exercises and one continuous case study. This course offers comprehensive coverage of mainstream data modeling concepts. You learn a rigorous method for defining data. You also learn how to gather the data, define and analyze business rules, perform normalization, and use the results to create a stable model of the data within a business area You learn state of the art refinement techniques like subtyping and recursive relationships. Above all, you learn how to do data modeling rapidly.
A practical case study is used throughout the workshop.  The case study provides experience with data identification, normalization, detailed data identification and model verification.

Prerequisite
This class is intended for students who have no knowledge of data modeling.

Course Outline

Introduction to Data Modeling

  • What is data modeling?
  • What is agile development?
  • The benefits of data modeling
  • The benefits of agile development
  • The uses of a data model
  • Overall development framework
    • Stages of development
    • The kinds of projects
  • Making data models iterative, collaborative, evolutionary
  • Methods of model development: top-down, bottom-up, middle out
  • Types of models
    • Data models
    • Process models
    • Model interaction
  • The levels of models: conceptual, logical, physical
  • Characteristics of good models

Overview of the Agile Data Modeling Process

  • What is Agile?
  • Why Agile?
  • Main resources of Agile: people, delivery, involvement, adaptation
  • Principles of Agile development: transparency, inspection, adaption
  • The stages or steps of Agile development
  • The importance of early payback

Data Modeling Basics

  • The data model objects
    • Entities, attributes, relationships
    • Multiple relationships
    • One-to-one relationships
    • Recursive relationships
    • Generalization by subtyping
  • Criteria for a good conceptual data model

Conceptual Data Modeling

  • Introduction to high level or conceptual data modeling
  • Brainstorming business rules, entities and relationships
  • Identifying processes or user stories
  • Rules for the High Level Data Model
  • Explanation of major objects
  • Entities, Attributes, Relationships
  • Business rules
  • Many-to-many and recursive relationships
  • Purpose of conceptual model: Scope, management review, top-down framework
  • The steps for creating:
    • Finding primary entities
    • Give identifiers to entities
    • Assign major attributes
    • Defining relationships
    • Validating entities
    • Identifying keys
    • Defining metadata
  • Using data model patterns
  • Partitioning and prioritizing the data model for Agile based on user stories
  • EXERCISE:  Conceptual data modeling

Metadata

  • The importance of metadata
  • Definition of metadata
  • Criteria for good  metadata

Detailed Logical Data Modeling

  • Model expansion
  • Detailed modeling constructs
  • Methods of Model Expansion
  • Types of Data
  • Types of Keys
  • Types of Entities
  • EXERCISE:  Model expansion

Normalization

  • What normalization is
  • What normalization is not
  • Rules and steps of normalization
  • Practical tips for normalization
  • Quick normal form
  • EXERCISE: Mini-exercise
  • EXERCISE: Case study

Views Analysis

  • Definition of a data view
  • The importance of model interaction
  • Sources of user stories
  • Importance of user stories
  • Results of user story analysis
  • Using data model patterns to validate
  • Building the database
  • Other validations and cross-checks
  • Refactoring the database
  • EXERCISE:  Agile model interaction

Data Model Refinement

  • Abstraction:  generalization and aggregation
  • Subtyping, in more detail
  • Aggregation
  • Bill of materials structures or recursion
  • Derived data
  • Modeling time
  • Change data
  • Modeling goals
  • Final model stabilization
  • Further refactoring
  • EXERCISE: Model refinement in case study

Preparing the Physical Model

  • When is Agile development best used
  • When should Agile development NOT be used
  • Model review
  • Review participants
  • Goals of the review
  • Introduction to design and implementation
  • Steps of design
  • Implementation changes to the data model
  • Safe data design trade-offs
  • Aggressive data design trade-offs
  • Technology trade-offs

Conclusion

  • Success factors in implementing data modeling
  • Success factor in implementing Agile
  • General Review

Duration
2 days

Course Format
Lecture, group discussion and exercises 

Instructor
Tom Haughey

To request a quote for this in-house seminar
Please call (561) 218-4752 or email info@debtechint.com

Return to Onsite Seminars Table of Contents