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


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.