Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FUNDATEC 2025

Banco de DadosSQL
Código
qg484504
Banca
FUNDATEC
Órgão
UFRGS
Ano
2025
Nível
Médio
Cargo
Técnico em Tecnologia da Informação/Área: Sistemas de Informação
Sobre Sistemas de Gerenciamento de Banco de Dados (SGBDs) e seus comandos, analise as assertivas abaixo:I. No PostgreSQL, o tipo de dado SERIAL é frequentemente utilizado para criação de chaves primárias autoincrementadas, mas internamente ele é apenas um atalho para a criação de uma sequência associada a uma coluna inteira.II. No SQL Server, o comando IDENTITY é utilizado para definir colunas autoincrementadas, permitindo configurar o valor inicial e o incremento a cada nova inserção de registro.III. O comando TRUNCATE TABLE, presente tanto no PostgreSQL quanto no SQL Server, remove todas as linhas de uma tabela e pode ser revertido por um ROLLBACK em todos os casos, assim como o DELETE.Quais estão corretas?
  1. AApenas I.
  2. BApenas II.
  3. CApenas I e II.
  4. DApenas II e III.
  5. EI, II e III.
Revelar gabarito e comentário

GabaritoC — Apenas I e II.

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

SERIAL, IDENTITY e TRUNCATE TABLE em PostgreSQL e SQL Server

Gabarito: letra C (apenas os itens I e II estão corretos). O tipo SERIAL no PostgreSQL é um atalho para sequência, o comando IDENTITY no SQL Server permite autoincremento configurável, mas a afirmação sobre TRUNCATE TABLE ser sempre reversível como DELETE é falsa devido a diferenças no comportamento transacional.

A questão testa o conhecimento de funcionalidades específicas de dois SGBDs populares: PostgreSQL e SQL Server. Vamos examinar cada assertiva.


1Atalho para sequência
2Chave primária autoincrementada
3IDENTITY (SQL Server)
Configura seed e increment
Auto incremento por inserção
4TRUNCATE TABLE
DDL (desaloca páginas)
Reversível em todos os casos (falso)
DELETE é DML (registra cada linha)
SERIAL (PostgreSQL)
LEVELsoulevel.com.br
SERIAL (PostgreSQL): Atalho para sequência; Chave primária autoincrementada; IDENTITY (SQL Server) (Configura seed e increment, Auto incremento por inserção); TRUNCATE TABLE (DDL (desaloca páginas), Reversível em todos os casos (falso), DELETE é DML (registra cada linha))

Item I — ✅ Correto

No PostgreSQL, o tipo SERIAL é amplamente usado para chaves primárias autoincrementadas. Internamente, ele cria uma sequência e define o valor padrão da coluna como nextval('sequencia'). Portanto, a descrição está correta: é um atalho para uma sequência.

Item II — ✅ Correto

No SQL Server, a propriedade IDENTITY é aplicada a uma coluna e aceita os parâmetros seed (valor inicial) e increment (valor do incremento). Cada nova inserção gera automaticamente o próximo valor. Afirmação correta.

Item III — ❌ Incorreto

A assertiva comete dois erros:

  • Diz que o TRUNCATE TABLE pode ser revertido por um ROLLBACK em todos os casos, o que não é verdade. Embora em alguns SGBDs (como PostgreSQL) o TRUNCATE seja transacional e possa ser desfeito dentro de uma transação, em outros (como SQL Server em contexto fora de transação explícita) ele é uma operação DDL que não pode ser revertida. A expressão "em todos os casos" invalida a afirmativa.

  • Afirma que o TRUNCATE se comporta assim como o DELETE. Na verdade, o DELETE é DML, registra cada linha removida e pode ser desfeito com ROLLBACK; já o TRUNCATE é DDL, desaloca páginas de dados e tem comportamento diferenciado quanto a logs e gatilhos.

NÃO CAIA NESSA!

A banca explora a generalização indevida. Muitos candidatos sabem que TRUNCATE remove todas as linhas, mas esquecem que sua reversibilidade depende do contexto transacional. O termo "em todos os casos" é o gatilho para marcar como falsa.

Conclusão: apenas as assertivas I e II estão corretas → gabarito: letra C.

Link permanente: /questoes/qg484504