A visão clássica de um sistema de banco de dados distribuído é que o sistema deve tornar o impacto da distribuição de dados transparente. Considerando que “Transparente” significa que a aplicação opera de um ponto de vista lógico como se os dados fossem todos gerenciados por um único SGBD, analise as afirmativas a seguir. I. Arquitetura cliente-servidor tem um ou mais processos clientes e um ou mais processos servidores; um processo cliente pode enviar uma consulta para qualquer processo servidor. II. A arquitetura cliente-servidor permite que uma única consulta abranja vários servidores. III. A arquitetura middleware é a camada de software que coordena a execução de consultas e transações em um ou mais servidores de banco de dados independentes. IV. O acesso a uma relação armazenada em um site remoto acarreta custos de passagem de mensagem e, para reduzir essa sobrecarga, uma única relação pode ser replicada ou fragmentada. V. A fragmentação e a replicação não podem ser combinadas; uma relação pode ser particionada em diversos fragmentos, mas não pode haver réplicas desses fragmentos. Está correto o que se afirma apenas em
- A)I, II e III.
Esta alternativa reúne as afirmativas I, II e III. A I descreve a arquitetura cliente-servidor de forma compatível com um ambiente distribuído, e a III também está correta ao situar o middleware como a camada que coordena consultas e transações sobre servidores independentes. O problema está na II, porque uma consulta única abranger vários servidores não é uma propriedade da arquitetura cliente-servidor em si, mas do processamento distribuído de consultas, normalmente mediado por uma camada intermediária.
- B)I, III e IV.
Esta alternativa reúne as afirmativas I, III e IV, que são as que se sustentam no enunciado. A I está de acordo com a ideia de clientes que solicitam serviços a servidores; a III define corretamente o middleware como a camada que orquestra consultas e transações entre bancos independentes; e a IV também é correta ao apontar que o acesso remoto gera custo de comunicação e que replicação ou fragmentação são técnicas usadas para reduzir esse impacto. Por isso, ela corresponde ao conjunto verdadeiro.
- C)II, IV e V.
Esta alternativa reúne as afirmativas II, IV e V. A IV está correta ao tratar do custo de mensagem no acesso remoto e das técnicas de fragmentação e replicação como formas de mitigá-lo, mas a II extrapola a arquitetura cliente-servidor ao atribuir-lhe, por si só, a execução de uma única consulta em vários servidores. Além disso, a V está errada porque fragmentação e replicação podem ser combinadas em banco de dados distribuído, por exemplo quando um fragmento é replicado em mais de um site.
- D)III, IV e V.
Esta alternativa reúne as afirmativas III, IV e V. As duas primeiras estão adequadas: o middleware realmente faz a coordenação entre servidores independentes, e o custo de comunicação em acessos remotos justifica o uso de fragmentação e replicação. Já a V é incorreta porque não existe proibição de combinar essas técnicas; é perfeitamente possível fragmentar uma relação e, depois, manter réplicas de alguns ou de todos os fragmentos para aumentar disponibilidade e desempenho.
Gabarito: B
Em banco de dados distribuído, a ideia central é fazer a distribuição “sumir” para a aplicação. Ou seja, o sistema tenta parecer um único SGBD, mesmo com dados espalhados em vários nós. Isso é o que se chama de transparência de distribuição: a aplicação consulta e transaciona sem precisar saber onde cada pedaço está fisicamente. Na arquitetura cliente-servidor, existem processos clientes que enviam requisições e processos servidores que atendem essas requisições. Em sistemas distribuídos, uma mesma consulta pode, sim, precisar conversar com mais de um servidor, porque os dados podem estar repartidos entre eles. Além disso, a camada de middleware atua justamente como uma espécie de “maestro”, coordenando consultas e transações entre servidores independentes. Outro ponto clássico é o custo de acesso remoto. Se a relação está em outro site, há gasto com troca de mensagens, latência e comunicação de rede. Para diminuir isso, o projetista pode usar fragmentação, replicação ou as duas coisas combinadas, dependendo da estratégia de distribuição. Portanto, a afirmativa que diz que não dá para combinar fragmentação e replicação está errada. Assim, o gabarito B está correto porque as afirmativas I, III e IV estão alinhadas com o funcionamento típico de bancos de dados distribuídos, enquanto II e V não entram como verdadeiras nesse enunciado.