Apêndice M. Glossário

Esta é uma lista de termos e seus significados no contexto do PostgreSQL e de sistemas de banco de dados relacionais em geral.

ACID

Atomicidade, Consistência, Isolamento e Durabilidade. Este conjunto de propriedades das transações do banco de dados visa garantir a validade durante operações concorrentes, mesmo em caso de erros, travamento, falta de energia, etc.

Agrupamento de bancos de dados (database cluster)

Uma coleção de bancos de dados e objetos SQL globais, bem como seus metadados estáticos e dinâmicos comuns. Às vezes referido como um agrupamento (cluster). Um agrupamento de banco de dados é criado usando o programa initdb.

No PostgreSQL, o termo agrupamento também é usado às vezes para se referir a uma instância. (Este termo não deve ser confundido com o comando CLUSTER do SQL.)

Veja também dono do agrupamento, o usuário do sistema operacional dono do agrupamento, e superusuário da inicialização, o usuário do PostgreSQL dono de um agrupamento.

Agrupamento de replicação lógica

Um conjunto de instâncias de publicador e subscritor, onde a instância do publicador replica as alterações para a instância do subscritor.

ANALYZE (operação de analisar)

O processo de coletar estatísticas de dados em tabelas e outras relações, para auxiliar o planejador de consultas a tomar decisões sobre como executar as consultas.

(Este termo não deve ser confundido com a opção ANALYZE do comando EXPLAIN.)

Para obter mais informações, veja ANALYZE.

Área de dados

Ver Diretório de dados (data directory).

Arquivo de registro (log file)

Os arquivos de registro contêm linhas de texto legíveis por humanos sobre eventos. Os exemplos incluem falhas de conexão, consultas com execução demorada, etc.

Para obter mais informações, veja Manutenção do arquivo de registro de eventos.

Arquivo do WAL

Também conhecido como segmento do WAL, ou arquivo de segmento do WAL. Cada um dos arquivos numerados sequencialmente que fornecem espaço de armazenamento para o WAL. Os arquivos são todos do mesmo tamanho predefinido, escritos em ordem sequencial, intercalando as alterações à medida que ocorrem em várias sessões simultâneas. Se o sistema travar, os arquivos são lidos em ordem, e cada uma das alterações é repetida para restaurar o sistema ao estado em que se encontrava antes da falha.

Cada arquivo do WAL pode ser liberado após um ponto de verificação escrever todas as alterações nele nos arquivos de dados correspondentes. A liberação do arquivo pode ser feita tanto excluindo-o, quanto alterando seu nome para poder ser utilizado futuramente, o que é chamado de reciclagem.

Para obter mais informações, veja Seção 28.6.

Atomicidade

Propriedade de uma transação, onde todas as suas operações são concluídas como uma única unidade, ou nenhuma delas é concluída. Além disso, se ocorrer uma falha do sistema durante a execução de uma transação, nenhum resultado parcial será visível após a recuperação. Esta é uma das propriedades ACID.

Atômico

Em referência a datum: o fato do valor não poder ser dividido em componentes menores.

Em referência a transação de banco de dados: veja atomicidade.

Atributo

Elemento com nome e tipo de dados encontrado em uma tupla.

Autovacuum (processo automático de limpeza e análise)

Um conjunto de processos em segundo plano que executam rotineiramente as operações vacuum e analyze. O processo auxiliar que coordena o trabalho e está sempre presente (a menos que a limpeza automática esteja desativada) é conhecido como lançador da limpeza automática, e os processos que executam as tarefas são conhecidos como trabalhadores de limpeza automática.

Para obter mais informações, veja O processo de limpeza automática.

Backend (processo)

Processo em uma instância que funciona em nome de uma sessão cliente tratando suas requisições.

(Não deve ser confundido este termo com os termos semelhantes Background Worker ou Background Writer).

Background worker (processo)

Processo em uma instância que executa código fornecido pelo sistema ou pelo usuário. Serve como infraestrutura para diversas funcionalidades do PostgreSQL, tais como replicação lógica e consultas paralelas. Além disso, as Extensões podem adicionar processos trabalhadores em segundo plano personalizados.

Para obter mais informações, veja Background Worker Processes.

Background writer (processo)

Um processo auxiliar que escreve páginas de dados sujas da memória compartilhada para o sistema de arquivos. Este processo acorda periodicamente, funcionando apenas por um curto período, para distribuir sua custosa atividade de E/S ao longo do tempo, para evitar a geração de picos de E/S maiores que poderiam bloquear outros processos.

Para obter mais informações, veja Escritor em segundo plano.

Banco de dados (database)

Uma coleção com nome de objetos SQL locais.

Para obter mais informações, veja Visão geral.

Bloqueio (lock)

Mecanismo que permite um processo limitar ou impedir o acesso simultâneo a um recurso.

Cast (conversão)

Uma conversão de um datum do seu tipo de dados corrente para outro tipo de dados.

Para obter mais informações, veja CREATE CAST.

Catálogo

O padrão SQL usa este termo para indicar o que é chamado de banco de dados na terminologia do PostgreSQL.

(Este termo não deve ser confundido com catálogo do sistema).

Para obter mais informações, veja Visão geral.

Catálogo do sistema

Coleção de tabelas que descrevem a estrutura de todos os objetos SQL da instância. O catálogo do sistema reside no esquema pg_catalog. Estas tabelas contêm dados na representação interna, e normalmente não são consideradas úteis para serem examinadas pelo usuário; também estão presentes visões amigáveis no esquema pg_catalog, que oferecem acesso mais conveniente a algumas dessas informações. Também existem tabelas e visões adicionais no esquema information_schema, mostrando algumas das mesmas informações, e outras adicionais, conforme exigido pelo padrão SQL (veja Esquema de informações).

Para obter mais informações, veja Esquemas.

Chave (key)

Maneira de identificar uma linha de uma tabela, ou de outra relação, pelos valores contidos em um ou mais atributos da relação.

Chave estrangeira (foreign key)

Tipo de restrição definida em uma ou mais colunas de uma tabela, requerendo que os valores nessas colunas identifiquem zero ou uma linha em outra (ou, com menos frequência, na mesma) tabela.

Chave primária (primary key)

Caso especial de restrição de unicidade (unique constraint), definida em uma tabela ou outra relação, que também garante que todos os atributos da chave primária também não tenham valores nulos. Como o nome indica, pode haver apenas uma chave primária por tabela, embora seja possível ter várias restrições de unicidade que também não tenham atributos que possam ser nulos.

Checkpointer (processo)

Um processo auxiliar responsável pela execução de pontos de verificação.

Classe (arcaico)

Ver Relação.

Cliente (processo)

Qualquer processo, possivelmente remoto, que estabeleça uma sessão se conectando a uma instância para interagir com um banco de dados.

Coluna

Um atributo encontrado em uma tabela ou visão.

Concorrência (simultaneidade)

Conceito de que múltiplas operações independentes acontecem no banco de dados ao mesmo tempo. No PostgreSQL a concorrência é controlada pelo mecanismo de controle de concorrência multiversão (MVCC).

Conexão

Uma linha de comunicação estabelecida entre um processo cliente e um backend, geralmente através de uma rede, dando suporte a uma sessão. Este termo às vezes é usado como sinônimo de sessão.

Para obter mais informações, veja Conexões e autenticação.

Conjunto de resultados (result set)

Uma relação transmitida de um processo backend para um cliente após a conclusão de um comando SQL, geralmente um SELECT mas pode ser um comando INSERT, UPDATE, DELETE ou MERGE se for especificada a cláusula RETURNING.

O fato do conjunto de resultados ser uma relação, significa que uma consulta pode ser utilizada na definição de outra consulta, tornando-se uma subconsulta.

Consistência

Propriedade que os dados no banco de dados estão sempre em acordo com as restrições de integridade. As transações podem violar algumas das restrições transitoriamente antes de serem efetivadas, mas se estas violações não estiverem resolvidas no momento da efetivação, esta transação será automaticamente desfeita (rolled back). Esta é uma das propriedades ACID.

Cópia de segurança base (base backup)

Cópia binária de todos os arquivos do agrupamento de bancos de dados. É gerado pela ferramenta pg_basebackup. Juntamente com arquivos do WAL, pode ser usada como ponto de partida para recuperação, envio de registro de eventos (log), ou replicação por fluxo (streaming).

Consulta (query)

Solicitação enviada pelo cliente ao processo servidor, geralmente para retornar resultados, ou para modificar dados no banco de dados.

Consulta paralela

Capacidade de lidar com partes da execução de uma consulta, para tirar vantagem dos processos paralelos em servidores com várias CPUs.

Controle de concorrência multiversão (multi-version concurrency control – MVCC)

Mecanismo projetado para permitir que várias transações estejam lendo e escrevendo as mesmas linhas, sem que um processo cause a interrupção de outros processos. No PostgreSQL, o MVCC é implementado criando cópias (versões) das tuplas enquanto elas vão sendo modificados; depois que as transações que podem ver as versões antigas terminam, estas versões antigas precisam ser removidas.

Cópia de segurança incremental

Uma cópia de segurança base especial, onde alguns arquivos podem conter apenas as páginas modificadas após a última cópia de segurança, em oposição ao conteúdo completo de cada arquivo. Assim como a cópia de segurança base, a cópia de segurança incremental é gerada pelo utilitário pg_basebackup.

Para restaurar as cópias de segurança incrementais é utilizado o utilitário pg_combinebackup, que combina as cópias de segurança incrementais com a cópia de segurança base. Depois, a recuperação pode usar o WAL para trazer o agrupamento de bancos de dados para um estado consistente.

Para obter mais informações, veja Making an Incremental Backup.

Datum

Representação interna do valor de um tipo de dados SQL.

DELETE

Comando SQL que remove linhas de uma tabela ou relação.

Para obter mais informações, veja DELETE.

Diretório de dados (data directory)

Diretório base no sistema de arquivos do servidor, que contém todos os arquivos de dados e subdiretórios associados ao agrupamento de bancos de dados (com exceção dos espaços de tabelas (tablespaces) e, opcionalmente, do WAL). A variável de ambiente PGDATA é comumente usada para fazer referência ao diretório de dados.

O espaço de armazenamento do agrupamento de bancos de dados engloba o diretório de dados, mais quaisquer espaços de tabelas adicionais.

Para obter mais informações, veja Distribuição dos arquivos de banco de dados.

Domínio

Um tipo de dados definido pelo usuário que se baseia em outro tipo de dados subjacente. Ele funciona da mesma forma que o tipo de dados subjacente, exceto pela possível restrição do conjunto de valores permitidos.

Para obter mais informações, veja Tipos de dados de domínio.

Dono do agrupamento de bancos de dados (cluster)

O usuário do sistema operacional que é dono do diretório de dados e sob o qual o processo postgres é executado. É necessário que este usuário exista antes de criar um novo agrupamento de bancos de dados.

Em sistemas operacionais com um usuário root este usuário não tem permissão para ser o dono do agrupamento.

Durabilidade

Garantia de que uma vez que a transação tenha sido efetivada (committed), as alterações permanecerão mesmo após uma falha ou travamento do sistema. Esta é uma das propriedades ACID.

E/S assíncrona (ESA)

E/S assíncrona (ESA) descreve a execução de E/S de forma não bloqueante (assíncrona), em contraste com a E/S síncrona, que bloqueia durante toda a duração da E/S.

Com ESA, iniciar uma operação de E/S é separado de esperar pelo resultado da operação, permitindo que várias operações de E/S sejam iniciadas simultaneamente, bem como executar operações pesadas de CPU simultaneamente com E/S. O preço desse aumento na concorrência é o aumento da complexidade.

Ver Também Entrada/Saída.

Efetivação (commit)

O ato de finalizar uma transação no banco de dados, tornando-a visível para as demais transações, e garantindo a sua durabilidade.

Para obter mais informações, veja COMMIT.

Empacotador de dados estrangeiros (foreign data wrapper)

Meio de representar dados que não estão contidos no banco de dados local, de tal forma que pareça como se estivesse nas tabelas locais. Com um empacotador de dados estrangeiros, é possível definir um servidor estrangeiro (foreign server), e tabelas estrangeiras (foreign tables).

Para obter mais informações, veja CREATE FOREIGN DATA WRAPPER.

Entrada/Saída (E/S)

Entrada/Saída (E/S) descreve a comunicação entre um programa e dispositivos periféricos. No contexto de sistemas de banco de dados, E/S geralmente, mas não unicamente, refere-se à interação com dispositivos de armazenamento ou com a rede.

Ver Também E/S assíncrona.

Epoch (época ou era)

Ver ID de transação.

Esquema (schema)

Esquema é um espaço de nomes para objetos SQL, onde todos residem no mesmo banco de dados. Cada objeto SQL deve residir em exatamente um esquema.

Todos os objetos SQL definidos pelo sistema residem no esquema pg_catalog.

Mais genericamente, o termo esquema é usado significando todas as descrições de dados (definições de tabela, restrições, comentários, etc.) para um dado banco de dados, ou subconjunto do mesmo.

Para obter mais informações, veja Esquemas.

Espaço de tabelas (tablespace)

Local com nome no sistema de arquivos do servidor. Todos os objetos SQL que requerem armazenamento, além de sua definição no catálogo do sistema, devem pertencer a um único espaço de tabelas. Inicialmente, o agrupamento de bancos de dados contém um único espaço de tabelas utilizável, usado como padrão para todos os objetos SQL, chamado pg_default.

Para obter mais informações, veja Espaços de tabela.

Estratégia de Acesso ao Buffer

Algumas operações acessarão um grande número de páginas. A Estratégia de Acesso ao Buffer ajuda a evitar que estas operações removam muitas páginas dos buffers compartilhados.

Uma estratégia de acesso ao buffer estabelece referências a um número limitado de buffers compartilhados e os reutiliza de forma circular. Quando uma operação requer uma nova página, é escolhido um buffer vítima dentre os buffers no anel da estratégia, o que pode exigir o descarregamento dos dados sujos da página e, possivelmente, também do WAL não descarregado para o armazenamento permanente.

As estratégias de acesso ao buffer são usadas para diversas operações, como varreduras sequenciais de tabelas grandes, VACUUM, COPY, CREATE TABLE AS SELECT, ALTER TABLE, CREATE DATABASE, CREATE INDEX e CLUSTER.

Extensão

Pacote complementar de software, que pode ser instalado em uma instância para obter recursos extras.

Para obter mais informações, veja Empacotamento de objetos relacionados em uma extensão.

Fork (ramificação)

Cada um dos conjuntos de arquivos divididos em segmentos nos quais a relação é armazenada. O segmento principal (main fork) é onde os dados reais estão. Também existem dois segmentos (forks) secundários para metadados: o mapa de espaço livre e o mapa de visibilidade. As relações UNLOGGED também possuem um segmento inicial.

Fragmentação (bloat)

Espaço em páginas de dados que não contém versões de linha correntes, como espaço não utilizado (livre), ou versões de linha desatualizadas.

Função (rotina)

Tipo de rotina que recebe zero ou mais argumentos, retorna zero ou mais valores de saída, sendo limitada a ser executada em uma transação. As funções são chamadas como parte de uma consulta, por exemplo, através do comando SELECT. Certas funções podem retornar conjuntos; estas funções são chamadas de funções retornando conjunto.

As funções também podem ser usadas por gatilhos.

Para obter mais informações, veja CREATE FUNCTION.

Função analítica

Ver Função de janela (rotina).

Função de agregação (rotina)

Função que combina (agrega) vários valores de entrada, por exemplo, contando, calculando a média ou somando, produzindo um único valor de saída.

Para obter mais informações, veja Funções de agregação.

Veja também Função de janela (rotina).

Função de banco de dados (role)

Coleção de privilégios de acesso à instância. As próprias funções de banco de dados são um privilégio que pode ser concedido a outras funções de banco de dados. Isto é geralmente feito por conveniência, ou para garantir a integridade quando vários usuários precisam dos mesmos privilégios.

Para obter mais informações, veja CREATE ROLE.

Função de janela (rotina)

Tipo de função usada em uma consulta, que se aplica a uma partição do conjunto de resultados da consulta; o resultado da função se baseia nos valores encontrados nas linhas da mesma partição ou quadro.

Todas as funções de agregação podem ser usadas como funções de janela, mas funções de janela também podem ser usadas para, por exemplo, classificar cada uma das linhas na partição. Também são conhecidas como funções analíticas.

Para obter mais informações, veja Funções de janela.

Gatilho (trigger)

função que pode ser definida para ser executada sempre que uma determinada operação (INSERT, UPDATE, DELETE, TRUNCATE) é aplicada a uma relação. O gatilho executa dentro da mesma transação que a instrução que o disparou e, se a função falhar, a instrução que a disparou o gatilho também irá falhar.

Para obter mais informações, veja CREATE TRIGGER.

GMT

Ver UTC.

GRANT (permissão)

Comando SQL usado para permitir um usuário (user), ou uma função de banco de dados (role), acessar objetos específicos no banco de dados.

Para obter mais informações, veja GRANT.

Heap (pilha)

Contém os valores dos atributos da linha (ou seja, os dados) de uma relação. O heap é estruturado em um ou mais segmentos de arquivo no segmento principal da relação.

Host (hospedeiro)

Computador que se comunica com outros computadores em uma rede. Às vezes é usado como sinônimo de servidor. Também é usado para se referir a um computador onde um processo cliente executa.

ID de transação

Identificador numérico, único e atribuído sequencialmente, para que cada transação receba um quando causa uma modificação no banco de dados. Frequentemente abreviado como xid. Quando armazenados em disco, os xids têm apenas 32 bits de comprimento, portanto, apenas aproximadamente quatro bilhões de identificadores de transação podem ser gerados; para permitir que o sistema funcione por mais tempo, são usadas épocas (epochs), também com 32 bits de comprimento. Quando o contador atinge o valor de xid máximo, ele recomeça em 3 (valores abaixo desse são reservados), e o valor da época é incrementado em um. Em alguns contextos, os valores de época e xid são considerados juntos como um único valor de 64 bits; para obter mais informações, veja Seção 67.1.

Para obter mais informações, veja Tipos de dados de identificador de objeto.

Índice (relação)

Uma relação que contém dados derivados de uma tabela ou visão materializada. Sua estrutura interna apoia a recuperação rápida e acesso aos dados originais.

Para obter mais informações, veja CREATE INDEX.

INSERT

Comando SQL usado para adicionar dados a uma tabela.

Para obter mais informações, veja INSERT.

Instância

Um grupo de backends e processos auxiliares que se comunicam usando uma área de memória compartilhada comum. Um processo postmaster gerencia a instância; uma instância gerencia exatamente um agrupamento de bancos de dados com todos os seus bancos de dados. Podem ser executadas várias instâncias no mesmo servidor, desde que suas portas TCP não entrem em conflito.

A instância trata de todas as funcionalidades principais de um SGBD: acesso de leitura e escrita para arquivos e memória compartilhada, garantia das propriedades ACID, conexões com os processos cliente, verificação de privilégios, recuperação de falhas, replicação, etc.

Isolamento

A propriedade de que os efeitos de uma transação não são visíveis para as transações concorrentes antes dessa transação ser efetivada (commit). Esta é uma das propriedades ACID.

Para obter mais informações, veja Isolamento de transação.

Integridade referencial

Um meio de restringir os dados em uma relação através de uma chave estrangeira, de modo que deva ter dados correspondentes em outra relação.

JOIN (junção)

Uma operação e palavra-chave do SQL usada em consultas, para combinar dados de várias relações.

Linha

Ver Tupla.

Log sequence number (LSN)

Deslocamento de bytes para o WAL, aumentando monotonicamente a cada novo registro do WAL.

Para obter mais informações, veja pg_lsn e Seção 28.6.

LOGGED (com registro de transações)

Uma tabela é considerada LOGGED se suas alterações são enviadas para o WAL. Por padrão, todas as tabelas regulares têm registro de transações. Uma tabela pode ser especificada como UNLOGGED no momento da criação, ou através do comando ALTER TABLE.

Logger (processo)

Um processo auxiliar que, se estiver ativo, escreve informações sobre eventos do banco de dados no arquivo de registro corrente. Ao atingir determinados critérios dependentes de tempo ou volume, é criado um novo arquivo de registro. Também é chamado de syslogger.

Para obter mais informações, veja Seção 19.8.

LSN

Ver Log sequence number.

Mapa de espaço livre (ramificação)

Estrutura de armazenamento que mantém metadados sobre cada página de dados da ramificação principal (main fork) da tabela. A entrada do mapa de espaço livre para cada página armazena a quantidade de espaço livre que está disponível para tuplas futuras, sendo estruturada para ser procurada com eficiência pelo espaço disponível para uma nova tupla de um determinado tamanho.

Para obter mais informações, veja Mapa de espaço livre.

Mapa de visibilidade (ramificação)

Estrutura de armazenamento que mantém metadados sobre cada página de dados da ramificação principal (main fork) da tabela. A entrada do mapa de visibilidade para cada página armazena dois bits: o primeiro (all-visible/tudo-visível), indica que todas as tuplas na página são visíveis para todas as transações; o segundo (all-frozen/tudo-congelado), indica que todas as tuplas na página estão marcadas como congeladas.

Mapeamento de usuário (user mapping)

A tradução das credenciais de login no banco de dados local, em credenciais em um sistema de dados remoto definido por um empacotador de dados estrangeiros.

Para obter mais informações, veja CREATE USER MAPPING.

Master (servidor mestre)

Ver Primário (servidor).

Materializada

A propriedade de que algumas informações foram pré-computadas e armazenadas para uso posterior, em vez de serem computadas novamente.

Este termo é usado na visão materializada, significando que os dados derivados da visão da consulta estão armazenados em disco em separado das fontes desses dados.

Este termo também é usado para se referir a algumas consultas de várias etapas, significando que os dados resultantes da execução de uma determinada etapa são armazenados na memória (com a possibilidade de serem descarregados para o disco), para poderem ser lidos várias vezes por outra etapa.

Memória compartilhada (shared memory)

Memória RAM usada pelos processos comuns a uma instância. Espelha partes dos arquivos do banco de dados, mantendo uma área transitória para os registros do WAL, e armazenando informações comuns adicionais. Note que a memória compartilhada pertence à instância inteira, e não a um único banco de dados.

A maior parte da memória compartilhada é conhecida como buffers compartilhados, usados para espelhar parte dos arquivos de dados, organizados em páginas. Quando uma página é modificada, ela é chamada de página suja até que seja escrita de volta no sistema de arquivos.

Para obter mais informações, veja Memória.

MERGE

Um comando SQL usado para adicionar, modificar ou remover condicionalmente linhas de uma tabela, usando dados de uma relação fonte.

Para obter mais informações, veja MERGE.

Método de acesso

Interfaces que o PostgreSQL usa para acessar dados em tabelas e índices. Esta abstração permite adicionar suporte para novos tipos de armazenamento de dados.

Para obter mais informações, veja Definição da interface do método de acesso à tabela e Definição da interface do método de acesso a índice.

NULL

Conceito de inexistência, que é um princípio central da teoria de banco de dados relacional. Representa a ausência de um valor definido.

Otimizador

Ver Planejador de consultas (query planner).

Objeto SQL

Qualquer objeto que pode ser criado com um comando CREATE. A maioria dos objetos são específicos de um banco de dados, sendo comumente conhecidos como objetos locais.

A maioria dos objetos locais reside em um esquema específico em seu banco de dados contenedor, como relações (todos os tipos), rotinas (todos os tipos), tipos de dados, etc. Os nomes dos objetos de mesmo tipo no mesmo esquema são obrigatoriamente distintos.

Também existem objetos locais que não residem em esquemas; alguns exemplos são: extensões; conversões de tipo de dados; e empacotadores de dados estrangeiros. Os nomes desses objetos do mesmo tipo são obrigatoriamente distintos no banco de dados.

Outros tipos de objetos, como funções de banco de dados, espaços de tabelas, origens de replicação, subscrições para replicação lógica, e os próprios bancos de dados, não são objetos SQL locais, porque existem inteiramente fora de qualquer banco de dados específico; são chamados de objetos globais. Os nomes de tais objetos são obrigatoriamente distintos em todo o agrupamento de bancos de dados.

Para obter mais informações, veja Visão geral.

Padrão SQL

Série de documentos que definem a linguagem SQL.

Página de dados (data page)

Estrutura básica usada para armazenar os dados da relação. Todas as páginas são do mesmo tamanho. As páginas de dados são normalmente armazenadas em disco, cada uma em um arquivo específico, podendo ser lidas para a área de memória compartilhada (shared buffers) onde podem ser modificadas, tornando-se sujas. Elas se tornam limpas novamente quando são escritas no disco. As páginas novas, que inicialmente existem apenas na memória, também estão sujas até serem escritas no disco.

Partição

Um dos vários subconjuntos disjuntos (não sobrepostos) de um conjunto maior.

Em referência a tabela particionada: Uma das tabelas que contém parte dos dados da tabela particionada, que é considerada a mãe. A própria partição é uma tabela, portanto, também pode ser consultada diretamente; ao mesmo tempo, às vezes uma partição pode ser uma tabela particionada, permitindo a criação de hierarquias.

Em referência a função de janela em uma consulta, uma partição é um critério definido pelo usuário que identifica quais linhas vizinhas no conjunto de resultados da consulta devem ser consideradas pela função.

Planejador de consultas (query planner)

A parte do PostgreSQL que se dedica a determinar (planejar) a maneira mais eficiente de executar as consultas. Também conhecido como otimizador de consultas, otimizador, ou simplesmente planejador.

Ponto de reinício (restartpoint)

Uma variante do ponto de verificação realizado em uma réplica.

Para obter mais informações, veja Seção 28.5.

Ponto de salvamento (savepoint)

Marca especial na sequência de etapas de uma transação. As modificações feitas nos dados após este ponto podem ser desfeitas para o momento do ponto de salvamento.

Para obter mais informações, veja SAVEPOINT.

Ponto de verificação (checkpoint)

Ponto na sequência do WAL, no qual é garantido que os arquivos de dados do heap e de índice foram atualizados com todas as informações da memória compartilhada modificada antes desse ponto de verificação; um registro de ponto de verificação é escrito e descarregado para o WAL para marcar este ponto.

O ponto de verificação também é o ato de realizar todas as ações necessárias para chegar a um ponto de verificação conforme definido acima. Este processo é iniciado quando condições predefinidas são atendidas, como um determinado intervalo de tempo, ou um determinado volume de registros foi escrito; ou pode ser chamado pelo usuário com o comando CHECKPOINT.

Para obter mais informações, veja Seção 28.5.

Postmaster (processo)

O primeiro processo de uma instância. Ele inicia e gerencia os processos auxiliares e cria os processos backend sob demanda.

Para obter mais informações, veja Inicialização do servidor de banco de dados.

Primário (servidor)

Quando dois ou mais bancos de dados estão ligados por replicação, o servidor considerado fonte oficial da informação é chamado de primário, sendo também conhecido como mestre (master).

Procedimento (rotina)

Tipo de rotina. Suas qualidades distintivas são não retornar valores, e poder fazer declarações transacionais como COMMIT e ROLLBACK. São chamados através do comando CALL.

Para obter mais informações, veja CREATE PROCEDURE.

Processo auxiliar

Um processo em uma instância responsável por alguma tarefa específica em segundo plano para a instância. Os processos auxiliares consistem no autovacuum launcher (mas não os trabalhadores de limpeza automática), o background writer, o checkpointer, o logger, o startup process, o WAL archiver, o WAL receiver (mas não os WAL senders), e WAL summarizer, e o WAL writer.

Processo de inicialização

Um processo auxiliar que reproduz o WAL durante a recuperação de falhas e em uma réplica física.

(Este nome é histórico.: O processo de inicialização recebeu este nome antes da implementação da replicação; o nome se refere à sua função no que diz respeito à inicialização do servidor após uma falha.)

Reciclagem

Ver Arquivo do WAL.

Registro

Ver Tupla.

Registro do Log

Termo arcaico para registro do WAL.

Registro do WAL

Descrição de baixo nível de uma alteração de dados individual. Contém informações suficientes para que a alteração de dados seja reproduzida (repetida), caso uma falha do sistema cause a perda da alteração. Os registros do WAL usam um formato binário não imprimível.

Para obter mais informações, veja Seção 28.6.

Relação

Termo genérico para designar todos os objetos em um banco de dados possuidores de nome, e uma lista de atributos definidos em uma ordem específica. Tabelas, sequências, visões, tabelas estrangeiras, visões materializadas, tipos compostos e índices são todos relações.

Mais genericamente, uma relação é um conjunto de tuplas; por exemplo, o resultado de uma consulta também é uma relação.

No PostgreSQL, classe é um sinônimo arcaico para relação.

Réplica (servidor)

Banco de dados emparelhado com um banco de dados primário, mantendo uma cópia de alguns ou todos os dados do banco de dados principal. As principais razões para fazer isto são permitir maior acesso a estes dados, e manter a disponibilidade dos dados no caso do servidor primário se tornar indisponível.

Replicação

Ato de reproduzir dados de um servidor em outro servidor chamado de réplica. Pode tomar a forma de uma replicação física, onde todas as alterações de arquivo de um servidor são copiadas literalmente, ou uma replicação lógica, onde um subconjunto definido de alterações de dados é transmitido usando uma representação de nível mais alto.

Restrição (constraint)

Uma restrição aos valores de dados permitidos em uma tabela, ou em atributos de um domínio.

Para obter mais informações, veja Restrições.

Restrição de unicidade (unique constraint)

Tipo de restrição definida em uma relação, que restringe os valores permitidos em uma, ou em uma combinação de colunas, para que cada valor, ou combinação de valores, apareça apenas uma vez na relação — ou seja, nenhuma outra linha na relação pode conter estes valores em duplicidade.

Como os valores nulos não são considerados iguais entre si, podem existir várias linhas com valores nulos sem violar a restrição de unicidade.

Restrição de verificação (check constraint)

Um tipo de restrição definida em uma relação que restringe os valores permitidos em um ou mais atributos. A restrição de verificação pode fazer referência a qualquer atributo da mesma linha na relação, mas não pode fazer referência a outras linhas da mesma relação, ou a outras relações.

Para obter mais informações, veja Restrições.

REVOKE

Comando para impedir acesso a um conjunto de objetos com nome no banco de dados, para uma lista com nome de funções de banco de dados (roles).

Para obter mais informações, veja REVOKE.

ROLLBACK (desfazer)

Comando para desfazer todas as operações realizadas desde o início da transação.

Para obter mais informações, veja ROLLBACK.

Rotina

Conjunto definido de instruções armazenadas no sistema de banco de dados, que podem ser chamados para execução. As rotinas podem ser escritas em várias linguagens de programação. As rotinas podem ser funções (incluindo funções que retornam conjuntos e funções de gatilho), funções de agregação, e procedimentos.

Muitas rotinas se encontram definidas dentro do próprio PostgreSQL, e também podem ser adicionadas rotinas definidas pelo usuário.

Segmento

Ver Segmento de arquivo (file segment).

Segmento de arquivo (file segment)

Arquivo físico que armazena dados para uma determinada relação. Os segmentos de arquivo são limitados em tamanho por um valor de configuração (normalmente 1 gigabyte), portanto, se uma relação exceder este tamanho, será dividida em vários segmentos.

Para obter mais informações, veja Distribuição dos arquivos de banco de dados.

(Este termo não deve ser confundido com o termo semelhante segmento do WAL).

Segmento do WAL

Ver Arquivo do WAL.

SELECT

Comando SQL usado para requisitar dados do banco de dados. Geralmente, não se espera que os comandos SELECT modifiquem o banco de dados de alguma maneira, mas é possível que as funções chamadas na consulta tenham efeitos colaterais que modificam os dados.

Para obter mais informações, veja SELECT.

Sequência (relação)

Tipo de relação usada para gerar valores. Normalmente, os valores gerados são números sequenciais não repetidos. São comumente usadas para gerar os valores da chave primária.

Servidor

Computador onde as instâncias do PostgreSQL executam. O termo servidor denota um hardware real, um contenedor, ou uma máquina virtual.

Às vezes, este termo é usado para se referir a uma instância ou a um hospedeiro.

Servidor de banco de dados

Ver Instância.

Servidor em modo de espera (standby server)

Ver Réplica (servidor).

Servidor estrangeiro (foreign server)

Uma coleção com nome de tabelas estrangeiras, onde todas usam o mesmo empacotador de dados estrangeiros, e possuem outros valores de configuração em comum.

Para obter mais informações, veja CREATE SERVER.

Sessão

Estado que permite que um cliente e um processo servidor interajam, comunicando-se através de uma conexão.

Sistema de estatísticas cumulativas

Um sistema que, se ativado, acumula informações estatísticas sobre as atividades da instância.

Para obter mais informações, veja O Sistema de Estatísticas Cumulativas.

Superusuário da inicialização

O primeiro usuário inicializado em um agrupamento de bancos de dados (cluster).

Este usuário é o dono de todas as tabelas do catálogo do sistema em cada banco de dados. É também a função de banco de dados (role) da qual se originam todas as permissões concedidas. Devido a estes fatores, esta função de banco de dados não pode ser excluída.

Esta função de banco de dados também se comporta como um superusuário do banco de dados, normal, e seu privilégio de superusuário não pode ser removido.

Superusuário

Conforme usado nesta documentação, é sinônimo de superusuário do banco de dados.

Superusuário do banco de dados

Uma função de banco de dados o que possui o privilégio de superusuário (veja Role Attributes).

Frequentemente referido como superusuário.

Tabela

Coleção de tuplas tendo uma estrutura de dados comum (o mesmo número de atributos, na mesma ordem, tendo o mesmo nome e tipo de dados por posição). A tabela é a forma mais comum de relação no PostgreSQL.

Para obter mais informações, veja CREATE TABLE.

Tabela estrangeira (foreign table) (relação)

Relação que parece ter linhas e colunas semelhantes a uma tabela comum, mas que encaminha as solicitações de dados por meio de seu empacotador de dados estrangeiros, que retorna conjuntos de resultado estruturados segundo a definição da tabela estrangeira.

Para obter mais informações, veja CREATE FOREIGN TABLE.

Tabela particionada (relação)

Uma relação que é em termos semânticos o mesmo que uma tabela, mas cujo armazenamento está distribuído entre várias partições.

Tabela temporária

Tabela que existe durante o tempo de vida de uma sessão ou de uma transação, conforme especificado no momento da criação. Os dados das tabelas temporárias não são visíveis para outras sessões, e não são registrados. As tabelas temporárias são frequentemente usadas para armazenar dados intermediários para uma operação de várias etapas.

Para obter mais informações, veja CREATE TABLE.

TOAST

A técnica de armazenamento de atributos superdimensionados (The Oversized-Attribute Storage Technique)

Mecanismo pelo qual atributos grandes de linhas da tabela são divididos e armazenados em uma tabela secundária, chamada de tabela TOAST. Cada relação com atributos grandes tem sua própria tabela TOAST.

Para obter mais informações, veja TOAST.

Transação

Combinação de comandos que devem atuar como um único comando atômico: todos os comandos são bem sucedidos, ou todos falham, como uma única unidade, e seus efeitos não são visíveis para as outras sessões até que a transação seja concluída, e possivelmente até mais tarde, dependendo do nível de isolamento.

Para obter mais informações, veja Isolamento de transação.

Transações por segundo (TPS)

Número médio de transações executadas por segundo, totalizado em todas as sessões ativas para uma execução medida. É usado como medida das características de desempenho de uma instância.

Tupla

Coleção de atributos em uma ordem fixa. Esta ordem pode ser definida pela tabela (ou outra relação) onde a tupla está contida, caso em que a tupla é geralmente chamada de linha. Também pode ser definida pela estrutura de um conjunto de resultados, caso em que às vezes é chamada de registro.

UNLOGGED (sem registro de transações)

Propriedade de certas relações, nas quais as alterações ocorridas não são escritas no WAL, desativando a replicação e a recuperação de falhas para estas relações.

O uso principal das tabelas sem registro de transações é armazenar dados de trabalho transitórios, compartilhados entre processos.

As tabelas temporárias são sempre sem registro de transações (unlogged).

UPDATE

Comando SQL usado para modificar linhas que já devem existir em uma determinada tabela. Não pode criar ou remover linhas.

Para obter mais informações, veja UPDATE.

Usuário (user)

Uma função de banco de dados que possui o privilégio de se conectar (LOGIN) (veja Role Attributes).

UTC

O Tempo Universal Coordenado (Universal Coordinated Time), a principal referência de tempo global, aproximadamente o horário vigente no meridiano de longitude zero. Frequentemente, mas incorretamente, referido como GMT (Greenwich Mean Time).

Visão (view)

Uma relação definida por um comando SELECT, mas que não possui armazenamento próprio. Sempre que uma consulta faz referência a uma visão, a definição da visão é substituída na consulta, como se o usuário a tivesse digitado como uma subconsulta, em vez do nome da visão.

Para obter mais informações, veja CREATE VIEW.

Visão materializada (relação)

Relação definida por uma instrução SELECT (como uma visão), mas que armazena os dados da mesma maneira que uma tabela o faz. Não pode ser modificada através das operações INSERT, UPDATE, ou DELETE.

Para obter mais informações, veja CREATE MATERIALIZED VIEW.

Vacuum

Processo de remoção de versões de tuplas desatualizadas, de tabelas ou visões materializadas, e outros processamentos estreitamente relacionados, exigidos pela implementação do MVCC do PostgreSQL. Pode ser iniciado através do uso do comando VACUUM, mas também pode ser tratado automaticamente através dos processos de autovacuum.

Para obter mais informações, veja Limpeza de rotina.

WAL

Ver WAL – registro de transações (write-ahead log).

WAL – registro de transações (write-ahead log)

O registro de escrita antecipada que acompanha as mudanças no agrupamento de bancos de dados (instância), à medida que ocorrem as operações realizadas pelos usuários e pelo sistema. É composto por muitos registros do WAL individuais, escritos sequencialmente nos arquivos do WAL.

WAL archiver (arquivador de WAL) (processo)

Um processo auxiliar que, se ativado, salva cópias de arquivos do WAL com o objetivo de criar cópias de segurança ou manter as réplicas correntes.

Para obter mais informações veja Continuous Archiving and Point-in-Time Recovery (PITR).

WAL receiver (receptor de WAL) (processo)

Um processo auxiliar que executa em uma réplica para receber WAL do servidor primário para reprodução pelo processo de inicialização.

Para obter mais informações, veja Seção 26.2.

WAL sender (transmissor de WAL) (processo)

Um processo backend especial, que transmite o WAL através de uma rede. A extremidade receptora pode ser um receptor de WAL em uma réplica, pg_receivewal, ou qualquer outro programa cliente que use o protocolo de replicação.

WAL summarizer (sumarizador de WAL) (processo)

Um processo auxiliar que sumariza os dados do WAL para cópia de segurança incremental.

Para obter mais informações, veja Resumo do WAL.

WAL writer (escritor de WAL) (processo)

Um processo auxiliar que escreve registros do WAL da memória compartilhada para os arquivos do WAL.

Para obter mais informações, veja Registro de escrita antecipada (WAL).