Concurrency

Abstract

Most applications that use sophisticated database management systems like Microsoft’s SQL Server are used by more than one person at a time. The concurrency concerns around shared access to simple data files is often the motivating reason developers turn to relational database systems to support their applications. Many, but not all, of the concurrency concerns evaporate when an application relies on a relational database for its data store. The concerns that remain usually involve detecting and controlling when an object state is different in memory than in the database. The recipes in this chapter provide an introduction to solving some of the problems typically faced by developers when it comes to detecting concurrency violations and controlling which copy of the object is ultimately persisted in the database.