Data Patterns

patterns & practices Developer Center

Retired Content

This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

Version 1.0.0

Complete List of patterns & practices

Authors: Philip Teale, Microsoft Prescriptive Architecture Guidance; Christopher Etz, Michael Kiel and Carsten Zeitz, Simple Fact.

Microsoft Corporation

June 2003

Summary: This document provides a brief overview of the Microsoft Data Patterns, which embrace existing patterns work and apply it to data problems. Included in the document are an introduction to patterns and a catalog of 12 architecture, design, and implementation patterns.


Download the .pdf version of this guide from the Download Center.


This document introduces patterns and then presents them in a repository, or catalog, which is organized to help you locate the right combination of patterns that solves your problem. This is the same repository that contains the 32 patterns from Enterprise Solution Patterns Using Microsoft .NET, which were first presented in April 2003. All of the Microsoft patterns follow the same Pattern Frame, as shown in Figure 1. This frame is used throughout this documentation to delineate the problem space and show the relationships between patterns.


Figure 1: The Pattern Frame

The rows of the Pattern Frame represent progressive levels of abstraction, which include architecture, design, and implementation. The columns represent viewpoints, or lenses into the solution, which include database, application, deployment, and infrastructure perspectives. Chapter 3 of the guide groups the patterns into a patterns cluster that focuses on data movement.

Who Should Read This Guide

This guide is written for the following audiences:

  • Database designers, database administrators, data administrators, architects, designers, and developers who are new to patterns

  • Database designers, database administrators, data administrators, architects and designers who are already experienced in using patterns to build data solutions

  • Contents

    Chapter 1: Patterns for Data Solutions

    This chapter introduces the notion of a pattern, explains how a pattern documents simple, proven mechanisms, and shows how collections of patterns provide a common language for developers and architects. To illustrate these concepts, this chapter applies abbreviated versions of actual patterns to real-life development situations.

    Chapter 2: Organizing Patterns

    In recent years, patterns have emerged at different levels of abstraction and across a variety of domains. Chapter 2 explores pattern levels in detail and outlines an organizing frame that helps you find relevant patterns quickly. The chapter then demonstrates how patterns provide a vocabulary to efficiently describe complex solutions without sacrificing detail.

    Chapter 3: Data Movement Patterns

    The data movement patterns cluster describes architecture, design, and implementation patterns related to how to create and manage copies of data so that you can efficiently fulfill your solution requirements. The current set of patterns discusses the topic of data replication as a means of meeting data needs, such as providing local copies of data to distributed or intermittently-connected applications, or for other purposes, such as disaster recovery.

    This chapter includes the following patterns:

  • Move Copy of Data

  • Data Replication

  • Master-Master Replication

  • Master-Subordinate Replication

  • Master-Master Row-Level Synchronization

  • Master-Subordinate Snapshot Replication

  • Capture Transaction Details

  • Master-Subordinate Transactional Incremental Replication

  • Master-Subordinate Cascading Replication

  • Implementing Master-Master Row-Level Synchronization Using SQL Server

  • Implementing Master-Subordinate Snapshot Replication Using SQL Server

  • Implementing Master-Subordinate Transactional Incremental Replication Using SQL Server

  • Appendix: Patterns and Pattlets

    The appendix lists all of the patterns and pattlets that this pattern catalog defines. Pattlets are actual patterns to which this guide refers, but which it does not discuss in detail. The concept of pattlets is discussed in Chapter 2, "Organizing Patterns."


    These data patterns use many data terms, and the meanings of these terms can vary from case to case. The Glossary is designed as a convenient reference to these terms.

    Feedback and Support

    Questions? Comments? Suggestions? For feedback on this guide, please send e-mail to

    The patterns documented here are designed to jump-start the architecture and design of enterprise applications. Patterns are simple mechanisms that are meant to be applied to the problem at hand and are usually combined with other patterns. They are not meant to be plugged into an application. Example code is provided "as is" and is not intended for production use. It is only intended to illustrate the pattern, and therefore does not include extra code, such as exception handling, logging, security, and validation. Although this deliverable has undergone testing and review by industry luminaries, it is not supported like a traditional Microsoft product.


    Many thanks to the following advisors who provided invaluable assistance:

  • Ward Cunningham, Cunningham & Cunningham, Inc.

  • Martin Fowler, ThoughtWorks, Inc.

  • David C. Hay, Essential Strategies, Inc.

  • Ralph Johnson, University of Illinois at Urbana-Champaign

  • Thanks also to the many contributors who assisted us in the production of this guide, in particular:

  • Mohammad Al-Sabt, Microsoft Prescriptive Architecture Guidance

  • Michael Blythe, SQL Server User Experience

  • Matthew Evans, Microsoft Prescriptive Architecture Guidance

  • Mike Ferguson and Colin White, Intelligent Business Strategies, Inc.

  • Susan Filkins, Entirenet

  • Sanjeev Garg, Satyam Computer Services

  • Steve Kirk, MSDN

  • Prem Mehra; Customer Advisory Team, SQL Server Development

  • Oliver Sims, Sims Associates

  • Finally, thanks to the companies that agreed to participate in our user experience test:

  • Subrata Biswas

  • Mark Carpenter and Vic Martindale

  • Brian Monahan and Tony Williamson, Standard Life Assurance Company

  • Helen Townsend, Reuters

  • Dave West, Barclays Bank

  • patterns & practices Developer Center

    Retired Content

    This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.