I made changes on top of 0001-add-glossary-page.patch which was supplied
by C. Huinker. This affects not only terms proposed by me but also his
original terms. If my changes are not obvious, please let me know and I
will describe my motivation.
Please note especially lines marked with question marks.
It will be helpful for diff-ing to restrict the length of lines in the
SGML files to 71 characters (as usual).
J. Purtz
diff --git a/doc/src/sgml/glossary.sgml b/doc/src/sgml/glossary.sgml
index 851e9debe6..52169b86a2 100644
--- a/doc/src/sgml/glossary.sgml
+++ b/doc/src/sgml/glossary.sgml
@@ -1,7 +1,7 @@
<appendix id="glossary">
<title>Glossary</title>
<para>
- This is a list of terms and their in the context of <productname>PostgreSQL</productname> and <glossterm>Database</glossterm>s in general.
+ This is a list of terms and their meaning in the context of <productname>PostgreSQL</productname> and <glossterm>Database</glossterm>s in general.
</para>
<glosslist>
<glossentry id="glossary-aggregate">
@@ -44,7 +44,7 @@
<glossterm>Atomic</glossterm>
<glossdef>
<para>
- In reference to the value of an <glossterm>Attribute</glossterm> or <glossterm>Datum</glossterm>: cannot be broken up into smaller components.
+ In reference to the value of an <glossterm>Attribute</glossterm> or <glossterm>Datum</glossterm>: cannot be broken down into smaller components.
</para>
<para>
In reference to an operation: An event that cannot be completed in part: it must either entirely succeed or entirely fail. A series of <acronym>SQL</acronym> statements can be combined into a <glossterm>Transaction</glossterm>, and that <glossterm>transaction</glossterm> is said to be <glossterm>Atomic</glossterm>.
@@ -56,7 +56,7 @@
<glossterm>Attribute</glossterm>
<glossdef>
<para>
- A typed data element found within a <glossterm>Tuple</glossterm> or <glossterm>Relation</glossterm> or <glossterm>Table</glossterm>.
+ An element with a certain name and data type found within a <glossterm>Tuple</glossterm> or <glossterm>Table</glossterm>.
</para>
</glossdef>
</glossentry>
@@ -164,12 +164,30 @@ any <glossterm>Attribute</glossterm> in the <glossterm>Relation</glossterm>, but
</glossdef>
</glossentry>
+ <glossentry id="glossary-checkpoint">
+ <glossterm>Checkpoint</glossterm>
+ <glossdef>
+ <para>
+ A <link linkend="sql-checkpoint">
+ Checkpoint</link>
+ is a point in time when all older dirty
+ pages of the <glossterm>Shared Memory</glossterm>,
+ all older <glossterm>WAL records</glossterm>, and a
+ special <glossterm>Checkpoint record</glossterm>
+ have been written and flushed to disk.
+ </para>
+ </glossdef>
+ </glossentry>
+
<glossentry id="glossary-cluster">
<glossterm>Cluster</glossterm>
<glossdef>
<para>
A group of <glossterm>Database</glossterm>s plus their <glossterm>Global SQL Objects</glossterm>. The <glossterm>Cluster</glossterm> is managed by exactly one <glossterm>Instance</glossterm>. A newly created <glossterm>Cluster</glossterm> will have three <glossterm>Databases</glossterm> created automatically. They are <literal>template0</literal>, <literal>template1</literal>, and <literal>postgres</literal>. It is expected that an application will create one or more additional <glossterm>Databases</glossterm> aside from these three.
</para>
+ <para>
+ Don't confuse the <productname>PostgreSQL</productname> specific term <glossterm>Cluster</glossterm> with the SQL command <literal>Cluster</literal>.
+ </para>
</glossdef>
</glossentry>
@@ -198,7 +216,7 @@ any <glossterm>Attribute</glossterm> in the <glossterm>Relation</glossterm>, but
<glossterm>Concurrency</glossterm>
<glossdef>
<para>
- The concept that multiple independent operations can be happening within the <glossterm>Database</glossterm> at the same time.
+ The concept that multiple independent operations happen within the <glossterm>Database</glossterm> at the same time.
</para>
</glossdef>
</glossentry>
@@ -216,7 +234,7 @@ any <glossterm>Attribute</glossterm> in the <glossterm>Relation</glossterm>, but
<glossterm>Constraint</glossterm>
<glossdef>
<para>
- A method of restricting the values of data allowed within a <glossterm>Table</glossterm>.
+ A concept of restricting the values of data allowed within a <glossterm>Table</glossterm>.
</para>
<para>
For more information, see <link linkend="ddl-constraints">Constraints</link>.
@@ -238,7 +256,7 @@ any <glossterm>Attribute</glossterm> in the <glossterm>Relation</glossterm>, but
<glossdef>
<para>
The base directory on the filesystem of a <glossterm>Server</glossterm> that contains all data
-files and subdirectories associated with a <glossterm>Cluster</glossterm>. The name for this directory in configuration files is <productname>PGDATA</productname>.
+ files and subdirectories associated with a <glossterm>Cluster</glossterm> with the exception of tablespaces. The environment variable <literal>PGDATA</literal> often - but not always - referes to the <glossterm>Data Directory</glossterm>.
</para>
<para>
For more information, see <link linkend="storage-file-layout">Database Physical Storage: Database File Layout</link>.
@@ -250,7 +268,7 @@ files and subdirectories associated with a <glossterm>Cluster</glossterm>. The n
<glossterm>Database</glossterm>
<glossdef>
<para>
- A named collection of <glossterm>SQL Objects</glossterm>.
+ A named collection of <glossterm>SQL Objects</glossterm>.
</para>
<para>
For more information, see <link linkend="manage-ag-overview">Managing Databases: Overview</link>.
@@ -292,14 +310,13 @@ files and subdirectories associated with a <glossterm>Cluster</glossterm>. The n
<glossterm>File Segment</glossterm>
<glossdef>
<para>
- If a <glossterm>Database</glossterm> object grows in size past a designated limit, it may be
-split into multiple physical files. These files are called <glossterm>File Segments</glossterm>.
+ If a heap or index file grows in size over 1 GB, it will be split into multiple physical files. These files are called <glossterm>File Segments</glossterm>.
</para>
<para>
- (Don't confuse this term with the similar term <glossterm>WAL Segment</glossterm>).
+ For more information, see <link linkend="storage-file-layout">Database Physical Storage: Database File Layout</link>.
</para>
<para>
- For more information, see <link linkend="storage-file-layout">Database Physical Storage: Database File Layout</link>.
+ (Don't confuse this term with the similar term <glossterm>WAL Segment</glossterm>).
</para>
</glossdef>
</glossentry>
@@ -353,7 +370,7 @@ split into multiple physical files. These files are called <glossterm>File Segme
<glossterm>Function</glossterm>
<glossdef>
<para>
- Any pre-defined tranformation of data. Many <glossterm>Functions</glossterm> are already defined within <productname>PostgreSQL</productname> itself, but can also be user-defined.
+ Any pre-defined transformation of data. Many <glossterm>Functions</glossterm> are already defined within <productname>PostgreSQL</productname> itself, but can also be user-defined.
</para>
<para>
For more information, see <link linkend="sql-createfunction">SQL Commands: CREATE FUNCTION</link>.
@@ -365,7 +382,7 @@ split into multiple physical files. These files are called <glossterm>File Segme
<glossterm>Global SQL Object</glossterm>
<glossdef>
<para>
- Not all objects belong to a certain <glossterm>Schema</glossterm>, or to their <glossterm>Database</glossterm>, or even to the complete <glossterm>Cluster</glossterm>. These are referred to as <glossterm>Global SQL Objects</glossterm>. Collations and Extensions such as <glossterm>Foreign Data Wrappers</glossterm> reside at the <glossterm>Database</glossterm> level; <glossterm>Database</glossterm> names, <glossterm>Roles</glossterm>, <glossterm>Tablespaces</glossterm>, <glossterm>Replication</glossterm> origins, and subscriptions for logical <glossterm>Replication</glossterm> at the <glossterm>Cluster</glossterm> level.
+ Not all <glossterm>SQL Objects</glossterm> belong to a certain <glossterm>Schema</glossterm>. Some belong to the complete <glossterm>Database</glossterm>, or even to the complete <glossterm>Cluster</glossterm>. These are referred to as <glossterm>Global SQL Objects</glossterm>. Collations and Extensions such as <glossterm>Foreign Data Wrappers</glossterm> reside at the <glossterm>Database</glossterm> level; <glossterm>Database</glossterm> names, <glossterm>Roles</glossterm>, <glossterm>Tablespaces</glossterm>, <glossterm>Replication</glossterm> origins, and subscriptions for logical <glossterm>Replication</glossterm> at the <glossterm>Cluster</glossterm> level.
</para>
</glossdef>
</glossentry>
@@ -391,7 +408,7 @@ split into multiple physical files. These files are called <glossterm>File Segme
</glossdef>
</glossentry>
- <glossentry id="host">
+ <glossentry id="glossary-host">
<glossterm>Host</glossterm>
<glossdef>
<para>
@@ -404,7 +421,7 @@ split into multiple physical files. These files are called <glossterm>File Segme
<glossterm>Index</glossterm>
<glossdef>
<para>
- A <glossterm>Relation</glossterm> that contains data derived from a <glossterm>Table</glossterm> (or <glossterm>Relation</glossterm> such as a <glossterm>Materialized View</glossterm>) that stores the data in a way that makes specific values easier to retrieve.
+ A <glossterm>Relation</glossterm> that contains data derived from a <glossterm>Table</glossterm> (or <glossterm>Relation</glossterm> such as a <glossterm>Materialized View</glossterm>). It's internal structure supports very fast retrieval of and access to the original data.
</para>
<para>
For more information, see <link linkend="sql-createindex">SQL Commands: CREATE INDEX</link>.
@@ -466,7 +483,33 @@ split into multiple physical files. These files are called <glossterm>File Segme
</glossdef>
</glossentry>
- <glossentry id="log-record">
+ <glossentry id="glossary-log-file">
+ <glossterm>Log File</glossterm>
+ <glossdef>
+ <para>
+ <link linkend="logfile-maintenance">LOG files</link>
+ contain readable text lines about serious
+ and non-serious events, e.g.: use of
+ wrong password, long-running queries, ... .
+ </para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry id="glossary-log-writer">
+ <glossterm>Log Writer</glossterm>
+ <glossdef>
+ <para>
+ If activated and parameterized, the
+ <link linkend="runtime-config-logging">Log Writer</link>
+ process writes information about database events into the
+ current <glossterm>Log file</glossterm>. When reaching
+ certain time- or volume-dependent criterias, he creates
+ a new <glossterm>Log file</glossterm>.
+ </para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry id="glossary-log-record">
<glossterm>Log Record</glossterm>
<glossdef>
<para>
@@ -528,10 +571,10 @@ data in the same way that a <glossterm>Table</glossterm> does. it cannot be modi
<glossterm>Partition</glossterm>
<glossdef>
<para>
- A <glossterm>Table</glossterm> that can be queried independently by its own name, but can also be queried via another <glossterm>Table</glossterm>, a partitioend <glossterm>Table</glossterm>, which is a collection of sub-<glossterm>Table</glossterm>s, each capable of holding one defined subset of information that does not overlap with any other <glossterm>Table</glossterm> in the set of <glossterm>Table</glossterm>s.
+ a) A <glossterm>Table</glossterm> that can be queried independently by its own name, but can also be queried via another <glossterm>Table</glossterm>, a partitionend <glossterm>Table</glossterm>, which is a collection of sub-<glossterm>Table</glossterm>s, each capable of holding one defined subset of information that does not overlap with any other <glossterm>Table</glossterm> in the set of <glossterm>Table</glossterm>s.
</para>
<para>
- A defined boundary used in an <glossterm>Analytic</glossterm> <glossterm>Function</glossterm> to identify which neighboring <glossterm>Rows</glossterm> can be considered by the <glossterm>Function</glossterm> for this particular <glossterm>Row</glossterm>.
+ b) A defined boundary used in an <glossterm>Analytic</glossterm> <glossterm>Function</glossterm> to identify which neighboring <glossterm>Rows</glossterm> can be considered by the <glossterm>Function</glossterm> for this particular <glossterm>Row</glossterm>.
</para>
</glossdef>
</glossentry>
@@ -573,7 +616,7 @@ data in the same way that a <glossterm>Table</glossterm> does. it cannot be modi
<glossterm>Record</glossterm>
<glossdef>
<para>
- A data structure that consists of one or more <glossterm>Attributes</glossterm> in a defined order.
+ See <link linkend="sql-revoke">Tupple</link>.
</para>
<para>
A single <glossterm>Row</glossterm> of a <glossterm>Table</glossterm> or other Relation.
@@ -603,7 +646,7 @@ data in the same way that a <glossterm>Table</glossterm> does. it cannot be modi
<glossterm>Replica</glossterm>
<glossdef>
<para>
- A <glossterm>Database</glossterm> that is paired with a Master <glossterm>Database</glossterm> and is maintaining a copy of some or all of the Master <glossterm>Database</glossterm>'s data. The primary reasons for doing this are to allow for greater access to that data, and to maintain availability of the data in the even that the <glossterm>Master</glossterm> becomes unavailable.
+ A <glossterm>Database</glossterm> that is paired with a Master <glossterm>Database</glossterm> and is maintaining a copy of some or all of the Master <glossterm>Database</glossterm>'s data. The primary reasons for doing this are to allow for greater access to that data, and to maintain availability of the data in the event that the <glossterm>Master</glossterm> becomes unavailable.
</para>
</glossdef>
</glossentry>
@@ -621,7 +664,7 @@ data in the same way that a <glossterm>Table</glossterm> does. it cannot be modi
<glossterm>Result Set</glossterm>
<glossdef>
<para>
- A data structure tranmitted from a <glossterm>Server</glossterm> to client program upon the completion of a <acronym>SQL</acronym> command, usually a <command>SELECT</command> but it can be an <command>INSERT</command>, <command>UPDATE</command>, or <command>DELETE</command> command if the <literal>RETURNING</literal> clause is specified. The data structure consists of zero or more <glossterm>Rows</glossterm> with the same ordered set of <glossterm>Attributes</glossterm>.
+ A data structure transmitted from a <glossterm>Server</glossterm> to client program upon the completion of a <acronym>SQL</acronym> command, usually a <command>SELECT</command> but it can be an <command>INSERT</command>, <command>UPDATE</command>, or <command>DELETE</command> command if the <literal>RETURNING</literal> clause is specified. The data structure consists of zero or more <glossterm>Rows</glossterm> with the same ordered set of <glossterm>Attributes</glossterm>.
</para>
</glossdef>
</glossentry>
@@ -666,7 +709,7 @@ data in the same way that a <glossterm>Table</glossterm> does. it cannot be modi
<glossterm>Row</glossterm>
<glossdef>
<para>
- A <glossterm>Tuple</glossterm> or <glossterm>Record</glossterm> found within a <glossterm>Relation</glossterm> or a <glossterm>Result Set</glossterm>. This term is often used interchangably with <glossterm>Record</glossterm> and <glossterm>Tuple</glossterm>.
+ See <link linkend="sql-revoke">Tupple</link>.
</para>
</glossdef>
</glossentry>
@@ -687,7 +730,22 @@ data in the same way that a <glossterm>Table</glossterm> does. it cannot be modi
<glossterm>Schema</glossterm>
<glossdef>
<para>
- A means of organizing a collection of objects residing in the same <glossterm>Database</glossterm> to facilitate clarity or security. <glossterm>Schema</glossterm>s are most often used in the same way that a namespace is used in programming languages. All objects belong to exactly one <glossterm>Schema</glossterm>, most commonly "public", the default <glossterm>Schema</glossterm>.
+ A <link linkend="ddl-schemas">schema</link> is a
+ namespace for <glossterm>SQL objects</glossterm>, which
+ all reside in the same <glossterm>database</glossterm>.
+ Each <glossterm>SQL object</glossterm> must reside in
+ exactly one <glossterm>Schema</glossterm>.
+ </para>
+ <para>
+ The names of <glossterm>SQL objects</glossterm> in the
+ schema are unique - even across different types of objects.
+ Same object names can only be used in different schemas.
+ </para>
+ <para>
+ Many <glossterm>SQL objects</glossterm> reside in the default
+ <glossterm>Schema</glossterm> <literal>public</literal>, but it
+ is expected that more schemas are created to hold application
+ specific <glossterm>SQL objects</glossterm>.
</para>
<para>
More generically, the term <glossterm>Schema</glossterm> is used to mean all data descriptions (<glossterm>Table</glossterm> definitions, <glossterm>Constraint</glossterm>s, comments) for a given <glossterm>Database</glossterm>.
@@ -717,7 +775,7 @@ data in the same way that a <glossterm>Table</glossterm> does. it cannot be modi
<glossterm>Serializable</glossterm>
<glossdef>
<para>
- <glossterm>Database</glossterm> <glossterm>Session</glossterm>s in a transaction defined as <literal>SERIALIZABLE</literal> are unable to see changes made to the <glossterm>Database</glossterm> by other sessions. In effect, the entire <glossterm>Database</glossterm> appears to be frozen in time for the duration of the <glossterm>Transaction</glossterm>.
+ Transactions defined as <literal>SERIALIZABLE</literal> are unable to see changes made within other transactions. In effect, for the initializing session the entire <glossterm>Database</glossterm> appears to be frozen duration such a <glossterm>Transaction</glossterm>. (??? Isn't it the other way round: changes done by serializable transactions are not seen by other transactions ???)
</para>
</glossdef>
</glossentry>
@@ -747,7 +805,7 @@ data in the same way that a <glossterm>Table</glossterm> does. it cannot be modi
<glossterm>Sequence</glossterm>
<glossdef>
<para>
- An <glossterm>Database</glossterm> object which represents the mathematical concept of a generic numerical sequence. It can be thought of as a <glossterm>Table</glossterm> with exactly one <glossterm>Row</glossterm> and one <glossterm>Column</glossterm>. The value stores is know as the current value. A <glossterm>Sequence</glossterm> has a defined direction (almost always increasing) and an interval step (usually 1). Whenever the <literal>NEXTVAL</literal> pseudo-column of a <glossterm>Sequence</glossterm> is accessed, the curent value is moved in the defined direction by the defined interval step, and that value is returned to the invoking query, and the current value of the sequence is updated to reflect the new value. The value can be updated multiple times in a single query, the net effect being that each row selected will have a different value. Values taken from a <glossterm>Sequence</glossterm> are never reverted even in the case of a <glossterm>Rollback</glossterm>, which means that the <glossterm>Sequence</glossterm> will never emit the same number twice, and thus is the normal way of generating values to be put in a <glossterm>Primary Key</glossterm>.
+ An <glossterm>Database</glossterm> object which represents the mathematical concept of a numerical integral sequence. It can be thought of as a <glossterm>Table</glossterm> with exactly one <glossterm>Row</glossterm> and one <glossterm>Column</glossterm>. The value stored is known as the current value. A <glossterm>Sequence</glossterm> has a defined direction (almost always increasing) and an interval step (usually 1). Whenever the <literal>NEXTVAL</literal> pseudo-column of a <glossterm>Sequence</glossterm> is accessed, the curent value is moved in the defined direction by the defined interval step, and that value is returned to the invoking query, and the current value of the sequence is updated to reflect the new value. The value can be updated multiple times in a single query, the net effect being that each row selected will have a different value. Values taken from a <glossterm>Sequence</glossterm> are never reverted even in the case of a <glossterm>Rollback</glossterm>, which means that the <glossterm>Sequence</glossterm> will never emit the same number twice, and thus is the normal way of generating values to be put in a <glossterm>Primary Key</glossterm>.
</para>
<para>
For more information, see <link linkend="sql-createsequence">SQL Commands: CREATE SEQUENCE</link>.
@@ -810,7 +868,7 @@ data in the same way that a <glossterm>Table</glossterm> does. it cannot be modi
<glossterm>Table</glossterm>
<glossdef>
<para>
- A collection of <glossterm>Tuples</glossterm> (also known as <glossterm>Rows</glossterm> or <glossterm>Records</glossterm>) having a common data structure (the same number of <glossterm>Attributes</glossterm>s, in the same order, having the same name and type). A <glossterm>Table</glossterm> is the most common form of <glossterm>Relation</glossterm> in <productname>PostgreSQL</productname>.
+ A collection of <glossterm>Tuples</glossterm> (also known as <glossterm>Rows</glossterm> or <glossterm>Records</glossterm>) having a common data structure (the same number of <glossterm>Attributes</glossterm>s, in the same order, having the same name and type per position). A <glossterm>Table</glossterm> is the most common form of <glossterm>Relation</glossterm> in <productname>PostgreSQL</productname>.
</para>
<para>
For more information, see <link linkend="sql-createtable">SQL Commands: CREATE TABLE</link>.
@@ -834,7 +892,7 @@ data in the same way that a <glossterm>Table</glossterm> does. it cannot be modi
<glossterm>Transaction</glossterm>
<glossdef>
<para>
- A combination of one or more commands that must act as a single <glossterm>Atomic</glossterm> command: they all succeed or fail together, and their effects are not visible to other sessions until the <glossterm>Transaction</glossterm> is complete.
+ A combination of one or more commands that must act as a single <glossterm>Atomic</glossterm> command: they all succeed or fail together, and their effects are not visible to other sessions until the <glossterm>Transaction</glossterm> is complete. (??? non repeatable read, phantom read, serialization ananomaly are possible ???)
</para>
</glossdef>
</glossentry>
@@ -873,8 +931,8 @@ data in the same way that a <glossterm>Table</glossterm> does. it cannot be modi
<glossterm>Unlogged</glossterm>
<glossdef>
<para>
- A <glossterm>Relation</glossterm> that is unlogged will not have changes reflected in the <glossterm>WAL Log</glossterm>,
-which would enable those changes to be duplicated on a <glossterm>Replica</glossterm>, and also enables the change to survive a <glossterm>Database</glossterm> crash.
+ Changes to an unlogged <glossterm>Relation</glossterm> are not reflected in the <glossterm>WAL Log</glossterm>.
+ This disables replication and crash recovery for such <glossterm>Relations</glossterm>.
</para>
</glossdef>
</glossentry>
@@ -953,7 +1011,7 @@ cannot create <glossterm>Rows</glossterm> nor can it remove <glossterm>Rows</glo
<glossterm>WAL Record</glossterm>
<glossdef>
<para>
- A <glossterm>WAL Record</glossterm> contains either new or changed <glossterm>Heap</glossterm> or <glossterm>Index</glossterm> data or other binary information about a <command>COMMIT</command>, <command>ROLLBACK</command>, <command>SAVEPOINT</command>, or <glossterm>Checkpointer</glossterm> operation.
+ A <glossterm>WAL Record</glossterm> contains either new or changed <glossterm>Heap</glossterm> or <glossterm>Index</glossterm> data or information about a <command>COMMIT</command>, <command>ROLLBACK</command>, <command>SAVEPOINT</command>, or <glossterm>Checkpointer</glossterm> operation. WAL records use a non-printabe binary format.
</para>
<para>
For more information, see <link linkend="wal-internals">Reliability and the Write-Ahead Log: WAL Internals</link>.