Pular para o conteúdo principal

Questão de Banco de Dados — PostgreSQL — CESPE / CEBRASPE 2023

Banco de DadosPostgreSQL
Código
ce154142
Banca
CESPE / CEBRASPE
Órgão
DATAPREV
Ano
2023
Nível
Médio
Cargo
Analista de Tecnologia da Informação - Perfil: Sustentação Tecnológica
Imagem associada para resolução da questãoConsiderando a figura precedente, que representa a arquitetura de um sistema de banco de dados PostgreSQL, julgue o item seguinte, acerca do processo de administração desse banco de dados.O processo servidor de back-end é responsável por executar as consultas submetidas pelo cliente, realizando as etapas necessárias de execução de consulta e retornando ao processo postmaster, onde as consultas são analisadas, otimizadas e acumuladas em buffers de consultas e distribuídas ao cliente.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Arquitetura do PostgreSQL: processos e fluxo de consulta

Gabarito: Errado (E). O item inverte o fluxo real da arquitetura cliente/servidor do PostgreSQL: quem analisa, otimiza e executa a consulta é o processo servidor de back-end (o programa postgres), e não o postmaster, que atua apenas como supervisor de conexões. A descrição apresentada mistura as responsabilidades dos processos, atribuindo ao postmaster funções que pertencem ao servidor de back-end.

O PostgreSQL adota um modelo cliente/servidor, no qual uma sessão é composta por processos cooperantes: o processo servidor (back-end), que gerencia os arquivos do banco, aceita conexões e executa ações em nome dos clientes, e o aplicativo cliente (front-end), que envia as consultas. O programa do servidor é chamado postgres. O postmaster é o processo supervisor que gerencia as conexões, mas não executa consultas — ele apenas aceita a conexão e delega o trabalho a um processo filho (back-end).

Na prática, quando um cliente envia uma consulta, o postmaster aceita a conexão e cria um processo servidor dedicado. Esse processo back-end é quem recebe a consulta, realiza a análise sintática, a otimização, a execução e retorna o resultado diretamente ao cliente. O postmaster não participa da execução nem do retorno dos dados — ele permanece apenas como supervisor, aguardando novas conexões.

A pegadinha da banca está em atribuir ao postmaster funções que são do back-end, como analisar, otimizar e acumular consultas em buffers. O candidato que conhece apenas superficialmente a arquitetura pode confundir os papéis, mas a distinção é clara: o postmaster é o "porteiro" que recebe as conexões, enquanto o back-end é o "funcionário" que executa o trabalho.

Guarde essa fronteira: postmaster = gerencia conexões; back-end = executa consultas. É exatamente nela que o item se divide — a descrição do enunciado mistura os dois papéis, tornando a afirmação incorreta.

Processo

Função principal

Participa da execução de consultas?

Retorna resultado ao cliente?

Postmaster

Supervisor de conexões

Não

Não

Back-end (postgres)

Analisa, otimiza e executa consultas

Sim

Sim

  1. 1Cliente envia consulta
  2. 2Postmaster aceita conexão
  3. 3Cria processo back-end
  4. 4Back-end analisa e otimiza
  5. 5Back-end executa consulta
  6. 6Retorna resultado ao cliente
LEVEL · soulevel.com.br

Item — ❌ Errado

O item afirma que o processo servidor de back-end executa as consultas, mas que as consultas são analisadas, otimizadas e acumuladas em buffers pelo postmaster, que as distribui ao cliente. Isso está errado por dois motivos:

  1. Quem analisa, otimiza e executa é o back-end: o processo servidor (postgres) é responsável por receber a consulta do cliente, realizar a análise sintática, a otimização do plano de execução e a execução propriamente dita. O postmaster não participa dessa cadeia.

  1. O postmaster não distribui resultados: o back-end retorna o resultado diretamente ao cliente, sem passar pelo postmaster. O postmaster apenas aceita a conexão inicial e delega o trabalho ao processo filho.

A descrição correta seria: o cliente envia a consulta ao postmaster, que aceita a conexão e cria um processo back-end; esse processo analisa, otimiza, executa e retorna o resultado diretamente ao cliente. O item inverte os papéis, atribuindo ao postmaster funções que são do back-end.

NÃO CAIA NESSA!

A banca inverte os papéis dos processos: atribui ao postmaster (supervisor de conexões) as funções de análise, otimização e distribuição de consultas, que na verdade pertencem ao processo servidor de back-end. O candidato que decora apenas os nomes dos processos sem entender a divisão de trabalho cai na armadilha. Lembre-se: o postmaster é o "porteiro" que recebe as conexões; o back-end é o "funcionário" que executa o trabalho.

Gabarito: Errado (E).

Link permanente: /questoes/ce154142