Trabalhando com listas dinâmicas - Revista SQL Magazine 101
Este artigo apresenta os conceitos de alocação dinâmica e estática de memória.
Este artigo apresenta os conceitos de alocação dinâmica e estática de memória. A alocação da memória ocorre em tempo de execução, podendo ser estática, quando os elementos estiverem ordenados (como em variáveis globais e/ou arrays), ou dinâmica, quando os dados estiverem desordenados. Serão descritas as vantagens e desvantagens de cada tipo de alocação.
O presente artigo é útil na implementação de rotinas para organização de informações originadas ou destinadas a bancos de dados. Em alguns casos, a alocação estática de memória é mais eficiente, ao passo que, em outros casos, a organização deve ser feita de forma dinâmica.
Neste artigo serão apresentados os benefícios da organização de dados em estruturas dinâmicas e estáticas, indicando as vantagens de cada uma delas. Frequentemente os resultados de consultas feitas em bancos de dados são utilizadas para realização de operações onde é necessário identificar cada elemento isoladamente. Neste tipo de ocasião é necessário criar elementos de memória para armazenamento dos dados de forma dinâmica. Para tais operações deve ser implementada a alocação adequada.
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.