<p>There is a <a href="http://alexandria.tue.nl/extra1/wskrap/public_html/200218.pdf" rel="nofollow">paper</a> by Van Beek called <em>An Algebraic Approach to Transactional Processes</em> which describes adding transactions to process algebra:</p>

<pre><code>(a :~ 0 . a:~ a + 2) II (a:~ 1 a:~ a X 2) ((a :~ 0 . a:~ a + 2)) II ((a:~ 1 a:~ a X 2))
</code></pre>

<p>This paper even delves into isolation levels. </p>

<p>The author describes how in Communicating Sequential Processes (CSP), if you have a write blocked on a read, you can get into a deadlock scenario. </p>

<p>The author references another paper <em>J.A. Bergstra, A. Ponse, and J.J. van Warne. Process algebra with backtracking</em> which allows for rollback of a failed CSP operation.  </p>

<p>There is discussion on the nature of transactions in <em>K.P. Eswaran, J .N. Gray, R.A. Lorie, and 1.1. Traiger. On the notions of consistency and  predicate locks in a data base system. Communications of the ACM, 19(11)</em></p>

<p>The properties of transactions are described in <em>] J. Gray and A. Reuter. Transaction Processing: Concepts and Techniques.</em></p>

<p>The acid properties of transactions are described in <em>J. Gray. The transaction concept: Virtues and limitations</em> and in <em>T. Haerder and A. Reuter. Principles of transaction-oriented database recovery</em></p>

CC BY-SA 3.0
2013-11-28T22:28:26.467Z
2013-11-28T22:28:26.467Z
hawkeye
<p>There appears to be this <a href="http://en.wikipedia.org/wiki/Actor_model_and_process_calculi" rel="nofollow">beautiful algebra</a> to help you think through the implications of Communicating Sequential Processes by Hoare. </p>

<p>What I'm wondering, is there an equivalent algebra that helps you think through ACID transactions on a database, where one suceeds and another rolls back?</p>

<algebra><process-algebra>
Is there a 'process algebra' to describe ACID transactions on a database?
hawkeye
# Is there a 'process algebra' to describe ACID transactions on a database?

(Asked by: username_0 on 2013-11-25)

There appears to be this [beautiful algebra](http://en.wikipedia.org/wiki/Actor_model_and_process_calculi) to help you think through the implications of Communicating Sequential Processes by Hoare.

What I'm wondering, is there an equivalent algebra that helps you think through ACID transactions on a database, where one suceeds and another rolls back?

**Tags:** algebra, process-algebra

---

## 1 answers

### Answer by username_0 on 2013-11-28. Score: 1 | Accepted answer

There is a paper by Van Beek called An Algebraic Approach to Transactional Processes which describes adding transactions to process algebra:
(a :~ 0 . a:~ a + 2) II (a:~ 1 a:~ a X 2) ((a :~ 0 . a:~ a + 2)) II ((a:~ 1 a:~ a X 2))

This paper even delves into isolation levels. 
The author describes how in Communicating Sequential Processes (CSP), if you have a write blocked on a read, you can get into a deadlock scenario. 
The author references another paper J.A. Bergstra, A. Ponse, and J.J. van Warne. Process algebra with backtracking which allows for rollback of a failed CSP operation.  
There is discussion on the nature of transactions in K.P. Eswaran, J .N. Gray, R.A. Lorie, and 1.1. Traiger. On the notions of consistency and  predicate locks in a data base system. Communications of the ACM, 19(11)
The properties of transactions are described in ] J. Gray and A. Reuter. Transaction Processing: Concepts and Techniques.
The acid properties of transactions are described in J. Gray. The transaction concept: Virtues and limitations and in T. Haerder and A. Reuter. Principles of transaction-oriented database recovery


---

