Questão de Banco de Dados — Banco de Dados — Quadrix 2025
- Código
- qg603661
- Banca
- Quadrix
- Órgão
- SEDF
- Ano
- 2025
- Nível
- Superior
- Cargo
- Professor de Educação Básica: Informática
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: ERRADO. A afirmativa está incorreta porque a função IDENTITY do DB2 não é equivalente à cláusula SEQUENCE do SQL padrão, e, principalmente, porque nenhuma delas permite a reutilização automática de valores após a exclusão de registros — a sequência não retrocede para preencher lacunas. A afirmativa erra ao afirmar que há reutilização automática de valores para manter a sequência contínua.
A questão aborda dois mecanismos de geração de valores numéricos sequenciais em bancos de dados relacionais: a propriedade IDENTITY e o objeto SEQUENCE. Ambos são usados para gerar valores únicos, geralmente para chaves primárias, mas são conceitos distintos e com comportamentos específicos.
A propriedade IDENTITY é um recurso de algumas colunas em tabelas de SGBDs como o DB2 da IBM, o SQL Server da Microsoft e o PostgreSQL. Quando uma coluna é definida como IDENTITY, o banco de dados gera automaticamente um valor numérico sequencial para cada nova linha inserida. Esse valor é único e não se repete, mesmo que a linha seja excluída posteriormente. O objetivo é garantir a unicidade da chave, não a continuidade numérica.
O objeto SEQUENCE, por sua vez, é um recurso do SQL padrão (a partir do SQL:2003) e também está presente em diversos SGBDs, como Oracle, PostgreSQL e DB2. Uma sequência é um objeto independente do banco de dados que gera uma série de valores numéricos. Ela pode ser usada para alimentar uma ou mais colunas de uma ou mais tabelas, oferecendo mais flexibilidade que a propriedade IDENTITY.
A principal diferença prática entre eles é que a IDENTITY está vinculada a uma coluna específica de uma tabela, enquanto a SEQUENCE é um objeto autônomo que pode ser compartilhado. No entanto, a característica crucial para esta questão é que ambos os mecanismos não reutilizam valores. Se uma linha com o valor 5 for inserida e depois excluída, o próximo valor gerado será 6, não 5. Isso ocorre porque o objetivo é a unicidade, e a reutilização de valores poderia causar conflitos ou ambiguidades, especialmente em chaves primárias.
A afirmativa da questão contém dois erros: primeiro, trata IDENTITY e SEQUENCE como equivalentes, quando são mecanismos distintos; segundo, e mais grave, afirma que eles permitem a reutilização automática de valores, o que é falso. A reutilização de valores não é uma característica desejável nem implementada nesses mecanismos.
A banca tenta confundir o candidato ao afirmar que a IDENTITY é equivalente à SEQUENCE e que ambos permitem a reutilização de valores. O erro está na segunda parte: a reutilização de valores não é uma característica de nenhum dos dois. O candidato pode até saber que IDENTITY e SEQUENCE são diferentes, mas pode cair na armadilha de achar que a reutilização é possível. Lembre-se: o objetivo é a unicidade, não a continuidade.
A afirmativa está errada por dois motivos. Primeiro, a função IDENTITY do DB2 não é equivalente à cláusula SEQUENCE do SQL padrão; são mecanismos distintos, embora ambos gerem valores sequenciais. Segundo, e mais importante, nenhum dos dois permite a reutilização automática de valores após a exclusão de registros. A sequência gerada não retrocede para preencher lacunas; o próximo valor é sempre o próximo da sequência, independentemente de exclusões anteriores. A reutilização de valores quebraria a garantia de unicidade, que é o propósito fundamental desses mecanismos.
Gabarito: ERRADO (letra E).
Link permanente: /questoes/qg603661