Pular para o conteúdo principal

Questão de Banco de Dados — PostgreSQL — FGV 2024

Banco de DadosPostgreSQL
Código
fg076991
Banca
FGV
Órgão
CGE-PB
Ano
2024
Nível
Superior
Cargo
Auditor de Contas Públicas - Auditoria de Tecnologia da Informação
No contexto do PostgreSQL, analise o comando SQL a seguir.CREATE TABLE TESTE_X PARTITION OF TESTEFOR VALUES IN ('SP', 'RJ');Esse comando tem por finalidade:
  1. Aa implementação do particionamento da tabela TESTE pelo critério conhecido como List;
  2. Ba implementação do particionamento da tabela TESTE_X pelo critério conhecido como Range Partitioning;
  3. Ca criação de uma tabela virtual, somente leitura, segundo o conceito de Table View, similarmente ao emprego das views derivadas de consultas SQL;
  4. Da implementação de particionamentos de índices clusterizados (Clusterized indexes), usados para otimização de consultas sobre tabelas baseadas em intervalos de chaves de acesso;
  5. Ea definição de uma nova tabela, TESTE_X, somente leitura, cuja estrutura é copiada da tabela TESTE e é instanciada inicialmente com todas as linhas cujos valores das chaves primárias são iguais a “SP” ou “RJ”.
Revelar gabarito e comentário

GabaritoA — a implementação do particionamento da tabela TESTE pelo critério conhecido como List;

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”.

Particionamento de Tabelas no PostgreSQL

Gabarito: letra A. O comando CREATE TABLE TESTE_X PARTITION OF TESTE FOR VALUES IN ('SP', 'RJ'); cria uma partição filha da tabela TESTE para armazenar apenas as linhas cujo valor da chave de partição seja 'SP' ou 'RJ' — caracterizando o particionamento por Lista (List Partitioning). A sintaxe é nativa do PostgreSQL desde a versão 10.

O PostgreSQL implementa três tipos de particionamento: Range, List e Hash. No particionamento por Lista, cada partição é definida por uma lista explícita de valores. É exatamente o que FOR VALUES IN ('SP', 'RJ') faz.

Característica

Particionamento por Lista (List)

Particionamento por Range

View (Table View)

Índice Clusterizado

Cópia de Estrutura com Dados

Sintaxe principal

FOR VALUES IN (lista)

FOR VALUES FROM ... TO ...

CREATE VIEW ... AS SELECT

CLUSTER (PostgreSQL)

CREATE TABLE ... AS SELECT ou LIKE

Tipo de objeto criado

Partição física (tabela filha)

Partição física (tabela filha)

Objeto virtual (somente leitura)

Índice físico

Tabela física independente

Critério de seleção de dados

Valores explícitos em uma lista

Intervalo contínuo de valores

Resultado de uma consulta SQL

Reordenação física com base em índice

Cópia integral de dados no momento da criação

Permite inserção/atualização

Sim (herda da tabela pai)

Sim (herda da tabela pai)

Não (apenas consulta)

Sim (a tabela subjacente)

Sim (tabela independente)

Relação com a tabela TESTE

Partição filha vinculada

Partição filha vinculada

Nenhuma (objeto separado)

Nenhuma (opera na tabela)

Cópia independente (não vinculada)

Alternativa A — ✅ Correta ⟵ GABARITO

O comando cria uma partição da tabela TESTE com base em valores específicos ('SP' e 'RJ'), ou seja, particionamento por Lista. A cláusula PARTITION OF vincula a nova tabela como uma partição da tabela particionada TESTE.

Alternativa B — ❌ Incorreta

O comando utiliza FOR VALUES IN, que é próprio do particionamento por Lista, e não por Range. O particionamento por Range usaria FOR VALUES FROM ... TO ....

Alternativa C — ❌ Incorreta

O comando cria uma tabela física (partição), não uma view. Views são criadas com CREATE VIEW ... AS SELECT ... e são objetos virtuais.

Alternativa D — ❌ Incorreta

O comando não tem relação com índices clusterizados; ele define uma partição filha. Índices clusterizados são um conceito à parte (no PostgreSQL, o termo equivalente é CLUSTER).

Alternativa E — ❌ Incorreta

A nova tabela TESTE_X não é somente leitura (ela pode ser inserida e consultada como qualquer partição) e sua estrutura não é copiada — ela herda a estrutura da tabela TESTE e é instanciada vazia, recebendo apenas os registros que se enquadram nos valores da partição.


Gabarito: letra A.

Link permanente: /questoes/fg076991