Naturalmente, os bancos de dados nos oferecem acesso a dados e tal acesso pode acontecer concorrentemente por muitos usuários. Nestes casos, o acesso deve ser feito de forma prudente. O acesso simultâneo exige uma análise da quantidade de usuários, velocidade da rede, configuração do servidor e muitas outras variáveis. No geral, uma boa prática é realizar o acesso ao banco de forma prudente, minimizando o fluxo de dados entre servidor e cliente. A realização de muitos acessos simultâneos pode demandar um fluxo de dados alto, resultando em lentidão no sistema, excesso de processamento no servidor e processamento desnecessário de consultas.

Uma vez feita uma consulta que será utilizada diversas vezes, é prudente alocar o resultado da mesma em memória do computador cliente. Para alocação de memória em diferentes linguagens de programação, temos diversas possibilidades. Neste ponto, se torna importante conhecer conceitos discutidos fortemente em disciplinas de linguagens de programação e estruturas de dados: listas, pilhas, filas e arvores. Conheceremos um pouco mais sobre estas estruturas mais adiante neste artigo.

Outra situação em que a organização de dados em memória é importante é quando o usuário realiza uma sequência de operações que geram dados em muitas tabelas. Para evitar o envio de dados para o banco muitas vezes, é mais aconselhado organizar os dados em memória e enviar para o banco de dados de tempos em tempos ou quando a operação for finalizada. Esta organização é mais trivial do que quando estamos organizando dados no caminho inverso, isto é, obtendo dados do servidor para uma possível manipulação e posterior envio. Tal operação exige manter a integridade dos dados, tais como relacionamentos anteriores, chaves primárias etc.

Nos casos mais genéricos, os bancos de dados são acessados por computadores com hardware que oferecem memória em quantidades superiores a 1GB. Nestes tipos de ocasião, o programador pode alocar memória dinamicamente no computador cliente, de forma a não utilizar recursos do servidor, tendo em vista que o mesmo será acessado por muitos usuários. Mesmo que o limite de 1GB seja ultrapassado, ainda é mais prudente alocar memória virtual do que aumentar o fluxo de dados entre servidor e cliente.


Listas dinâmicas
Uma lista dinâmica (ver Nota DevMan 1) se assemelha a um “array”, que já é largamente utilizado nas linguagens de programação. No entanto, existe uma grande diferença entre uma lista dinâmica e um “array”. O “array” é definido com um tamanho fixo durante o desenvolvimento do programa e não muda. Já a lista dinâmica apresenta tamanho indeterminado, ou seja, seu tamanho vai sendo modificado conforme o programa é utilizado pelo usuário. Neste caso, o sistema irá alocar apenas a quantidade de memória necessária. É importante destacar que o programador pode determinar limites a fim de não deixar o sistema lento. Isso quer dizer, alocar memória dinamicamente mas com um limite pré-determinado.
...
Quer ler esse conteúdo completo? Tenha acesso completo