Questão nº 68

Questão de Tecnologia da Informação · FGV TRF1 2024 (nº 68)

FGV2024Analista Judiciário - Análise de DadosTecnologia da Informação
Gabarito: Dver comentário ↓

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, é:

Resposta comentada

Gabarito Alternativa D

Em Oracle, a organização de uma tabela define como os dados são fisicamente armazenados no disco. Isso impacta diretamente a velocidade com que o banco de dados pode encontrar e ler as informações.

D) Correta: A organização Index-organized (IOT) armazena os dados da tabela diretamente na estrutura da chave primária (índice). Isso significa que as linhas são fisicamente ordenadas no disco de acordo com a chave primária. No cenário descrito, se a tabela `Movimentação` for IOT com uma chave primária composta por `(cliente_id, data_movimentacao)`, todas as movimentações de um cliente estarão armazenadas fisicamente juntas e já ordenadas temporalmente. Ao localizar um cliente, o sistema pode ler todas as suas movimentações sequencialmente no disco, minimizando acessos aleatórios e otimizando a performance para a travessia temporal exigida.

A) Incorreta: Uma tabela External não armazena os dados no banco de dados, mas sim em arquivos externos (como CSV, XML). É usada para acesso a dados fora do controle do SGBD, não para transações de alta performance com integridade referencial interna.

B) Incorreta: "File" não é um tipo de organização de tabela em Oracle. As tabelas, independentemente de sua organização, são armazenadas em datafiles gerenciados pelo Oracle, mas "File" não descreve a estrutura interna da tabela.

C) Incorreta: Uma tabela Heap (o tipo padrão) armazena os dados onde houver espaço disponível, sem qualquer ordem física baseada em chaves. Embora se possa criar um índice na chave primária ou em `(cliente_id, data_movimentacao)`, a leitura sequencial de todas as movimentações de um cliente ainda exigiria que o índice apontasse para diferentes locais físicos na tabela heap (usando ROWIDs), resultando em acessos a disco mais aleatórios e menos eficientes do que uma IOT para a operação de "percorrer numa ordem temporal". Armadilha: O distrator tenta fazer você pensar que um índice comum em uma tabela heap seria suficiente, mas a necessidade de percorrer os registros em ordem temporal de forma eficiente é o que torna a IOT superior.

E) Incorreta: Partition (particionamento) divide uma tabela grande em segmentos menores e mais gerenciáveis com base em uma chave de partição (ex: `cliente_id` ou `data_movimentacao`). Embora possa melhorar a performance ao permitir que o Oracle ignore partições irrelevantes, o particionamento por si só não garante que os dados dentro de uma partição sejam fisicamente ordenados para a travessia temporal de um cliente, a menos que a partição seja também uma IOT. É uma funcionalidade complementar, não uma alternativa direta para a organização física dos dados para a travessia sequencial.

Fonte: FGV TRF1 2024 Analista Judiciário - Análise de Dados (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho