Appendix M. Glosario

Esta es una lista de términos y sus significados en el contexto de PostgreSQL y de los sistemas de bases de datos relacionales en general.

ACID

Atomicidad (Atomicity), Consistencia (Consistency), Aislamiento (Isolation) y Durabilidad (Durability). Este conjunto de propiedades de las transacciones de bases de datos está diseñado para garantizar la validez en operaciones concurrentes e incluso en caso de errores, cortes de energía, etc.

Función de agregación (rutina)

Una función que combina (agrega) múltiples valores de entrada, por ejemplo, contando, promediando o sumando, produciendo un único valor de salida.

Para obtener más información, consulta Section 9.21.

See Also Función de ventana (rutina - Window function).

Método de acceso (Access Method)

Interfaces que utiliza PostgreSQL para acceder a los datos en las tablas y los índices. Esta abstracción permite añadir soporte para nuevos tipos de almacenamiento de datos.

Para obtener más información, consulta Chapter 62 y Chapter 63.

Función analítica

See Función de ventana (rutina - Window function).

Analizar (operación - Analyze)

El acto de recopilar estadísticas de los datos en las tablas y otras relaciones para ayudar al planificador de consultas a tomar decisiones sobre cómo ejecutar las consultas.

(No confundas este término con la opción ANALYZE del comando EXPLAIN).

Para obtener más información, consulta ANALYZE.

E/S asíncrona (I/O) (AIO)

La Entrada/Salida asíncrona (AIO) describe la realización de E/S de forma no bloqueante (asíncrona), en contraste con la E/S síncrona, que bloquea durante toda la duración de la E/S.

Con la AIO, el inicio de una operación de E/S se separa de la espera del resultado de la operación, lo que permite iniciar múltiples operaciones de E/S de forma concurrente, así como realizar operaciones pesadas de CPU concurrentemente con la E/S. El precio de este aumento de la concurrencia es una mayor complejidad.

See Also Entrada/Salida.

Atómico

En referencia a un dato: el hecho de que su valor no se puede descomponer en componentes más pequeños.

En referencia a una transacción de base de datos: consulta atomicidad.

Atomicidad

La propiedad de una transacción de que o bien todas sus operaciones se completan como una sola unidad o no se completa ninguna. Además, si se produce un fallo del sistema durante la ejecución de una transacción, no se verán resultados parciales después de la recuperación. Esta es una de las propiedades ACID.

Atributo

Un elemento con un determinado nombre y tipo de datos que se encuentra dentro de una tupla.

Autovacuum (proceso)

Un conjunto de procesos en segundo plano que realizan rutinariamente operaciones de vacuum y analyze. El proceso auxiliar que coordina el trabajo y que está siempre presente (a menos que autovacuum esté desactivado) se conoce como el lanzador de autovacuum (autovacuum launcher), y los procesos que llevan a cabo las tareas se conocen como los trabajadores de autovacuum (autovacuum workers).

Para obtener más información, consulta Section 24.1.6.

Proceso auxiliar

Un proceso dentro de una instancia que está a cargo de alguna tarea específica en segundo plano para la instancia. Los procesos auxiliares consisten en (en orden alfabético): el lanzador de autovacuum (pero no los trabajadores de autovacuum), el escritor en segundo plano (background writer), el checkpointer, el logger, el proceso de inicio (startup process), el archivador de WAL (WAL archiver), el receptor de WAL (WAL receiver) (pero no los emisores de WAL o WAL senders), el resumidor de WAL (WAL summarizer) y el escritor de WAL (WAL writer).

Backend (proceso)

Proceso de una instancia que actúa en nombre de una sesión de cliente y gestiona sus solicitudes.

(No confundas este término con los términos similares Trabajador en segundo plano (Background Worker) o Escritor en segundo plano (Background Writer)).

Trabajador en segundo plano (proceso - background worker)

Proceso dentro de una instancia que ejecuta código suministrado por el sistema o por el usuario. Sirve como infraestructura para varias características en PostgreSQL, como la replicación lógica y las consultas en paralelo. Además, las extensiones pueden añadir procesos de trabajadores en segundo plano personalizados.

Para obtener más información, consulta Chapter 46.

Escritor en segundo plano (proceso - background writer)

Un proceso auxiliar que escribe las páginas de datos sucias desde la memoria compartida al sistema de archivos. Se despierta periódicamente, pero trabaja solo durante un periodo corto para distribuir su costosa actividad de E/S a lo largo del tiempo para evitar generar picos de E/S mayores que podrían bloquear otros procesos.

Para obtener más información, consulta Section 19.4.4.

Base Backup (Copia de seguridad base)

Una copia binaria de todos los archivos del clúster de bases de datos. Es generada por la herramienta pg_basebackup. En combinación con los archivos WAL, se puede utilizar como punto de partida para la recuperación, el envío de registros (log shipping) o la replicación en flujo (streaming replication).

Hinchamiento (Bloat)

Espacio en las páginas de datos que no contiene versiones de fila actuales, como espacio no utilizado (libre) o versiones de fila obsoletas.

Superusuario de arranque (Bootstrap superuser)

El primer usuario inicializado en un clúster de bases de datos.

Este usuario es el propietario de todas las tablas de catálogo del sistema en cada base de datos. También es el rol del que se originan todos los permisos concedidos. Debido a esto, este rol no se puede eliminar.

Este rol también se comporta como un superusuario de base de datos normal, y su estado de superusuario no se puede quitar.

Estrategia de acceso al búfer (Buffer Access Strategy)

Algunas operaciones accederán a un gran número de páginas. Una estrategia de acceso al búfer ayuda a evitar que estas operaciones expulsen demasiadas páginas de los búferes compartidos.

Una estrategia de acceso al búfer configura referencias a un número limitado de búferes compartidos y los reutiliza circularmente. Cuando la operación requiere una nueva página, se elige un búfer víctima de entre los búferes del anillo de la estrategia, lo que puede requerir escribir los datos sucios de la página y posiblemente también el WAL no escrito en el almacenamiento permanente.

Las estrategias de acceso al búfer se utilizan para diversas operaciones, tales como escaneos secuenciales de tablas grandes, VACUUM, COPY, CREATE TABLE AS SELECT, ALTER TABLE, CREATE DATABASE, CREATE INDEX y CLUSTER.

Cast (Conversión de tipo)

Una conversión de un dato (datum) de su tipo de datos actual a otro tipo de datos.

Para obtener más información, consulta CREATE CAST.

Catálogo

El estándar SQL utiliza este término para indicar lo que se denomina una base de datos en la terminología de PostgreSQL.

(No confundas este término con catálogo del sistema).

Para obtener más información, consulta Section 22.1.

Restricción de verificación (Check constraint)

Un tipo de restricción definida en una relación que restringe los valores permitidos en uno o más atributos. La restricción de verificación puede hacer referencia a cualquier atributo de la misma fila en la relación, pero no puede hacer referencia a otras filas de la misma relación o a otras relaciones.

Para obtener más información, consulta Section 5.5.

Punto de control (Checkpoint)

Un punto en la secuencia del WAL en el que se garantiza que los archivos de datos del montón y del índice se han actualizado con toda la información de la memoria compartida modificada antes de ese punto de control; se escribe y se vacía en el WAL un registro de punto de control (checkpoint record) para marcar ese punto.

Un punto de control es también el acto de llevar a cabo todas las acciones que son necesarias para alcanzar un punto de control tal como se define anteriormente. Este proceso se inicia cuando se cumplen condiciones predefinidas, como el paso de una cantidad de tiempo especificada o la escritura de un cierto volumen de registros; o puede ser invocado por el usuario con el comando CHECKPOINT.

Para obtener más información, consulta Section 28.5.

Checkpointer (proceso)

Un proceso auxiliar que es responsable de ejecutar los puntos de control.

Clase (arcaico)

See Relación (Relation).

Cliente (proceso)

Cualquier proceso, posiblemente remoto, que establece una sesión conectándose a una instancia para interactuar con una base de datos.

Propietario del clúster

El usuario del sistema operativo que es propietario del directorio de datos y bajo el cual se ejecuta el proceso postgres. Se requiere que este usuario exista antes de crear un nuevo clúster de bases de datos.

En los sistemas operativos con un usuario root, dicho usuario no tiene permitido ser el propietario del clúster.

Columna

Un atributo que se encuentra en una tabla o vista.

Confirmar (Commit)

El acto de finalizar una transacción dentro de la base de datos, lo que la hace visible a otras transacciones y asegura su durabilidad.

Para obtener más información, consulta COMMIT.

Concurrencia

El concepto de que múltiples operaciones independientes ocurren dentro de la base de datos al mismo tiempo. En PostgreSQL, la concurrencia está controlada por el mecanismo de control de concurrencia multiversión.

Conexión

Una línea de comunicación establecida entre un proceso cliente y un proceso backend, normalmente a través de una red, que soporta una sesión. Este término se utiliza a veces como sinónimo de sesión.

Para obtener más información, consulta Section 19.3.

Consistencia

La propiedad de que los datos en la base de datos cumplen siempre con las restricciones de integridad. A las transacciones se les puede permitir violar algunas de las restricciones transitoriamente antes de confirmarse, pero si tales violaciones no se resuelven para el momento en que se confirman, dicha transacción se deshace automáticamente (rolled back). Esta es una de las propiedades ACID.

Restricción

Una limitación sobre los valores de datos permitidos dentro de una tabla, o en los atributos de un dominio.

Para obtener más información, consulta Section 5.5.

Sistema de estadísticas acumulativas (Cumulative Statistics System)

Un sistema que, si está activado, acumula información estadística sobre las actividades de la instancia.

Para obtener más información, consulta Section 27.2.

Área de datos

See Directorio de datos (Data directory).

Base de datos

Una colección con nombre de objetos SQL locales.

Para obtener más información, consulta Section 22.1.

Clúster de bases de datos

Una colección de bases de datos y objetos SQL globales, y sus metadatos estáticos y dinámicos comunes. A veces se le denomina simplemente clúster. Un clúster de bases de datos se crea utilizando el programa initdb.

En PostgreSQL, el término clúster también se utiliza a veces para referirse a una instancia. (No confundas este término con el comando SQL CLUSTER).

Consulta también propietario del clúster, el propietario del clúster en el sistema operativo, y superusuario de arranque, el propietario del clúster en PostgreSQL.

Servidor de base de datos

See Instancia.

Superusuario de base de datos

Un rol que tiene el estado de superusuario (ver Section 21.2).

Frecuentemente denominado simplemente superusuario.

Directorio de datos (Data directory)

El directorio base en el sistema de archivos de un servidor que contiene todos los archivos de datos y subdirectorios asociados con un clúster de bases de datos (con la excepción de los espacios de tablas (tablespaces) y, opcionalmente, el WAL). La variable de entorno PGDATA se utiliza comúnmente para referirse al directorio de datos.

El espacio de almacenamiento de un clúster comprende el directorio de datos más cualquier espacio de tabla adicional.

Para obtener más información, consulta Section 66.1.

Página de datos

La estructura básica utilizada para almacenar datos de relación. Todas las páginas son del mismo tamaño. Las páginas de datos se almacenan típicamente en el disco, cada una en un archivo específico, y se pueden leer en los búferes compartidos donde se pueden modificar, convirtiéndose en sucias (dirty). Se vuelven limpias cuando se escriben en el disco. Las páginas nuevas, que inicialmente existen solo en la memoria, también son sucias hasta que se escriben.

Datum (Dato)

La representación interna de un valor de un tipo de datos SQL.

Delete (Eliminar)

Un comando SQL que elimina filas de una tabla o relación dada.

Para obtener más información, consulta DELETE.

Dominio

Un tipo de datos definido por el usuario que se basa en otro tipo de datos subyacente. Se comporta igual que el tipo subyacente, excepto por la posible restricción del conjunto de valores permitidos.

Para obtener más información, consulta Section 8.18.

Durabilidad

La garantía de que una vez que una transacción ha sido confirmada, los cambios permanecen incluso después de un fallo o caída del sistema. Esta es una de las propiedades ACID.

Época (Epoch)

See ID de transacción (Transaction ID).

Extensión

Un paquete de software complementario que se puede instalar en una instancia para obtener características adicionales.

Para obtener más información, consulta Section 36.17.

Segmento de archivo (File segment)

Un archivo físico que almacena datos para una relación dada. Los segmentos de archivo están limitados en tamaño por un valor de configuración (típicamente 1 gigabyte), por lo que si una relación supera ese tamaño, se divide en múltiples segmentos.

Para obtener más información, consulta Section 66.1.

(No confundas este término con el término similar archivo WAL).

Conector de datos externos (Foreign data wrapper)

Un medio para representar datos que no están contenidos en la base de datos local de modo que parezca que están en tablas locales. Con un conector de datos externos es posible definir un servidor externo y tablas externas.

Para obtener más información, consulta CREATE FOREIGN DATA WRAPPER.

Clave foránea (Foreign key)

Un tipo de restricción definida en una o más columnas de una tabla que requiere que los valores de esas columnas identifiquen cero o una fila en otra tabla (o, raramente, en la misma) tabla.

Servidor externo (Foreign server)

Una colección con nombre de tablas externas que utilizan el mismo conector de datos externos y tienen otros valores de configuración en común.

Para obtener más información, consulta CREATE SERVER.

Tabla externa (Foreign table / relación)

Una relación que parece tener filas y columnas similares a una tabla normal, pero que reenviará las solicitudes de datos a través de su conector de datos externos, el cual devolverá conjuntos de resultados estructurados según la definición de la tabla externa.

Para obtener más información, consulta CREATE FOREIGN TABLE.

Bifurcación (Fork)

Cada uno de los conjuntos de archivos segmentados independientes en los que se almacena una relación. La bifurcación principal (main fork) es donde residen los datos reales. También existen dos bifurcaciones secundarias para los metadatos: el mapa de espacio libre (free space map) y el mapa de visibilidad (visibility map). Las relaciones no registradas (unlogged) también tienen una bifurcación de inicialización (init fork).

Mapa de espacio libre (bifurcación - Free space map)

Una estructura de almacenamiento que mantiene metadatos sobre cada página de datos de la bifurcación principal de una tabla. La entrada del mapa de espacio libre para cada página almacena la cantidad de espacio libre que está disponible para futuras tuplas, y está estructurada para ser buscada eficientemente en busca de espacio disponible para una nueva tupla de un tamaño determinado.

Para obtener más información, consulta Section 66.3.

Función (rutina)

Un tipo de rutina que recibe cero o más argumentos, devuelve cero o más valores de salida, y está restringida a ejecutarse dentro de una transacción. Las funciones se invocan como parte de una consulta, por ejemplo, mediante SELECT. Ciertas funciones pueden devolver conjuntos; esas se denominan funciones que devuelven conjuntos (set-returning functions).

Las funciones también pueden ser utilizadas para ser invocadas por disparadores (triggers).

Para obtener más información, consulta CREATE FUNCTION.

GMT

See UTC.

Conceder (Grant)

Un comando SQL que se utiliza para permitir que un usuario o rol acceda a objetos específicos dentro de la base de datos.

Para obtener más información, consulta GRANT.

Montón (Heap)

Contiene los valores de los atributos de fila (es decir, los datos) para una relación. El montón se realiza dentro de uno o más segmentos de archivo en la bifurcación principal de la relación.

Host (Anfitrión)

Una computadora que se comunica con otras computadoras a través de una red. Esto se utiliza a veces como sinónimo de servidor. También se utiliza para referirse a una computadora donde se ejecutan los procesos de cliente.

Índice (relación)

Una relación que contiene datos derivados de una tabla o vista materializada. Su estructura interna admite una recuperación y un acceso rápidos a los datos originales.

Para obtener más información, consulta CREATE INDEX.

Copia de seguridad incremental

Una copia de seguridad base especial que, para algunos archivos, puede contener únicamente aquellas páginas que se modificaron desde una copia de seguridad anterior, a diferencia del contenido completo de cada archivo. Al igual que las copias de seguridad base, es generada por la herramienta pg_basebackup.

Para restaurar copias de seguridad incrementales, se utiliza la herramienta pg_combinebackup, que combina las copias de seguridad incrementales con una copia de seguridad base. Posteriormente, la recuperación puede utilizar el WAL para llevar el clúster de bases de datos a un estado consistente.

Para obtener más información, consulta Section 25.3.3.

Entrada/Salida (E/S (I/O))

La Entrada/Salida (E/S) describe la comunicación entre un programa y los dispositivos periféricos. En el contexto de los sistemas de bases de datos, la E/S se refiere comúnmente, pero no exclusivamente, a la interacción con dispositivos de almacenamiento o la red.

See Also E/S asíncrona (I/O).

Insertar (Insert)

Un comando SQL utilizado para añadir nuevos datos a una tabla.

Para obtener más información, consulta INSERT.

Instancia

Un grupo de procesos de backend y auxiliares que se comunican utilizando un área de memoria compartida común. Un proceso postmaster gestiona la instancia; una instancia gestiona exactamente un clúster de bases de datos con todas sus bases de datos. Muchas instancias se pueden ejecutar en el mismo servidor siempre que sus puertos TCP no entren en conflicto.

La instancia gestiona todas las características clave de un DBMS: acceso de lectura y escritura a los archivos y a la memoria compartida, garantía de las propiedades ACID, conexiones a los procesos de cliente, verificación de privilegios, recuperación tras fallos, replicación, etc.

Aislamiento (Isolation)

La propiedad de que los efectos de una transacción no son visibles para las transacciones concurrentes antes de que esta se confirme. Esta es una de las propiedades ACID.

Para obtener más información, consulta Section 13.2.

Unión (Join)

Una operación y palabra clave SQL utilizada en las consultas para combinar datos de múltiples relaciones.

Clave (Key)

Un medio para identificar una fila dentro de una tabla u otra relación mediante los valores contenidos en uno o más atributos en esa relación.

Bloqueo (Lock)

Un mecanismo que permite a un proceso limitar o impedir el acceso simultáneo a un recurso.

Archivo de registro (Log file)

Los archivos de registro contienen líneas de texto legibles por humanos sobre eventos. Los ejemplos incluyen fallos de inicio de sesión, consultas de larga duración, etc.

Para obtener más información, consulta Section 24.3.

Registrado (Logged)

Una tabla se considera registrada si los cambios en ella se envían al WAL. Por defecto, todas las tablas regulares están registradas. Una tabla se puede especificar como no registrada (unlogged) ya sea en el momento de la creación o mediante el comando ALTER TABLE.

Logger (proceso de registro)

Un proceso auxiliar que, si está habilitado, escribe información sobre los eventos de la base de datos en el archivo de registro actual. Al alcanzar ciertos criterios de tiempo o volumen, se crea un nuevo archivo de registro. También llamado syslogger.

Para obtener más información, consulta Section 19.8.

Clúster de replicación lógica

Un conjunto de instancias publicadoras y suscriptoras, con la instancia publicadora replicando los cambios en la instancia suscriptora.

Registro de bitácora (Log record)

Término arcaico para referirse a un registro de WAL.

Número de secuencia de registro (Log sequence number) (LSN)

Desplazamiento de bytes en el WAL, que aumenta de forma monótona con cada nuevo registro de WAL.

Para obtener más información, consulta pg_lsn y Section 28.6.

LSN

See Número de secuencia de registro (Log sequence number).

Maestro (servidor - Master)

See Primario (servidor - Primary).

Materializado (Materialized)

La propiedad de que alguna información se ha calculado previamente y se ha almacenado para su uso posterior, en lugar de calcularla sobre la marcha (on-the-fly).

Este término se utiliza en vista materializada, para significar que los datos derivados de la consulta de la vista se almacenan en el disco de forma independiente de las fuentes de esos datos.

Este término también se utiliza para referirse a algunas consultas de varios pasos para significar que los datos resultantes de ejecutar un paso determinado se almacenan en la memoria (con la posibilidad de volcarse al disco), de modo que puedan ser leídos varias veces por otro paso.

Vista materializada (Materialized view / relación)

Una relación que está definida por una sentencia SELECT (al igual que una vista), but que almacena datos de la misma manera que lo hace una tabla. No se puede modificar mediante operaciones INSERT, UPDATE, DELETE o MERGE.

Para obtener más información, consulta CREATE MATERIALIZED VIEW.

Merge (Fusionar)

Un comando SQL utilizado para añadir, modificar o eliminar condicionalmente filas en una tabla dada, utilizando los datos de una relación de origen.

Para obtener más información, consulta MERGE.

Control de concurrencia multiversión (MVCC)

Un mecanismo diseñado para permitir que varias transacciones estén leyendo y escribiendo las mismas filas sin que un proceso cause la parada de los otros procesos. En PostgreSQL, MVCC se implementa mediante la creación de copias (versiones) de las tuplas a medida que se modifican; después de que finalizan las transacciones que pueden ver las versiones antiguas, esas versiones antiguas deben eliminarse.

Nulo (Null)

Un concepto de no existencia que es un principio central de la teoría de bases de datos relacionales. Representa la ausencia de un valor definido.

Optimizador

See Planificador de consultas (Query planner).

Consulta en paralelo

La capacidad de gestionar partes de la ejecución de una consulta para aprovechar los procesos paralelos en servidores con múltiples CPUs.

Partición (Partition)

Uno de varios subconjuntos disjuntos (que no se solapan) de un conjunto más grande.

En referencia a una tabla particionada: Una de las tablas que contienen cada una parte de los datos de la tabla particionada, la cual se dice que es la padre (parent). La partición es en sí misma una tabla, por lo que también se puede consultar directamente; al mismo tiempo, una partición puede ser a veces una tabla particionada, lo que permite crear jerarquías.

En referencia a una función de ventana en una consulta, una partición es un criterio definido por el usuario que identifica qué filas vecinas del conjunto de resultados de la consulta pueden ser consideradas por la función.

Tabla particionada (Partitioned table / relación)

Una relación que es en términos semánticos lo mismo que una tabla, pero cuyo almacenamiento se distribuye a través de varias particiones.

Postmaster (proceso)

El primer proceso de una instancia. Inicia y gestiona los procesos auxiliares y crea procesos de backend bajo demanda.

Para obtener más información, consulta Section 18.3.

Clave primaria (Primary key)

Un caso especial de una restricción de unicidad definida en una tabla u otra relación que además garantiza que todos los atributos dentro de la clave primaria no tengan valores nulos. Como su nombre indica, solo puede haber una clave primaria por tabla, aunque es posible tener múltiples restricciones de unicidad que tampoco tengan atributos capaces de contener nulos.

Primario (servidor - Primary)

Cuando dos o más bases de datos están vinculadas a través de la replicación, el servidor que se considera la fuente de información autoritativa se denomina el primario (primary), también conocido como maestro (master).

Procedimiento (rutina - Procedure)

Un tipo de rutina. Sus cualidades distintivas son que no devuelven valores y que se les permite realizar sentencias transaccionales tales como COMMIT y ROLLBACK. Se invocan mediante el comando CALL.

Para obtener más información, consulta CREATE PROCEDURE.

Consulta (Query)

Una solicitud enviada por un cliente a un backend, normalmente para devolver resultados o modificar datos en la base de datos.

Planificador de consultas (Query planner)

La parte de PostgreSQL que se dedica a determinar (planificar) la forma más eficiente de ejecutar las consultas. También conocido como optimizador de consultas, optimizador o simplemente planificador.

Registro (Record)

See Tupla (Tuple).

Reciclaje (Recycling)

See Archivo WAL (WAL file).

Integridad referencial

Un medio para restringir los datos en una relación mediante una clave foránea de modo que deba tener datos coincidentes en otra relación.

Relación (Relation)

El término genérico para todos los objetos de una base de datos que tienen un nombre y una lista de atributos definidos en un orden específico. Las tablas, secuencias, vistas, tablas externas, vistas materializadas, los tipos compuestos y los índices son todos relaciones.

De manera más genérica, una relación es un conjunto de tuplas; por ejemplo, el resultado de una consulta es también una relación.

En PostgreSQL, Clase (Class) es un sinónimo arcaico de relación.

Réplica (servidor - Replica)

Una base de datos que está emparejada con una base de datos primaria y mantiene una copia de algunos o todos los datos de la base de datos primaria. Las razones principales para hacer esto son permitir un mayor acceso a esos datos, y mantener la disponibilidad de los datos en caso de que la primaria deje de estar disponible.

Replicación

El acto de reproducir datos de un servidor en otro servidor llamado réplica. Esto puede tomar la forma de replicación física, donde todos los cambios de archivos de un servidor se copian textualmente, o de replicación lógica donde un subconjunto definido de cambios de datos se transmite utilizando una representación de nivel superior.

Punto de reinicio (Restartpoint)

Una variante de un punto de control realizado en una réplica.

Para obtener más información, consulta Section 28.5.

Conjunto de resultados (Result set)

Una relación transmitida desde un proceso de backend a un cliente al finalizar un comando SQL, normalmente un SELECT pero puede ser un comando INSERT, UPDATE, DELETE o MERGE si se especifica la cláusula RETURNING.

El hecho de que un conjunto de resultados sea una relación significa que una consulta se puede utilizar en la definición de otra consulta, convirtiéndose en una subconsulta.

Revoke (Revocar)

Un comando para impedir el acceso a un conjunto con nombre de objetos de la base de datos para una lista con nombre de roles.

Para obtener más información, consulta REVOKE.

Rol (Role)

Una colección de privilegios de acceso a la instancia. Los roles son en sí mismos un privilegio que se puede conceder a otros roles. Esto se hace a menudo por conveniencia o para garantizar la completitud cuando múltiples usuarios necesitan los mismos privilegios.

Para obtener más información, consulta CREATE ROLE.

Rollback (Deshacer)

Un comando para deshacer todas las operaciones realizadas desde el inicio de una transacción.

Para obtener más información, consulta ROLLBACK.

Rutina (Routine)

Un conjunto definido de instrucciones almacenadas en el sistema de base de datos que se puede invocar para su ejecución. Una rutina se puede escribir en una variedad de lenguajes de programación. Las rutinas pueden ser funciones (incluidas las funciones que devuelven conjuntos y las funciones disparadoras), funciones de agregación, y procedimientos.

Muchas rutinas ya están definidas dentro del propio PostgreSQL, pero también se pueden añadir rutinas definidas por el usuario.

Fila (Row)

See Tupla (Tuple).

Punto de salvaguarda (Savepoint)

Una marca especial en la secuencia de pasos de una transacción. Las modificaciones de datos después de este punto en el tiempo se pueden revertir al momento del punto de salvaguarda.

Para obtener más información, consulta SAVEPOINT.

Esquema (Schema)

Un esquema es un espacio de nombres para los objetos SQL, los cuales residen todos en la misma base de datos. Cada objeto SQL debe residir exactamente en un esquema.

Todos los objetos SQL definidos por el sistema residen en el esquema pg_catalog.

De manera más genérica, el término esquema se utiliza para significar todas las descripciones de datos (definiciones de tabla, restricciones, comentarios, etc.) para una base de datos dada o un subconjunto de la misma.

Para obtener más información, consulta Section 5.10.

Segmento (Segment)

See Segmento de archivo (File segment).

Select (Seleccionar)

El comando SQL utilizado para solicitar datos de una base de datos. Normalmente, no se espera que los comandos SELECT modifiquen la base de datos de ninguna manera, pero es posible que las funciones invocadas dentro de la consulta tengan efectos secundarios que sí modifiquen los datos.

Para obtener más información, consulta SELECT.

Secuencia (relación)

Un tipo de relación que se utiliza para generar valores. Normalmente, los valores generados son números secuenciales no repetitivos. Se utilizan comúnmente para generar valores de clave primaria sustitutos.

Servidor (Server)

Una computadora en la que se ejecutan las instancias de PostgreSQL. El término servidor denota hardware real, un contenedor o una máquina virtual.

Este término se utiliza a veces para referirse a una instancia o a un host.

Sesión (Session)

Un estado que permite a un cliente y a un backend interactuar, comunicándose a través de una conexión.

Memoria compartida (Shared memory)

La memoria RAM que es utilizada por los procesos comunes a una instancia. Refleja partes de los archivos de la base de datos, proporciona un área transitoria para los registros de WAL y almacena información común adicional. Ten en cuenta que la memoria compartida pertenece a toda la instancia, no a una sola base de datos.

La mayor parte de la memoria compartida se conoce como los búferes compartidos (shared buffers) y se utiliza para reflejar parte de los archivos de datos, organizados en páginas. Cuando se modifica una página, se denomina página sucia hasta que se escribe de nuevo en el sistema de archivos.

Para obtener más información, consulta Section 19.4.1.

Objeto SQL

Cualquier objeto que se pueda crear con un comando CREATE. La mayoría de los objetos son específicos de una base de datos y se conocen comúnmente como objetos locales.

La mayoría de los objetos locales residen en un esquema específico en su base de datos contenedora, tales como relaciones (todos los tipos), rutinas (todos los tipos), tipos de datos, etc. Se hace cumplir que los nombres de tales objetos del mismo tipo en el mismo esquema sean únicos.

También existen objetos locales que no residen en esquemas; algunos ejemplos son las extensiones, las conversiones de tipo de datos (casts) y los conectores de datos externos. Se hace cumplir que los nombres de tales objetos del mismo tipo sean únicos dentro de la base de datos.

Otros tipos de objetos, como los roles, espacios de tablas (tablespaces), los orígenes de replicación, las suscripciones para la replicación lógica y las propias bases de datos no son objetos SQL locales, ya que existen completamente fuera de cualquier base de datos específica; se denominan objetos globales. Se hace cumplir que los nombres de tales objetos sean únicos dentro de todo el clúster de bases de datos.

Para obtener más información, consulta Section 22.1.

Estándar SQL

Una serie de documentos que definen el lenguaje SQL.

Standby (servidor de reserva)

See Réplica (servidor - Replica).

Proceso de inicio (Startup process)

Un proceso auxiliar que reproduce el WAL durante la recuperación tras una caída y en una réplica física.

(El nombre es histórico: el proceso de inicio se nombró antes de que se implementara la replicación; el nombre se refiere a su tarea en relación con el inicio del servidor después de una caída).

Superusuario

Tal como se utiliza en esta documentación, es un sinónimo de superusuario de base de datos.

Catálogo del sistema

Una colección de tablas que describen la estructura de todos los objetos SQL de la instancia. El catálogo del sistema reside en el esquema pg_catalog. Estas tablas contienen datos en una representación interna y normalmente no se consideran útiles para el examen del usuario; un número de vistas más fáciles de usar, también en el esquema pg_catalog, ofrecen un acceso más conveniente a parte de esa información, mientras que existen tablas y vistas adicionales en el esquema information_schema (ver Chapter 35) que exponen parte de la misma y de otra información adicional tal como lo exige el estándar SQL.

Para obtener más información, consulta Section 5.10.

Tabla

Una colección de tuplas que tienen una estructura de datos común (el mismo número de atributos, en el mismo orden, con el mismo nombre y tipo por posición). Una tabla es la forma más común de relación en PostgreSQL.

Para obtener más información, consulta CREATE TABLE.

Espacio de tablas (Tablespace)

Una ubicación con nombre en el sistema de archivos del servidor. Todos los objetos SQL que requieren almacenamiento más allá de su definición en el catálogo del sistema deben pertenecer a un único espacio de tablas. Inicialmente, un clúster de bases de datos contiene un único espacio de tablas utilizable que se utiliza como el predeterminado para todos los objetos SQL, llamado pg_default.

Para obtener más información, consulta Section 22.6.

Tabla temporal

Tablas que existen bien para la duración de una sesión o bien de una transacción, tal como se especifique en el momento de la creación. Los datos en ellas no son visibles para otras sesiones y no se registran (logged). Las tablas temporales se utilizan a menudo para almacenar datos intermedios para una operación de varios pasos.

Para obtener más información, consulta CREATE TABLE.

TOAST

Un mecanismo mediante el cual los atributos grandes de las filas de la tabla se dividen y se almacenan en una tabla secundaria, llamada la tabla TOAST. Cada relación con atributos grandes tiene su propia tabla TOAST.

Para obtener más información, consulta Section 66.2.

Transacción

Una combinación de comandos que deben actuar como un único atómico comando: todos tienen éxito o todos fallan como una sola unidad, y sus efectos no son visibles para otras sesiones hasta que se completa la transacción, y posiblemente incluso más tarde, dependiendo del nivel de aislamiento.

Para obtener más información, consulta Section 13.2.

ID de transacción (Transaction ID)

El identificador numérico, único y asignado secuencialmente que cada transacción recibe cuando causa por primera vez una modificación en la base de datos. Frecuentemente abreviado como xid. Cuando se almacenan en el disco, los xids tienen solo 32 bits de ancho, por lo que solo se pueden generar aproximadamente cuatro mil millones de IDs de transacciones de escritura; para permitir que el sistema funcione durante más tiempo que eso, se utilizan las épocas (epochs), también de 32 bits de ancho. Cuando el contador alcanza el valor máximo de xid, comienza de nuevo en 3 (los valores inferiores a ese están reservados) y el valor de la época se incrementa en uno. En algunos contextos, los valores de época y xid se consideran juntos como un único valor de 64 bits; consulta Section 67.1 para obtener más detalles.

Para obtener más información, consulta Section 8.19.

Transacciones por segundo (TPS)

El número promedio de transacciones que se ejecutan por segundo, totalizado de todas las sesiones activas para una ejecución medida. Esto se utiliza como una medida de las características de rendimiento de una instancia.

Disparador (Trigger)

Una función que se puede definir para ejecutarse siempre que se aplique una determinada operación (INSERT, UPDATE, DELETE, TRUNCATE) a una relación. Un disparador se ejecuta dentro de la misma transacción que la sentencia que lo invocó, y si la función falla, la sentencia invocadora también falla.

Para obtener más información, consulta CREATE TRIGGER.

Tupla (Tuple)

Una colección de atributos en un orden fijo. Ese orden puede estar definido por la tabla (u otra relación) donde está contenida la tupla, en cuyo caso la tupla a menudo se denomina fila (row). También puede estar definido por la estructura de un conjunto de resultados, en cuyo caso a veces se denomina registro (record).

Restricción de unicidad (Unique constraint)

Un tipo de restricción definida en una relación que restringe los valores permitidos en una o en una combinación de columnas de modo que cada valor o combinación de valores solo pueda aparecer una vez en la relación — es decir, ninguna otra fila en la relación contiene valores que sean iguales a esos.

Debido a que los valores nulos no se consideran iguales entre sí, se permite que existan múltiples filas con valores nulos sin violar la restricción de unicidad.

No registrado (Unlogged)

La propiedad de ciertas relaciones de que los cambios en ellas no se reflejan en el WAL. Esto desactiva la replicación y la recuperación tras caídas para estas relaciones.

El uso principal de las tablas no registradas es almacenar datos de trabajo transitorios que deben compartirse entre procesos.

Las tablas temporales están siempre no registradas.

Update (Actualizar)

Un comando SQL utilizado para modificar las filas que ya puedan existir en una tabla especificada. No puede crear ni eliminar filas.

Para obtener más información, consulta UPDATE.

Usuario (User)

Un rol que tiene el privilegio de inicio de sesión (login privilege) (ver Section 21.2).

Mapeo de usuarios (User mapping)

La traducción de las credenciales de inicio de sesión en la base de datos local a las credenciales en un sistema de datos remoto definido por un conector de datos externos (foreign data wrapper).

Para obtener más información, consulta CREATE USER MAPPING.

UTC

Tiempo Universal Coordinado (Universal Coordinated Time), la principal referencia horaria global, aproximadamente la hora que prevalece en el meridiano cero de longitud. A menudo, pero de forma inexacta, se denomina GMT (Greenwich Mean Time).

Vacuum (Vaciar)

El proceso de eliminar las versiones de tuplas obsoletas de las tablas o vistas materializadas, y otros procesos estrechamente relacionados requeridos por la implementación de MVCC de PostgreSQL. Esto se puede iniciar mediante el uso del comando VACUUM, pero también se puede gestionar automáticamente a través de los procesos de autovacuum.

Para obtener más información, consulta Section 24.1 .

Vista (View)

Una relación que está definida por una sentencia SELECT, pero que no tiene almacenamiento propio. Cada vez que una consulta hace referencia a una vista, la definición de la vista se sustituye en la consulta como si el usuario la hubiera escrito como una subconsulta en lugar del nombre de la vista.

Para obtener más información, consulta CREATE VIEW.

Mapa de visibilidad (bifurcación - Visibility map)

Una estructura de almacenamiento que mantiene metadatos sobre cada página de datos de la bifurcación principal de una tabla. La entrada del mapa de visibilidad para cada página almacena dos bits: el primero (all-visible) indica que todas las tuplas en la página son visibles para todas las transacciones. El segundo (all-frozen) indica que todas las tuplas en la página están marcadas como congeladas.

WAL

See Registro de escritura anticipada (Write-ahead log / WAL).

Archivador de WAL (proceso - WAL archiver)

Un proceso auxiliar que, si está habilitado, guarda copias de los archivos WAL con el fin de crear copias de seguridad o mantener las réplicas al día.

Para obtener más información, consulta Section 25.3.

Archivo WAL (WAL file)

También conocido como segmento WAL (WAL segment) o archivo de segmento WAL. Cada uno de los archivos numerados secuencialmente que proporcionan espacio de almacenamiento para el WAL. Los archivos son todos del mismo tamaño predefinido y se escriben en orden secuencial, intercalando los cambios a medida que ocurren en múltiples sesiones simultáneas. Si el sistema se cae, los archivos se leen en orden y cada uno de los cambios se vuelve a aplicar para restaurar el sistema al estado en el que se encontraba antes de la caída.

Cada archivo WAL se puede liberar después de que un punto de control escriba todos los cambios que contiene en los archivos de datos correspondientes. La liberación del archivo se puede hacer eliminándolo o cambiando su nombre para que sea utilizado en el futuro, lo cual se denomina reciclaje (recycling).

Para obtener más información, consulta Section 28.6.

Registro de WAL (WAL record)

Una descripción de bajo nivel de un cambio de datos individual. Contiene información suficiente para que el cambio de datos se vuelva a ejecutar (replayed) en caso de que un fallo del sistema haga que el cambio se pierda. Los registros de WAL utilizan un formato binario no imprimible.

Para obtener más información, consulta Section 28.6.

Receptor de WAL (proceso - WAL receiver)

Un proceso auxiliar that se ejecuta en una réplica para recibir WAL del servidor primario para su reproducción por parte del proceso de inicio.

Para obtener más información, consulta Section 26.2.

WAL segment

See Archivo WAL (WAL file).

Emisor de WAL (proceso - WAL sender)

Un proceso de backend especial que transmite WAL a través de una red. El extremo receptor puede ser un receptor de WAL en una réplica, pg_receivewal o cualquier otro programa cliente que hable el protocolo de replicación.

Resumidor de WAL (proceso - WAL summarizer)

Un proceso auxiliar que resume los datos del WAL para las copias de seguridad incrementales.

Para obtener más información, consulta Section 19.5.7.

Escritor de WAL (proceso - WAL writer)

Un proceso auxiliar que escribe los registros de WAL desde la memoria compartida a los archivos WAL.

Para obtener más información, consulta Section 19.5.

Función de ventana (rutina - Window function)

Un tipo de función utilizada en una consulta que se aplica a una partición del conjunto de resultados de la consulta; el resultado de la función se basa en los valores encontrados en las filas de la misma partición o marco (frame).

Todas las funciones de agregación se pueden utilizar como funciones de ventana, pero las funciones de ventana también se pueden utilizar para, por ejemplo, dar rangos o clasificaciones a cada una de las filas de la partición. También conocidas como funciones analíticas.

Para obtener más información, consulta Section 3.5.

Registro de escritura anticipada (Write-ahead log / WAL)

El diario que realiza un seguimiento de los cambios en el clúster de bases de datos a medida que ocurren las operaciones invocadas por el usuario y el sistema. Comprende muchos registros de WAL individuales escritos secuencialmente en archivos WAL.