Artigo do tipo Tutorial
Recursos especiais neste artigo:
Conteúdo boas práticas.

Adicionando características de banco de dados temporal ao PostgreSQL
As características temporais são intrínsecas a determinadas aplicações. Assim, o estudo das características temporais é extremamente relevante no contexto de bancos de dados, pois armazenar informações históricas a respeito de um determinado objeto que nele está sendo mantido. Neste artigo, foi implementado um estudo de caso prático para demonstrar algumas das funcionalidades que o PostgreSQL nos oferece para trabalhar com alguns conceitos de bancos de dados temporais.


Em que situação o tema é útil
O conteúdo deste artigo visa apresentar ao leitor os conceitos de bancos de dados temporais e sua aplicação prática. O entendimento do assunto é útil para aqueles que trabalhem com aplicações que precisam manter algum aspecto de informação de tempo no banco de dados. Alguns exemplos destes tipos de aplicações são: atendimento médico, seguridade, sistemas de reservas em geral e bancos de dados científicos.

Os bancos de dados temporais oferecem a possibilidade de armazenar informações históricas a respeito de um determinado objeto que nele está sendo mantido. Para que seja possível a utilização destas informações históricas, é necessária a criação de rótulos temporais associados aos objetos do banco de dados temporal.

Desde o início da utilização de bancos de dados, foram desenvolvidas aplicações de bancos temporais. Porém, no desenvolvimento dessas aplicações, era deixada aos projetistas e aos desenvolvedores das aplicações a função de descobrir, projetar, programar e implementar os conceitos de temporabilidade de que precisavam.

Na realidade, é realista concluir que a maioria das aplicações de banco de dados tem um pouco de informação temporal. Os usuários tentam frequentemente simplificar ou ignorar aspectos temporais pela complexidade que acrescentam às aplicações.

Há muitos exemplos de aplicações onde é preciso manter algum aspecto de informação de tempo no banco de dados. Estas incluem atendimento médico, na qual os históricos dos pacientes precisam ser mantidos; seguridade, na qual são necessários históricos de acidentes, assim como as informações sobre prazo de validade das apólices; sistemas de reservas em geral (hotéis, linhas aéreas, aluguel de carros, trem etc.), na qual informações sobre datas e validade de reservas são necessárias; bancos de dados científicos, nos quais dados coletados em experiências incluem data e horário em que cada dado foi medido, e assim por diante.

Entretanto, atualmente os bancos de dados amplamente utilizados comercialmente não contam com suporte a dados temporais, porém pode-se utilizar dos conceitos destes para que seja feita uma modelagem manual dos dados utilizando bancos de dados instantâneos.

Bancos de dados temporais

Normalmente um sistema de banco de dados contém apenas a versão mais atualizada de cada um dos registros armazenados. Os dados antigos são sobrescritos através das operações de atualização, fazendo com que o banco de dados represente a realidade capturada por ele como um instantâneo.

Os bancos de dados relacionais comerciais que possuímos atualmente nos possibilitam apenas o armazenamento de um instante de tempo dos registros nele guardados. Neste caso, podemos dizer que os bancos de dados nos permitem apenas armazenar informações do estado presente dos registros.

Para que possamos armazenar as informações temporais nos bancos de dados relacionais há necessidade de serem criados atributos adicionais para cada entidade. O gerenciamento desta informação fica totalmente a cargo do usuário. Há necessidade de tirar a responsabilidade do controle desses dados do usuário e, para tal, seria necessário que os SGBDs comercias implementassem nativamente a manipulação das informações temporais.

Os bancos de dados temporais são diferentes porque não tratam apenas dos dados, mas agregam o tempo a eles. Os valores antigos são preservados com o auxílio de rótulos temporais que lhes conferem um caráter de informação válida em determinado momento da história.

Bancos de dados temporais podem ser classificados de acordo com a forma como a informação é estruturada para o seu armazenamento. Assim, os bancos de dados temporais podem ser classificados em: banco de dados instantâneos, banco de dados de tempo de transação, banco de dados de tempo de validade, banco de dados bitemporais e bancos de dados multitemporais.

Os bancos de dados instantâneos são aqueles utilizados comercialmente, tais como Oracle, SQL Server, PostGreSQL, MySQL etc. Esse tipo de banco de dados nos permite armazenar a informação atual dos registros, ou seja, apenas o estado presente. Para se utilizar o controle temporal neste tipo de banco de dados, faz-se necessário a criação de atributos definindo as datas associadas ao registro, caso não haja esse controle através de atributos, este registro perderá os valores antigos sempre que seja feita uma alteração. Vale ressaltar que todo o controle destes atributos deverá ser feito manualmente pelo desenvolvedor da aplicação. A ...

Quer ler esse conteúdo completo? Tenha acesso completo