linkend="glossary-role">roles</glossterm>.
</para>
<para>
For more information, see
<xref linkend="sql-revoke"/>.
</para>
</glossdef>
</glossentry>
<glossentry id="glossary-role">
<glossterm>Role</glossterm>
<glossdef>
<para>
A collection of access privileges to the
<glossterm linkend="glossary-database">instance</glossterm>.
Roles are themselves a privilege that can be granted to other roles.
This is often done for convenience or to ensure completeness
when multiple <glossterm linkend="glossary-user">users</glossterm> need
the same privileges.
</para>
<para>
For more information, see
<xref linkend="sql-createrole"/>.
</para>
</glossdef>
</glossentry>
<glossentry id="glossary-rollback">
<glossterm>Rollback</glossterm>
<glossdef>
<para>
A command to undo all of the operations performed since the beginning
of a <glossterm linkend="glossary-transaction">transaction</glossterm>.
</para>
<para>
For more information, see
<xref linkend="sql-rollback"/>.
</para>
</glossdef>
</glossentry>
<glossentry id="glossary-routine">
<glossterm>Routine</glossterm>
<glossdef>
<para>
A defined set of instructions stored in the database system
that can be invoked for execution.
A routine can be written in a variety of programming
languages. Routines can be
<glossterm linkend="glossary-function">functions</glossterm>
(including set-returning functions and
<glossterm linkend="glossary-trigger">trigger functions</glossterm>),
<glossterm linkend="glossary-aggregate">aggregate functions</glossterm>,
and <glossterm linkend="glossary-procedure">procedures</glossterm>.
</para>
<para>
Many routines are already defined within <productname>PostgreSQL</productname>
itself, but user-defined ones can also be added.
</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>Row</glossterm>
<glosssee otherterm="glossary-tuple" />
</glossentry>
<glossentry id="glossary-savepoint">
<glossterm>Savepoint</glossterm>
<glossdef>
<para>
A special mark in the sequence of steps in a
<glossterm linkend="glossary-transaction">transaction</glossterm>.
Data modifications after this point in time may be reverted
to the time of the savepoint.
</para>
<para>
For more information, see
<xref linkend="sql-savepoint"/>.
</para>
</glossdef>
</glossentry>
<glossentry id="glossary-schema">
<glossterm>Schema</glossterm>
<glossdef>
<para>
A schema is a namespace for
<glossterm linkend="glossary-sql-object">SQL objects</glossterm>,
which all reside in the same
<glossterm linkend="glossary-database">database</glossterm>.
Each SQL object must reside in exactly one schema.
</para>
<para>
All system-defined SQL objects reside in schema <literal>pg_catalog</literal>.
</para>
</glossdef>
<glossdef>
<para>
More generically, the term <firstterm>schema</firstterm> is used to mean
all data descriptions (<glossterm linkend="glossary-table">table</glossterm> definitions,
<glossterm linkend="glossary-constraint">constraints</glossterm>, comments, etc.)
for a given <glossterm linkend="glossary-database">database</glossterm> or
subset thereof.
</para>
<para>
For more information, see
<xref linkend="ddl-schemas"/>.
</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>Segment</glossterm>
<glosssee otherterm="glossary-file-segment" />
</glossentry>
<glossentry id="glossary-select">
<glossterm>Select</glossterm>
<glossdef>
<para>
The <acronym>SQL</acronym> command used to request data from a
<glossterm linkend="glossary-database">database</glossterm>.
Normally, <command>SELECT</command> commands are not expected to modify the
<glossterm linkend="glossary-database">database</glossterm>