Published in

Encyclopedia of Database Systems, p. 640-645, 2018

DOI: 10.1007/978-1-4614-8265-9_722

Encyclopedia of Database Systems, p. 501-506

DOI: 10.1007/978-0-387-39940-9_722

Encyclopedia of Database Systems, p. 1-6

DOI: 10.1007/978-1-4899-7993-3_722-2

Links

Tools

Export citation

Search in Google Scholar

Correctness Criteria Beyond Serializability

Book chapter published in 2009 by Kenneth A. Ross, Richard Snodgrass, Spiros Skiadopoulos, Cristina Sirangelo, Kenichi Wada, Richard T. Snodgrass, Ian H. Witten, M. Tamer Özsu, Chintan Patel, Chunhua Weng, Adam Wright, Amnon Shabo (Shvo), Dan Russler, Roberto A. Rocha, Mohammed J. Zaki and other authors.
This paper was not found in any repository, but could be made available legally by the author.
This paper was not found in any repository, but could be made available legally by the author.

Full text: Unavailable

Green circle
Preprint: archiving allowed
Green circle
Postprint: archiving allowed
Red circle
Published version: archiving forbidden
Data provided by SHERPA/RoMEO

Abstract

A transaction is a logical unit of work that includes one or more database access operations such as insertion, deletion, modification, and retrieval [8]. A schedule (or history) S of n transactions T1,.,Tn is an ordering of the transactions that satisfies the following two conditions: (i) the operations of Ti (i = 1,.,n) in S must occur in the same order in which they appear in Ti, and (ii) operations from Tj (j 6¼ i) may be interleaved with Ti’s operations in S. A schedule S is serial if for every two transactions Ti and Tj that appear in S, either all operations of Ti appear before all operations of Tj, or vice versa. Otherwise, the schedule is called nonserial or concurrent. Non-serial schedules of transactions may lead to concurrency problems such as lost update, dirty read, and unrepeatable read. For instance, the lost update problem occurs whenever two transactions, while attempting to modify a data item, both read the item’s old value before either of them writes the item’s new value [2]. The simplest way for controlling concurrency is to allow only serial schedules. However, with no concurrency, database systems may make poor use of their resources and hence, be inefficient, resulting in smaller transaction execution rate for example. To broaden the class of allowable transaction schedules, serializability has been proposed as the major correctness criterion for concurrency control [7,11]. Serializability ensures that a concurrent schedule of transactions is equivalent to some serial schedule of the same transactions [12]. While serializability has been successfully used in traditional database applications, e.g., airline reservations and banking, it has been proven to be restrictive and hardly applicable in advanced applications such as Computer- Aided Design (CAD), Computer-Aided Manufacturing (CAM), office automation, and multidatabases. These applications introduced new requirements that either prevent the use of serializability (e.g., violation of local autonomy in multidatabases) or make the use of serializability inefficient (e.g., long-running transactions in CAD/CAM applications). These limitations have motivated the introduction of more flexible correctness criteria that go beyond the traditional serializability.