<title>SQLite Is Transactional</title>

<h2>SQLite is Transactional</h2>

<p>A transactional database is one in which all changes and queries
appear to be
Atomic, Consistent, Isolated, and Durable
([http://en.wikipedia.org/wiki/ACID | ACID]).
SQLite implements 
[http://en.wikipedia.org/wiki/Serializability | serializable]
transactions that are atomic, consistent, isolated, and durable,
even if the transaction is interrupted by a program crash, an
operating system crash, or a power failure to the computer.
</p>

<p>
We here restate and amplify the previous sentence for emphasis:
All changes within a single transaction in SQLite either occur
completely or not at all, even if the act of writing the change
out to the disk is interrupted by
<ul>
<li>a program crash,</li>
<li>an operating system crash, or</li>
<li>a power failure.</li>
</ul>
<p>

<p>
The claim of the previous paragraph is extensively checked in the
SQLite regression test suite using a special test harness that 
simulates the effects on a database file of operating system crashes 
and power failures.
</p>

<p>
<a href="atomiccommit.html">Additional informaton</a>
</p>
