Concurrency is the ability of a database to allow multiple users to affect multiple transactions. This is one of the main properties that separates a database from other forms of data storage like spreadsheets.
The ability to offer concurrency is unique to databases. Spreadsheets or other flat file means of storage are often compared to databases, but they differ in this one important regard. Spreadsheets cannot offer several users the ability to view and work on the different data in the same file, because once the first user opens the file it is locked to other users. Other users can read the file, but may not edit data.
The problems caused by concurrency are even more important than the ability to support concurrent transactions. For example, when one user is changing data but has not yet saved (committed) that data, then the database should not allow other users who query the same data to view the changed, unsaved data. Instead the user should only view the original data.
Almost all databases deal with concurrency the same way, although the terminology may differ. The general principle is that changed but unsaved data is held in some sort of temporary log or file. Once it is saved, it is then written to the database’s physical storage in place of the original data. As long as the user performing the change has not saved the data, only he should be able to view the data he is changing. All other users querying for the same data should view the data that existed prior to the change. Once the user saves the data, new queries should reveal the new value of the data.
This definition was written in the context of Databases