Analista Judiciário - Área Apoio Especializado - Especialidade: Análise de Dados
Marina gerencia um banco de dados que contém duas tabelas relacionais, Cliente e Movimentação, sendo que a segunda tem uma chave estrangeira que a conecta à primeira tabela. Há uma transação, frequentemente acionada pelo sistema que emprega essas tabelas, que opera localizando um determinado registro em Cliente e, em seguida, percorrendo numa ordem temporal todos os registros de movimentação desse cliente na tabela Movimentação.Dado que Marina trabalha numa base Oracle com tabelas com milhões de registros, e que a performance dessa transação é preponderante, o tipo (organization) mais adequado para a tabela Movimentação, dentre as opções apresentadas, é:
AExternal;
BFile;
CHeap;
DIndex-organized;
EPartition.
Revelar gabarito e comentário▾
GabaritoD — Index-organized;
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”.
Organização de tabelas Oracle: Index-Organized Table (IOT)
Gabarito: letra D. A tabela Index-organized (IOT) é a mais adequada porque armazena os dados fisicamente na ordem da chave primária, eliminando a necessidade de um índice separado. Como a transação precisa percorrer todos os registros de movimentação de um cliente em ordem temporal, uma IOT com chave primária composta por id_cliente e data_hora organiza os dados de forma que a varredura seja sequencial e eficiente, evitando acessos aleatórios a um índice e à tabela heap.
A questão aborda o cenário em que uma tabela Movimentação (milhões de registros) é acessada por um cliente específico, percorrendo suas movimentações em ordem temporal. A performance é crítica.
Alternativa A — ❌ Incorreta
External (tabela externa) é usada para acessar dados armazenados fora do banco de dados (arquivos externos). Não é adequada para operações transacionais frequentes e não oferece ordenação física.
Alternativa B — ❌ Incorreta
File não é um tipo de organização de tabela no Oracle. As opções de organização são Heap, Index-organized, External e (para dados temporários) Global Temporary.
Alternativa C — ❌ Incorreta
Heap é o tipo padrão, onde as linhas são armazenadas sem ordem específica. Para percorrer todos os registros de um cliente em ordem temporal, seria necessário um índice separado e acesso aleatório à tabela (ou uma varredura completa), o que prejudica a performance.
Alternativa D — ✅ Correta ⟵ GABARITO
Index-organized table (IOT) armazena a tabela como um índice B-tree, onde os dados da linha estão nas folhas do índice, ordenados pela chave primária. Se a chave primária for (id_cliente, data_hora), os registros de cada cliente ficam fisicamente próximos em ordem temporal, permitindo uma varredura sequencial eficiente. Isso reduz acessos a disco e melhora a performance, ideal para o cenário descrito.
Alternativa E — ❌ Incorreta
Partition (particionamento) é uma técnica que divide a tabela em partes menores, geralmente combinada com heap ou IOT. Embora possa melhorar a performance, não define a organização interna da tabela; além disso, a simples partição não garante a ordenação temporal sem um índice. Para o caso, o particionamento poderia ser usado como complemento, mas a organização mais adequada é a IOT.
NÃO CAIA NESSA!
A banca pode tentar confundir o candidato com a alternativa "Partition", que também melhora a performance em tabelas grandes, mas não resolve o requisito de percorrer registros em ordem temporal sem um índice. Lembre-se: a questão pergunta o tipo de organização (heap, IOT, external), e não uma técnica de otimização como particionamento. IOT é a resposta porque ordena os dados fisicamente.