Amanda está mudando a arquitetura do banco de dados da empresa onde trabalha de forma a torná-lo distribuído. Para melhorar a flexibilidade e ocultar detalhes de implementação de usuários finais, ela está fazendo uso de algumas formas de transparência de dados. Com intenção de melhoria da performance nas consultas executadas, Amanda tem trabalhado na fragmentação horizontal:
- A)copiando os mesmos objetos de dados em vários nós da rede;
Errada: isso descreve replicação, que copia os mesmos dados para vários nós, e não fragmentação horizontal.
- B)distribuindo, por vários nós da rede, algumas tabelas em um subconjunto de linhas;
Certa: fragmentação horizontal divide a tabela por linhas e distribui os subconjuntos de registros entre os nós.
- C)permitindo que o comando para uma tarefa seja emitido independentemente da localização dos dados;
Errada: isso se relaciona à transparência de localização ou de acesso, não à fragmentação de dados.
- D)permitindo que uma transação seja distribuída entre os nós da rede;
Errada: isso trata de transação distribuída, que é um tema de processamento transacional, não de fragmentação horizontal.
- E)distribuindo pelos nós da rede um subconjunto de colunas de algumas tabelas existentes.
Errada: isso descreve fragmentação vertical, que distribui colunas, e não linhas.
Gabarito: B
Em banco de dados distribuídos, a ideia é espalhar dados e processamento por vários nós da rede, mas sem deixar o usuário virar detetive para descobrir onde tudo está. Por isso falamos em transparência: o sistema tenta esconder detalhes como localização dos dados, fragmentação e replicação, dando a sensação de um banco único e organizado. Quando a questão fala em fragmentação horizontal, ela está descrevendo o corte da tabela por linhas. Ou seja, você pega um subconjunto de registros e distribui esses pedaços entre diferentes nós. Isso costuma melhorar o desempenho porque consultas podem acessar só a parte dos dados que interessa, reduzindo volume de leitura e tráfego na rede. A alternativa B está correta porque diz exatamente isso: distribuir, por vários nós da rede, uma tabela em um subconjunto de linhas. Isso é o conceito clássico de fragmentação horizontal, em que cada fragmento contém tuplas selecionadas por uma condição, como clientes de uma região, pedidos de um período etc. Para não confundir: replicação copia os mesmos dados; fragmentação vertical separa colunas; e transparência de localização ou de acesso trata de esconder onde os dados estão, não de como eles foram divididos. Em doutrina de bancos distribuídos, essa distinção é bem cobrada, inclusive em questões da FGV, que gosta de trocar linha por coluna para ver quem pisca.