PostgreSQL

PostgreSQL Elephant Logo

Appendix M. Glossary

This is a list of terms and their meaning in the context of PostgreSQL and relational database systems in general.

ACID

glossary.html#GLOSSARY-ATOMICITYAtomicity, glossary.html#GLOSSARY-CONSISTENCYConsistency, glossary.html#GLOSSARY-ISOLATIONIsolation, and glossary.html#GLOSSARY-DURABILITYDurability. This set of properties of database transactions is intended to guarantee validity in concurrent operation and even in event of errors, power failures, etc.

Aggregate function (routine)

A glossary.html#GLOSSARY-FUNCTIONfunction that combines (aggregates) multiple input values, for example by counting, averaging or adding, yielding a single output value. + For more information, see Section 9.21. + See Also Window function (routine).

Analytic function

See Window function (routine).

Analyze (operation)

The act of collecting statistics from data in glossary.html#GLOSSARY-TABLEtables and other glossary.html#GLOSSARY-RELATIONrelations to help the glossary.html#GLOSSARY-PLANNERquery planner to make decisions about how to execute glossary.html#GLOSSARY-QUERYqueries. + (Don’t confuse this term with the ANALYZE option to the EXPLAIN command.) + For more information, see ANALYZE.

Atomic

In reference to a glossary.html#GLOSSARY-DATUMdatum: the fact that its value cannot be broken down into smaller components. + In reference to a glossary.html#GLOSSARY-TRANSACTIONdatabase transaction: see glossary.html#GLOSSARY-ATOMICITYatomicity.

Atomicity

The property of a glossary.html#GLOSSARY-TRANSACTIONtransaction that either all its operations complete as a single unit or none do. In addition, if a system failure occurs during the execution of a transaction, no partial results are visible after recovery. This is one of the ACID properties.

Attribute

An element with a certain name and data type found within a glossary.html#GLOSSARY-TUPLEtuple.

Autovacuum (process)

A set of background processes that routinely perform glossary.html#GLOSSARY-VACUUMvacuum and glossary.html#GLOSSARY-ANALYZEanalyze operations. The glossary.html#GLOSSARY-AUXILIARY-PROCauxiliary process that coordinates the work and is always present (unless autovacuum is disabled) is known as the autovacuum launcher, and the processes that carry out the tasks are known as the autovacuum workers. + For more information, see Section 25.1.6.

Auxiliary process

A process within an glossary.html#GLOSSARY-INSTANCEinstance that is in charge of some specific background task for the instance. The auxiliary processes consist of the glossary.html#GLOSSARY-AUTOVACUUMautovacuum launcher (but not the autovacuum workers), the glossary.html#GLOSSARY-BACKGROUND-WRITERbackground writer, the glossary.html#GLOSSARY-CHECKPOINTERcheckpointer, the glossary.html#GLOSSARY-LOGGERlogger, the glossary.html#GLOSSARY-STARTUP-PROCESSstartup process, the glossary.html#GLOSSARY-WAL-ARCHIVERWAL archiver, the glossary.html#GLOSSARY-WAL-RECEIVERWAL receiver (but not the glossary.html#GLOSSARY-WAL-SENDERWAL senders), and the glossary.html#GLOSSARY-WAL-WRITERWAL writer.

Backend (process)

Process of an glossary.html#GLOSSARY-INSTANCEinstance which acts on behalf of a glossary.html#GLOSSARY-SESSIONclient session and handles its requests. + (Don’t confuse this term with the similar terms glossary.html#GLOSSARY-BACKGROUND-WORKERBackground Worker or glossary.html#GLOSSARY-BACKGROUND-WRITERBackground Writer).

Background worker (process)

Process within an glossary.html#GLOSSARY-INSTANCEinstance, which runs system- or user-supplied code. Serves as infrastructure for several features in PostgreSQL, such as glossary.html#GLOSSARY-REPLICATIONlogical replication and glossary.html#GLOSSARY-PARALLEL-QUERYparallel queries. In addition, glossary.html#GLOSSARY-EXTENSIONExtensions can add custom background worker processes. + For more information, see Chapter 48.

Background writer (process)

An glossary.html#GLOSSARY-AUXILIARY-PROCauxiliary process that writes dirty glossary.html#GLOSSARY-DATA-PAGEdata pages from glossary.html#GLOSSARY-SHARED-MEMORYshared memory to the file system. It wakes up periodically, but works only for a short period in order to distribute its expensive I/O activity over time to avoid generating larger I/O peaks which could block other processes. + For more information, see Section 20.4.5.

Base Backup

A binary copy of all glossary.html#GLOSSARY-DB-CLUSTERdatabase cluster files. It is generated by the tool pg_basebackup. In combination with WAL files it can be used as the starting point for recovery, log shipping, or streaming replication.

Bloat

Space in data pages which does not contain current row versions, such as unused (free) space or outdated row versions.

Cast

A conversion of a glossary.html#GLOSSARY-DATUMdatum from its current data type to another data type. + For more information, see CREATE CAST.

Catalog

The SQL standard uses this term to indicate what is called a glossary.html#GLOSSARY-DATABASEdatabase in PostgreSQL’s terminology. + (Don’t confuse this term with glossary.html#GLOSSARY-SYSTEM-CATALOGsystem catalog). + For more information, see Section 23.1.

Check constraint

A type of glossary.html#GLOSSARY-CONSTRAINTconstraint defined on a glossary.html#GLOSSARY-RELATIONrelation which restricts the values allowed in one or more glossary.html#GLOSSARY-ATTRIBUTEattributes. The check constraint can make reference to any attribute of the same row in the relation, but cannot reference other rows of the same relation or other relations. + For more information, see Section 5.4.

Checkpoint

A point in the glossary.html#GLOSSARY-WALWAL sequence at which it is guaranteed that the heap and index data files have been updated with all information from glossary.html#GLOSSARY-SHARED-MEMORYshared memory modified before that checkpoint; a checkpoint record is written and flushed to WAL to mark that point. + A checkpoint is also the act of carrying out all the actions that are necessary to reach a checkpoint as defined above. This process is initiated when predefined conditions are met, such as a specified amount of time has passed, or a certain volume of records has been written; or it can be invoked by the user with the command CHECKPOINT. + For more information, see Section 30.5.

Checkpointer (process)

An glossary.html#GLOSSARY-AUXILIARY-PROCauxiliary process that is responsible for executing glossary.html#GLOSSARY-CHECKPOINTcheckpoints.

Class (archaic)

See Relation.

Client (process)

Any process, possibly remote, that establishes a glossary.html#GLOSSARY-SESSIONsession by glossary.html#GLOSSARY-CONNECTIONconnecting to an glossary.html#GLOSSARY-INSTANCEinstance to interact with a glossary.html#GLOSSARY-DATABASEdatabase.

Column

An glossary.html#GLOSSARY-ATTRIBUTEattribute found in a glossary.html#GLOSSARY-TABLEtable or glossary.html#GLOSSARY-VIEWview.

Commit

The act of finalizing a glossary.html#GLOSSARY-TRANSACTIONtransaction within the glossary.html#GLOSSARY-DATABASEdatabase, which makes it visible to other transactions and assures its glossary.html#GLOSSARY-DURABILITYdurability. + For more information, see COMMIT.

Concurrency

The concept that multiple independent operations happen within the glossary.html#GLOSSARY-DATABASEdatabase at the same time. In PostgreSQL, concurrency is controlled by the glossary.html#GLOSSARY-MVCCmultiversion concurrency control mechanism.

Connection

An established line of communication between a client process and a glossary.html#GLOSSARY-BACKENDbackend process, usually over a network, supporting a glossary.html#GLOSSARY-SESSIONsession. This term is sometimes used as a synonym for session. + For more information, see Section 20.3.

Consistency

The property that the data in the glossary.html#GLOSSARY-DATABASEdatabase is always in compliance with glossary.html#GLOSSARY-CONSTRAINTintegrity constraints. Transactions may be allowed to violate some of the constraints transiently before it commits, but if such violations are not resolved by the time it commits, such a transaction is automatically glossary.html#GLOSSARY-ROLLBACKrolled back. This is one of the ACID properties.

Constraint

A restriction on the values of data allowed within a glossary.html#GLOSSARY-TABLEtable, or in attributes of a glossary.html#GLOSSARY-DOMAINdomain. + For more information, see Section 5.4.

Cumulative Statistics System

A system which, if enabled, accumulates statistical information about the glossary.html#GLOSSARY-INSTANCEinstance's activities. + For more information, see Section 28.2.

Data area

See Data directory.

Database

A named collection of glossary.html#GLOSSARY-SQL-OBJECTlocal SQL objects. + For more information, see Section 23.1.

Database cluster

A collection of databases and global SQL objects, and their common static and dynamic metadata. Sometimes referred to as a cluster. + In PostgreSQL, the term cluster is also sometimes used to refer to an instance. (Don’t confuse this term with the SQL command CLUSTER.)

Database server

See Instance.

Data directory

The base directory on the file system of a glossary.html#GLOSSARY-SERVERserver that contains all data files and subdirectories associated with a glossary.html#GLOSSARY-DB-CLUSTERdatabase cluster (with the exception of glossary.html#GLOSSARY-TABLESPACEtablespaces, and optionally glossary.html#GLOSSARY-WALWAL). The environment variable PGDATA is commonly used to refer to the data directory. + A glossary.html#GLOSSARY-DB-CLUSTERcluster's storage space comprises the data directory plus any additional tablespaces. + For more information, see Section 73.1.

Data page

The basic structure used to store relation data. All pages are of the same size. Data pages are typically stored on disk, each in a specific file, and can be read to glossary.html#GLOSSARY-SHARED-MEMORYshared buffers where they can be modified, becoming dirty. They become clean when written to disk. New pages, which initially exist in memory only, are also dirty until written.

Datum

The internal representation of one value of an SQL data type.

Delete

An SQL command which removes glossary.html#GLOSSARY-TUPLErows from a given glossary.html#GLOSSARY-TABLEtable or glossary.html#GLOSSARY-RELATIONrelation. + For more information, see DELETE.

Domain

A user-defined data type that is based on another underlying data type. It acts the same as the underlying type except for possibly restricting the set of allowed values. + For more information, see Section 8.18.

Durability

The assurance that once a glossary.html#GLOSSARY-TRANSACTIONtransaction has been glossary.html#GLOSSARY-COMMITcommitted, the changes remain even after a system failure or crash. This is one of the ACID properties.

Epoch

See Transaction ID.

Extension

A software add-on package that can be installed on an glossary.html#GLOSSARY-INSTANCEinstance to get extra features. + For more information, see Section 38.17.

File segment

A physical file which stores data for a given glossary.html#GLOSSARY-RELATIONrelation. File segments are limited in size by a configuration value (typically 1 gigabyte), so if a relation exceeds that size, it is split into multiple segments. + For more information, see Section 73.1. + (Don’t confuse this term with the similar term glossary.html#GLOSSARY-WAL-FILEWAL segment).

Foreign data wrapper

A means of representing data that is not contained in the local glossary.html#GLOSSARY-DATABASEdatabase so that it appears as if were in local glossary.html#GLOSSARY-TABLEtable(s). With a foreign data wrapper it is possible to define a glossary.html#GLOSSARY-FOREIGN-SERVERforeign server and glossary.html#GLOSSARY-FOREIGN-TABLEforeign tables. + For more information, see CREATE FOREIGN DATA WRAPPER.

Foreign key

A type of glossary.html#GLOSSARY-CONSTRAINTconstraint defined on one or more glossary.html#GLOSSARY-COLUMNcolumns in a glossary.html#GLOSSARY-TABLEtable which requires the value(s) in those glossary.html#GLOSSARY-COLUMNcolumns to identify zero or one glossary.html#GLOSSARY-TUPLErow in another (or, infrequently, the same) glossary.html#GLOSSARY-TABLEtable.

Foreign server

A named collection of glossary.html#GLOSSARY-FOREIGN-TABLEforeign tables which all use the same glossary.html#GLOSSARY-FOREIGN-DATA-WRAPPERforeign data wrapper and have other configuration values in common. + For more information, see CREATE SERVER.

Foreign table (relation)

A glossary.html#GLOSSARY-RELATIONrelation which appears to have glossary.html#GLOSSARY-TUPLErows and glossary.html#GLOSSARY-COLUMNcolumns similar to a regular glossary.html#GLOSSARY-TABLEtable, but will forward requests for data through its glossary.html#GLOSSARY-FOREIGN-DATA-WRAPPERforeign data wrapper, which will return glossary.html#GLOSSARY-RESULT-SETresult sets structured according to the definition of the glossary.html#GLOSSARY-FOREIGN-TABLEforeign table. + For more information, see CREATE FOREIGN TABLE.

Fork

Each of the separate segmented file sets in which a relation is stored. The main fork is where the actual data resides. There also exist two secondary forks for metadata: the glossary.html#GLOSSARY-FSMfree space map and the glossary.html#GLOSSARY-VMvisibility map. glossary.html#GLOSSARY-UNLOGGEDUnlogged relations also have an init fork.

Free space map (fork)

A storage structure that keeps metadata about each data page of a table’s main fork. The free space map entry for each page stores the amount of free space that’s available for future tuples, and is structured to be efficiently searched for available space for a new tuple of a given size. + For more information, see Section 73.3.

Function (routine)

A type of routine that receives zero or more arguments, returns zero or more output values, and is constrained to run within one transaction. Functions are invoked as part of a query, for example via SELECT. Certain functions can return glossary.html#GLOSSARY-RESULT-SETsets; those are called set-returning functions. + Functions can also be used for glossary.html#GLOSSARY-TRIGGERtriggers to invoke. + For more information, see CREATE FUNCTION.

Grant

An SQL command that is used to allow a glossary.html#GLOSSARY-USERuser or glossary.html#GLOSSARY-ROLErole to access specific objects within the glossary.html#GLOSSARY-DATABASEdatabase. + For more information, see GRANT.

Heap

Contains the values of glossary.html#GLOSSARY-TUPLErow attributes (i.e., the data) for a glossary.html#GLOSSARY-RELATIONrelation. The heap is realized within one or more glossary.html#GLOSSARY-FILE-SEGMENTfile segments in the relation’s glossary.html#GLOSSARY-FORKmain fork.

Host

A computer that communicates with other computers over a network. This is sometimes used as a synonym for glossary.html#GLOSSARY-SERVERserver. It is also used to refer to a computer where glossary.html#GLOSSARY-CLIENTclient processes run.

Index (relation)

A glossary.html#GLOSSARY-RELATIONrelation that contains data derived from a glossary.html#GLOSSARY-TABLEtable or glossary.html#GLOSSARY-MATERIALIZED-VIEWmaterialized view. Its internal structure supports fast retrieval of and access to the original data. + For more information, see CREATE INDEX.

Insert

An SQL command used to add new data into a glossary.html#GLOSSARY-TABLEtable. + For more information, see INSERT.

Instance

A group of glossary.html#GLOSSARY-BACKENDbackend and glossary.html#GLOSSARY-AUXILIARY-PROCauxiliary processes that communicate using a common shared memory area. One glossary.html#GLOSSARY-POSTMASTERpostmaster process manages the instance; one instance manages exactly one glossary.html#GLOSSARY-DB-CLUSTERdatabase cluster with all its databases. Many instances can run on the same glossary.html#GLOSSARY-SERVERserver as long as their TCP ports do not conflict. + The instance handles all key features of a DBMS: read and write access to files and shared memory, assurance of the ACID properties, glossary.html#GLOSSARY-CONNECTIONconnections to glossary.html#GLOSSARY-CLIENTclient processes, privilege verification, crash recovery, replication, etc.

Isolation

The property that the effects of a transaction are not visible to glossary.html#GLOSSARY-CONCURRENCYconcurrent transactions before it commits. This is one of the ACID properties. + For more information, see Section 13.2.

Join

An operation and SQL keyword used in glossary.html#GLOSSARY-QUERYqueries for combining data from multiple glossary.html#GLOSSARY-RELATIONrelations.

Key

A means of identifying a glossary.html#GLOSSARY-TUPLErow within a glossary.html#GLOSSARY-TABLEtable or other glossary.html#GLOSSARY-RELATIONrelation by values contained within one or more glossary.html#GLOSSARY-ATTRIBUTEattributes in that relation.

Lock

A mechanism that allows a process to limit or prevent simultaneous access to a resource.

Log file

Log files contain human-readable text lines about events. Examples include login failures, long-running queries, etc. + For more information, see Section 25.3.

Logged

A glossary.html#GLOSSARY-TABLEtable is considered glossary.html#GLOSSARY-LOGGEDlogged if changes to it are sent to the glossary.html#GLOSSARY-WALWAL. By default, all regular tables are logged. A table can be specified as glossary.html#GLOSSARY-UNLOGGEDunlogged either at creation time or via the ALTER TABLE command.

Logger (process)

An glossary.html#GLOSSARY-AUXILIARY-PROCauxiliary process which, if enabled, writes information about database events into the current glossary.html#GLOSSARY-LOG-FILElog file. When reaching certain time- or volume-dependent criteria, a new log file is created. Also called syslogger. + For more information, see Section 20.8.

Log record

Archaic term for a glossary.html#GLOSSARY-WAL-RECORDWAL record.

Master (server)

See Primary (server).

Materialized

The property that some information has been pre-computed and stored for later use, rather than computing it on-the-fly. + This term is used in glossary.html#GLOSSARY-MATERIALIZED-VIEWmaterialized view, to mean that the data derived from the view’s query is stored on disk separately from the sources of that data. + This term is also used to refer to some multi-step queries to mean that the data resulting from executing a given step is stored in memory (with the possibility of spilling to disk), so that it can be read multiple times by another step.

Materialized view (relation)

A glossary.html#GLOSSARY-RELATIONrelation that is defined by a SELECT statement (just like a glossary.html#GLOSSARY-VIEWview), but stores data in the same way that a glossary.html#GLOSSARY-TABLEtable does. It cannot be modified via INSERT, UPDATE, or DELETE operations. + For more information, see CREATE MATERIALIZED VIEW.

Multi-version concurrency control (MVCC)

A mechanism designed to allow several glossary.html#GLOSSARY-TRANSACTIONtransactions to be reading and writing the same rows without one process causing other processes to stall. In PostgreSQL, MVCC is implemented by creating copies (versions) of glossary.html#GLOSSARY-TUPLEtuples as they are modified; after transactions that can see the old versions terminate, those old versions need to be removed.

Null

A concept of non-existence that is a central tenet of relational database theory. It represents the absence of a definite value.

Optimizer

See Query planner.

Parallel query

The ability to handle parts of executing a glossary.html#GLOSSARY-QUERYquery to take advantage of parallel processes on servers with multiple CPUs.

Partition

One of several disjoint (not overlapping) subsets of a larger set. + In reference to a glossary.html#GLOSSARY-PARTITIONED-TABLEpartitioned table: One of the tables that each contain part of the data of the partitioned table, which is said to be the parent. The partition is itself a table, so it can also be queried directly; at the same time, a partition can sometimes be a partitioned table, allowing hierarchies to be created. + In reference to a glossary.html#GLOSSARY-WINDOW-FUNCTIONwindow function in a glossary.html#GLOSSARY-QUERYquery, a partition is a user-defined criterion that identifies which neighboring glossary.html#GLOSSARY-TUPLErows of the glossary.html#GLOSSARY-RESULT-SETquery’s result set can be considered by the function.

Partitioned table (relation)

A glossary.html#GLOSSARY-RELATIONrelation that is in semantic terms the same as a glossary.html#GLOSSARY-TABLEtable, but whose storage is distributed across several glossary.html#GLOSSARY-PARTITIONpartitions.

Postmaster (process)

The very first process of an glossary.html#GLOSSARY-INSTANCEinstance. It starts and manages the glossary.html#GLOSSARY-AUXILIARY-PROCauxiliary processes and creates glossary.html#GLOSSARY-BACKENDbackend processes on demand. + For more information, see Section 19.3.

Primary key

A special case of a glossary.html#GLOSSARY-UNIQUE-CONSTRAINTunique constraint defined on a glossary.html#GLOSSARY-TABLEtable or other glossary.html#GLOSSARY-RELATIONrelation that also guarantees that all of the glossary.html#GLOSSARY-ATTRIBUTEattributes within the glossary.html#GLOSSARY-PRIMARY-KEYprimary key do not have glossary.html#GLOSSARY-NULLnull values. As the name implies, there can be only one primary key per table, though it is possible to have multiple unique constraints that also have no null-capable attributes.

Primary (server)

When two or more glossary.html#GLOSSARY-DATABASEdatabases are linked via glossary.html#GLOSSARY-REPLICATIONreplication, the glossary.html#GLOSSARY-SERVERserver that is considered the authoritative source of information is called the primary, also known as a master.

Procedure (routine)

A type of routine. Their distinctive qualities are that they do not return values, and that they are allowed to make transactional statements such as COMMIT and ROLLBACK. They are invoked via the CALL command. + For more information, see CREATE PROCEDURE.

Query

A request sent by a client to a glossary.html#GLOSSARY-BACKENDbackend, usually to return results or to modify data on the database.

Query planner

The part of PostgreSQL that is devoted to determining (planning) the most efficient way to execute glossary.html#GLOSSARY-QUERYqueries. Also known as query optimizer, optimizer, or simply planner.

Record

See Tuple.

Recycling

See WAL file.

Referential integrity

A means of restricting data in one glossary.html#GLOSSARY-RELATIONrelation by a glossary.html#GLOSSARY-FOREIGN-KEYforeign key so that it must have matching data in another glossary.html#GLOSSARY-RELATIONrelation.

Relation

The generic term for all objects in a glossary.html#GLOSSARY-DATABASEdatabase that have a name and a list of glossary.html#GLOSSARY-ATTRIBUTEattributes defined in a specific order. glossary.html#GLOSSARY-TABLETables, glossary.html#GLOSSARY-SEQUENCEsequences, glossary.html#GLOSSARY-VIEWviews, glossary.html#GLOSSARY-FOREIGN-TABLEforeign tables, glossary.html#GLOSSARY-MATERIALIZED-VIEWmaterialized views, composite types, and glossary.html#GLOSSARY-INDEXindexes are all relations. + More generically, a relation is a set of tuples; for example, the result of a query is also a relation. + In PostgreSQL, Class is an archaic synonym for relation.

Replica (server)

A glossary.html#GLOSSARY-DATABASEdatabase that is paired with a glossary.html#GLOSSARY-PRIMARY-SERVERprimary database and is maintaining a copy of some or all of the primary database’s data. The foremost 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 glossary.html#GLOSSARY-PRIMARY-SERVERprimary becomes unavailable.

Replication

The act of reproducing data on one glossary.html#GLOSSARY-SERVERserver onto another server called a glossary.html#GLOSSARY-REPLICAreplica. This can take the form of physical replication, where all file changes from one server are copied verbatim, or logical replication where a defined subset of data changes are conveyed using a higher-level representation.

Result set

A glossary.html#GLOSSARY-RELATIONrelation transmitted from a glossary.html#GLOSSARY-BACKENDbackend process to a glossary.html#GLOSSARY-CLIENTclient upon the completion of an SQL command, usually a SELECT but it can be an INSERT, UPDATE, or DELETE command if the RETURNING clause is specified. + The fact that a result set is a relation means that a query can be used in the definition of another query, becoming a subquery. +

Revoke

A command to prevent access to a named set of glossary.html#GLOSSARY-DATABASEdatabase objects for a named list of glossary.html#GLOSSARY-ROLEroles. + For more information, see REVOKE.

Role

A collection of access privileges to the glossary.html#GLOSSARY-DATABASEinstance. Roles are themselves a privilege that can be granted to other roles. This is often done for convenience or to ensure completeness when multiple glossary.html#GLOSSARY-USERusers need the same privileges. + For more information, see CREATE ROLE.

Rollback

A command to undo all of the operations performed since the beginning of a glossary.html#GLOSSARY-TRANSACTIONtransaction. + For more information, see ROLLBACK.

Routine

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 glossary.html#GLOSSARY-FUNCTIONfunctions (including set-returning functions and glossary.html#GLOSSARY-TRIGGERtrigger functions), glossary.html#GLOSSARY-AGGREGATEaggregate functions, and glossary.html#GLOSSARY-PROCEDUREprocedures. + Many routines are already defined within PostgreSQL itself, but user-defined ones can also be added.

Row

See Tuple.

Savepoint

A special mark in the sequence of steps in a glossary.html#GLOSSARY-TRANSACTIONtransaction. Data modifications after this point in time may be reverted to the time of the savepoint. + For more information, see SAVEPOINT.

Schema

A schema is a namespace for glossary.html#GLOSSARY-SQL-OBJECTSQL objects, which all reside in the same glossary.html#GLOSSARY-DATABASEdatabase. Each SQL object must reside in exactly one schema. + All system-defined SQL objects reside in schema pg_catalog. + More generically, the term schema is used to mean all data descriptions (glossary.html#GLOSSARY-TABLEtable definitions, glossary.html#GLOSSARY-CONSTRAINTconstraints, comments, etc.) for a given glossary.html#GLOSSARY-DATABASEdatabase or subset thereof. + For more information, see Section 5.9.

Segment

See File segment.

Select

The SQL command used to request data from a glossary.html#GLOSSARY-DATABASEdatabase. Normally, SELECT commands are not expected to modify the glossary.html#GLOSSARY-DATABASEdatabase in any way, but it is possible that glossary.html#GLOSSARY-FUNCTIONfunctions invoked within the query could have side effects that do modify data. + For more information, see SELECT.

Sequence (relation)

A type of relation that is used to generate values. Typically the generated values are sequential non-repeating numbers. They are commonly used to generate surrogate glossary.html#GLOSSARY-PRIMARY-KEYprimary key values.

Server

A computer on which PostgreSQL glossary.html#GLOSSARY-INSTANCEinstances run. The term server denotes real hardware, a container, or a virtual machine. + This term is sometimes used to refer to an instance or to a host.

Session

A state that allows a client and a backend to interact, communicating over a glossary.html#GLOSSARY-CONNECTIONconnection.

Shared memory

RAM which is used by the processes common to an glossary.html#GLOSSARY-INSTANCEinstance. It mirrors parts of glossary.html#GLOSSARY-DATABASEdatabase files, provides a transient area for glossary.html#GLOSSARY-WAL-RECORDWAL records, and stores additional common information. Note that shared memory belongs to the complete instance, not to a single database. + The largest part of shared memory is known as shared buffers and is used to mirror part of data files, organized into pages. When a page is modified, it is called a dirty page until it is written back to the file system. + For more information, see Section 20.4.1.

SQL object

Any object that can be created with a CREATE command. Most objects are specific to one database, and are commonly known as local objects. + Most local objects reside in a specific glossary.html#GLOSSARY-SCHEMAschema in their containing database, such as glossary.html#GLOSSARY-RELATIONrelations (all types), glossary.html#GLOSSARY-FUNCTIONroutines (all types), data types, etc. The names of such objects of the same type in the same schema are enforced to be unique. + There also exist local objects that do not reside in schemas; some examples are glossary.html#GLOSSARY-EXTENSIONextensions, glossary.html#GLOSSARY-CASTdata type casts, and glossary.html#GLOSSARY-FOREIGN-DATA-WRAPPERforeign data wrappers. The names of such objects of the same type are enforced to be unique within the database. + Other object types, such as glossary.html#GLOSSARY-ROLEroles, glossary.html#GLOSSARY-TABLESPACEtablespaces, replication origins, subscriptions for logical replication, and databases themselves are not local SQL objects since they exist entirely outside of any specific database; they are called global objects. The names of such objects are enforced to be unique within the whole database cluster. + For more information, see Section 23.1.

SQL standard

A series of documents that define the SQL language.

Standby (server)

See Replica (server).

Startup process

An glossary.html#GLOSSARY-AUXILIARY-PROCauxiliary process that replays WAL during crash recovery and in a glossary.html#GLOSSARY-REPLICATIONphysical replica. + (The name is historical: the startup process was named before replication was implemented; the name refers to its task as it relates to the server startup following a crash.)

System catalog

A collection of glossary.html#GLOSSARY-TABLEtables which describe the structure of all glossary.html#GLOSSARY-SQL-OBJECTSQL objects of the instance. The system catalog resides in the schema pg_catalog. These tables contain data in internal representation and are not typically considered useful for user examination; a number of user-friendlier glossary.html#GLOSSARY-VIEWviews, also in schema pg_catalog, offer more convenient access to some of that information, while additional tables and views exist in schema information_schema (see Chapter 37) that expose some of the same and additional information as mandated by the glossary.html#GLOSSARY-SQL-STANDARDSQL standard. + For more information, see Section 5.9.

Table

A collection of glossary.html#GLOSSARY-TUPLEtuples having a common data structure (the same number of glossary.html#GLOSSARY-ATTRIBUTEattributes, in the same order, having the same name and type per position). A table is the most common form of glossary.html#GLOSSARY-RELATIONrelation in PostgreSQL. + For more information, see CREATE TABLE.

Tablespace

A named location on the server file system. All glossary.html#GLOSSARY-SQL-OBJECTSQL objects which require storage beyond their definition in the glossary.html#GLOSSARY-SYSTEM-CATALOGsystem catalog must belong to a single tablespace. Initially, a database cluster contains a single usable tablespace which is used as the default for all SQL objects, called pg_default. + For more information, see Section 23.6.

Temporary table

glossary.html#GLOSSARY-TABLETables that exist either for the lifetime of a glossary.html#GLOSSARY-SESSIONsession or a glossary.html#GLOSSARY-TRANSACTIONtransaction, as specified at the time of creation. The data in them is not visible to other sessions, and is not glossary.html#GLOSSARY-LOGGEDlogged. Temporary tables are often used to store intermediate data for a multi-step operation. + For more information, see CREATE TABLE.

TOAST

A mechanism by which large attributes of table rows are split and stored in a secondary table, called the TOAST table. Each relation with large attributes has its own TOAST table. + For more information, see Section 73.2.

Transaction

A combination of commands that must act as a single glossary.html#GLOSSARY-ATOMICatomic command: they all succeed or all fail as a single unit, and their effects are not visible to other glossary.html#GLOSSARY-SESSIONsessions until the transaction is complete, and possibly even later, depending on the isolation level. + For more information, see Section 13.2.

Transaction ID

The numerical, unique, sequentially-assigned identifier that each transaction receives when it first causes a database modification. Frequently abbreviated as xid. When stored on disk, xids are only 32-bits wide, so only approximately four billion write transaction IDs can be generated; to permit the system to run for longer than that, epochs are used, also 32 bits wide. When the counter reaches the maximum xid value, it starts over at 3 (values under that are reserved) and the epoch value is incremented by one. In some contexts, the epoch and xid values are considered together as a single 64-bit value. + For more information, see Section 8.19.

Transactions per second (TPS)

Average number of transactions that are executed per second, totaled across all sessions active for a measured run. This is used as a measure of the performance characteristics of an instance.

Trigger

A glossary.html#GLOSSARY-FUNCTIONfunction which can be defined to execute whenever a certain operation (INSERT, UPDATE, DELETE, TRUNCATE) is applied to a glossary.html#GLOSSARY-RELATIONrelation. A trigger executes within the same glossary.html#GLOSSARY-TRANSACTIONtransaction as the statement which invoked it, and if the function fails, then the invoking statement also fails. + For more information, see CREATE TRIGGER.

Tuple

A collection of glossary.html#GLOSSARY-ATTRIBUTEattributes in a fixed order. That order may be defined by the glossary.html#GLOSSARY-TABLEtable (or other glossary.html#GLOSSARY-RELATIONrelation) where the tuple is contained, in which case the tuple is often called a row. It may also be defined by the structure of a result set, in which case it is sometimes called a record.

Unique constraint

A type of glossary.html#GLOSSARY-CONSTRAINTconstraint defined on a glossary.html#GLOSSARY-RELATIONrelation which restricts the values allowed in one or a combination of columns so that each value or combination of values can only appear once in the relation — that is, no other row in the relation contains values that are equal to those. + Because glossary.html#GLOSSARY-NULLnull values are not considered equal to each other, multiple rows with null values are allowed to exist without violating the unique constraint.

Unlogged

The property of certain glossary.html#GLOSSARY-RELATIONrelations that the changes to them are not reflected in the glossary.html#GLOSSARY-WALWAL. This disables replication and crash recovery for these relations. + The primary use of unlogged tables is for storing transient work data that must be shared across processes. + glossary.html#GLOSSARY-TEMPORARY-TABLETemporary tables are always unlogged.

Update

An SQL command used to modify glossary.html#GLOSSARY-TUPLErows that may already exist in a specified glossary.html#GLOSSARY-TABLEtable. It cannot create or remove rows. + For more information, see UPDATE.

User

A glossary.html#GLOSSARY-ROLErole that has the LOGIN privilege.

User mapping

The translation of login credentials in the local glossary.html#GLOSSARY-DATABASEdatabase to credentials in a remote data system defined by a glossary.html#GLOSSARY-FOREIGN-DATA-WRAPPERforeign data wrapper. + For more information, see CREATE USER MAPPING.

Vacuum

The process of removing outdated glossary.html#GLOSSARY-TUPLEtuple versions from tables or materialized views, and other closely related processing required by PostgreSQL’s implementation of glossary.html#GLOSSARY-MVCCMVCC. This can be initiated through the use of the VACUUM command, but can also be handled automatically via glossary.html#GLOSSARY-AUTOVACUUMautovacuum processes. + For more information, see Section 25.1 .

View

A glossary.html#GLOSSARY-RELATIONrelation that is defined by a SELECT statement, but has no storage of its own. Any time a query references a view, the definition of the view is substituted into the query as if the user had typed it as a subquery instead of the name of the view. + For more information, see CREATE VIEW.

Visibility map (fork)

A storage structure that keeps metadata about each data page of a table’s main fork. The visibility map entry for each page stores two bits: the first one (all-visible) indicates that all tuples in the page are visible to all transactions. The second one (all-frozen) indicates that all tuples in the page are marked frozen.

WAL

See Write-ahead log.

WAL archiver (process)

An glossary.html#GLOSSARY-AUXILIARY-PROCauxiliary process which, if enabled, saves copies of glossary.html#GLOSSARY-WAL-FILEWAL files for the purpose of creating backups or keeping glossary.html#GLOSSARY-REPLICAreplicas current. + For more information, see Section 26.3.

WAL file

Also known as WAL segment or WAL segment file. Each of the sequentially-numbered files that provide storage space for glossary.html#GLOSSARY-WALWAL. The files are all of the same predefined size and are written in sequential order, interspersing changes as they occur in multiple simultaneous sessions. If the system crashes, the files are read in order, and each of the changes is replayed to restore the system to the state it was in before the crash. + Each WAL file can be released after a glossary.html#GLOSSARY-CHECKPOINTcheckpoint writes all the changes in it to the corresponding data files. Releasing the file can be done either by deleting it, or by changing its name so that it will be used in the future, which is called recycling. + For more information, see Section 30.6.

WAL record

A low-level description of an individual data change. It contains sufficient information for the data change to be re-executed (replayed) in case a system failure causes the change to be lost. WAL records use a non-printable binary format. + For more information, see Section 30.6.

WAL receiver (process)

An glossary.html#GLOSSARY-AUXILIARY-PROCauxiliary process that runs on a glossary.html#GLOSSARY-REPLICAreplica to receive WAL from the glossary.html#GLOSSARY-PRIMARY-SERVERprimary server for replay by the glossary.html#GLOSSARY-STARTUP-PROCESSstartup process. + For more information, see Section 27.2.

WAL segment

See WAL file.

WAL sender (process)

A special glossary.html#GLOSSARY-BACKENDbackend process that streams WAL over a network. The receiving end can be a glossary.html#GLOSSARY-WAL-RECEIVERWAL receiver in a glossary.html#GLOSSARY-REPLICAreplica, pg_receivewal, or any other client program that speaks the replication protocol.

WAL writer (process)

A process that writes glossary.html#GLOSSARY-WAL-RECORDWAL records from glossary.html#GLOSSARY-SHARED-MEMORYshared memory to glossary.html#GLOSSARY-WAL-FILEWAL files. + For more information, see Section 20.5.

Window function (routine)

A type of glossary.html#GLOSSARY-FUNCTIONfunction used in a glossary.html#GLOSSARY-QUERYquery that applies to a glossary.html#GLOSSARY-PARTITIONpartition of the query’s glossary.html#GLOSSARY-RESULT-SETresult set; the function’s result is based on values found in glossary.html#GLOSSARY-TUPLErows of the same partition or frame. + All glossary.html#GLOSSARY-AGGREGATEaggregate functions can be used as window functions, but window functions can also be used to, for example, give ranks to each of the rows in the partition. Also known as analytic functions. + For more information, see Section 3.5.

Write-ahead log

The journal that keeps track of the changes in the glossary.html#GLOSSARY-DB-CLUSTERdatabase cluster as user- and system-invoked operations take place. It comprises many individual glossary.html#GLOSSARY-WAL-RECORDWAL records written sequentially to glossary.html#GLOSSARY-WAL-FILEWAL files.


Prev Up Next

Appendix L. Acronyms

Home

Appendix N. Color Support

Submit correction

If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please use this form to report a documentation issue.

Copyright © 1996-2023 The PostgreSQL Global Development Group