Questão de Banco de Dados — Modelo relacional — FGV 2024
Banco de Dados›Modelo relacional
Código
fg075128
Banca
FGV
Órgão
AL-PR
Ano
2024
Nível
Superior
Cargo
Analista Legislativo - Desenvolvedor de Sistemas
Considere o esquema de banco de dados relacional a seguir:LOCALIDADE ( id_loc , nome_localidade, cidade, estado )COORDENADOR ( id_coord , nome_coord, id_loc )Restrições de integridade:Tabela LOCALIDADE: id_loc é chave primária; nome_localidade ≠ NULO; cidade ≠ NULO; estado = {‘PR’ ou ‘SC’ ou ‘RS’}.Tabela COORDENADOR: id_coord é chave primária; nome_coord ≠ NULO; id_loc é chave estrangeira e referencia LOCALIDADE(id_loc).A equipe que administra o banco de dados em tela decidiu convertê-lo de uma versão centralizada para uma distribuída. Para isso, decidiu que a divisão dos dados será guiada pelo critério do estado ao qual a localidade pertence. Ou seja, após distribuir os registros de localidade por fragmentos, os dados da tabela COORDENADOR serão distribuídos em função do critério de localidade apresentado.No que concerne à divisão a ser realizada na tabela COORDENADOR, a fragmentação de suas tuplas (linhas) dever ser classificada como
Ahíbrida.
Bhorizontal derivada.
Chorizontal primária.
Dvertical.
Ereplicação.
Revelar gabarito e comentário▾
GabaritoB — horizontal derivada.
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”.
Fragmentação de tabelas em bancos de dados distribuídos
Gabarito: letra B — fragmentação horizontal derivada. A tabela COORDENADOR possui chave estrangeira id_loc que referencia LOCALIDADE. Como a fragmentação de LOCALIDADE é feita por estado (horizontal primária), as tuplas de COORDENADOR serão distribuídas de acordo com o fragmento da localidade correspondente. Isso caracteriza fragmentação horizontal derivada: a fragmentação de uma tabela é determinada pela fragmentação de outra tabela referenciada.
A fragmentação horizontal derivada é uma técnica usada para manter a integridade referencial em bancos distribuídos, garantindo que tuplas relacionadas (por chave estrangeira) fiquem no mesmo fragmento, evitando junções remotas. A fragmentação horizontal primária dividiria COORDENADOR com base em seus próprios atributos (ex.: por faixa de id_coord), o que não é o caso aqui.
NÃO CAIA NESSA!
A banca explora a diferença entre fragmentação horizontal primária (baseada nos próprios atributos da tabela) e derivada (baseada em atributos de uma tabela referenciada). Como o critério de divisão vem da tabela LOCALIDADE (pela chave estrangeira), a classificação correta é derivada. Quem confunde os dois conceitos pode marcar "horizontal primária" (alternativa C), que seria o caso se a fragmentação fosse por estado diretamente na tabela COORDENADOR — mas estado não é atributo de COORDENADOR.
Alternativa A — ❌ Incorreta
Fragmentação híbrida combina horizontal e vertical na mesma tabela. Não há qualquer fragmentação vertical envolvida no enunciado, apenas divisão por linhas.
Alternativa B — ✅ Correta ⟵ GABARITO
Derived horizontal fragmentation. A distribuição de COORDENADOR segue a fragmentação de LOCALIDADE através da chave estrangeira id_loc. Cada tupla de COORDENADOR é alocada no mesmo fragmento que sua localidade correspondente, conforme o estado.
Alternativa C — ❌ Incorreta
Fragmentação horizontal primária ocorre quando a própria tabela é particionada por seus atributos (ex.: dividir COORDENADOR por faixas de id_coord). Aqui o critério é externo (estado da localidade), portanto não é primária.
Alternativa D — ❌ Incorreta
Fragmentação vertical divide colunas (atributos) em diferentes fragmentos. A questão trata de divisão de linhas (tuplas), não de colunas.
Alternativa E — ❌ Incorreta
Replicação copia todos os dados para todos os sites. O enunciado fala em distribuir os registros, não replicá-los, o que implica fragmentação.