O tempo é um dos aspectos mais difíceis de lidar em aplicações que incorporam
características do mundo real, como sistemas de banco de dados. Hoje não há grande
suporte às características temporais da informação em linguagem de consulta para
gerenciamento de dados. Muitas extensões temporais do modelo relacional foram
propostas e algumas delas são implementadas. (MAHMOOD; BURNEY; AHSAN,
2010)
Para a implementação de um sistema baseado em armazenamento PIMS,
podem ser utilizadas as estratégias de modelagem propostas no trabalho de Oliveira
(2001) - Temporal Entidade Relacionamento (TempER), e no trabalho de Mahmood,
Burney & Ahsan (2010). Em resumo, são variações do modelo de banco de dados
relacional com associação de atributos temporais.
O modelo de dados relacional só suporta funcionalidades para acesso a um
único estado do mundo real (o mais recente), conjunto chamado snapshot. No entanto,
existem muitas aplicações que precisam ter acesso não só ao estado mais recente,
mas também ao passado, como em históricos de pacientes e em análises financeiras.
A noção de permanência dos dados deve ser alargada para todo o período histórico
abrangendo todos os seus estados.
Para superar essa desvantagem, o modelo
relacional foi estendido para uma forma que suporte a história em aplicações no
mundo real, trazendo gestão de dados em tempo variável.
Esta nova perspectiva possui aplicações diversas, como financeiras, sistemas
de inventário, pedidos de seguro, reserva de sistemas, sistemas de gestão da saúde,
bases de dados para assistência médica e sistemas de apoio à decisão. Esforços
para incorporar o domínio temporal em sistema de gestão de banco de dados estão
em curso há mais de um década e dezenas de modelos temporais foram propostos.
(MAHMOOD; BURNEY; AHSAN, 2010)
Segundo Oliveira (2001), a diferença básica entre um banco de dados relacional
e um banco de dados temporal é a dimensão do tempo. No banco de dados relacional
as tabelas se desenvolvem em duas dimensões: as linhas (instâncias dos dados)
e as colunas (atributos). A dimensão temporal traz a associação do timestamp a
cada valor. Desta forma, o que era alterado, geralmente perdendo o valor no modelo
tradicional, agora é armazenado como uma nova linha onde a informação é associada
a um tempo, o que faz com que seja armazenado todo o histórico do determinado
atributo, dando uma terceira dimensão, temporal, ao banco de dados. Isso não quer
dizer que no modelo temporal os dados não podem ser alterados, mas quando ocorrer
serão corrigidos em um ou mais instantes na linha do tempo.
Dados temporais têm a sua própria semântica e organização, requerendo
algumas modificações do modelo relacional. Atributos em uma relação podem ser
variáveis no tempo (temporais) ou não variáveis no tempo (atemporais). Por exemplo,
para o atributo salário de um empregado existe uma associação de tempo variável,
pois, geralmente, os valores salariais mudam com o passar do tempo. O atributo
de sexo do empregado, ao contrário, não se associa a um tempo, não variando.
(MAHMOOD; BURNEY; AHSAN, 2010)
As figuras 12 e 13 traduzem o conceito de dimensão temporal. Na primeira, o
dado é mostrado sem a dimensão do tempo; na segunda, a cada momento, o dado é
armazenado com valores diferentes criando um histórico dos dados com o passar do
tempo.
Figura 12: Dado relacional
Fonte: Edelweiss (2011)
Até agora o modelo relacional é o método mais eficaz para a organização de
grandes quantidades de dados e ainda é a tecnologia amplamente aceita entre os
fornecedores e empresas em todo o mundo.
A abordagem de inserção de datas em tuplas foi adotada na definição do
modelo temporal para manter a simplicidade e essência do modelo relacional, pois
desta forma é possível manter a característica relacional com o armazenamento das
variações do dado no tempo. A proposta lógica do modelo de dados temporal é
composto por três construções principais, ou seja, a entidade (temporal ou atemporal),
Figura 13: Dado temporal
Fonte: Edelweiss (2011)
atributo (variável no tempo e não variável no tempo) e relação n-ária (temporal,
não-temporal ou semi-temporal).
Seguem-se algumas restrições para garantir a consistência do esquema:
• Tipo de entidade Temporal pode combinar atributos variáveis enão variáveis no tempo.
• A Tupla pode ser composta por atributo variável no tempo mais a chave primária que é um atributo não variável.
• Uma relação n-ária determina se o esquema é atemporal, se os atributos de duas tabelas relacionadas não variam no tempo; temporal se os atributos de duas tabelas relacionadas variam no tempo; ou semi relacional-temporal se o atributo de somente uma das tabelas varia no tempo;(MAHMOOD; BURNEY; AHSAN, 2010)
Um dos modelos temporais propostos como base para este projeto é o
TempER que, segundo Oliveira (2001) "surge com a intenção de suprimir os pontos
desfavoráveis identificados nas propostas de modelagem temporal pesquisadas na
literatura". O modelo TempER, como outros modelos temporais, agrega a dimensão
temporal a um objeto simplesmente relacional apresentando entidades, relações e
atributos.
A primitiva temporal utilizada é o elemento temporal, um valor de tempo discreto
sempre associado ao valor que é alterado naquele instante de tempo. Uma das
características que aproximam o modelo de PIMS e o TempER é o eixo do tempo,
existe somente uma linha do tempo onde são armazenados os valores no momento
da alteração. Não existe tempo de validade ou de transação para uma informação.
O valor sofre alteração em instantes no tempo, se mantendo nessa condição
até a próxima modificação. Diferente de outras abordagens, que devem garantir o
período no tempo em que o valor existe ou é válido, sendo necessário armazenar uma
tempo inicial e um final para cada alteração.
Uma vantagem do modelo é a capacidade de associar tanto entidades
temporalizadas, quanto não temporalizadas, apesar de todas as entidades nesse
modelo apresentarem a dimensão temporal.
Para fazer a diferenciação entre as
entidades que mudam ou não com o tempo são feitas duas classificações. Transitórias,
são entidades temporalizadas que existem com suas modificações durante todo um
período de tempo, "são aquelas cuja validade temporal é um subconjunto de pontos
do tempo do eixo temporal". (OLIVEIRA, 2001)
As entidades e relações perenes apresentam características fixas, sem
modificações durante o tempo e sem armazenamento dos dados temporalizados.
Segundo Oliveira (2001) "São aquelas cuja validade temporal é exatamente igual a
todo o eixo temporal."... "a sua validade temporal inicia no primeiro ponto do eixo
temporal e se estende até o último. Normalmente as entidades que o modelador não
necessita ou não deseja associar ao tempo são consideradas como perenes".
Em relacionamentos temporais são relacionadas duas entidades no âmbito da
dimensão temporal, "este tipo de relacionamento serve para modelar as associações
das quais se necessita conhecer a validade temporal. Os relacionamentos temporais
só são válidos nos momentos especificados pelos seus rótulos temporais” (OLIVEIRA,
2001). Já os relacionamentos atemporais não levam em consideração o tempo, não
apresentando momento inicial ou final.
Os relacionamentos temporais se diferenciam dos antemporais por apresentar
restrições de cardinalidade com base no tempo. A cardinalidade é demonstrada por
Oliveira (2001). Para relacionamentos intemporais:
(0,1) a entidade pode não participar em relacionamentos; se participa, limita-se a no máximo uma vez;
(0,N) a entidade pode não participar em relacionamento, ou pode participar mais de uma vez;
(1,1) a entidade participa uma única vez do relacionamento;
(1,N) a entidade participa no mínimo uma vez no relacionamento, podendo participar mais vezes.
Para relacionamentos temporais:
(0,1) a entidade pode não participar em relacionamentos; se participa, limita-se a no máximo uma vez a cada momento do tempo;
(0,N) a entidade pode não participar em relacionamento, ou pode participar mais de uma vez a cada momento do tempo;
(1,1) a entidade participa uma única vez do relacionamento, a cada momento do tempo;
(1,N) a entidade participa no mínimo uma vez em relacionamento, podendo participar mais vezes a cada momento do tempo.
A figura 14 descreve a notação utilizada para modelagem pelo TempER.
Enquanto um modelo relacional apresenta um retângulo como entidade e um losango
como relacionamento, o TempER adiciona a estas marcas, sendo ’Tr’ para um
elemento transitório e ’P’ para um elemento perene.
Figura 14: Notação para modelagem TempER
Fonte: Oliveira (2001)