Tratando-se de sequências em SGBD Oracle, identifique se cada afirmativa a seguir é verdadeira ou falsa. I. Lacunas, intervalos "gaps" de valores podem ocorrer em sequences quando um evento de rollback é acionado. II. Lacunas, intervalos "gaps" de valores podem ocorrer em sequences quando uma falha de hardware promove um restart no ambiente. III. Lacunas, intervalos "gaps" de valores podem ocorrer em sequences quando essa sequence é usada por duas ou mais tabelas. A única alternativa correta é:
Questão
Tratando-se de sequências em SGBD Oracle, identifique se cada afirmativa a seguir é verdadeira ou falsa.
I. Lacunas, intervalos "gaps" de valores podem ocorrer em sequences quando um evento de rollback é acionado.
II. Lacunas, intervalos "gaps" de valores podem ocorrer em sequences quando uma falha de hardware promove um restart no ambiente.
III. Lacunas, intervalos "gaps" de valores podem ocorrer em sequences quando essa sequence é usada por duas ou mais tabelas.
A única alternativa correta é:
Alternativas
A) O item II é verdadeiro e os itens I e III são falsos.
B) Os itens II e III são verdadeiros e o item I é falso.
C) Os itens I e II são verdadeiros e o item III é falso.
D) Os itens I, II e III são verdadeiros.
E) Os itens I e III são verdadeiros e o item II é falso.
Explicação
Em Oracle, SEQUENCE é um gerador de números independente de transação (ou seja, não “volta atrás” quando a transação dá rollback) e pode trabalhar com cache, o que também influencia na ocorrência de lacunas.
I. Verdadeira.
Se uma sessão obtém um valor via NEXTVAL e depois ocorre ROLLBACK, o valor já foi consumido pela sequence e não é devolvido. Logo, podem surgir “gaps”.
II. Verdadeira. Com CACHE habilitado (padrão comum), a sequence mantém valores em memória. Se houver falha de hardware e restart, valores cacheados e ainda não usados podem ser perdidos, gerando lacunas.
III. Verdadeira.
Se a mesma sequence é usada por duas ou mais tabelas (ou por múltiplas sessões), os valores são distribuídos conforme a ordem das chamadas a NEXTVAL. Assim, olhando cada tabela isoladamente, é normal haver “gaps” (por exemplo, valores que foram para outra tabela).
Como I, II e III são verdadeiras, a alternativa correta é a que afirma isso.
Alternativa correta: (D).