<appendix id="glossary">
<title>Glossary</title>
<para>
This is a list of terms and their meaning in the context of
<productname>PostgreSQL</productname> and relational database
systems in general.
</para>
<glosslist>
<glossentry id="glossary-acid">
<glossterm>ACID</glossterm>
<glossdef>
<para>
<glossterm linkend="glossary-atomicity">Atomicity</glossterm>,
<glossterm linkend="glossary-consistency">Consistency</glossterm>,
<glossterm linkend="glossary-isolation">Isolation</glossterm>, and
<glossterm linkend="glossary-durability">Durability</glossterm>.
This set of properties of database transactions is intended to
guarantee validity in concurrent operation and even in event of
errors, power failures, etc.
</para>
</glossdef>
</glossentry>
<glossentry id="glossary-aggregate">
<glossterm>Aggregate function (routine)</glossterm>
<glossdef>
<para>
A <glossterm linkend="glossary-function">function</glossterm> that
combines (<firstterm>aggregates</firstterm>) multiple input values,
for example by counting, averaging or adding,
yielding a single output value.
</para>
<para>
For more information, see
<xref linkend="functions-aggregate"/>.
</para>
<glossseealso otherterm="glossary-window-function" />
</glossdef>
</glossentry>
<glossentry id="glossary-am">
<glossterm>Access Method</glossterm>
<glossdef>
<para>
Interfaces which <productname>PostgreSQL</productname> use in order to
access data in tables and indexes. This abstraction allows for adding
support for new types of data storage.
</para>
<para>
For more information, see <xref linkend="tableam" /> and
<xref linkend="indexam" />.
</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>Analytic function</glossterm>
<glosssee otherterm="glossary-window-function" />
</glossentry>
<glossentry id="glossary-analyze">
<glossterm>Analyze (operation)</glossterm>
<glossdef>
<para>
The act of collecting statistics from data in
<glossterm linkend="glossary-table">tables</glossterm>
and other <glossterm linkend="glossary-relation">relations</glossterm>
to help the <glossterm linkend="glossary-planner">query planner</glossterm>
to make decisions about how to execute
<glossterm linkend="glossary-query">queries</glossterm>.
</para>
<para>
(Don't confuse this term with the <literal>ANALYZE</literal> option
to the <xref linkend="sql-explain"/> command.)
</para>
<para>
For more information, see
<xref linkend="sql-analyze"/>.
</para>
</glossdef>
</glossentry>
<glossentry id="glossary-aio">
<glossterm>Asynchronous <acronym>I/O</acronym></glossterm>
<acronym>AIO</acronym>
<indexterm>
<primary>Asynchronous <acronym>I/O</acronym></primary>
</indexterm>
<glossdef>
<para>
Asynchronous <acronym>I/O</acronym> (<acronym>AIO</acronym>) describes
performing <acronym>I/O</acronym> in a non-blocking way (asynchronously),
in contrast to synchronous <acronym>I/O</acronym>, which blocks for the
entire duration of the <acronym>I/O</acronym>.
</para>
<para>
With <acronym>AIO</acronym>, starting an <acronym>I/O</acronym> operation
is separated from waiting for the result of the operation, allowing
multiple <acronym>I/O</acronym> operations to be initiated concurrently,
as well as performing <acronym>CPU</acronym> heavy operations
concurrently with <acronym>I/O</acronym>. The price for that increased
concurrency is increased complexity.
</para>
<glossseealso otherterm="glossary-io" />
</glossdef>
</glossentry>
<glossentry id="glossary-atomic">
<glossterm>Atomic</glossterm>
<glossdef>
<para>
In reference to a <glossterm linkend="glossary-datum">datum</glossterm>:
the fact that its value cannot be broken down into smaller