Pular para o conteúdo principal

Terminologias

Aqui estão definidos alguns termos de especial importância ao lidar com a Plataforma PostgreSYS. Esta lista apresenta os principais termos utilizados nesta documentação, juntamente com suas definições e detalhes adicionais quando aplicável.

Algoritmo de Compressão LZ

O algoritmo LZ (Lempel-Ziv), especificamente o LZ77, é uma técnica de compressão baseada na substituição de sequências repetidas de dados por referências a uma única ocorrência anterior. Funciona gerando códigos de tamanho fixo para sequências (palavras) de tamanho variável, registadas numa tabela de dicionário.

Algoritmo de Compressão Zstandard (zstd)

Zstandard, ou zstd, é um algoritmo de compressão de dados de alto desempenho e código aberto desenvolvido pelo Facebook. Oferece compressão sem perdas e é depalavra-passedo para ser rápido tanto na compressão quanto na descompressão.

Armazenamento Chave-Valor

Um sistema de armazenamento chave-valor armazena dados como um conjunto de pares chave-valor, onde a chave serve como um identificador único para o valor. Este tipo de armazenamento oferece simplicidade e flexibilidade.

Arquivamento Contínuo

O arquivamento contínuo no PostgreSQL envolve a escrita de cópias dos ficheiros de log transacionais (WAL) num local secundário. Este processo é crucial para a prevenção de perda de dados e permite a recuperação da base de dados até um ponto no tempo (PITR).

Árvore de Pesquisa Generalizada (GiST)

GiST é uma estrutura de dados flexível que permite a implementação de uma variedade de árvores de pesquisa, como árvores B+, R-trees, entre outras. É particularmente útil para indexação de dados complexos e consultas multidimensionais.

Balanceador de Cargas

Um balanceador de cargas distribui solicitações de rede ou aplicação por um grupo de servidores, otimizando o uso dos recursos, maximizando a velocidade de resposta e evitando sobrecarga em qualquer servidor individual.

Base de Dados

Uma base de dados é um conjunto organizado de dados armazenados eletronicamente, geralmente acessado e gerido por um Sistema de Gestão de Base de Dados (SGBD).

Backup Completo

Cópia integral de todos os dados dum sistema ou base de dados num determinado ponto no tempo.

Backup Diferencial

Cópia dos dados que foram alterados ou adicionados desde o último Backup completo.

Backup Incremental

Cópia dos dados que foram alterados ou adicionados desde o último backup, seja completo ou incremental.

Catálogos

Catálogos no PostgreSQL contêm metadados que descrevem e acompanham estruturas de dados, como tabelas, índices e funções. São essenciais para a gestão interna e operação da base de dados.

Chave Estrangeira

Uma chave estrangeira é uma coluna ou conjunto de colunas numa tabela que referenciam a chave primária de outra tabela, usada para garantir a integridade referencial entre tabelas.

Chave Primária

A chave primária é uma ou mais colunas que identificam unicamente cada linha (tupla) numa tabela, usada para garantir a integridade dos dados e frequentemente referenciada por chaves estrangeiras noutras tabelas.

Checksum

Checksum é uma soma de verificação usada para verificar a integridade de dados. Algoritmos como MD5 e SHA são usados para gerar um valor hash único a partir de dados de entrada, permitindo a detecção de alterações nos dados.

Crontab

Crontab é um programa do Unix que edita o ficheiro onde são especificados os comandos a serem executados, bem como a hora e dia de execução pelo cron, um serviço que executa comandos agendados nos Sistemas Operativos do Tipo Unix. O cron encarrega-se de verificar a hora e determinar se existe ou não algum programa a ser executado. Caso exista, ele executá-lo-á na hora e data solicitadas.

chroot jail

Técnica de segurança que isola processos, limitando a sua visão do sistema de ficheiros ao diretório designado, restringindo o acesso do processo a um ambiente confinado.

Cluster

Um 'Cluster' no PostgreSQL refere-se a uma coleção de bases de dados geridas por uma única instância do servidor PostgreSQL.

Compilação Just in Time (JIT)

A compilação JIT no PostgreSQL compila partes do código SQL em tempo de execução, visando melhorar o desempenho das consultas.

Consenso Distribuído

Consenso distribuído refere-se ao processo de alcançar um acordo coletivo em sistemas descentralizados ou distribuídos. É essencial para sistemas que requerem fiabilidade e consistência, como blockchains e sistemas de bases de dados distribuídos.

Controlo de Concorrência Multiversão (MVCC)

MVCC é um modelo de controlo de concorrência utilizado pelo PostgreSQL para permitir que múltiplas transações ocorram simultaneamente sem bloqueios, mantendo a consistência dos dados.

Delta Restore

Delta restore é uma técnica de recuperação que permite restaurar apenas as alterações ocorridas desde o último Backup completo ou incremental, poupando tempo e recursos ao aplicar apenas os dados alterados ao estado anterior da base de dados.Este método é particularmente útil em ambientes com grandes volumes de dados, onde cópias de segurança completas frequentes podem ser impraticáveis.

Encoding

Encoding refere-se ao conjunto de caracteres utilizado para armazenar texto na base de dados. O PostgreSQL suporta vários tipos de encoding, incluindo UTF-8, que permite a representação de uma ampla gama de caracteres de diferentes línguas.

EPEL

EPEL (Extra Packages for Enterprise Linux) é um Repositório de pacotes de software adicionais para Linux Enterprise e distribuições compatíveis, como CentOS e Red Hat Enterprise Linux.

Failover

Processo automático ou manual de troca para um sistema secundário ou de Backup quando o sistema primário falha ou fica indisponível, garantindo a continuidade das operações e disponibilidade dos dados, minimizando o tempo de inatividade.

Fallback

Processo de retorno a um estado anterior ou a um sistema primário após uma tentativa de failover ou atualização que não obteve sucesso ou não é mais necessário.

gRPC

gRPC é um framework de chamada de procedimento remoto (RPC) de alto desempenho que suporta comunicação entre serviços em diferentes linguagens de programação, facilitando a construção de sistemas distribuídos.

Graceful Shutdown

Refere-se ao processo de desligar um sistema ou aplicação de forma controlada, terminando processos ativos e guardando dados conforme necessário para evitar perda ou corrupção de dados.

Herança de Tabelas

A herança de tabelas no PostgreSQL permite que uma tabela "herde" colunas de uma ou mais tabelas, facilitando a reutilização de esquemas e a organização de dados hierárquicos.

Huge Pages

As huge pages são uma funcionalidade dos sistemas operativos modernos que permite a alocação de memória utilizando páginas significativamente maiores do que o tamanho padrão (geralmente de 4 KB a 2 MB ou mais, dependendo do sistema). Esta funcionalidade foi concebida para melhorar o desempenho de aplicações que requerem grandes volumes de memória, reduzindo a sobrecarga de gestão de páginas na tabela de páginas do sistema operativo e diminuindo os misses no TLB (Translation Lookaside Buffer). Ao utilizar as huge pages, aplicações com uso intensivo de memória, como bases de dados e servidores de aplicações, podem alcançar uma utilização mais eficiente dos recursos do sistema, resultando em tempos de resposta mais rápidos e maior throughput.

Índice B-tree

Índices B-tree são a estrutura de índice padrão no PostgreSQL, otimizados para processamento rápido de consultas que envolvem ordenação e buscas por intervalo.

Índice Invertido Generalizado (GIN)

Índices GIN são utilizados no PostgreSQL para indexar elementos dentro de valores compostos, como arrays e documentos JSON, melhorando o desempenho de consultas que buscam por elementos específicos.

Integridade Referencial

A integridade referencial é um conceito fundamental nos sistemas de gestão de bases de dados relacionais que assegura a consistência e a precisão das relações entre as tabelas. É mantida através de regras e restrições, como chaves primárias e chaves externas, que garantem que as referências entre as tabelas permaneçam válidas e que ações como inserção, atualização e eliminação de dados não violem a integridade dos mesmos. Por exemplo, uma restrição de chave externa impede que um registo numa tabela que referencia outro registo numa tabela diferente seja eliminado se o registo referenciado for essencial para a consistência dos dados entre as tabelas. Isto é crucial para evitar dados órfãos e garantir a fiabilidade das relações de dados dentro da base de dados.

Listen addresses

Especifica os endereços TCP/IP nos quais o servidor estará "escutando" conexões de aplicações cliente. Os valores assumem a forma de uma lista de nomes de servidores ou enderesços numéricos de IP separada por virgulas.

Locale

Locale refere-se à configuração regional que afeta a formatação de texto, datas, números e outras convenções de dados, permitindo a personalização conforme as preferências locais.

Métodos de Autenticação

No PostgreSQL, diversos métodos de autenticação são suportados, incluindo trust, password, md5, scram-sha-256, e reject, cada um oferecendo diferentes níveis de segurança e conveniência.

Objetos de Base de Dados

Objetos de base de dados no PostgreSQL incluem tabelas, visões, índices, funções, entre outros, utilizados para armazenar, organizar e manipular dados.

PGDATA

PGDATA é o diretório onde todos os dados, incluindo ficheiros de configuração e bases de dados, de uma instância do PostgreSQL são armazenados.

Normalmente, este diretório possui:

  • Ficheiros de Configuração;

    • postgresql.conf: ficheiro de configuração principal da instância PostgreSQL
    • pg_hba.conf: ficheiro de controlo de acesso baseado em regras.
    • pg_ident.conf: ficheiro utilizado para mapear usuários do Sistema Operativo para usuários da instância PostgreSQL.
    • recovery.con: ficheiro de configuração utilizado para configurar a recuperação de uma instância PostgreSQL.
    • Outros ficheiros
      • postmaster.pid: contém o PID do processo da instância PostgreSQL em execução. Utilizado para evitar a execução de uma segunda instância ou processo no mesmo diretório.
      • postmaster.opts: contém o comando de inicialização da instância PostgeSQL.
      • PG_VERSION: contém a versão do PostgreSQL.
  • Diretórios

    • base: contém, por padrão, os ficheiros de dados dispostos em subdiretórios para cada Base de Dados. Dentro destes subdiretórios são armazenados os ficheiros de cada página de dados ou índice duma determinada Base de Dados.
    • global: contém os ficheiros dos catálogos (pg_database, pg_class, etc.) e são visíveis globalmente.
    • pg_wal: armazena os ficheiros da WAL (Write Ahead Log) gerados continuamente.
    • log: armazena os logs de operação da instância PostgreSQL.

PGPASS

O ficheiro .pgpass permite armazenar palavra-passes de forma segura para facilitar a autenticação automática em scripts e ferramentas que acedem ao PostgreSQL.

PGPORT

PGPORT é o número da porta TCP utilizada pelo servidor PostgreSQL para escutar conexões de rede, sendo a porta padrão 5432.

Point-In-Time Recovery

A recuperação a um ponto no tempo (Point-In-Time Recovery, PITR) é uma técnica avançada que permite restaurar uma base de dados para um estado exato num determinado momento no tempo, oferecendo uma granularidade fina na recuperação de perdas acidentais de dados ou danos. Isto é alcançado através da combinação de backups completos da base de dados com logs de transações (também conhecidos como WAL no PostgreSQL), que registam todas as alterações efetuadas na base de dados após o último backup completo. A PITR é especialmente valiosa em ambientes de produção, pois permite que os administradores de bases de dados revertam apenas os efeitos de operações específicas indesejadas ou maliciosas, minimizando a perda de dados válidos e o tempo de inatividade do sistema, ao mesmo tempo que maximiza a disponibilidade e a integridade dos dados.

Proxy Reverso

Proxy reverso é um tipo de servidor proxy que encaminha requisições de clientes para outros servidores, comumente utilizado para balanceamento de carga, segurança e caching.

Replicação Assíncrona de Dados

A replicação assíncrona no PostgreSQL permite a cópia de dados para servidores de réplica sem bloquear as operações no servidor primário, suportando alta disponibilidade e distribuição geográfica dos dados.

RPM

RPM é um sistema de gestão de pacotes usado em distribuições Linux baseadas em Red Hat, facilitando a instalação, atualização e remoção de software.

Savepoint

Savepoint permite a criação dum ponto de restauração dentro de uma transação no PostgreSQL, oferecendo maior controlo sobre operações de base de dados e permitindo desfazer uma parte da transação sem abortá-la completamente.

Schema

Em bases de dados, um esquema (schema) é uma estrutura lógica que define a organização, os relacionamentos e as restrições dos dados, funcionando como um contentor para agrupar objetos da base de dados, como tabelas, vistas, índices e funções. Os esquemas ajudam na organização e na segurança dos dados, permitindo que diferentes usuários ou aplicações operem dentro de espaços lógicos separados na mesma base de dados, sem interferirem entre si. Além disso, oferecem uma forma de implementar a separação de conceitos, facilitando a gestão de permissões, a manutenção da base de dados e a escalabilidade das aplicações, ao permitir uma organização lógica dos dados de forma clara e estruturada.

SIGHUP

SIGHUP é um sinal enviado a processos do Sistema Operativo para indicar fecho de terminal ou recarregamento de configurações. No PostgreSQL, é frequentemente utilizado para recarregar ficheiros de configuração sem reiniciar o servidor.

Spatial reference Identifier

SRID é um número inteiro que identifica as definições dum SRC - Sistema de Referência de Coordenadas (projetado ou geográfico).

O SRC dá sentido e localização aos valores das coordenadas num sistema local, regional ou global. Também define o tipo de projeção (quando projetado) bem como os parâmetros de transformação entre diferentes SRC.

Subconsultas

Subconsultas são consultas SQL dentro de outras consultas, permitindo a composição de consultas complexas e a reutilização de resultados intermédios.

Switchover

Switchover é o processo controlado de troca de papéis entre um servidor primário e um de standby no PostgreSQL, permitindo manutenção ou atualizações com mínima interrupção.

Teste de Regressão

O teste de regressão é uma técnica de teste de software que tem como objetivo verificar se alterações recentes no código, como novas funcionalidades, correções de erros ou atualizações, não afetaram negativamente o funcionamento de funcionalidades existentes. Esta abordagem é essencial para garantir a estabilidade e a qualidade do software ao longo do desenvolvimento e da manutenção, minimizando o risco de introduzir novos erros em partes do sistema que anteriormente funcionavam corretamente. Os testes de regressão podem ser realizados manualmente ou de forma automatizada, sendo a automação altamente recomendada para projetos de grande escala ou para software que recebe atualizações frequentes, facilitando a execução rápida e eficiente dum conjunto abrangente de testes sempre que são feitas alterações.

Tipo de Conexão

No PostgreSQL, diferentes tipos de conexão são suportados, incluindo local, host, hostssl, hostnossl, hostgssenc, e hostnogssenc, cada um adequado para diferentes requisitos de segurança e conectividade.

No PostgreSQL, o tipo de conexão a ser utilizado por uma determinada regra de acesso é configurado no ficheiro pg_hba.conf.

Os tipos de conexão suportados são:

local: Socket de domínio Unix; host: Conexão TCP/IP, com ou sem encriptação SSL, dependendo da configuração do método de autenticação; hostssl: Conexão TCP/IP com encriptação SSL; hostnossl: Conexão TCP/IP sem encriptação SSL; hostgssenc: Conexão TCP/IP com encriptação GSSAPI. Este tipo de conexão destina-se a ambientes que requerem autenticação e encriptação avançadas, como Kerberos; hostnogssenc: Conexão TCP/IP sem encriptação GSSAPI.

Translation Lookaside Buffer (TLB)

Área de cache especializada usada para melhorar a eficiência da tradução de endereços virtuais para físicos, reduzindo o tempo de acesso à memória.

Trigger

Triggers são procedimentos armazenados que são automaticamente executados em resposta a eventos específicos em tabelas ou visões, como inserções, atualizações ou exclusões.

Unidade de Gestão de Memória (MMU)

MMU é um componente de hardware que gere o mapeamento de endereços virtuais para físicos, essencial para o funcionamento da memória virtual em sistemas computacionais.

usuário

No PostgreSQL, um usuário é uma conta que pode conectar-se e interagir com a instância de base de dados, incluindo usuários comuns e superusuários, com diferentes níveis de privilégios.

Visão Atualizável

Uma visão atualizável no PostgreSQL é uma visão sobre a qual é possível realizar operações de inserção, atualização e exclusão de dados, como se fosse uma tabela comum.

Visão Materializável

Uma visão materializável no PostgreSQL é uma visão cujos resultados são armazenados fisicamente e podem ser atualizados sob demanda, oferecendo melhor desempenho para consultas complexas.

WALDIR

WALDIR é o diretório no PGDATA onde os ficheiros de log transacionais (WAL) são armazenados, essenciais para a recuperação de dados e replicação no PostgreSQL.

Write-Ahead Logging (WAL)

O Write-Ahead Logging (WAL) no PostgreSQL é um mecanismo que assegura a durabilidade das transações e a consistência dos dados, escrevendo todas as modificações das transações num log de pré-gravação antes de serem efetivamente aplicadas aos ficheiros de dados da base de dados. Este procedimento permite que o sistema recupere o seu estado consistente após uma falha, utilizando os logs para reexecutar transações confirmadas que ainda não foram escritas nos ficheiros de dados ou para desfazer transações não confirmadas. O WAL também desempenha um papel crucial na implementação de replicação síncrona e assíncrona, facilitando a cópia de transações do servidor primário para servidores secundários sem a necessidade de bloquear operações de leitura e escrita durante a sincronização.