PERSISTENCIA EM MEMORIA SEM BANCO DE DADOS Victor Akihito Koshiba1, Tiago Piperno Bonetti1 1 Universidade Paranaense (Unipar) Paranavaí – PR – Brasil [email protected], [email protected] Resumo. O homem sempre sentiu a necessidade de deixar registrados os principais eventos e informações para serem utilizadas futuramente. Neste artigo abordamos uma breve explicação sobre banco de dados. Apresentamos a prevalência, uma forma de persistência em memória que pode ser empregado para construção de um banco de dados para aplicações. Uma implementação em código livre do modelo de prevalência será desenvolvido, e os principais aspectos do modelo são investigados. A utilização da prevalência permite reduzir os custos, eliminando licenças de uso, hardware e equipes de gerenciamento de SGBDs (Sistemas de Gerenciamento de Banco de Dados). 1. Introdução Neste trabalho realizamos uma breve explicação sobre banco de dados, e SGBDs, apresentamos a prevalência, uma forma de persistência de dados em memória que pode ser empregado para construção de um banco de dados (de objetos) em memória para aplicações. Diferente de outros métodos, como linguagens persistentes e banco de dados orientados a objetos, principalmente pelo fato da cópia primária dos objetos residirem permanentemente, em memória (em um sistema tradicional, a cópia primária reside em disco e blocos são temporariamente trazidos para memória). O termo prevalência surge com a implementação desses conceitos no Prevayler, um sistema em um código livre Java, e desenvolvido por K. Wuestefeld para fornecer uma camada de persistência de objetos em memória para o uso em aplicações. [Santos, C. A. L. G. et al. 2003] 2. Metodologia Para o desenvolvimento deste trabalho, foi realizado uma ampla pesquisa através da internet, livros, e trabalhos acadêmicos. 3. Desenvolvimento Desde o início dos tempos, sempre houve o interesse de gravar eventos e informações, antes dos computadores, as informações eram guardadas em papel, porem com o avanço da humanidade esse método ficou inviável, pois, a quantidade de movimentos produzidos diariamente superava a capacidade das pessoas para registrar todos esses movimentos em folhas de papel, sem contar que esse processo acarretava redundância, e para recuperar uma informação poderia demorar dias ou até semanas de trabalho árduo [Alves, 2009]. Ainda é possível encontrar diversos banco de dados não computadorizados em nosso dia a dia, como por exemplo um arquivo de aço, existentes em muitos escritórios, que guardam fichários com informações. Com o lançamento dos computadores surgiu a necessidade de otimizar o armazenamento correto de dados permitindo que informações sejam armazenadas e recuperadas com grande rapidez e facilidade. 3.1 O que é um Banco de Dados Antes de entrarmos na definição de banco de dados, é preciso esclarecer a diferença entre informação e dado. Segundo Alves [2009], informação é qualquer fato ou conhecimento do mudo real e que pode ser ou não registrado/armazenado, dado é a representação da informação, que pode ser registrado. Para um melhor entendimento da diferença entre os dois termos podemos citar o modelo da Tabela 1: Tabela 1 – Informação e Dado Informação: Dado: Está muito quente hoje A temperatura hoje é de 38 graus Celsius. Fonte: adaptado de Alves [2009 p. 23] Um computador armazena e processa dados, não informações. Uma definição de banco de dados por Alves [2009 p.23]: “Banco de dados é um conjunto de dados com um significado implícito[...]” 3.2 O que é um SGBD? De acordo com Alves [2009], se um banco de dados é um conjunto de dados relacionados, um Sistema de Gerenciamento de Banco de Dados (SGBD) é uma coleção de ferramentas e programas que permitem aos usuários a criação e manutenção do próprio banco de dados. Desta forma podemos considerar um SGBD como um programa para definição, construção e manipulação de dados. Na tabela abaixo podemos melhor definir um SGBD com três termos. Tabela 2 – Os três termos que melhor define um SGBD Definição Especificação dos tipos de dados, das estruturas das tabelas e das restrições que devem ser impostas aos dados que serão armazenados. Construção Processo de acumular os dados num meio de armazenamento totalmente controlado por um SGBD. Manipulação Operações como atualização do banco de dados (inclusão, exclusão, e alteração de registros) e extração de dados, como consultas e relatórios. Fonte: adaptado de Alves [2009, p.23] É comum as pessoas chamarem um SGBD de banco de dados, por exemplo: banco de dados Oracle, banco de dados MySQL, banco de dados SQL Server, etc. Na verdade esses são os SGBDs, banco de dados é o que eles oferecem, o correto é chamá-los de: SGBD Oracle, SGBD MySQL, SGBD SQL Server, etc. 3.3 Prevalência como Banco de Dados Segundo o site oficial, Prevayler é um software livre para persistência de dados orientada a objeto escrito em Java. Prevayler é ACID, rápido e transparente com sistemas de tolerância a falhas e uma arquitetura de balanceamento de carga para Plain Old Java Objects. Sua performance com queries é 9000 vezes mais rápida que em queries do RDBMS Oracle. E suas queries são 3000 vezes mais rápidas que em queries do RDBMS MySQL [Prevayler, s.d.]. A prevalência é um modelo transparente de persistência de objetos baseado no armazenamento dos objetos na memória principal do computador, característica que a diferencia dos sistemas convencionais. A prevalência de objetos é um conceito desenvolvido por Klaus Wuestefeld e colaboradores. Sua primeira implementação, conhecida como Prevayler, tornou-se disponível em novembro de 2001 como um software de código aberto. Existem diversas implementações deste conceito em evolução contínua. Em um sistema prevalente (que utiliza o modelo de prevalência para persistência de objetos), todos os objetos são mantidos na memória principal do computador. Uma classe específica é utilizada para garantir que todas as alterações efetuadas nesses objetos não sejam perdidas. Consultas são executadas recuperando objetos em memória, tornando seu acesso mais rápido do que através de consultas executadas diretamente em disco. Na prevalência, a diferença no tratamento dos dados ocorre na manipulação dos objetos, onde para se inserir ou alterar um objeto persistente deve-se utilizar uma classe específica. Essa técnica de diferenciar o tratamento através de uma classe indica um bom nível de transparência, pois implica diretamente na modelagem da solução e não na codificação. Dessa forma, não existe diferença no tratamento de um dado persistente para um dado transiente no nível de implementação do sistema. A prevalência é um modelo de persistência e pode ser implementada em qualquer linguagem orientada a objeto que suporte à serialização de objetos. 4. Considerações finais Comparada com outras tecnologias de persistência, a prevalência tem características que a aproximam mais de uma linguagem de programação persistente (LPP) do que de um SGBD. A prevalência, porém, é limitada a orientação a objeto, diferentemente dos SGBDRs que podem atender tanto as linguagens procedurais quanto as orientadas a objeto. Por se tratar de uma tecnologia pouca difundida, várias questões relacionadas ao desenvolvimento de sistemas precisam ainda ser investigadas e avaliadas. Entretanto, já existem algumas aplicações que utilizam essa tecnologia. Essas aplicações se caracterizam principalmente por atenderem os requisitos de baixo volume de armazenamento, alto desempenho de consulta e baixo tempo de desenvolvimento do sistema. A evolução da tecnologia de armazenamento de memória volátil pode minimizar uma das principais limitações da prevalência, possibilitando assim a sua maior utilização no desenvolvimento de sistemas orientados a objeto. Este artigo é parte integrante do trabalho de conclusão do curso de sistemas de informações, Unipar – Paranavai 2014. Referências Alves, W. P. (2009) Banco de dados: teoria e desenvolvimento. São Paulo: Érica, 2009. Prevayler [s.d] Disponível em: <http://www.prevayler.org> Acesso em: 10/08/2014. Santos, C. A. L. G. et al. (2003) Prevalência – persistência transparente de objetos em memória. Monografia do curso de Sistemas de Informação. Universidade Presbiteriana Mackenzie, 2003.