Questão nº 50
Questão de Tecnologia da Informação · FGV STN 2024 (nº 50)
No contexto do PostgreSQL, analise o esquema de um comando a seguir.
```sql
CREATE ... nome
LOCATION 'path completo';
```
Especificados o nome e o path completo, o texto que pode completar o trecho pontilhado para que esse comando seja válido é
- ADATABASE
- BINDEX
- CTABLE
- DTABLESPACE (alternativa correta)
- EUSER
Resposta comentada
Gabarito Alternativa D
Uma tablespace no PostgreSQL é um local físico no sistema de arquivos onde os objetos do banco de dados (como tabelas e índices) podem ser armazenados, permitindo distribuir o armazenamento em diferentes discos ou sistemas de arquivos. O comando `CREATE TABLESPACE` é o único que utiliza a cláusula `LOCATION` para especificar o diretório no sistema operacional onde essa tablespace será criada.
(A) Incorreta: O comando `CREATE DATABASE` não usa a cláusula `LOCATION` diretamente para especificar o caminho físico; ele pode usar `TABLESPACE` para indicar qual tablespace deve ser utilizada, mas não `LOCATION`. A armadilha aqui é confundir a necessidade de um local físico para o banco de dados com a forma como o PostgreSQL gerencia isso, que é através de tablespaces.
(B) Incorreta: O comando `CREATE INDEX` não usa a cláusula `LOCATION`; ele pode usar `TABLESPACE` para especificar onde o índice será armazenado.
(C) Incorreta: O comando `CREATE TABLE` não usa a cláusula `LOCATION`; ele pode usar `TABLESPACE` para especificar onde a tabela será armazenada.
(D) Correta: O comando `CREATE TABLESPACE nome LOCATION 'path completo';` é a sintaxe correta para criar uma tablespace no PostgreSQL, onde `LOCATION` especifica o diretório físico no sistema de arquivos.
(E) Incorreta: O comando `CREATE USER` (ou `CREATE ROLE`) é para criar usuários ou papéis no banco de dados e não tem relação com localização física de arquivos.
Fonte: FGV STN 2024 Auditor Federal de Finanças e Controle - Tecnologia da Informação (Operação e Infraestrutura) (Caderno Tipo 1). Reproduzida para fins de estudo.