Implementação de bancos de dados temporais com versionamento de esquemas: um estudo comparativo - Santos, Constância da Silva (2003)
Nas aplicações do mundo real, os dados mudam com o passar do tempo. Devido à característica dinâmica das aplicações, o esquema conceitual também pode mudar para se adaptar às mudanças que freqüentemente ocorrem na realidade. Para representar esta evolução, uma nova versão do esquema é definida e os dados armazenados são adaptados à nova versão. Entretanto, existem aplicações que precisam acessar também o esquema sob os diversos aspectos de suas mudanças, requerendo o uso de versionamento de esquemas. Durante a evolução do esquema, o versionamento preserva todas as versões deste esquema e seus dados associados, possibilitando a recuperação dos dados através da versão com a qual foram definidos. Ultimamente muitas pesquisas têm sido realizadas envolvendo as áreas de versionamento de esquemas e bancos de dados temporais. Estes bancos de dados provêm suporte ao versionamento de esquemas, pois permitem armazenar e recuperar todos os estados dos dados, registrando sua evolução ao longo do tempo. Apesar de muitos esforços, ainda não existem SGBDs temporais comercialmente disponíveis. A utilização de um modelo de dados temporal para a especificação de uma aplicação não implica, necessariamente, na utilização de um SGBD específico para o modelo. Bancos de dados convencionais podem ser utilizados desde que exista um mapeamento adequado entre o modelo temporal e o SGBD utilizado. Este trabalho apresenta uma abordagem para a implementação de um banco de dados temporal permitindo o versionamento de esquemas, usando um banco de dados relacional, tendo como base o modelo temporal TRM (Temporal Relational Model). Como forma de ilustrar apresenta-se um exemplo de implementação utilizando o SGBD DB2. O principal objetivo é avaliar diferentes técnicas de implementar e gerenciar o versionamento de esquemas em bancos de dados temporais. Para atingir esse objetivo, um protótipo foi desenvolvido para automatizar os mapeamentos do TRM para o DB2 e gerenciar o versionamento de esquemas e dados. Duas experiências de implementação foram realizadas utilizando formas diferentes de armazenar os dados - um repositório e vários repositórios - com o objetivo de comparar os resultados obtidos, considerando um determinado volume de dados e alterações. Um estudo de caso também é apresentado para validar as implementações realizadas.