Anda di halaman 1dari 57

Bancos de Dados Temporais: Teoria e Prtica

Nina Edelweiss
Instituto de Informtica
Universidade Federal do Rio Grande do Sul
E-mail: nina@inf.ufrgs.br
Resumo
Bancos de Dados Temporais permitem armazenar todos os estados de uma
aplicao (presentes, passados e futuros), registrando sua evoluo com o
passar do tempo. Informaes temporais so associadas aos dados
armazenados (tempo de transao e/ou tempo de validade) para identific-
los ao longo do tempo. Modelos de dados temporais so tambm utilizados
nos processos de modelagem de aplicaes, devido ao seu poder de
representar no somente os aspectos estticos da aplicao, mas tambm
seus aspectos dinmicos e sua evoluo temporal. Neste curso sero
apresentados conceitos bsicos de modelagem temporal e de bancos de
dados temporais, aspectos relativos a consultas sobre bancos de dados
temporais, anlise da evoluo de esquemas conceituais quando forem
utilizados bancos de dados temporais, diferentes formas de implementao
e algumas aplicaes onde dados temporais so fundamentais.

Abstract
The whole temporal evolution of an application, including all the assumed
states (past, present and future), can be available when Temporal
Databases are used. The identification of data along time is made
associating temporal information to stored data (transaction and/or valid
time). Temporal data models are also used in application modeling
processes, due to their ability of representing not only the static aspects,
but also the dynamic ones and the evolution of the application with time.
The issues presented in this course include basic concepts of temporal
modeling and temporal databases, temporal queries, and considerations
about schema evolution in temporal databases, different implementation
forms, and some applications that require temporal data.

1 Introduo
A maior parte das aplicaes atuais tm necessidade de manipular, de
alguma maneira, informaes histricas dados relativos a estados
passados da aplicao. Os SGBD convencionais, no entanto, no
proporcionam suporte a estas informaes. A necessidade de suprir esta
lacuna fez com que nos ltimos 20 anos muitas pesquisas tenham sido
realizadas na rea de Bancos de Dados Temporais, com o objetivo de
definir conceitos e estratgias para tratar de informaes histricas. As
publicaes destas pesquisas foram reunidas em diversas coletneas de
bibliografias [Bolour 82, McKenzie 86, Stam 88, Soo 91, Kline 93, Tsotras
96, Wu 97].
Bancos de Dados Temporais permitem armazenar todos os estados de
uma aplicao (presentes, passados e futuros), registrando sua evoluo
com o passar do tempo [Clifford 95, Edelweiss 94, Jensen 97, zsoyoglu
95, Tansel 93, Zaniolo 97]. Para que isto seja possvel, informaes
temporais so associadas aos dados armazenados, identificando quando a
informao foi definida ou o tempo de sua validade.
A noo de tempo, como datas, perodos, durao de validade de
informaes, intervalos temporais, surge em diferentes nveis: (i) na
modelagem de dados, (ii) na linguagem de recuperao e manipula o de
dados, e (iii) no nvel de implementao do SGBD.
No presente curso sero abordados diversos aspectos relativos a
Bancos de Dados Temporais. No captulo 2 ser feita uma breve
apresentao de conceitos relativos a representao de informaes
temporais, sendo os diferentes tipos de Bancos de Dados Temporais
apresentados no captulo 3. O captulo 4 apresenta algumas consideraes
a respeito de consultas realizadas sobre Bancos de Dados Temporais.
Diferentes enfoques para modelos de dados temporais, base ados em
modelos relacionais, E-R e orientados a objetos sero vistos no captulo 5.
A evoluo do esquema conceitual com o passar do tempo outro aspecto
importante, necessrio para a representao da evoluo da aplicao que
est sendo modelada. As implicaes desta evoluo quando se trabalha
com Bancos de Dados Temporais so abordadas no captulo 6. Alguns
aspectos de implementao de BD Temporais so analisados no captulo 7
e, para concluir, no captulo 8 so analisadas algumas reas de aplicao
nas quais a utilizao deste tipo de bancos de dados importante.

2 Conceitos de Representao Temporal


Este captulo tem por finalidade introduzir o leitor nos principais conceitos
relativos representao de aspectos temporais em bancos de dados. A
forma de representao escolhida se reflete em interpretaes diferentes
dos conceitos temporais. As definies completas dos conceitos aqui
apresentados podem ser encontradas em [Jensen 94], num glossrio
consensual de termos relativos a Bancos de Dados Temporais elaborado
pela comunidade desta rea atravs de uma discusso realizada atravs de
correio eletrnico.
2.1 Dimenso Temporal
Os modelos de dados tradicionais apresentam duas dimenses,
representando (1) as instncias dos dados (linhas de uma tabela), e (2) os
atributos de cada instncia (colunas desta tabela). Cada atributo de uma
instncia apresenta um s valor. Se for feita uma alterao deste valor, o
anterior perdido. Por exemplo, se o atributo representa o salrio de um
funcionrio, o banco de dados somente armazena o ltimo valor.
Os modelos temporais acrescentam mais uma dimenso aos modelos
tradicionais a dimenso temporal. Esta dimenso associa alguma
informao temporal a cada valor. Caso o valor de um atributo seja
alterado, o valor anterior no removido do banco de dados o novo valor
acrescentado, associado a alguma informao que define, por exemplo,
seu tempo inicial de validade. Todos os valores definidos ficam
armazenados no banco de dados. No exemplo anterior, todos os valores do
salrio do funcionrio ficam armazenados, cada um associado ao seu
tempo de validade. Deste modo possvel acessar toda a histria dos
atributos, sendo possvel analisar sua evoluo temporal.
2.2 Ordem no Tempo
A dimenso temporal composta por uma seqncia de pontos
consecutivos no tempo, que recebe o nome de eixo temporal. A definio de
uma ordem a ser seguida no tempo fundamental quando utilizada
alguma representao temporal. O mais comum que se assuma que o
tempo flui linearmente; isto implica em uma total ordenao entre
quaisquer dois pontos no tempo. Em alguns casos pode ser considerado
tempo ramificado ("branching time"). Para estes a restrio linear
abandonada permitindo a possibilidade de dois pontos diferentes serem
sucessores (ramificao no futuro) ou antecessores (ramificao no
passado) imediatos de um mesmo ponto. Uma ramificao no futuro
implica que podem ser considerados mltiplos possveis desenvolvimentos
futuros do domnio (por ex., diferentes hipteses da histria futura),
enquanto que uma ramificao no passado admite mltiplas histrias
passadas do domnio em questo. A combinao "passado linear, futuro
ramificado" trabalha com uma s histria passada e admite mltiplas
histrias futuras, representando desta maneira a realidade atual de uma
forma bastante fiel. Uma ltima opo de ordenao temporal considerar
o tempo circular. Esta forma pode ser utilizada para modelar eventos e
processos recorrentes.
2.2.1 Tempo Totalmente Ordenado
A maior parte dos modelos temporais se baseia no tempo linearmente
ordenado. A ordenao total do tempo pode ser definida com mais preciso
atravs da teoria dos conjuntos, conforme mostrado a seguir [Antunes 97].
Seja T o conjunto no vazio de todos os pontos do tempo. Por
definio, T um conjunto totalmente ordenado pela relao BEFORE
(ANTES ), a qual satisfaz seguinte condio:
ta, tb : ta, tb T ta tb (ta BEFORE tb tb BEFORE ta)
Para que a relao BEFORE seja uma relao de ordem estrita total
necessrio que possua as seguintes propriedades:
Irreflexibilidade:
t : t T (t BEFORE t)
Transitividade:
ta, tb , tc : ta, tb , tc T ta BEFORE tb tb BEFORE tc
ta BEFORE tc
Assimetrias:
ta, tb : ta, tb T ta BEFORE tb (tb BEFORE ta)
A relao BEFORE equivalente relao < utilizada no mbito dos
nmeros inteiros, sendo este operador muitas vezes utilizado para
representar a ordem temporal.
2.3 Tempo Absoluto e Tempo Relativo
Outro conceito importante o que diferencia tempo absoluto de relativo.
Tempo absoluto consiste de uma informao temporal que define um
tempo especfico, definido com uma granularidade determinada, associado
a um fato. Exemplo: Flvio nasceu no dia 30/08/73.
Um tempo relativo quando sua validade relacionada validade de
outro fato, ou ao momento atual. Exemplo: o salrio aumentou ontem; a
loja abriu dois meses depois da abertura do Shopping.
2.4 Variao Temporal
Duas formas basicamente diferentes de variao temporal podem ser
consideradas: tempo contnuo e tempo discreto. Supe -se que o tempo
contnuo por natureza. Entretanto, sem grande perda de generalidade, o
tempo pode ser considerado como discreto. Esta segunda forma de
representao simplifica consideravelmente a implementao de modelos
de dados.
Modelos de dados que suportam uma noo discreta de variao
temporal so baseados em uma linha de tempo composta de uma
seqncia de intervalos temporais consecutivos, que no podem ser
decompostos, de idntica durao. Estes intervalos so denominados
chronons. A durao particular de um chronon no necessariamente
fixada no modelo de dados, podendo ser definida em implementaes
particulares do modelo de dados.
Considerando variao temporal discreta, a definio de informaes
ao longo do tempo, sob ponto de vista de sua validade, pode ser feita das
seguintes formas (Figura 2.1):
variao ponto a ponto o valor definido vale somente no ponto
temporal onde foi definido. No existe valor vlido nos pontos para os
quais no foram definidos valores;
variao por escada o valor fica constante desde o ponto em que foi
definido at o instante em que outro valor seja definido. Corresponde,
geralmente, definio de valores em conseqncia da ocorrncia de
eventos (variao por eventos);
variao temporal definida por uma funo existe uma funo que
define os valores e que permite a interpolao para obter os valores nos
pontos no definidos. Esta funo de interpolao pode ser definida
pelo usurio ou includa na modelagem conceitual.

v v

t t
PONTO A PONTO EM ESCADA
v

chronon

t
DEFINIDA POR UMA FUNO

Figura 2.1: Formas de variao temporal discreta


2.5 Granularidade Temporal
A granularidade temporal de um sistema consiste na durao de um
chronon. Entretanto, dependendo da aplicao considerada, s vezes
necessrio considerar simultaneamente diferentes granularidades
(minutos, dias, anos) para permitir uma melhor representao da
realidade. Por exemplo, em um determinado segmento modelado, a
granularidade pode ser diria (o chronon equivale a um dia), enquanto que
em outro segmento a granularidade pode ser mensal. Embora o chronon do
sistema seja nico, possvel manipular estas diferentes granularidades
atravs de funes e operaes disponveis nos sistemas gerenciadores do
banco de dados que implementam o mode lo.
2.6 Elementos Primitivos de Representao Temporal

2.6.1 Instante no Tempo


O conceito de instante, representando um particular ponto no tempo,
depende da forma de variao temporal considerada. Quando
considerado tempo contnuo, um instante um ponto no tempo de
durao infinitesimal. Neste caso os instantes so isomrficos com os
nmeros reais, o que significa que entre dois pontos do tempo sempre
existe um outro ponto no tempo.
Quando, no entanto, considerada a variao temporal discreta, um
instante re presentado por um dos chronons da linha de tempo suportada
pelo modelo. Na variao discreta, os instantes so isomrficos aos
nmeros inteiros ou a um subconjunto destes. Assim, entre dois pontos do
tempo consecutivos no existe outro ponto do tempo. Diz-se que um
evento ocorre no tempo t se ocorre em qualquer tempo durante o chronon
representado por t. Um chronon, que a menor durao de tempo
suportada por um SGBD temporal, pertence representao discreta de
tempo.
Considerando a ordem de variao temporal linear, temos a existncia
de um instante especial, correspondente ao instante atual (now), o qual
se move constantemente ao longo do eixo do tempo. Este ponto define o
que considerado como passado (qualquer ponto anterior a este) e como
futuro (qualquer ponto posterior a ele).
2.6.2 Intervalo Temporal
Um intervalo temporal caracterizado pelo tempo decorrido entre dois
instantes um subconjunto de pontos do eixo temporal. Depende tambm
da forma de representao temporal definida no modelo. Quando
considerado tempo contnuo, o intervalo consiste de infinitos instantes de
tempo. Na variao discreta um intervalo representado por um conjunto
finito de chronons consecutivos.
representado pelos dois instantes que o delimitam. Dependendo da
pertinncia ou no dos instantes limites ao intervalo este pode ser aberto
(os limites no pertencem ao intervalo), semiaberto (um dos limites
pertence ao intervalo) ou fechado (ambos os limites pertencem ao
intervalo). Quando um dos limites representado pelo instante atual (now)
temos a representao de um intervalo particular cujo tamanho varia com
a passagem do tempo.
Um intervalo temporal representado por [t1, t2], onde t1 o primeiro
ponto do intervalo (limite inferior) e t2 o ltimo (limite inferior). O prprio
eixo temporal T pode ser considerado um intervalo de tempo,
identificado pela expresso [, ], onde o smbolo o instante temporal de
incio da contagem de tempo e o smbolo representa o final. Para
qualquer intervalo temporal, uma das duas frmulas a seguir deve ser
verdadeira:
t1 < t2 ou t1 = t2.
A segunda representa um intervalo cuja durao exatamente um
chronon.
Um intervalo temporal tambm totalmente ordenado pela relao
BEFORE, sendo possvel, atravs dos operadores first e last [Clifford 88],
extrair-lhe o primeiro e o ltimo ponto de tempo. o que se passa a
demonstrar.
Seja I, um intervalo de tempo e I T, ento:
first ( I ) o elemento t I tal que, t' I : t BEFORE t' t = t'
last ( I ) o elemento t I tal que, t' I : t' BEFORE t t' = t
Para que um conjunto de pontos do tempo seja realmente considerado
um intervalo, necessrio que sejam consecutivos, isto , no pode haver
qualquer lacuna entre eles. Esta condio formalmente representada
pela expresso abaixo:
Seja I T um intervalo, ento
ta I : ta last ( I ) tb I : ( ta BEFORE tb
tc T : ta BEFORE tc tc BEFORE tb )

2.6.3 Elemento Temporal


Elemento temporal uma unio finita de intervalos de tempo. Estes
intervalos podem ser disjuntos, o que realmente o diferencia dos demais e
enriquece o seu poder de expresso por exemplo, um possvel elemento
temporal seria a unio dos intervalos [25, 40] e [51, 70]. O e lemento
temporal fechado para as operaes de unio, interseo e complemento
da teoria dos conjuntos, isto , qualquer destas operaes sobre um
elemento temporal produz um novo elemento temporal. Como estas
operaes encontram contrapartida nos operadores booleanos or, and e
not, isto produz uma substancial simplificao na habilidade do usurio de
expressar consultas temporais. Tendo em vista que todos os intervalos
temporais so subconjuntos do eixo temporal T, um elemento temporal,
sendo composto por diversos intervalos temporais, tambm o . Tanto um
intervalo temporal como um instante temporal ([t, t]) so elementos
temporais.
Em termos de modelagem, o elemento temporal se mostra superior ao
uso da primitiva intervalo de tempo pois, quando os intervalos so usados
como rtulos temporais, os objetos so fragmentados em vrias tuplas,
uma para cada intervalo. Outro aspecto importante desta primitiva
temporal que possibilita a representao da reencarnao de objetos
com facilidade. Um exemplo da necessidade deste aspecto seria uma
pessoa ser funcionrio de uma empresa durante o intervalo [1992, 1995],
tendo sado da empresa em 1995 e sendo readmitida dois anos depois
(1997). A validade da existncia desta pessoa na empresa seria a unio dos
interva los [1992, 1995] U [1997, ].
2.6.4 Durao Temporal
A representao de um durao temporal pode tambm ser considerada
como primitiva. Duraes temporais podem ser basicamente de dois tipos,
dependendo do contexto em que so definidas: fixas e variveis. Uma
durao fixa independe do contexto de sua definio. Um exemplo tpico de
uma durao fixa uma hora que tem sempre, independentemente do
contexto de sua utilizao, a durao de 60 minutos. J a durao varivel
depende do contexto, sendo um exemplo tpico a durao de um ms, que
pode ser de 28, 29, 30 ou 31 dias.
2.7 Limites do Tempo
O conceito de limites no tempo pode variar dependendo da representao
temporal utilizada. Quando considerados somente pontos no tempo, os
limites do tempo se referem a considerar ou no o tempo como infinito. O
conceito de tempo infinito consiste em considerar que todo ponto no tempo
apresente sempre um sucessor e um antecessor. Em modelos orientados a
objetos este conceito fica limitado, por exemplo, ao tempo de vida de um
objeto. No caso das teorias baseadas em intervalos, os limites do tempo se
referem geralmente pertinncia ou no dos pontos limites ao intervalo,
definindo se os intervalos so abertos ou fechados em um ou em ambas as
extremidades.
2.8 Representao Temporal Expl cita e Implcita
A definio de tempo pode ser feita de forma explcita, atravs por exemplo
da associao de um valor temporal a uma informao na forma de um
rtulo temporal (timestamping), ou de forma implcita atravs da utilizao
de uma linguagem de lgica temporal.
A associao explcita de tempo s informaes consiste em associar a
cada valor atribudo a um atributo, o valor que corresponde sua
primitiva temporal. A representao temporal implcita feita atravs da
manipulao de conhecimentos sobre a ocorrncia de eventos ou do
relacionamento de intervalos de tempo como, por exemplo: a aula de lgica
temporal ocorreu ontem.
2.9 Tempo de Transao e Tempo Vlido
Trs diferentes conceitos temporais podem ser identificados em aplicaes
de bancos de dados [Snodgrass 85]: (i) tempo de transao, tempo no
qual o fato registrado no banco de dados; (ii) tempo de validade, tempo
em que o valor vlido na realidade modelada; e (iii) tempo definido pelo
usurio, consistindo de propriedades temporais definidas explicitamente
pelos usurios em um domnio temporal e manipuladas pelos programas
de aplicao. Estes tempos so ortogonais, podendo ser tratados
separadamente ou em conjunto. O tempo de transao suprido
automaticamente pelo sistema gerenciador de banco de dados, enquanto
que o tempo de validade fornecido pelo usurio.
O tempo de validade pode ser representado de formas distintas,
dependendo do elemento temporal bsico utilizado no modelo. Quando for
utilizado o elemento temporal ponto no tempo, o tempo de validade pode
ser representado: (i) atravs de um ponto no tempo indicando o incio da
validade, permanecendo o valor vlido at que inicie o tempo de validade
de outro valor; ou (ii) atravs de dois pontos no tempo, o primeiro
indicando o incio da validade e segundo, o final da validade. Nos modelos
que utilizam o intervalo temporal como elemento temporal bsico, o tempo
de validade definido atravs do intervalo de validade do valor.

3 Bancos de Dados Temporais


Um banco de dados temporal aquele que apresenta alguma forma
implcita de representao de informaes temporais. Podem ser utilizados
o tempo de transao e/ou o de validade para representar esta informao
temporal. Conforme a forma utilizada, os bancos de dados podem ser
classificados em quatro tipos diferentes: bancos de dados instantneos, de
tempo de transao, de tempo de validade e bitemporais.
3.1 Bancos de Dados Instantneos
Corresponde aos bancos de dados convencionais, onde so armazenados
somente os valores presentes. A cada modificao no valor de uma
propriedade, o valor anteriormente armazenado destrudo e somente o
ltimo valor est disponvel. A figura 3.1 apresenta algumas atualizaes
feitas em momentos diferentes em um banco de dados instantneo. Cada
estado do banco de dados corresponde a um instantneo (snapshot). A
manuteno de informaes temporais neste tipo de banco de dados
somente pode ser realizada explicitamente, pela incluso de atributos
definidos sobre o domnio tempo, e pela sua manipulao atravs dos
programas de aplicao.

Estados Passados

Estado Atual

Joo Silva, 01/jan/92, 800,00

Mara Dias, 01/mar/91, 1.200,00

Figura 3.1: Banco de Dados Instantneo


3.2 Bancos de Dados de Tempo de Transao
Uma alternativa para armazenamento de informaes temporais associar
a cada valor definido o tempo de transao, sob forma de um rtulo
temporal (timestamp). Este tempo fornecido automaticamente pelo
SGBD, sendo esta operao transparente ao usurio. A alterao do valor
de uma propriedade no destri o valor anteriormente definido, ficando
todos os valores armazenados no banco de dados. O estado atual do BD
composto pelos ltimos valores definidos para cada uma das propriedades.
Bancos de dados deste tipo so denominados de bancos de dados de
tempo de transao. Na figura 3.2 esto representadas atualizaes do
salrio de um funcionrio.

t1 800 01/jan/92

t2 900 01/jun/92

1000 01/jan/93
t3

tpresente Momento Atual

Histria do salrio de Joo

Tempo

Figura 3.2: Banco de Dados de Tempo de Transao


Caso o dia em que procedida a atualizao do salrio no coincida com o
dia em que comea a sua validade, a data de incio de validade pode ser
armazenada como um atributo explcito, como mostrado na figura 3.3.

(800, 01/jan/92) 03/jan/92


t1
(900, 01/jun/92) 25/mai/92
t2
(1000, 01/jan/93) 10/jan/93
t3
Momento Atual
tpresente

Histria do salrio de Joo

Tempo

Figura 3.3: Banco de Dados de Tempo de Transao


3.3 Bancos de Dados de Tempo de Validade
Um terceiro tipo de banco de dados, denominado banco de dados de
tempo de validade, associa a cada informao somente o tempo de sua
validade no mundo real. Este pode representar o incio de sua validade
(ponto no tempo, variao por degraus), a validade somente naquele ponto
no tempo (variao discreta), ou seu intervalo de validade. O tempo de
validade deve sempre ser fornecido pelo usurio. Em bancos de dados de
tempo de validade no se tem acesso ao tempo em que a informao foi
definida, sendo armazenado somente o tempo em que a mesma vlida. A
figura 3.4 apresenta um exemplo deste tipo de banco de dados, tambm
atualizando o salrio de um funcionrio.

800 01/jan/92
t1

t2 900 01/jun/92

1000 01/jan/93
t3
Momento Atual
tpresente

Histria do salrio de Joo

Tempo

Figura 3.4: Banco de Dados de Tempo de Validade


Este tipo de banco de dados permite se sejam corrigidas informaes
do passado - se alguma das informaes tiver sido registrada
incorretamente, feita uma nova definio com a data de validade
correspondente, sendo que somente a verso atual dos dados a
disponvel.
3.4 Bancos de Dados Bitemporais
A forma mais completa de armazenar informaes temporais so os
bancos de dados bitemporais, nos quais os tempos de transao e de
validade so associados a cada informao. Toda a histria do banco de
dados fica armazenada. possvel ter acesso a todos os estados passados
do banco de dados - tanto a histria das transaes realizadas, como a
histria da validade dos dados. O estado atual do banco de dados
constitudo pelos valores atualmente vlidos. Valores futuros podem ser
definidos atravs do tempo de validade, sendo possvel recuperar o
momento em que estes valores foram definidos para eventuais alteraes.
Como exemplo deste tipo de banco de dados apresentamos, na figura 3.5,
toda a histria da atualizao do salrio do funcionrio Joo. Pode -se
saber no somente o valor atual do salrio, como o valor que era vlido em
qualquer data passada e ainda aqueles valores que se acreditava como
vlidos mas que em datas posteriores foram modificados.

01/jan/92 Tempo de Transao

800
800
03/jan/92
900
900 25/mai/92

01/jun/92 1000
1000
10/jan/93
01/jan/93
Momento
Atual

Histria das transaes


do salrio de Joo

Histria da validade
Tempo de Validade do salrio de Joo

Figura 3.5: Banco de Dados Bitemporal

4 Consultas a Bancos de Dados Temporais


Quando utilizado um banco de dados temporal, importante que
tambm esteja disponvel uma linguagem de consulta temporal. Esta
linguagem deve possibilitar a recuperao de todas as informaes
armazenadas no banco de dados (temporais ou no), de modo a que seja
tirado real proveito do acrscimo da dimenso temporal. Consulta
temporais permitem:
fornecer valores de propriedade s cujo domnio temporal. Exemplo:
fornecer o valor da propriedade que armazena a data de nascimento de
uma pessoa;
se referir a um determinado instante ou intervalo temporal. Exemplo:
qual o valor do salrio no dia 01/01/94;
recuperar valores com base e m restries temporais. Exemplo:
recuperar todos os valores do salrio antes do dia 01/01/94;
fornecer informaes temporais (datas, intervalos). Exemplo: qual a
data em que foi alterado o salrio de um funcionrio.
Para que isto seja possvel, as linguage ns de consultas temporais
devem ser enriquecidas para manipular a dimenso temporal, e ter
capacidade de deduo sobre tempo com base nas informaes temporais
armazenadas. Isto possibilitado atravs da utilizao de lgica temporal,
a qual permite inferncias de valores no explicitamente armazenados.
4.1 Problemas no Processamento de Consultas Temporais
O processamento de consultas temporais apresenta diversos problemas
alm daqueles usualmente enfrentados. Entre eles podemos citar:
o grande volume de dados armazenado em um banco de dados
temporal implica na necessidade de novos mtodos de indexao
(estruturas e algoritmos de busca);
mtodos tradicionais de indexao s podem ser utilizados para valores
com algum tipo de ordenao completa, com estruturas de acesso para
intervalos;
manipulao de informaes incompletas, devido a valores incompletos
ou inexistentes, a partir dos quais devem ser inferidas informaes.
Podem ser devido (i) incerteza quanto existncia do objeto em certos
pontos no tempo, ou (ii) indeterminao temporal, causada por
eventos cujo tempo de ocorrncia no conhecido
4.2 Tipos de Bancos de Dados e Diferentes Histrias
As consultas temporais que podem ser formuladas a um banco de dados
temporal dependem do tipo de banco de dados e da histria considerada.
Os bancos de dados instantneos no apresentam suporte para
informaes temporais, no permitindo portanto consultas temporais.
Nos bancos de dados de tempo de transao podem ser feitas consultas
a (i) valores atuais das informaes armazenadas, (ii) valores definidos em
tempos passados. O tempo de transao associado implicitamente
informao identifica o instante para o qual se quer a informao. A
validade das informaes somente pode ser armazenada atravs de
atributos explcitos, e sua recuperao seria atravs destes atributos.
Exemplo: recuperar o salrio de um funcionrio no dia (tempo de
transao) 01/01/97.
Nos bancos de dados de tempo de validade podem ser recuperadas
informaes vlidas em momentos presentes e passado s, alm de valores
armazenados sob forma de previso para o futuro, de acordo com a atual
percepo da histria dos dados. Exemplo: recuperar o salrio vlido de
um funcionrio no dia 01/01/98.
Os bancos de dados bitemporais permitem que sejam feitas consultas a
respeito de valores atuais, passados e futuros, considerando o tempo de
transao e o de validade. Qualquer estado do banco de dados pode ser
consultado (atual, passado, ou previsto para o futuro). Quando
considerado o estado atual do banco de dados, a recuperao sobre a
atual percepo dos dados. Os estados passados representam valores que
se acreditava vlidos em datas passadas e que, posteriormente, foram
redefinidos. O conjunto de todos estes estados (passados, atual e futuros)
de um banco de dados caracteriza a sua histria. Um banco de dados
bitemporal permite que se tenha registro de todas as histrias passadas. A
histria presente corresponde ao conhecimento presente a respeito do
presente, a respeito do passado e a respeito do futuro. Uma histria
passada corresponde ao conhecimento que existia naquele momento a
respeito do presente, do passado e do futuro, sendo definida por um tempo
de transao informaes definidas aps este tempo no devem ser
consideradas, uma vez que no eram conhe cidas. A consulta deve definir,
atravs de alguma clusula que define o tempo de transao que deve ser
considerado como limite, o instante correspondente histria considerada.
4.3 Consultas Temporais
Vamos analisar, a seguir, as diferentes formas que podem apresentar as
consultas quando utilizados bancos de dados temporais. Para maior
generalidade sero considerados somente bancos de dados bitemporais, os
quais englobam os outros tipos de bancos de dados. Uma consulta
apresenta dois componentes ortogonais: um componente de seleo e um
de sada (projeo).
O componente de seleo geralmente representado atravs de uma
condio lgica. Quando a condio envolve valores temporais utilizada
lgica temporal. Diversos operadores para tratar valores temporais so
necessrios, tais como operadores booleanos (antes, depois, durante) e
operadores que retornam valores temporais (depois, agora,
incio_de_intervalo, distncia_temporal). As condies podem envolver
valores de dados e valores temporais associados aos dados (tempo de
transao e/ou de validade).
Conforme o componente de seleo, as consultas ser classificadas em:
(1) consultas de seleo sobre dados - quando as condies so
estabelecidas somente sobre valores de dados. Exemplo: selecionar o
salrio do funcionrio de nome Carlos. importante ressaltar que
quando forem utilizados tipos de dados temporais, tais como datas e
horas, a utilizao destes na condio de seleo representa uma
seleo sobre dados e no uma seleo temporal. Exemplo deste ltimo
caso: selecionar o nome dos empregados que apresentam data de
nascimento posterior a 01/01/1980;
(2) consultas de seleo temporal - so as consultas nas quais somente
informaes temporais associadas aos dados (tempo de transao e/ou
tempo de validade) so analisadas pela condio de seleo. Exemplo:
selecionar todos os empregados da empresa durante o perodo de
01/01/96 a 01/01/97.
(3) consultas de seleo mista - a condio de seleo atua no somente
nos dados mas tambm nas informaes temporais associadas a eles.
Exemplo: selecionar todos os empregados do departamento
denominado entregas que estavam habilitados para dirigir automveis
durante o perodo de 01/01/95 a 01/07/95.
Analisando agora o componente de sada, na consulta podem ser
solicitados valores de dados e/ou valores relativos s informaes
temporais associadas aos dados. Podemos ter, portanto:
(1) consultas de sadas de dados - nas quais as informaes selecionadas
correspondem exclusivamente a valores de dados. Exemplo: selecionar
o nome dos funcionrios do departamento entregas;
(2) consultas de sadas temporal - recuperam informaes abstradas das
informaes temporais associadas aos dados. Deste modo podem ser
recuperados pontos no tempo, intervalos temporais e duraes
temporais. Exemplo: selecionar todos os perodos nos quais qualquer
empregado do departamento de entregas estava habilitado a dirigir
automveis;
(3) consultas de sada mista - recuperam simultaneamente valores de
dados e valores temporais associados a estes dados. Exemplo:
selecionar os valores de salrio com os respectivos tempos de validade
para o empregado chamado Joo entre 01/01/95 e 01/01/96.
Analisando as possveis combinaes entre os componentes de seleo
e de sada de uma consulta observamos que a nica combinao que no
pode ser utilizada a de seleo temporal com sada temporal - devemos
ter algum dado envolvido em pelo menos um dos componentes.
A recuperao de valores de uma determinada histria do banco de
dados depende da condio estabelecida no componente de seleo. Por
exemplo, para recuperar informaes relativas a dados de um determinado
dia do passado necessrio que o componente de seleo apresente
alguma seleo temporal - a seleo do instante passado considerado. Para
recuperar dados referentes a uma histr ia passada o componente de
seleo deve definir a data-base desta histria (algo como conforme se
acreditava em 01/01/60).
Na recuperao de dados histricos podem ser considerados valores
vlidos (considerando o tempo de validade associado ao valor) ou instantes
em que os valores foram definidos (ao considerar o tempo de transao.
Pode -se, por exemplo, consultar o valor vlido para o salrio de um
funcionrio em um determinado dia, e a data em que este valor foi
definido.
4.4 Consultas e o Paradigma de Orientao a Objetos
Modelos de dados orientados a objetos requerem propriedades especiais
para a recuperao de informaes. Os objetos apresentam atributos
(propriedades) cujos valores so definidos em domnios especficos. Os
domnios podem ser simples (como, por exemplo, inteiros e reais) ou
complexos, representados por nomes de classes, listas e conjuntos. Os
valores assumidos por estas propriedades so instncias das classes
especificadas como domnios. Assim, o valor de uma propriedade cujo
domnio uma classe ser uma instncia desta classe um objeto.
Vrias solues podem ser adotadas para a recuperao de valores de
propriedades cujos domnios so classes, como por exemplo: (i) devolver o
identificador do objeto recuperado, embora este identificador seja
usualmente interno ao sistema e, portanto, no acessvel ao usurio; (ii)
listar os valores de todas as propriedades do objeto, identificando os
objetos referentes s propriedades recursivamente at que todas as
propriedades sejam definidas em domni os simples; (iii) listar somente os
valores referentes a propriedades simples do objeto identificado; ou (iv)
fornecer o(s) valor(es) de alguma(s) propriedade(s) identificada(s) pelo
modelo como especial para esta finalidade.
As propriedades cujo domnio so listas ou conjuntos tambm podem
apresentar objetos (instncias de classes). A recuperao de informaes
para estes casos requer que todos os objetos sejam devolvidos pela
linguagem de consulta.
Outro problema envolvido na recuperao de informaes em um
modelo de dados orientado a objetos consiste na possvel hierarquia de
classes existente. Uma classe pode apresentar um conjunto de subclasses
e um conjunto de superclasses. Quando o domnio de uma propriedade for
uma classe, todas as subclasses desta (diretas ou indiretas) so tambm
possveis domnios desta propriedade. A recuperao de informaes deve
navegar atravs de toda a hierarquia para fornecer todos os valores
definidos.
Informaes temporais so geralmente associadas aos objetos
(representando a vida do objeto tempo de criao, eventuais intervalos de
suspenso e tempo em que sua existncia terminou) e aos atributos
(representando os tempos de definio de seus valores). Nos dois casos
podem ser utilizados tempos de transao e/ou de validade. A linguagem
de consulta deve permitir a recuperao de valores temporais de objetos e
de seus atributos, os quais devem ser analisados em conjunto com a
soluo adotada para a recuperao de informaes de domnios
complexos.
4.5 Linguagens de Consulta Textuais e Visuais
A maioria dos modelos de dados temporais apresentam linguagens de
consulta textuais, geralmente derivadas do SQL. Dentre estas, a mais
conhecida TSQL2, a ser apresentada na seo 5.1.2 deste texto. A
linguagem textual de consulta exige que o usurio conhea sua sintaxe,
esteja bastante familiarizado com o esquema do banco de dados e saiba
quais os objetos que podem mudar de valor ao longo do tempo. Uma
linguagem visual de consulta permite a recuperao de informaes sem
que o usurio conhea a sintaxe da linguagem de consulta. A consulta
pode ser realizada de uma forma amigvel, atravs da utilizao de
smbolos visuais (cones, diagramas, sinais) e um conjunto de regras para
utilizao dos mesmos na recuperao de informaes. A representao
visual dos objetos do banco de dados e de seus relacionamentos,
possibilita ao usurio uma melhor percepo da realidade, o que no
acontece com o uso de linguagens de consulta textual, como SQL.
Algumas propostas de linguagens visuais de consulta pa ra bancos de
dados temporais tm sido publicadas recentemente [Carvalho 97,
Kouramajian 95, Oberweis 94]. No Visual Query System TF-ORM [Carvalho
97] a consulta realizada atravs de um interface grfico, formado por
diversas janelas. Uma destas apresenta uma representao grfica do
esquema conceitual (Figura 4.1) no modelo TF-ORM [Edelweiss 93]. O
usurio realiza a consulta navegando sobre este esquema grfico e
selecionando os elementos de interesse para elaborao da consulta. Os
elementos selecionados vo sendo apresentados em outra janela, onde
aparece somente a parte do esquema conceitual envolvida na consulta, e
sobre a qual se definem as condies impostas consulta.

Figura 4.1: Esquema conceitual TF-ORM grfico


Alm destas duas janelas, o sistema possui um conjunto de janelas
para serem utilizados no complemento da consulta - definio de
restries, temporais ou no, sobre os elementos selecionados no esquema
conceitual grfico ou sobre a consulta como um todo (Figuras 4.2).

Figura 4.2: Janela onde definido o tempo de consulta

5 Modelos de Dados Temporais


A representao dos aspectos temporais na especificao de um sistema de
informao importante por mais de um motivo: (i) o sistema pode
apresentar informaes temporais a serem introduzidas no banco de dados
que o representa, sob forma de informao propriamente dita; (ii)
processos a serem executados podem apresentar interaes temporais,
interaes estas que devem tambm ser represent adas; (iii) determinadas
tarefas podem apresentar pr-condies sua execuo, as quais podem
ser representadas atravs de restries temporais; e (iv) condies de
integridade temporal do banco de dados podem ser necessrias. Para que
isto tudo seja possvel, necessrio que seja utilizado um modelo de dados
temporal adequado.
Um modelo de dados deve apresentar uma estrutura de objetos que
podem ser manipulados por esta linguagem, uma linguagem para atualizar
estes objetos (update), uma linguagem de consulta, e algum mecanismo
para expressar restries de integridade.
Os modelos de dados temporais tambm devem apresentar estas
caractersticas, acrescentando a possibilidade de representar informaes
temporais, efetuar consultas temporais, e permitir a definio de restries
de integridade temporal. Para este ltimo aspecto geralmente utilizada
lgica temporal de primeira ordem.
Os seguintes aspectos devem ser considerados ao ser analisado um
modelo de dados temporal:
identificar o tipo de rtulo temporal utilizado pelo modelo (ponto no
tempo, intervalo temporal, elemento temporal, durao);
analisar a forma de variao temporal dos atributos (podem ou no
variar com o tempo, todos ou alguns);
verificar se os rtulos temporais so explcitos ou implcitos ;
homogeneidade temporal;
apresentao e funcionalidades da linguagem de consulta.
Em lugar de definir novos modelos para tratar dos aspectos temporais,
diversos modelos de dados tradicionais foram estendidos para possibilitar
a representao de aspectos temporais.
5.1 Extenses do Modelo Relacional
Os modelos relacionais se baseiam na representao de relacionamentos
entre elementos. Ao ser utilizado um modelo temporal, estes
relacionamentos devem ser representados ao longo do tempo. Informaes
adicionais a serem acrescentadas:
tempo de incio do relacionamento;
variao do relacionamento com o tempo;
trmino do relacionamento;
reincarnao de relacionamentos;
restries de integridade referencial com respeito dimenso temporal.
Um banco de dados relacional apresenta um conjunto de relaes,
sendo que cada relao composta por um conjunto de tuplas. Uma
instncia deste banco de dados definida pelo conjunto de relaes e de
todas suas tuplas.
Ao ser feita a extenso temporal para um banco de dados relacional,
trs formas podem ser utilizadas para representar a temporizao,
dependendo do nvel ao qual o tempo associado:
(1) ao banco de dados como um todo neste caso, cada estado do banco
de dados armazenado completo, com o rtulo temporal. Alteraes
e lementares do BD criam um novo estado;
(2) s relaes cada relao temporizada. Para cada estado, todas as
tuplas desta relao devem ser armazenadas, com o rtulo temporal
correspondente. Informaes globais sobre existncia da relao podem
ser armazena das desta maneira;
(3) s tuplas cada tupla temporizada. Uma alterao elementar de
valores de uma relao definem uma nova tupla, e somente esta
precisa ser armazenada.
Como importantes extenses do modelo relacional podem ser citados
os modelos HRDM (Historical Relational Data Model) [Clifford 87, 93], IXRM
(Interval-extended Relational Model) [Lorentzos 93] e TRM (Temporal
Relational Model) [Navathe 88, 93].
5.1.1 TSQL2 Temporal Structured Query Language
As pesquisas em bancos de dados temporais vm sendo desenvolvidas j
h 15 anos, resultando na proposta de diversos modelos e linguagens de
consulta temporais. A consolidao destas propostas est sendo buscada
pela comunidade que pesquisa a rea, atravs da definio de uma
linguagem de consulta temporal de consenso. A construo desta
linguagem foi feita atravs de uma discusso via correio eletrnico, que
teve incio em 1993. Foram envolvidos na discusso pesquisadores de 8
pases, abrangendo 4 continentes. A linguagem resultante foi denominada
TSQL2 [Snodgrass 95].
A linguagem se baseia em SQL por ser esta a linguagem de consulta
mais utilizada atualmente. As seguintes caracterstica foram buscadas na
definio do TSQL2:
suporte a perodos de tempo. Em SQL somente date, time, timestamp,
interval;
suporte a mltiplas granularidades. Em SQL somente year, month,
day, hour, minute, second. Incluir: semestre - semana - estaes do
ano - ...;
suporte a mltiplas representaes. Exemplo: terceira semana de
1999. Em SQL: dia/mes/ano;
suporte a mltiplas linguagens. Exemplo: 29 de setembro de 1997;
suporte a mltiplos calendrios (lunar acadmico fiscal - eras
geogrficas);
suporte a tempo indeterminado. Exemplo: entre 1 e 15 de julho;
suporte a tempo histrico.
A linguagem TSQL2 [Snodgrass 95] foi definida para o modelo temporal
relacional BCDM Bitemporal Conceptual Data Model.
O Modelo BCDM
Trata-se de um modelo conceitual muito simples, que captura a semntica
essencial das variaes temporais das relaes. O modelo foi definido sem
levar em considerao problemas de capacidade de armazenamento, que
sem dvida, esto presentes em implementaes de bancos de dados
temporais.
No modelo BCDM o tempo considerado linear e discreto. feito
suporte a ambos os tempos de transao e de validade, implementando,
portanto, um BD bitemporal. So utilizados rtulos que representam
elementos bitemporais. A associao temporal implcita, sendo o rtulo
temporal associado s tuplas, na forma abaixo:
X = ( a1, a2, , an / t )
onde ai so os valores dos atributos da tupla, e t representa o rtulo
bitemporal.
A cada tupla associado um subconjunto arbitrrio do domnio dos
tempos vlidos um fato vlido na realidade modelada durante cada um
dos chronons deste subconjunto. Por sua vez, a cada chronon de tempo de
validade associado um subconjunto dos tempos de transao o fato
vlido durante este particular chronon, ou seja, est presente na relao
durante cada um dos chronons de tempo de transao do subconjunto.
Este o conceito de elemento bitemporal.
O exemplo a seguir mostra este tipo de rtulo temporal. Considere a
seguinte relao com tuplas definidas (UC: until changed):
Empregado Depto T
Joo compras { (5,10),, (5,15),, (9,10),, (9,15),
(10,5),, (10,20),, (14,5),, (14,20),
(15,10),,(15,15),,(19,10),,(19,15) }
Joo vendas { (UC,10),,(UC,15) }
A primeira tupla associa Joo ao departamento de compras, durante
diversos intervalos temporais. A segunda associa este mesmo funcionrio
ao departamento de vendas. A interpretao dos rtulos temporais est
apresentada nas figuras 5.2 e 5.3.

TV TV

15 15
(Joo, compras) (Joo, compras )
10 10

5 5

0 0
0 5 10 15 20 25 30 0 5 10 15 20 25 30
TT TT
TV TV

15 15
(Joo, vendas)
(Joo, compras) (Joo, compras)
10 10

5 5

0 0
0 5 10 15 20 25 30 0 5 10 15 20 25 30
TT TT

Figura 5.1: Interpretao do elemento bitemporal


TV
20

15

10 Emp Dept Ts Te Vs Ve

5 Joo compras 5 9 10 15
0 Joo compras 10 14 5 20
0 5 10 15 20 25 TT
Joo compras 15 19 10 15

Joo vendas 20 UC 10 15

elemento bitemporal particionado pelo tempo de transao

Figura 5.2 Interpretao do elemento bitemporal tempo de transao

A Linguagem de consulta TSQL2


Na linguagem TSQL2 a seleo e a projeo so feitas sobre o rtulo
temporal, envolvendo, portanto, tempo de transao e de validade. Foram
definidos diversos operadores de seleo:
extratores que tm por objetivo extrair alguma infor mao temporal
do rtulo. Por exemplo, o operador BEGIN extrai o incio de validade de
uma atributo;
construtores constrem elementos temporais a partir de elementos
temporais. Por exemplo, INTERSECT retorna o conjunto de intervalos
temporais resultante da interseo de dois intervalos considerados;
de comparao operadores lgicos que comparam intervalos
temporais. Por exemplo, OVERLAPS verifica se dois intervalos tm
intervalos temporais em comum.
Exemplos de consultas em TSQL2
Listar o nome dos funcionrios que estiveram empregados em janeiro de
1992
SELECT Name
FROM Employee
WHERE VALID (Employee) OVERLAPS PERIOD [01/01/1992,
01/31/1992]
Listar o nome dos funcionrios que foram registrados como empregados
em janeiro de 1992
SELECT Name
FROM Employee
WHERE TRANSACTION(Employee) OVERLAPS PERIOD [01.01.92,
31.01.92]
Listar o nome de todos os empregados que trabalharam na empresa ao
mesmo tempo em que Joo esteve no departamento de brinquedos
SELECT E1.Name
FROM Employee E1, Employee E2
WHERE E2.Name = Joo AND E2.Dept = Brinquedos
AND VALID(E1) OVERLAPS VALID(E2)
Suporte indeterminao temporal no TSQL2
Na linguagem de consulta TSQL2 foi providenciado suporte
indeterminao temporal, pois esta est presente na maioria das
aplicaes. A linguagem permite consultas tais como:
recuperar valores vlidos durante um determinado dia;
um fato registrado para ocorrer daqui a 6 meses;
um fato que ocorreu a mais de 5 anos.
Para que isto possa ser possvel, os atributos sobre os quais se pode
fazer consultas incompletas devem ser identificados como tal durante a
definio do esquema. Por exemplo:
CREATE TABLE Employee (Birthdate INDETERMINATE DATE)
Pode, tambm, ser definida a faixa de credibilidade que se quer na
resposta solicitada, como no exemplo abaixo:
SELECT Warehouse, Lot#, Part#
VALID R
FROM Receive AS R, InProduction AS IP WITH CREDIBILITY 0
WHERE MODEL = ABC AND R OVERLAPS IP WITH PLAUSIBILITY 65
5.2 Extenses do Modelo E-R
Os seguinte requisitos foram identificados como necessrios a um modelo
ER temporal [Antunes 97]:
a dimenso temporal deve estar embutida no modelo. Desta forma,
enquanto que no modelo ER convencional os conjuntos de entidades
apresentam apenas duas dimenses, a das tuplas e a dos atributos, no
modelo ER temporal passam a apresentar trs: a das tuplas, a dos
atributos e a do tempo;
deve oferecer uma notao especial para diferenciar entidades
temporizadas (que esto associadas ao tempo) de entidades no
temporizados (que no esto associadas com o tempo);
deve permitir que uma entidade temporizada se associe com uma
entidade no temporizada;
deve permitir que um relacionamento entre entidades possa ser
definido como temporizado ou como no temporizado, no importando
qual seja a classificao temporal destas entidades;
deve permitir que em uma mesma entidade possam conviver atributos
temporizados e atributos no temporizados;
a restrio de cardinalidade que define o grau de participao de uma
entidade em um conjunto de relacionamentos temporizados deve
considerar os pontos do tempo. Por outro lado, em se tratando de
conjunto de relacionamentos no temporizados, a cardinalidade no
deve levar em conta os pontos do tempo, mantendo a mesma
semntica do modelo ER convencional.
Vrias extenses abordagem entidade -relacionamento original tm
sido propostas com o objetivo de incorporar a possibilidade de modelar
propriedades temporais, entre as quais se destacam: a abordagem ERT
(Entity Relationship Time Model) [Loucopoulos 91], a abordagem TER
(Temporal Entity-Relationship Model) [Tauzovich 91], a abordagem TEER
(Temporal Enhanced Entity-Relationship Model) [Elmasri 93] e a abordagem
TempER [Antunes 97].
5.2.1 O Modelo TempER
Este modelo foi desenvolvido com o objetivo de atender a todos os
requisitos colocados no incio da seo 5.2. O modelo foi concebido com
base, principalmente, no modelo ERT. As principais diferenas entre as
abordagens situam-se na simbologia e na primitiva temporal adotada - o
elemento temporal em lugar do intervalo de tempo. Em uma viso geral, as
principais caractersticas do modelo de dados TempER so as seguintes:
oferece uma simbologia que diferencia elementos temporizados de
elementos no temporizados, semelhante do modelo ERT;
permite que se associe em um mesmo diagrama entidades
temporalizadas com no temporalizadas. As entidades no
temporalizadas passam a ser denominadas de perenes, sendo
assumido que estas tambm apresentam uma dimenso temporal
implcita, igual a todo o conjunto de pontos do eixo temporal. As
entidades temporalizadas passam a ser denominadas de transitrias;
qualquer que seja a classificao das entidades em relao ao tempo,
sejam elas perenes ou transitrias, ortogonalmente sempre apresentam
duas perspectivas: uma no temporal e uma temporal. Quando se
focaliza os conjuntos de entidades pela perspectiva no temporal
estes apresentam apenas duas dimenses (tuplas x atributos no
temporais). Por outro lado, quando se focaliza estes mesmos conjuntos
pela perspectiva temporal, eles apresentam trs dimenses (tupla x
atributos temporais x eixo temporal);
no tocante aos relacionamentos, ou as entidades se associam entre si
na perspectiva temporal (relacionamentos temporais) ou na perspectiva
no temporal (relacionamentos no temporais);
possibilita que as restries de cardinalidade levem em considerao os
momentos do tempo de validade de um relacionamento temporal;
faz uso de um dicionrio de dados para descrever os atributos,
evitando que estes sejam explicitados graficamente. Isto contribui para
tornar os diagramas mais administrveis visualmente.
As figuras 5.3 e 5.4 apresentam, respectivamente, um esquema
TempER e seu correspondente ER convencional, e um exemplo de
povoamento de entidades e de relacionamentos para este esquema.

Modelo ER convencional

Empregado Lotao Depto


( 1, N ) ( 0, N )
entidade EMPREGADO
relacionamento entidade DEPTO
atributos: atributos:
LOTAO
( cod: NATURAL ;
atributos: ( sigdep: STRING ;
nome: STRING ; nomdep: STRING ;
( datinicLot: DATE ;
sal: REALP;
datfimLot: DATE ) datCriao: DATE ;
datAdmisso: DATE ; datFecham: DATE )
datDemisso: DATE )
identificador: (sigdep)
identificador: (cod )

Modelo ER temporal - TempER

Tr T Tr
Empregado ( 1, 1 ) Lotao ( 0, N )
Depto

entidade EMPREGADO relacionamento entidade DEPTO


atributos: LOTAO atributos:
( cod: NATURAL, Intemporal; atributos: ( - ) ( sigdep: STRING, Intemporal;
nome: STRING, Intemporal; nomdep: STRING, Intemporal )
at-sal: REALP, Temporal ) identificador: (sigdep)
identificador: (cod )

Figura 5.3 Exemplo de esquema TempER e o correspondente ER

5.3 Extenses de Modelos Orientados a Objetos


O tratamento de tempo em modelos de dados orientados a objetos est
presente em diversos modelos recentemente apresentados [Cheng 93, Su
91, Wuda 92, Wuu 93]. Entretanto, a representao de aspectos temporais
em bancos de dados orientados a objetos tem sido feita nestes modelos de
uma forma bastante limitada. Em sua grande maioria os aspectos
temporais so tratados da mesma forma como o foram nos modelos
relacionais, no sendo levada em considerao a natureza da orientao a
objetos e dos problemas que podem advir da utilizao deste paradigma.

Entidade Empregado Relacionamento Lotao


Existncia OID cod nome at-sal Validade OID OID
Temporal EMPREGADO DEPTO
[ 3,10 ] U 1001 e1 Gadia 180 [ 3, 6 ]
[ 3, 10 ] U 1001 9011
[ 20, ] 220 [ 7, 10] U [ 20, 25]
[ 20, 30 ]
250 [ 26, ]
[ 31, ] 1001 9013
[ 7, 35 ] 1002 e2 Segev 110 [ 7, 20]
180 [ 21, 35] [ 7, 20 ] 1002 9011

[ 2, 20 ] U 1003 e3 Clifford 200 [ 2, 20] U [ 30, 35] [ 21, 35 ] 1002 9014


[ 30, ] 250 [ 36, ]
[ 2, 10 ] U 1003 9011
[ 25, ] 1004 e6 Snodgrass 100 [ 25, 30 ] [ 15, 18] U
130 [ 31, ] [ 30, 35 ]

[ 5, 25 ] 1005 e8 Jajodia 100 [ 5, 25 ] [ 11,14 ] U 1003 9012


[ 19, 20 ]
[ 10, ] 1006 e4 Tansel 170 [ 10, 20]
190 [ 21, ]
[ 36, ] 1003 9014

[ 25, ] 1004 9014


Existncia OID sigdep nomdep
[ 5, 15 ] 1005 9012
[ 1, ] 9011 defin financeiro
Entidade
Depto [ 3, 20 ] 9012 desis sistemas [ 16, 25 ] 1005 9013
[ 10, ] 9013 depro produo [ 10, 20 ] 1006 9012
[ 21, ] 9014 deinf informtica
[ 21, ] 1006 9014
[ 7, 30 ] 9015 demat materiais

Figura 5.4 Exemplo de povoamento de entidades e relacionamentos em


TempER
A utilizao de um modelo temporal orientado a objetos tem por
finalidade a representao de todos os estados assumidos pelo objeto
durante sua existncia. Para que isto seja possvel necessrio que o
modelo permita a representao do comportamento que o objeto deve
apresentar durante sua evoluo. Os seguintes aspectos devem ser
considerados nestes modelos:
a forma utilizada para a representao temporal - a temporizao pode
ser efetuada em dois nveis diferentes: (1) nos objetos, representando a
evoluo do objeto como um todo, sendo registrados o instante em que
o objeto criado, suas eventuais suspenses de atividade, o final de
sua existncia, e possveis ressurreies; e (2) nos atributos,
representando a variao temporal do valor de um atributo de um
objeto;
como se dar a alterao durante a evoluo, tanto no nvel de classes
como no de objetos das classes de forma contnua, discreta ou por
degraus; e
a possibilidade de migrao de objetos entre classes; e
a eventual evoluo dos esquemas conceituais (criao de novas
classes, alteraes nas hierarquias de generalizao/agregao,
alterao de atributos, etc.).
Deste aspectos acima citados, o mais complexo a possibilidade de
migrao de objetos entre classes. Quando permitido, geralmente restrito
migrao entre classes / subclasses. A migrao genrica entre
quaisquer duas classes apresenta restries semnticas muito fortes.
Mesmo nos casos de migrao entre classes / subclasses, diversas
restries e mecanismos so impostos a esta migrao. Entre elas: (1)
quando a migrao por especializao com herana simples, novas
propriedades so acrescentadas ao objetos, devendo seus valores ser
definidos pelo usurio ou considerados nulos; (2) quando for por
especializao com herana mltipla, todas as propriedades das novas
superclasses devem ser adicionadas ao objeto, sendo seus valores tambm
definidos pelo usurio ou considerados nulos; (3) quando for por
generalizao por herana simples, todas as propriedades especficas das
subclasses devem ser removidas do objetos; e (4) quando for por
generalizao por herana mltipla, alm das propriedades especficas das
subclasses, todas aquelas que foram herdadas de outras subclasses devem
tambm ser removidas.
5.3.1 TF-ORM
TF-ORM (Temporal Functionality in Objects With Roles Model) [Edelweiss
93, 94a] um modelo de dados orientado a objetos que utiliza o conceito
de papis para representar os diferentes comportamentos dos objetos.
Neste modelo considerada a representao temporal dada por rtulos
bitemporais, sendo o elemento temporal primitivo o ponto no tempo. A
variao temporal discreta, por escada, e a menor granularidade o
minuto.
O modelo TF-ORM apresenta trs diferentes tipos de classes: (i) recurso
- define a estrutura de um recurso (dado ou documento) em termos dos
papis que este recurso pode apresentar durante seu ciclo de vida, com
propriedades, mensagens permitidas e estados; (ii) agente - nas quais pode
ser representada a parcela de trabalho no estruturado dos sistemas de
informao, que o poder deciso humana; (iii) processo - integram as
classes de recursos e agentes, permitindo a descrio do trabalho
realizado. Cada classe definida por um nome, um papel bsico e um
conjunto de outros papis.
A utilizao do conceito de papis tem por objetivo separar a
representao dos aspectos estticos de um objeto dos seus aspectos
dinmicos. Atravs da utilizao deste conceito so evitados problemas de
migrao entre classes - um mesmo objeto pode desempenhar
simultaneamente mais de uma papel, pode mudar de papel
dinamicamente (mudar seu comportamento) e pode, ai nda, desempenhar
mais de uma instncia de uma mesmo papel no mesmo momento.
Um papel bsico descreve as caractersticas iniciais de uma instncia e
as propriedades globais que controlam sua evoluo. As propriedades do
papel bsico se aplicam a todos os demais papis e ao contrrio dos outros
papis que podem ser instanciados mais de uma vez, somente pode
apresentar uma instncia. Cada papel definido por: (i) um nome; (ii) um
conjunto de propriedades; (iii) um conjunto de estados, que o objeto neste
pape l pode apresentar; (iv) um conjunto de mensagens que o papel pode
receber ou enviar; (v) um conjunto de regras de transio de estado e
regras de integridade. Atravs das regras de transio de estados so
definidos os diferentes comportamentos possveis quando desempenhando
um determinado papel. A figura 5.5 apresenta um exemplo de modelagem,
expresso na linguagem de definio TF-ORM. feita a definio de uma
classe de agente PERSON (pessoa), que apresenta trs papis alm do
papel bsico: employee (empregado), teacher (professor) e student
(estudante). Cada um destes papis apresenta propriedades prprias, e
regras que definem seu comportamento.
O tempo acrescentado tanto ao nvel de objetos (para definir criao,
suspenses, trmino das instncias) como ao nvel das propriedades. As
propriedades podem ser estticas (tem o mesmo valor durante todo o ciclo
de vida da instncia) ou dinmicas (a propriedade pode assumir diferentes
valores com o passar do tempo). As propriedades dinmicas possuem um
rtulo bitemporal - tempo de transao e um tempo de validade -
associados. Uma informao considerada vlida quando o tempo de
validade atingido e continuar neste estado at o incio da validade de
outro valor. Para definio das propriedades, o modelo apresenta um
conjunto de classes pr-definidas para serem usadas como domnio,
chamadas tipos de dados. O modelo apresenta ainda um conjunto de
propriedades pr -definidas como oId, rId, class_instance e class_end,
destinadas a armazenar respectivamente o identificador da classe, o
identificador do papel, o incio de vida da instncia da classe e o momento
em que ela deixa de existir.
A linguagem de consulta [EDE 94b] apresenta a seguinte estrutura:
SELECT <clusula de especificao>
FROM <clusula de identificao>
WHERE /WHEN <clusula de busca>
[ ON <clusula de instante temporal>]
agent class (
PERSON,
< base_role,
static properties = {(person_id, integer)},
dynamic properties = { (name, string), (address, string)},
rules = { ... } >,
< employee,
dynamic properties = {(department, string), (salary, real),
(hired, date),
(holidays, interval(closed, date), },
states = {hired, in_holidays, fired},
messages = {
new_salary(Oid, Value) from Control.Salaries,
ask_vacations(oid, Period) to Control.Holidays, },
decisions = { get_vacations( Period), },
rules = {
init: add_role state( hired ),
holidays: state(hired), decision(get_vacancies( Period)
msg(ask_vacancies(oid, Period), state (hired),
salary: state(hired), msg(new_salary(oid, Value)
sate(hired);
(Value > salary),
}>
< teacher,
dynamic properties = { (gratification, real), (start, date), },
>
< student,
static properties = { (student_number, integer) },
dynamic properties = { (courses, string), (start, date), },
>)

Figura 5.5 Exemplo de modelagem TF-ORM


A clusula de especificao SELECT, define as sadas da consulta. Trs
tipos de sadas so identificadas: sada de dados, sada temporal e sada
mista. A sada de dados obtida quando so especificadas as partes do
objeto que devem ser mostradas pela consulta. Para obter uma sada de
dados a clusula de especificao pode ser composta: (i) pelo nome de uma
ou mais propriedades; (ii) pelo smbolo especial "*", quando forem
solicitados os valores de todas as propriedades do(s) objeto(s)
identificado(s). Para obter a sada temporal, as seguintes palavras
especiais podem ser utilizadas na clusula de espe cificao: DATE (quando
solicitada uma data de validade), TRANSACTION_DATE (data de
transao), PERIOD (intervalo limitado por datas de validade). A sada
mista obtida quando os elementos da sada de dados e da sada temporal
forem combinados na clusula de especificao.
A clusula FROM utilizada para identificar as classes e papis
participantes da consulta. A qualificao do papel atravs do nome da
classe a que corresponde no se faz necessria quando o esquema sobre o
qual est sendo definida a consulta apresentar todos os papis com nomes
nicos.
A clusula WHERE utilizada para buscar informaes
correspondentes ao instante de tempo considerado (snapshot do banco de
dados). A utilizao da clusula WHEN aumenta o universo de busca,
incluindo dados passados e futuros, alm dos atuais. O acrscimo da
clusula AS ON fixa uma histria anterior histria atual do banco de
dados, de acordo com a qual os valores devem ser recuperados. Todas as
informaes que foram inseridas no banco de dados aps a data
especificada na clusula AS ON so desconsideradas na consulta.

6 Evoluo de Esquemas em Bancos de Dados Temporais


O esquema conceitual de um banco de dados representa os requisitos de
dados da aplicao. Durante a existncia de um sistema de banco de
dados seu esquema conceitual pode mudar (evoluir) devido a modificaes
ocorridas, por exemplo, na legislao vigente, nos requisitos dos usurios e
nos requisitos dos dados. As modificaes de um esquema com o passar
do tempo so uma regra e no uma exceo na vida de um banco de
dados.
A maioria dos sistemas cedo ou tarde apresenta a necessidade de
alterar sua representao (caracterizada pelo esquema), para adaptar-se a
situaes tais como [Moreira 97]:
ocorrncia de mudanas na parte da realidade que relevante ao
sistema;
alteraes nos requisitos ou erros ocorridos durante as fases de anlise
e projeto do sistema;
aumento do domnio do sistema;
necessidade de melhoria no desempenho do sistema.
Trs so as possveis modificaes feitas em um esquema durante
sua evoluo: adicionar novas informaes (por ex., definir um novo
atributo), remover informaes do esquema (por ex., remover um atributo),
e modificar informaes existentes (por ex., modificar o tipo de um
atributo).
A modificao do esquema conceitual pode afetar o sistema de diversas
formas. Dois problemas fundamentais devem ser considerados [Goralwalla
97]:
semntica da alteraes efetuadas no esquema efeitos das
alteraes no esquema na representao da aplicao, podendo ser
perdidas informaes importantes. O enfoque tradicional para
solucionar este problema definir um conjunto de invariantes do
esquema que devem ser preservadas nas modificaes efetuadas (por
ex., atributos que no podem mudar). Sempre que uma nova verso do
esquema definida, deve ser feita uma verificao da integridade deste
esquema, analisando as invariantes do esquema. As invariantes
geralmente so representadas atravs de condies que devem ser
sempre satisfeitas, representando as restries de integridade
estrutural do modelo de dados. A nova verso do esquema somente
deve ser aceita se as invariantes forem satisfeitas;
propagao das alteraes consiste nos efeitos da alterao na
consistncia da base de dados j existente. Este problema
tradicionalmente resolvido atravs de adaptao da base dados
existente ao novo esquema - no instante de tempo em que uma nova
verso de um esquema se torna vlida, algumas adaptaes se fazem
necessrias na extenso do banco de dados, para que os valores
vlidos naquele momento, definidos de acordo com o esquema anterior,
possam corresponder nova verso do esquema. Esta adaptao no
deve destruir os dados passados, como era feito nos bancos de dados
estticos. Como exemplo de adaptao, quando na nova verso do
esquema removido um atributo temporal, todos os valores definidos
para este atributo devem ter sua validade temporal terminada. A
evoluo do esquema pode tambm afetar a implementao de mtodos
e dos programas de aplicao.
Vrios estudos sobre a evoluo de e squemas foram desenvolvidos
considerando modelos relacionais, entidade -relacionamento e orientados a
objetos. Entretanto, a maioria destes estudos no trata de bancos de
dados temporais - somente uma verso do esquema pode existir a cada
instante, devendo toda extenso do banco de dados ser adaptada para esta
verso. Recentemente tem sido analisada a possibilidade de tratar da
evoluo de esquemas quando utilizados bancos de dados temporais na
extenso do BD [Ariav 91, Kim 95, McKenzie 90, Roddick 92] e tambm
para armazenar as diferentes verses de esquemas [DeCastro 95 -97,
Goralwalla 97, Edelweiss 95-97, Roddick 94, Zaniolo 97].
6.1 Modificao, Evoluo e Versionamento de Esquemas
Estes trs termos tm sido utilizados como sinnimos. No glossrio de
conceitos de bancos de dados temporais [Jensen 94] so apresentadas as
trs definies a seguir.
Modificao de Esquemas uma modificao de esquema ocorre
quando o SGBD permite modificaes na definio do esquema de uma
base de dados populada;
Evoluo de Esquemas ocorre quando o SGBD permite modificaes
da definio do esquema de uma base de dados populada sem causar
perda de informaes. Estas alteraes devem ser propagadas de modo
a garantir a consistncia e a integridade dos dados armazenados;
Versionamento de Esquemas acontece quando o SGBD permite a
visualizao de todos os dados, tanto retrospectivamente quanto
prospectivamente, atravs das vrias verses de esquemas definidas
pelo usurio. Pode ser parcial, quando so permitidas somente
alteraes sobre o esquema corrente, ou total, quando as alteraes
podem ser efetuadas sobre qualquer verso do esquema. Como alguns
dos aspectos relativos a versionamento de esquemas total ainda esto
em aberto, somente o versionamento parcial considerado na maiori a
dos trabalhos sobre este assunto, assim como neste texto portanto,
somente o esquema atual pode ser modificado.
6.2 Como Tratar Evoluo de Esquemas em Bancos de Dados
Temporais
Sistemas de bancos de dados no temporais apresentam um esquema
esttico e uma correspondente base de dados tambm esttica. Para
manipular a evoluo de esquemas, o enfoque tradicional tem sido o de
modificar o esquema conceitual e fazer as alteraes necessrias na
extenso do banco de dados, de modo a adapt-la ao novo esquema. Desta
forma, somente o ltimo esquema (atual) fica armazenado.
Quando utilizado um banco de dados temporal, a utilizao desta
forma de manipulao da evoluo do esquema implica em eventual perda
ou alterao das informaes passadas os dados passados continuam
disponveis, mas precisam ser adaptados ao novo esquema, para que
possam ser consultados de acordo com o esquema atual. Como o princpio
que rege o conceito de bancos de dados temporais o de no perder
informaes passadas, a evoluo do esqu ema conceitual deveria permitir
a recuperao de informaes passadas de acordo com o esquema vigente
naquele momento. Uma melhor representao da realidade requer que,
quando ocorrer a evoluo do esquema conceitual, todas as verses deste
esquema (a atual e as passadas) estejam disponveis.
As seguintes formas podem ser utilizadas para armazenar os dados e
os esquemas em bancos de dados temporais:
mltiplos repositrios esta soluo requer a criao de tantos
repositrios quantas forem as verses do esquema. Neste caso, cada
repositrio formado de acordo com a verso do esquema
correspondente. Quando um novo repositrio inicializado, as tuplas
so copiadas do repositrio antigo de acordo com as mudanas
aplicadas ao esquema;
repositrio nico com esquema global utilizado um repositrio nico
para os dados da extenso, armazenados de acordo com um esquema
global que inclui todos os atributos introduzidos pelas sucessivas
mudanas do esquema. Se algum atributo for excludo ou tiver seu
domnio restringido, a mudana no ser executada fisicamente, mas
ser gravada em um catlogo, j que nenhum dado pode ser
descartado do repositrio, sob pena de jamais poder ser recuperado
novamente. Se, ao contrrio, a mudana propuser a adio de um novo
atributo ou a extenso de um domnio, todo o repositrio vai ter de ser
convertido para o novo formato. Se a mudana para o novo domnio
produzir um novo domnio incompatvel com o antigo, dois atributos
devero ser mantidos com o mesmo nome s vistas do usurio,
correspondendo a domnios diferentes e pertencendo a diferentes
verses do esquema;
repositrio nico com mltiplos esquemas tambm utilizado um
repositrio nico, mas todas as diferentes verses do esquema ficam
disponveis. As diversas verses do esquema ficam armazenadas em
um (meta-) banco de dados, tambm temporal. A recuperao de
informaes feita de acordo com o esquema vlido no momento
considerado, possibilitando desta maneira uma representao mais fiel
da realidade. Existe, evidentemente, um aumento do tempo despendido
para avaliar as consultas, uma vez que o esquema adequado deve ser
selecionado - possvel que uma mesma consulta utilize mais de uma
verso do esquema conceitual. A este caso denominamos banco de
dados temporal generalizado, e ser detalhado mais adiante.
Um conceito importante na utilizao de bancos de dados temporais
o de vacuuming (gerar vcuo) [Snodgrass 95]. Neste caso permitida a
eliminao fsica de dados temporais no relevantes, para os quais o custo
de armazenamento significativo. O mesmo conceito pode ser estendido
para o armazenamento de esquemas eliminar verses antigas do
esquema, principalmente aquelas s quais no correspondem dados
armazenados na extenso.
6.3 Banco de Dados Temporal Generalizado
Um novo tipo de sistema de banco de dados temporal, ao qual
denominamos banco de dados temporal generalizado [Edelweiss 95], mais
geral do que os sistemas temporais convencionais, deveria ser utilizado
para permitir a evoluo de esquemas em bancos de dados tempor ais.
Trata-se de um sistema de banco de dados que apresenta um esquema
temporal. Cada verso do esquema constitui um novo esquema, ao qual
associada alguma informao temporal (tempo de transao e/ou validade
do esquema). Um esquema temporal estruturado como uma ou duas (no
caso bitemporal) seqncias de esquemas.

"meta-esquema" caracterizado pelas


invariantes do esquema

seqncia de esquemas que constitui o


esquema dinmico B conjunto de esquemas corretos

A C

seqncia de estados
do BD Temporal

*
a3 b1 c1
* * c3
a1

b2 b3
a4
a2 c2

conjunto de estados do BD conjunto de estados do BD


conjunto de estados do BD
vlidos para o esquema inicial A vlidos para o esquema B vlidos para o esquema C

Figura 6.1: Parte da vida de um sistema de banco de dados temporal


generalizado.
Na figura 6.1 apresentada uma idia geral do comportamento de um
banco de dados temporal generalizado. Quando um banco de dados
temporal generalizado criado, apresenta um esquema inicial (esquema A
da figura 6.1) e um correspondente estado inicial da extenso do banco de
dados (a1). Durante o tempo em que este esquema vlido so feitas
atualizaes no banco de dados, criando novos estados do banco de dados
(a2, a3 e a4), todos pertencendo ao mesmo universo de bancos de dados
estticos que satisfazem o esquema A. Os estados a1, a2, a3 e a4
compem o banco de dados dinmico do esquema.
Uma modificao no esquema gera um novo esquema (B), e um novo
estado do banco de dados (b1), correspondendo a este novo esquema, deve
ser construdo. Este novo estado do banco de dados deve pertencer ao
universo de bancos de dados estticos aceitos pelo esquema B. Quando a
construo do novo estado do banco de dados (b1) feita adequadamente,
os dois estados a4 e b1 apresentam os mesmos contedos de informaes
- qualquer informao que um usurio possa obter de a4 tambm pode ser
obtida de b1, e vice -versa. Entretanto, sendo os dois esquemas
correspondentes a estes estados diferentes, a sintaxe da consulta a ser
construda para obter a informao em a4 possivelmente ser diferente da
sintaxe da consulta de b1. Tambm a apresentao das respostas nos dois
casos pode ser diferente. O importante que a essncia, a informao
que est sendo recuperada, seja a mesma.
Neste tipo de banco de dados os esquemas e as correspondentes
extenses do banco de dados podem variar com o passar do tempo, sendo
que todas as diferentes situaes que existiram no passado so sempre
acessveis. Consultas temporais podem ser feitas neste tipo de banco de
dados, e para avaliar estas consultas devem ser considerados tanto a
evoluo do esquema conceitual como a evoluo da extenso do banco de
dados. A existncia de diversas verses do esquema deve ser levada em
considerao nas operaes de recuperao de informaes passadas,
quando deve ser utilizado o esquema vlido naquele momento. Caber ao
sistema gerenciador do ba nco de dados a tarefa de identificar os dados
atravs de sua correspondente verso de esquema. Esta necessidade
aumenta a complexidade do sistema como um todo, uma vez que requer o
armazenamento de mltiplas verses do esquema conceitual.
6.4 Formas de Armazenar Mltiplos Esquemas
Uma forma de armazenar as diferentes verses dos esquemas atravs da
utilizao de um (meta-) banco de dados temporal. Deste modo, a evoluo
de esquemas pode ser tratada de modo similar evoluo da extenso do
banco de dados. Informaes temporais devem ser acrescentadas s
diferentes modificaes efetuadas no esquema, representando o tempo de
transao e/ou tempo de validade de cada modificao. A forma utilizada
para representar estas informaes temporais define o tipo do (me ta-)
banco de dados temporal que armazena a evoluo do esquema conceitual.
Considerando os quatro tipos de bancos de dados temporais vistos
anteriormente, o esquema conceitual pode ser representado por um banco
de dados instantneo (caso normal), de tempo de transao, de tempo de
validade ou bitemporal.
Esquemas Instantneos
O esquema visto como um meta-banco de dados instantneo tem, em
qualquer instante de tempo considerado, somente uma instncia ou uma
verso. A transio de uma verso de um esquema pa ra outra verso deve
obedecer s invariantes do esquema, associadas ao modelo de dados
utilizado para representar o esquema. Nenhuma informao temporal
associada s modificaes do esquema, sendo que somente a ltima
verso do esquema pode ser referenci ada em uma consulta.
A extenso de um banco de dados que utiliza um esquema instantneo
pode ser de qualquer dos tipos de bancos de dados vistos - instantneo ou
temporal. A definio de uma nova verso para o esquema conceitual
implica na necessidade de a daptar as estruturas e os valores armazenados
na extenso do banco de dados de modo a satisfazer o novo esquema
conceitual. Quando na extenso so utilizados dados histricos, estes
tambm devem ser adaptados ao novo esquema, pois ser este a ser
utilizado para recuperar estas informaes. A figura 6.2 representa um
esquema que evolui, apresentando modificaes em trs tempos diferentes
(t1 , t2 e t3). Em cada um destes instantes de tempo so efetuadas as
necessrias modificaes na extenso do banco de dados.

t1 t2 t3
Esquema

Extenso

transformao
de ocorrncias
transformao
de ocorrncias
transformao
de ocorrncias

Figura 6.2: Esquema instantneo


Esquemas de Tempo de Transao
Quando a evoluo do esquema conceitual representada atravs de um
meta-banco de dados de tempo de transao as sucessivas verses do
esquema conceitual so acessveis, cada uma delas associada com o
correspondente tempo de validade. Transformaes elementares no
esquema (como por exemplo, a definio de um novo atributo) geram uma
nova verso do esquema. Como neste tipo de banco de dados no so
utilizados tempos de validade, uma nova verso do esquema se torna
vlida no momento de sua definio, permanecendo vlida at que nova
verso seja definida. A cada vez que uma modificao elementar no
esquema for efetuada, definindo uma nova verso do esquema, devem ser
feitas as necessrias ada ptaes na extenso do banco de dados. Na figura
6.3 esto representadas trs verses de um esquema conceitual, cada uma
delas vlidas a partir do instante de tempo de sua definio (t1 , t 2 e t3 ). As
trs verses ficam acessveis para eventuais consultas.
A extenso do banco de dados pode ser representada por qualquer um
dos trs tipos de bancos de dados temporais: de tempo de transao, de
tempo de validade ou bitemporal. A utilizao de um meta-banco de dados
temporal para armazenar a evoluo de um esquema no faz sentido
quando utilizado um banco de dados instantneo na extenso. Quando na
extenso for utilizado um banco de dados de validade ou um banco de
dados bitemporal pode acontecer de uma determinada informao,
inserida no banco de dados sob uma determinada verso do esquema, se
tornar vlida somente sob outra verso do esquema - as adaptaes feitas
na extenso cada vez que uma nova verso de esquema for definida devem
considerar a possibilidade desta situao.

t1 t2 t3
Esquema

Extenso

transformao transformao transformao


de ocorrncias de ocorrncias de ocorrncias

Figura 6.3: Esquema de tempo de tr ansao

Esquemas de Tempo de Validade


A representao da evoluo de um esquema conceitual atravs de um
meta-banco de dados de tempo de validade feita associando a cada
alterao efetuada no esquema o instante de tempo em que esta alterao
se tornar vlida. O tempo em que efetuada a transao no meta-banco
de dados no registrado. Uma nova verso do esquema se torna vlida a
cada instante em que um novo tempo de validade de uma alterao
alcanado. O mesmo tempo de validade pode ser associado a mais de uma
modificao elementar do esquema - desta maneira um conjunto de
alteraes simultneas podem ser efetuadas, definindo uma nova verso
do esquema. A consistncia do esquema ser testada para o conjunto de
alteraes, de uma s vez.
No faz muito sentido modificar um esquema para tempos passados.
Isto significaria uma modificao retroativa na extenso do banco de dados
relativa ao esquema modificado, o que no nem possvel nem
significativo. As modificaes permitidas em tempos de validade para
esquemas conceituais deveriam ser efetuadas somente sobre tempos
futuros - em partes do esquema que se tornaro vlidas em tempos
posteriores modificao realizada.
Na figura 6.4 est representada a evoluo de um esquema
representado atravs de um banco de dados de tempo de validade. No
tempo t1 iniciou a validade de uma verso deste esquema, sendo feitas as
necessrias adaptaes na extenso do banco de dados. Em t2 definida
uma alterao que ter validade a partir do tempo t4 . A verso do esquema
vlida em t2 continua sendo a anterior, que iniciou em t1 . Em t3 feita
outra alterao no esquema, tambm vlida somente em t 4 . A verso de
esquema vlida continua sendo aquela definida no tempo t1 . Ao ser
alcanado o tempo t4 as alteraes feitas anteriormente iniciam sua
validade, definindo uma nova verso do esquema. Neste momento so
feitas as necessrias transformaes na extenso do banco de dados, para
adequ-lo nova verso do esquema. Como est sendo utilizado um meta-
banco de dados de tempo de validade, os instantes de tempo t2 e t3 no
ficam armazenados - somente o tempo t4 associado s alteraes
definidas.

t1 t2 t3 t4
Esquema

Extenso

transformao transformao
de ocorrncias de ocorrncias

Figura 6.4: Esquema de tempo de validade


Esquemas Bitemporais
A evoluo de um esquema conceitual tambm pode ser representada
atravs de um meta-banco de dados bitemporal. Neste caso, a cada
alterao efetuada no esquema so associados dois tempos - o tempo de
transao e o tempo de validade. O tempo de transao informa quando foi
efetuada a alterao, enquanto que o tempo de validade define a partir de
que instante esta transformao do esquema se torna vlida. Tambm
neste caso o tempo de validade deveria ser igual ou posterior ao tempo de
transao, pois no faz sentido alterar verses passadas do esquema.
A consistncia de uma nova ve rso do esquema conceitual verificada
a cada vez que alcanado um novo tempo de validade associado a
alguma transformao. Neste momento tambm so efetuadas as
necessrias alteraes na extenso do banco de dados, para satisfazer a
nova verso vlida do esquema. Os tempos de transao armazenados
somente servem para informar quando foram efetuadas as transformaes
do esquema - na recuperao de informaes do banco de dados sempre
so consideradas as verses vlidas do esquema, portanto, os tempos de
validade associados s informaes do meta-banco de dados. A figura 6.4
tambm pode ser interpretada como representando esquemas bitemporais,
sendo que neste caso os tempos t2 e t3 tambm devem ser armazenados.
6.5 Exemplo de Versionamento de Esquemas em TSQL2
As possibilidades de evoluo de um esquema conceitual e as
conseqentes alteraes que devem ser efetuadas na extenso do banco de
dados dependem do modelo de dados que estiver sendo utilizado. A
linguagem de consulta TSQL2 [Snodgrass 95] apresenta suporte a
versionamento de esquemas de tempo de transao, sendo os esquemas
prvios armazenados sob forma de verses. Somente o esquema atual pode
ser modificado (versionamento parcial).
No modelo de dados do TSQL2 os fatos so representados por tuplas
compostas de um nmero arbitrrio de atributos explcitos e de um
atributo temporal implcito (tempo de transao e/ou tempo de validade).
A introduo de versionamento de esquemas neste modelo afeta a
composio e os mtodos de recuperao e atualizao dos atributos
explcitos.
Seja R = (A1 , , An ) um esquema relacional bitemporal. Se no
existisse versionamento de esquema, a tupla x teria a forma (a1 ,, a n |t).
Com a introduo do versionamento de esquema, o esquema relacional R
considerado completo R contm a unio de todos os atributos que foram
definidos durante a existncia da tabela. O domnio de cada atributo desta
tabela tal que contenha todos os dados armazenados para cada
esquema. Uma funo de visualizao V(t1 ) mapeia Rt1 a um subconjunto
dos atributos no esquema St1 , ativo no momento t1 . A funo V(t2 ) mapeia
de St2 para R. Deste modo, os dados armazenados em t1 podem ser
mapeados para o formato especificado em t2 atravs de funo V(V(t1 ), t2 ).
O exemplo a seguir, apresentado em [Snodgrass 95], ilustra como feita a
evoluo de esquemas neste modelo.
Consideremos a seguinte histria estrutural da tabela Empregado:
01/01/93 tabela Empregado:
Id NUM(6),
Nome CHAR(30),
Salario NUM(5,2)
01/02/93 acrscimo dos seguintes atributos:
Sexo CHAR(1),
Estadocivil CHAR(1)
01/03/93 removido o atributo Estadocivil
01/04/93 o atributo Salario redefinido:
Salario NUM(5)
02/04/93 o atributo novamente redefinido como:
Salario NUM(5,2)
Aps feitas todas estas modificaes, o esquema completo para esta
tabela o seguinte:
Id NUM(6),
Name CHAR(30),
Estadocivil CHAR(1),
Salario NUM(5,2).
As funes V e V esto disponveis em todos os pontos de tempo, para
converter do esquema armazenado para o esquema completo R, e depois
do esquema R para o esquema que deve ser considerado na consulta.
6.6 Exemplo de Evoluo de Esquemas em um Modelo Temporal
Orientado a Objetos
Considerando um modelo temporal orientado a objetos, a histria de um
objeto pode ser representada pela seqncia de valores assumidos por
seus atributos durante sua existncia. Na extenso de um banco de dados
temporal so armazenados: (1) valores de propriedades estticas, que no
apresentam rtulos temporais, uma vez que so sempre vlidas, e (2)
valores de propriedades dinmicas, rotuladas com os tempos de transao
e/ou de validade.
Neste exemplo consideramos que as verses do esquema so
armazenadas em um meta-banco de dados de tempo de validade - uma
nova verso do esquema ser, portanto, produto de um conjunto de
alteraes e lementares na verso anterior do esquema. Ao ser alcanado o
tempo de incio de validade de uma nova verso do esquema, esta deve ser
validada, sendo verificado se est de acordo com as invariantes do modelo.
No caso da verso ser vlida, a extenso do banco de dados deve ser
adaptada a ela.
6.6.1 As Invariantes de um Modelo Temporal Orientado a Objetos
Um modelo temporal orientado a objetos genrico apresenta, pelo menos,
as seguintes invariantes:
unicidade de nomes:
as classes devem apresentar nomes nicos;
em uma classe, nomes de propriedades e de mensagens
(representando os mtodos) devem ser nicos;
para toda propriedade deve ser definido um domnio;
todos os nomes de classes e propriedades utilizados em condies (pr
e ps- condies e regras de integridade ) devem estar definidos;
toda superclasse referenciada em uma subclasse deve estar definida;
todas as classes componentes de uma classe agregada devem estar
definidas.
6.6.2 A Evoluo do Esquema
Existem modificaes elementares que no podem ocorrer sozinhas -
modificaes complementares so necessrias para garantir a corretude do
esquema. Este o motivo pelo qual foi escolhido um meta-banco de dados
de validade para armazenar o esquema.
As modificaes elementares que podem ser efetuadas no modelo aqui
utilizado so as seguintes:
criao de uma nova classe, destruio de uma classe existente,
renomeao de uma classe;
criao de uma nova propriedade, destruio de uma propriedade,
renomeao de uma propriedade, modificao do domnio de uma
propriedade, alterao do tipo (esttico - dinmico) de uma
propriedade;
alteraes de interfaces de comunicao entre classes - criao de uma
nova mensagem (mtodo), remoo ou renomeao de uma mensagem
existente, modificao nos parmetros de uma mensagem.
Nas figuras 6.5 e 6.6 apresentado um exemplo de evoluo de um
esquema (2 verses), utilizando um DDL genrica. Na primeira verso
(figura 6.5) definida apenas uma classe de empregados de uma empresa
(Employee), que apresenta duas propriedades - uma propriedade
considerada inicialmente como esttica, o nome do empregado (name) e
uma propriedade dinmica para representar seu salrio (salary). Na
segunda verso deste esquema (figura 6.6) o tipo da propriedade que
representa o nome foi trocado para dinmica pois foi constatado que o
nome de uma pessoa pode mudar (casamento, separao). Alm disso, na
segunda verso foi acrescentada outra classe para modelar os
departamentos da empresa D ( epartment), apresentando as propriedades
dinmicas nome do departamento (dept_name) e o gerente do
departamento (dept_manager). O gerente do departamento um
empregado, sendo representado por uma instncia desta classe. Na classe
dos empregados foi, ainda, acrescentada um propriedade dinmica para
indicar qual o departamento em que este empregado est trabalhando
(dept).

(Class Employee
static properties = {(name, string)}
dynamic properties = {(salary, real)}
messages = { reg(Name: string, Salary: real) from Outer_World,
new_sal (Salary: real) from Outer_World,
end_employment from Outer_World } )
Figura 6.5: Primeira verso do esquema
(Class Employee
dynamic properties = { (name, string), (salary, real), (dept,
DEPARTMENT)}
messages = { reg(Name: string, Salary: real, Dept: DEPARTMENT)
from Outer_World,
new_sal(Salary: real) from Outer_World,
new_dept(Dept: DEPARTMENT) from Outer_World,
end_employment from Outer_World } )
(Class Department
dynamic properties = {(dept_name, string), dept_manager,
EMPLOYEE)}
messages = { dept_name(Name: string) from Outer_World,
new_mgr(Mgr: EMPLOYEE) from Outer_World,
dismiss_mgr from Outer_World } )
Figura 6.6: Segunda verso do esquema
6.6.3 Adaptao da Extenso do Banco de Dados como Conseqncia
da Evoluo do Esquema
As seguintes adaptaes so necessrias na extenso do banco de dados
temporal que implementa um modelo orientado a objetos:
criao de uma nova classe no implica em adaptao da extenso;
remoo de uma classe existente terminar a validade de todas as
propriedade s dos objetos desta classe e fechar o intervalo de existncia
dos objetos desta classe;
renomeao de uma classe como os objetos da extenso so
identificados pelos seus identificadores prprios (oId), no ser
necessria nenhuma adaptao da extenso. Dever, entretanto,
existir uma forma de identificar os nomes das duas classes como
correspondendo mesma classe (por ex., um dicionrio de sinnimos);
definio de nova propriedade esttica a definio desta propriedade
deve ser feita na extenso para t odas as instncias desta classe, com o
valor inicial null;
definio de nova propriedade dinmica no implica em adaptao,
uma vez que valores para esta propriedade somente sero definidos a
partir deste momento;
remoo de uma propriedade esttica no implica em adaptao, uma
vez que no ser definido nenhum valor para esta propriedade segundo
o novo esquema;
remoo de uma propriedade dinmica terminar a validade dos
valores definidos para esta propriedade;
renomeao de uma propriedade neste caso tambm dever ser
introduzida a correspondncia entre os dois nomes em um dicionrio de
sinnimos;
alterao no tipo (domnio) de uma propriedade adaptaes devem ser
feitas em todos os valores armazenados para esta propriedade, para
adapt-los ao novo domnio. Os valores vlidos de propriedades
dinmicas devem ter sua validade encerrada quando terminar a
validade do esquema anterior. Se o valor que a propriedade apresentar
puder ser adaptado ao novo tipo (ex., inteiro para real), dever ser feita
esta adaptao e o valor adaptado tem seu incio de validade
coincidente com o incio da validade do novo esquema. Se, no entanto,
isto no for possvel (ex., inteiro para string), um novo valor dever ser
definido pelo usurio, juntamente com o incio de sua validade. A
mesma adaptao de tipos de valores deve ser feita para as
propriedades estticas;
modificao de propriedade esttica para dinmica todas as
instncias da classe devero receber a definio desta propriedade com
o novo tipo, com o valor que a propriedade esttica apresentava e com o
tempo de validade igual ao do incio da validade da nova verso do
esquema;
quando uma propriedade dinmica tem seu tipo alterado para esttico
necessria a definio da propriedade esttica para todas as instncias
da classe, com o ltimo valor vlido da propriedade dinmica;
alteraes em mensagens no se refletem na extenso da base de
dados.

7 Implementao de Bancos de Dados Temporais


Embora as pesquisas em BD temporais se estendam j por mais de 20
anos, po ucos sistemas realmente utilizveis existem. Existem, sim, vrias
experincias sob forma de prottipos, nos quais se baseiam estudos de
problemas encontrados (de armazenamento e recuperao de informaes),
e mapeamentos de modelos temporais para BD tradicionais, nos quais os
rtulos temporais so explicitamente representados e manipulados.
Como exemplos de implementaes de BD Temporais, podemos citar o
Temporal ODBMS TIGUCAT [zsu 95], em desenvolvimento na
Universidade de Alberta, no Canad; o BD Postgres, que apresenta suporte
ao tempo de transao.
A implementao do conceito de tempo pode ser realizada de trs
formas de acordo com o grau de integrao crescente do conceito de tempo
no SGBD. Estas categorias so [Edelweiss 94]:
a manipulao dos dados temporais realizada explicitamente pelo
usurio. O SGBD s pode armazenar dados dos tipos tradicionais como
inteiros, strings, reais etc. Toda a semntica associada ao tempo est
contida na lgica dos programas de aplicao. Neste nvel o usurio
deve conhecer a semntica associada ao tempo e assegurar a validade
das operaes sobre os dados temporais;
a manipulao dos dados temporais realizada por meio de aes
associadas a propriedades definidas como temporais. Isto corresponde a
extenses semnticas de tipos de dados normais. Esta soluo pode ser
aplicada em SGBDs extensveis pela definio de aes semnticas
associadas a tipos de dados temporais. Neste caso todas as aplicaes
compartilham o cdigo associado aos novos tipos de dados. A grande
fraqueza o isolamento entre as operaes e o esquema conceitual.
impossvel representar as propriedades temporais no esquema
conceitual pois a semntica temporal definida por modificaes na
manipulao de dados tradicionais (reais, string). Uma soluo deste
tipo apresentada como uma extenso do SGBD INGRES [Overmeyer
82];
as propriedades temporais so tratadas por uma extenso do modelo de
dados e da linguagem de manipulao. Neste caso a semntica
temporal se torna estrutural, isto , ela pertence ao modelo de dados e,
portanto, no pode ser alterada pelas aplicaes. A definio de um
esquema conceitual inclui as propriedades temporais. O principal
inconveniente consiste na necessidade de ser desenvolvida uma nova
verso do SGBD incluindo as extenses.
7.1 Aspectos Fundamentais na Implementao de BD Temporal
O conceito de BD Temporais supe que o conceito de tempo seja implcito,
como no caso da terceira categoria acima apresentada. Segundo [Tansel
93], acrescentar suporte temporal a um SGBD ocasiona um impacto
importante sobre todos os seus componentes. A arquitetura simplificada
de um SGBD convencional apresentada na figura 7.1. O administrador
do BD (DBA) e sua equipe projetam o BD, gerando o esquema conceitual
fsico. Este esquema, expresso em uma linguagem de definio de dados
(DDL), processado pelo compilador desta linguagem e armazenado no
catlogo do sistema. Os usurios, por sua vez, preparam suas consultas, e
as submetem ao processador de consultas. Cada consulta , inicialmente,
analisada lxica e sintaticamente, com base nas informaes que constam
do catlogo do sistema, sendo depois otimizada, para que sua execuo
seja eficiente. Um plano de avaliao da consulta enviado ao avaliador da
consulta. Enquanto a consulta est sendo avaliada, este componente
acessa o BD atravs do gerenciador de dados armazenados, o qual
implementa controle de concorrncia, gerenciamento de transaes,
recovery, buffering e mtodos de acesso a dados.
DBA Usurios

Consultas
DDL

Compilador Catlogo do Processador de


Sistema Consultas
DDL

Avaliador da
Consulta

Gerenciador de Dados
Compartilhados

BD Temporal

Figura 7.1 Arquitetura simplificada de um SGBD tradicional [Tansel 93]


O acrscimo de informaes temporais implcitas ao BD influencia
cada uma das partes do SGBD, que devem ser adaptadas para permitir
consultas eficientes. A seguir, vamos analisar superficialmente alguns
aspectos influenciadas pelo acrscimo de tempo ao BD (detalhes podem
ser encontrados em [Tansel 93].
(1) DDL as linguagens de consulta tambm so utilizadas para definio
de dados (por ex., CREATE TABLE do SQL) e para atualizao de dados
(por ex., INSERT, DELET e UPDATE do SQL). Para manipular
informaes temporais, estas linguagens de consulta devem permitir a
definio de domnios temporais e oferecer suporte a tempo de
transao e/ou validade.
(2) Catlogo do Sistema vai depender do tipo de BD temporal utilizado.
Geralmente feito suporte somente a esquemas de tempo de
transao.
(3) Otimizao de Consultas a otimizao de consultas temporais bem
mais complicada do que no caso de consultas convencionais. O
primeiro problema para a otimizao o grande nmero de dados
envolvidos. O tempo despendido na consulta pode ser muito elevado
dependendo do volume de dados, justificando que seja despendido um
tempo maior na otimizao da consulta. Um segundo problema para a
otimizao so os predicados envolvidos em consultas temporais, que
so mais difceis de serem otimizados, gerando cada um diversos
predicados de consultas tradicionais (por exemplo, o operador
OVERLAP traduzido por dois predicados aplicados sobre os rtulos
temporais). Por outro lado, existe maior possibilidade de otimizar uma
consulta quando envolve tempo como o tempo est sempre
avanando, em uma s direo, o ponto no tempo mais recente o
maior valor do seu domnio. Esta ordenao natural pode auxiliar na
otimizao da consulta por exemplo, no caso de dados relativos a
salrios com rtulos temporais de intervalos de validade, onde termina
a validade de um salrio inicia imediatamente a validade de outro
valor. A otimizao semntica de consultas pode utilizar as restries
de integridade definidas para a aplicao (como no caso do salrio),
alm de condies adicionais. A otimizao de consultas pode ser local
(de uma s consulta) e/ou global (de diversas consultas
simultaneamente), sempre envolvendo a gerao de um plano de
otimizao, o qual consiste de uma expresso algbrica associada a
mtodos de acesso.
(4) Avaliao de Consultas vrias tcnicas foram analisadas para melhor
a eficincia da avaliao de consultas. Entre elas podemos citar: (i) a
proposta de separar os dados histricos dos atuais (tcnica
denominada de particionamento temporal). Como um grande nmero
de consultas se refere a dados atuais, e como estes geralmente so
estveis, a separao tem apresentado bons resultados; (ii) para
proporcionar avaliao eficiente das consultas diversos novos mtodos
de indexao temporal tm sido propostos para BD temporais,
procurando evitar que um nmero muito elevado de dados seja
analisado para a consulta; e (iii) por serem uma das operaes mais
comuns e ao mesmo tempo mais dispendiosas na avaliao de
consultas, os joins tm sido muito analisados, sendo desenvolvidos
vrios algoritmos novos para esta operao.
(5) Gerenciador dos Dados Armazenados com relao aos dados
armazenados, trs aspectos importantes devem ser analisados: as
estruturas de armazenamento (incluindo layout de pgina), o controle
de concorrncia, e a recuperao (recovery).
Estruturas de armazenamento - vrias estruturas de
armazenamento tm sido propostas, incluindo encadeamento
reverso (todas as verses histricas de uma determinada chave so
encadeadas em ordem reversa), listas de acesso (um bloco de
valores temporais e de identificadores de tuplas associadas entre o
armazenamento corrente e o histrico), clustering (armazenar
verses histricas em conjunto, em um conjunto de blocos),
stacking (armazenando um conjunto fixo de verses histricas) e
encadeamento celular (encadeando blocos de verses histricas
clusterizadas).
Controle de concorrncia diversos pesquisadores tm analisado a
possibilidade de adaptar tcnicas existentes de controle de
concorrncia e de gerncia de transaes para apresentar suporte
ao tempo de transao. Tambm tem sido analisada a forma de
rotular com tempo conjuntos distribudos, e como fazer a
integrao de ndices temporais com o controle de concorrncia.
Recovery BD de tempo de transao podem ser facilmente
utilizados para recuperao, em caso de falhas, uma vez que todos
os estados passados esto disponveis. Mesmo que parte dos dados
atuais seja perdida devido falha, um estado passado pode ser
reconstrudo.
7.2 Implementaes sobre Bancos de Dados Comerciais Tradicionais
A utilizao de um modelo de dados temporal no nvel de modelagem, com
grande poder de expresso, no implica que seja necessria a existncia de
um banco de dados correspondente a este modelo. Podem ser utilizados
BD comerciais, com todas as caractersticas de robustez que apresentam,
desde que seja possvel mapear adequadamente o modelo temporal para o
modelo do BD utilizado. Alm disso, interessante que o modelo de
consulta do modelo temporal seja tambm mapeado para a linguagem de
consulta do BD utilizado, de modo a tornar a implementao totalmente
transparente ao usurio.
Diversos trabalhos tm sido realizadas mapeando modelos ricos em
expressividade para bancos de dados comerciais, inclusive apresentando
outras formas de representao conceitual [Oliveira 95].
Por exemplo, uma forma genrica de mapear um modelo temporal OO
para o modelo relacional tradicional descrita a seguir. Para cada classe
criada uma tabela, onde so armazenados o identificador do objeto (OId) e
suas propriedades estticas (que no apresentam variao com o tempo).
Para cada propriedade dinmica deve ser criada uma tabela especial, que
traz todos os valores da propriedade com as informaes temporais
associadas (tempo de transao e/ou validade, pontos no tempo ou
intervalos). As tabelas so unidas pelo valor do OId. A cada novo valor de
uma propriedade dinmica, uma nova tupla inserida nesta tabela. Nota-
se, portanto, que em lugar de uma tabela a implementao deve trabalhar
com diversas tabelas, representando explicitamente todos os valores
temporais na forma de atributos.

8 Modelagem de Aplicaes atravs de Modelos


Temporais
Informaes temporais, tais como valores temporais, restries temporais e
caractersticas de evoluo temporal, esto presentes em grande nmero
de aplicaes do mundo real. Modelos de dados temporais podem ser
utilizados para modelar (especificar) estas aplicaes. Isto porque, ao
construir a especificao de um sistema de informao, no s a estrutura
dos dados manipulados deve ser definida, mas tambm sua dinmica - seu
comportamento com a passagem do tempo. A representao dos aspectos
temporais na especificao de um sistema de informao importante por
mais de um motivo: (i) o sistema pode apresentar informaes temporais a
serem introduzidas no banco de dados que o representa, sob forma de
informao propriamente dita; (ii) processos a serem executados podem
apresentar interaes temporais, interaes estas que devem tambm ser
representadas; (iii) determinadas tarefas podem apresentar pr -condies
sua execuo, as quais podem ser representadas atravs de restries
temporais; e (iv) condies de integridade temporal do banco de dados
podem ser necessrias.
A modelagem de aspectos temporais um importante tpico da
modelagem de sistemas de informao. Atravs destes aspectos so
representadas as caractersticas dinmicas das aplicaes e a interao
temporal entre diferentes processos. A possibilidade de armazenar,
manipular e recuperar dados temporais deve ser considerada quando da
escolha de um mtodo de modelagem.
Diversas aplicaes nas quais as informa es temporais so
fundamentais, podem ser identificadas. Entre elas podemos citar:
(1) registros de informaes acadmicas, nas quais devem ser
armazenados todos os conceitos obtidos pelos alunos nos respectivos
semestres;
(2) em diversas reas de empresas, tai s como contabilidade (datas de
contas a pagar e receber, pagamentos efetuados e recebidos, fluxo de
caixa), oramento (previso do oramento futuro em funo das
despesas passadas e dos provveis despesas e de provveis
recebimentos, tomadas de deciso (ba seadas em informaes
histricas), controle de estoques e em processos de importao /
exportao;
(3) aplicaes financeiras, como no mercado de aes, aplicaes
bancrias;
(4) companhias seguradoras, no planejamento de planos a serem
oferecidos e onde os valores das aplices geralmente so baseados
nas informaes passadas dos clientes;
(5) sistemas de reservas (de companhias areas, de hotis, de trens);
(6) Sistemas de Informao Geogrficos, para a representao da
evoluo das reas representadas e para o planejamento de obras
futuras;
(7) rea mdica, onde o registro das informaes histricas de pacientes
fundamental;
(8) bancos de dados multimdia, onde evoluo da apresentao
fundamental;
(9) modelagem de workflow (fluxo de trabalho), onde o modelo a ser
construdo deve representar no somente os aspectos estticos da
aplicao, mas tambm seus aspectos dinmicos e sua possvel
evoluo.
A seguir sero analisadas um pouco mais a fundo as ltimas reas acima
apresentadas.
8.1 Sistemas de Informao Geogrficos
Sistemas de Informao Geogrficos (SIGs) so sistemas automatizados
usados para armazenar, analisar, manipular e visualizar dados
geogrficos, ou seja, dados que representam objetos e fenmenos em que a
localizao geogrfica uma caracterstica inerente informao e
indispensvel para analis-la [Cmara 96]. Caracterizam-se por integrar,
em uma nica base de dados, dados espaciais, descritivos (convencionais)
e temporais.
Os seguintes aspectos caracterizam um dado geogrfico (georrefenciado)
[Lisboa 97]:
a descrio da entidade geogrfica que cada dado representa;
a localizao geogrfica da entidade que o dado representa;
o relacionamento entre a entidade geogrfica com outras entidades
representadas no sistema; e
o momento ou intervalo de tempo em que a entidade geogrfica existe
ou vlida.
Um dos aspectos fundamentais para a representao de dados geogrficos
, portanto, a possibilidade de representao de aspectos temporais
associados aos dados. O tempo um conceito essencial para a
compreenso e a modelagem de fenmenos espaciais em diversas
aplicaes, tais como: cincias biofsicas, pesquisa epidemiolgica, cincias
polticas, econmicas e sociais, e vrias aplicaes de tempo real para
gerenciamento e planejamento [Faria 98].
A utilizao, em SIGs, de um modelo espao-temporal aumenta a sua
capacidade de anlise, possibilitando o estudo da evoluo dos fenmenos
geogrficos [Garaffa 98]. Exemplos de evoluo de entidades geogrficas
so (i) o surgimento de novas entidades geogrficas, como no caso em que
um a propriedade agrcola dividida em duas, (ii) a mutao em entidades,
como no caso de alterao de limites de uma propriedade, (iii) a fuso de
entidades, como no caso de uma propriedade ser englobada em uma outra
que lhe era vizinha, e (iv) o desaparecimento de uma entidade, que pode
ocorrer quando uma rvore cortada.
A variao temporal das entidades geogrficas pode ocorrer de forma
contnua, como no caso da alterao do perfil do solo em razo de eroso,
ou discreta, como no exemplo anterior de alterao de limites de
propriedades. Para que toda a histria de uma regio seja conhecida
necessrio que a evoluo da entidades desta regio seja registrada,
possibilitando a recuperao de situaes passadas.
As consultas a SIGs podem envolver tanto o estado de um fenmeno
quanto a sua distribuio espacial e temporal. Os sistemas gerenciadores
de SIGs devem responder consultas que devolvam valores de atributos,
localizaes e perodos temporais. Deve, ainda, permitir relacionamentos
espaciais entre entidades (por ex., proximidade, vizinhana), simulao e
comparao de cenrios alternativos baseados na combinao de camadas
de dados, e previses para o futuro atravs de anlise de tendncias.
8.1.1 Modelos temporais para SIGs
Nas aplicaes de SIGs atuais a representao de aspectos temporais no
tm sido levada em considerao. A maior parte dos sistemas existentes
no considera tempo ou, no mximo, associa alguma informao temporal
a alguns atributos, sob forma de datas. No existem mecanismos para a
manipulao de verses antigas dos dados geogrficos. Entretanto, a
identificao da necessidade de representao de aspectos temporais em
aplicaes de SIGs tm originado diversas pesquisas de implementao de
SIGs temporais, procurando representar os requisitos temporais
especficos desta rea, alm de definir operaes de recuperao de
informaes temporais, e de manipulao de verses. Em alguns modelos
para SIGs j aparece alguma representao temporal:
o modelo GeoOOA [Kosters 97] diferencia classes temporais de no-
temporais. Classes temporais armazenam as informaes temporais
relativas evoluo do objeto como um todo (tempo de criao e de
trmino de sua existncia) em um atributo especial;
projeto TEMPEST [Peuquet 95] da Universidade de Pensylvania, USA;
na modelagem do estudo de caso apresentado em [Garaffa 98],
integrado no programa Pr-Guaba da Secretaria de Coordenao e
Planejamento do Estado do Rio Grande do Sul, foi includa alguma
representao temporal. Na modelagem foi utilizado um modelo
orientado a objetos, proposto em [Lisboa 96], sendo este estendido com
alguns aspectos temporais. A temporizao feita nvel de
propriedades, atravs da utilizao de domnios temporais. So
identificadas as classes que apresentam atributos cujos valore s devem
ser armazenados;
alguns trabalhos acadmicas esto em desenvolvimento, como por
exemplo, a implementao de um banco de dados espao-temporal
para aplicaes de SIGs, usando o SGBDOO O2 [Faria 98].
8.2 Aplicaes Mdicas
O registro do histrico de paci entes fundamental para os diagnsticos.
Nestes registros geralmente constam informaes relativas a
medicamentos utilizados (quando e durante quanto tempo), seus efeitos,
sintomas apresentados e diagnsticos efetuados (quando), durao de
enfermidades e resultados de exames realizados (quando). A anlise destas
informaes pode ser utilizada para diversas finalidades:
pelo mdico pessoal do paciente, como apoio a novos diagnsticos;
pelo sistema de sade, para anlises epidemiolgicas, procurando em
um conjunto significativo de pacientes encontrar os mesmos sintomas
e os mesmos diagnsticos em determinados perodos;
por pesquisadores, analisando tambm conjuntos de registros de
pacientes, procurando verificar, por exemplo, quais os medicamentos
mais eficazes para um determinado diagnstico, em relao ao tempo
de cura.
Os projetistas de sistemas de informao mdica perceberam, h longo
tempo, a necessidade de armazenar e manipular as informaes
relacionadas com o tempo. Um dos primeiros sistemas a atender esta
necessidade foi Time Oriented Database: TOD desenvolvido por Wiederhold
e outros em Stanford [Wiederhold 75, Edelweiss 94]. No sistema TOD as
informaes clnicas relativas a consultas so organizadas de forma
cronolgica, sendo preenchido um formulrio para cada visita realizada
pelo paciente.
8.3 Bancos de Dados Multimdia
Os objetos constituintes de Bancos de Dados Multimdia apresentam
claramente um dimenso temporal, que se refere ordem de apresentao
dos objetos. Isto pode ser observado em situaes como as que seguem:
o objeto X deve ser apresentado antes do objeto Y;
o objeto X deve ser apresentado simultaneamente ao objeto Y por ex.,
apresentao de uma imagem e de voz ao mesmo tempo;
Como pode ser observado nos exemplos acima, nestes tipos de aplicao o
tempo relativo, no absoluto. Alm disso, muitas vezes temos um
relacionamento forte entre o tempo e o espao a ser utilizado pelo objeto
em sua apresentao. Exemplo: Encontre todas as seqncias de vdeos
nas quais um automvel, aps virar esquerda, vira para a direita. Neste
exemplo, existe uma combinao de inferncia espacial (fazer curva) e
temporal (primeiro esquerda, depois direita).
A utilizao de linguagens temporais de manipulao e de consulta neste
tipo de aplicaes, permite:
fazer consultas temporais a estes bancos de dados;
construir apresentaes multimdia.
Bancos de dados de udio e de vdeo so um exemplo claro da
necessidade de representar aspectos temporais neste tipo de aplicaes
[Hjelsvold 95]. Um banco de dados de vdeo pode ser visto como uma
coleo de conjuntos parcialmente ordenados, na qual existem
relacionamentos temporais entre os elementos de uma mesma seqncia
de imagens e de sons.
8.4 Modelagem de Workflow
Um workflow (fluxo de trabalho) geralmente definido como uma
seqncia de tarefas (processos) a serem executados por sistemas
automatizados ou por pessoas, com o objetivo de realizar um processo de
negcio [Georgakoupoulos 95, Joosten 94]. Workflows esto sendo
utilizados em diversas reas de negcios, tais como aplicaes bancrias,
mdicas e de comrcio eletrnico. Um dos maiores problemas detectados
na gerncia de workflow o controle dos problemas decorrentes da
coordenao das atividades. Mesmo nos processos administrativos mais
comuns no possvel controlar todas as atividades envolvidas alm da
complexidade natural dos processos desenvolvidos, existe um grande
volume de informaes manipuladas por diversas pessoas. A necessidade
de desenvolver sistemas que gerenciem o workflow com efici ncia levou ao
desenvolvimento de tcnicas de modelagem especficas para estas
aplicaes. A representao de todos os processos que compem uma
aplicao, atravs de um modelo, tem por objetivo permitir o entendimento
do conjunto de processos e da seqncia de sua execuo. Desta anlise
pode resultar uma eventual reengenharia dos processos envolvidos, com o
objetivo de sanar erros detectados e de obter uma melhor distribuio do
trabalho. O modelo obtido servir como base, mais tarde, para o processo
de gerncia deste workflow.
No modelo de um workflow devero ser representados, alm dos
processos, das atividades de que os processos so compostos, dos agentes
responsveis por cada atividade, as restries temporais execuo de
cada uma das atividades. Estas restries temporais que definem a
seqncia vlida de atividades serem executadas, e o seu sincronismo
entre atividades. A possibilidade de representar informaes temporais em
um modelo de workflow de fundamental importncia, para possibilitar a
representao deste sincronismo. Diferentes tcnicas tm sido propostas
para modelagem de workflow. No se tratam, entretanto, de modelos
temporais os aspectos de tempo necessrios representao do
sincronismo entre atividades devem ser definidos expl icitamente. Em
[Nicolao 98] existe uma proposta de utilizao do modelo temporal TF-ORM
neste tipo de modelagem. O sincronismo entre as atividades (papis de
classes processo) representado atravs das regras de transio de estado,
condicionadas pelas condies expressas em lgica temporal.
9 Concluses
Analisando as pesquisas realizadas na rea de BD temporais, os estgios a
seguir podem ser identificados [Jensen 97]:
(1) desenvolvimento de conceitos 1956 a 1985
anlise dos diferentes tipos de tempo (transao e validade)
desenvolvimento de modelos conceituais temporais
(2) linguagens de consulta temporais 1978 a 1994
Relacional 1978 a 1990
OO 1990 a 1994
(3) implementao 1988 em diante
estruturas de armazenamento
algoritmos de operao
indexao temporal
(4) consolidao 1993 em diante
terminologia [Jensen 94]
TSQL2, SQL/Temporal no SQL3
Existe, ainda, muito a ser feito nesta rea. Principalmente na parte de
implementao de BD temporais, e nas pesquisas em reas que
necessitam dos conceitos de tempo, tais como SIGs, Data Warehousing,
Sistemas de Suporte Deciso, minerao de dados, etc.
Neste texto procuramos trazer os principais conceitos envolvidos na
rea de Bancos de Dados Temporais, desde os conceitos tericos,
nomenclatura empregada, possibilidade de evoluo dos esquemas e como
pode ser tratada, at chegar a formas de implementao, e analisar
algumas aplicaes que podem ser beneficiadas deste tipo de
armazenamento de dados. um texto bsico, podendo mais detalhes ser
encontrados nas referncias bibliogrficas indicadas.

Referncias Bibliogrficas
[Antunes 97] ANTUNES, D.C. Modelagem temporal de sistemas: uma abordagem
fundamentada em redes de Petri. Porto Alegre: CPGCC da UFRGS, 1997.
Dissertao de Mestrado.
[Ariav 91] ARIAV, G. Temporally oriented data definitions: managing schema
evolution in temporally oriented databases. Data & Knowledge Engineering , v.6,
p.451-467, 1991.
[Bolour 82] BOLOUR, A. et al. The Role of time in information processing: A
survey. SigArt Newletter, v.80, p.28-48, Apr. 1982.
[Cmara 96] CMARA, G.; CASANOVA, M.A.; HEMERLEY, A.S.; MAGALHES,
G.C.; MEDEIROS, C.M.B. Anatomia de Sistemas de Informao Informao
Geogrfica. Campinas: Instituto de Computao, UNICAMP, 1996. (10a Escola
de Computao).
[Carvalho 97] CARVALHO, T.P. de; EDELWEISS, N. A Visual query system
implementing a temporal object-oriented model with roles on a relational
database. Proceedings of the 17th International Conference on the Chilean
Computer Science Society, , Valparaiso, Chile, Nov. 10-15, 1997. p. 38-47.
[Cheng 93] CHENG, T.S.; GADIA, S.K. An Object-oriented model for temporal
databases. Proceedings of the International Workshop on an Infrastructure for
Temporal Databases, June 14-16, Arlington, Texas, 1993.
[Clifford 87] CLIFFORD J.; CROCKER, A. The Historical relational data model
(HRDM) and algebra based on lifespans. Proceedings of the 3rd International
Conference on Data Engineering, Los Angeles, California, 1987. p.528-537.
[Clifford 93] CLIFFORD J.; CROCKER, A. The Historical relational data model
(HRDM) revisited. In: A.U. TANSEL et al. (eds.) Temporal Databases: Theory,
Design, and Implementation. Redwood City, California: Benjamin/Cummings,
1993. p.6-27.
[Clifford 95] CLIFFORD, J.; TUZHILIN, (Eds.) Recent Trends in Temporal
Databases. Great Britain: Springer, 1995. 360p.
[DeCastro 95] DE CASTRO, C.; GRANDI, F.; SCALAS, M.R. On Schema versioning
in temporal databases. Recent Advances in Temporal Databases , J. Clifford, A.
Tuzhilian (Eds.), Springer Verlag, 1995, p.272-291.
[DeCastro 97] DE CASTRO, C.D.; GRANDI, F.; SCALAS, M.R. Schema Versioning
For Multitemporal Relational Databases. Information Systems , v.22, n.5, 1997,
p.249-290.
[Edelweiss 93] EDELWEISS, N; Oliveira, J.P.M. de; Pernici, B. An Object -Oriented
Temporal Model. Proceedings if the 5th International Conference on Advanced
Information Systems Engineering - CAISE'93, Paris, France, June 8-11, 1993.
p.397-415. (Lecture Notes in Computer Science 685).
[Edelweiss 94] EDELWEISS, N.; OLIVEIRA, J.P.M. Modelagem de aspectos
temporais de sistemas de informao. Recife: Universidade Federal de
Pernambuco, 1994. (9a Escola de Computao).
[Edelweiss 94a] EDELWEISS, N.; OLIVEIRA, J.P.M.; PERNICI, B. An Object-
oriented approach to a temporal query language. Proceedings of the 5th
Database and Expert Systems Applications Conference - DEXA'94, Athens,
Greece, Sept. 7 -9, 1994. pp.225-235. (Lecture Notes in Computer Science 856).
[Edelweiss 95] EDELWEISS, N.; OLIVEIRA, J.P.M.; CASTILHO, J.M.V. Evoluo de
Esquemas em Bancos de Dados Temporais. Anais do XXII Simpsio Brasileiro
de Software e Hardware (XXII SEMISH), XXI Conferencia Latinoamericana de
Informatica (PANEL95), Canela, RS, 31 jul - 4 ago, 1995. p.375-386.
[Edelweiss 97] EDELWEISS, N.; OLIVEIRA, J.P.M. de; KUNDE, G. Evoluo de
Esquemas Conceituais: o Conceito de Papel. Anais da XXIII Conferencia
Latinoamericana de Informatica - PANEL97, Valparaiso, Chile, 10 a 13 de
novembro, 1997. p. 1-12.
[Elmasri 93] ELMASRI, R.; WUU, G.T. J.; KOURAMAJIAN, V. A temporal model
and query language for EER Databases. In: TANSEL, A. et al. (Eds.). Temporal
databases: theory, design and implementation. Redwood City: The
Benjamin/Cummings Publishing, 1993. p. 212-229.
[Faria 98] FARIA, G. Um Banco de Dados Espao-Temporal para Desenvolvimento
de Aplicaes em Sistemas de Informao Geogrfica. Universidade Estadual de
Campinas, 1998. (Dissertao de mestrado).
[Garaffa 98] GARAFFA, I.M. Anlise da Adequao de uma Hierarquia de Classes
bsicas para Modelagem Conceitual de SIG, atravs de um Estudo de Caso.
Dissertao de mestrado a ser apresentada ao CPGCC/UFRGS.
[Georgakoupoulos 95] GEORGAKOUPOULOS, D.; HORNICK, M.; SHETH , A. An
Overview of Workflow Management: from process modeling to workflow
automation infrastructure. ACM Distributed and Parallel Databases, n.3, p.119-
153, Sept. 1995.
[Goralwalla 97] GORALWALLA, I.A.; SZAFRON, D.; ZSU, M.T.; PETERS, R.J.
Managing Schema Evolution using a Temporal Object Model. To appear in the
Proceedings of the 16th International Conference on Conceptual Modeling
(ER98), Nov. 1997.
[Hjelsvold 95] HJELSVOLD, R.; MIDTSTRAUM, R.; SANDSTA, O. A Temporal
foundation of video databases. In: CLIFFORD, J.; TUZHILIN, A. (Eds.) Recent
Trends in Temporal Databases. Great Britain: Springer, 1995. p.295-314.
[Jensen 94] JENSEN, C.S. et al. A Consensus glossary of Temporal Database
Concepts. SIGMOD Record, v.23, n.1, p.53-63, Mar. 1994.
[Jensen 97] JENSEN, C.S. Tutorial on Temporal Databases. SBBD97, Fortaleza,
CE, 1997.
[Joosten 94] JOOSTEN, M.; STEF, M. Trigger Modelling for Workflow Analysis.
Design Methodology Group, Center for Telematics and Information Technology,
University or Twente, P.O. Box 217, 7500 AE Enschede, the Netherlands.
[Kim 95] KIM, W.S.; CHANG, C.C.; LIM, T.Y.; SHIN, Y.H. Temporal object-oriented
data model for the schema modification. Proceedings of the 4th International
Conference on Database Systems for Advanced Applications, Singapore, April
10-13, 1995.
[Kline 93] KLINE, N. An Update on the temporal database bibliography. ACM
SIGMOD Record, v.22, n.4, p.66-80, Dec 1993.
[Kosters 97] KOSTERS, B.; PAGEL, B.; SIX, H. GIS-application development with
GeoOOA. International Journal of Geographical Information Systems , v.11, n.4,
p.307-335, 1997.
[Kouramajian 95] KOURAMAJIAN, V.; GERTZ, M.; A graphical query language for
temporal databases. Proceedings of the OOER95 - Object-Oriented and Entity-
Relantionship Modeling. Berlin, 1995.
[Lisboa 96] LISBOA, F.J.; IOCHPE, C. Adaptando o modelo de dados OMT para
modelagem conceitual de aplicaes de SIG. Anais da 1a SEGEO Semana
Estadual de Geoprocessamento do Estado do Rio Grande de Janeiro. Rio de
Janeiro: Escola de Engenharia, 1996.
[Lisboa 97] LISBOA, F.J. Modelos Conceituais de Dados para Sistemas de
Informao Geogrficas . Porto Alegre: CPGCC da UFRGS, 1997. 119p. EQ-12.
[Lorentzos 93] LORENTZOS, N.A. The Interval-extended Relational Model and its
applications to valid-time databases. In: A.U. TANSEL et al. (eds.) Temporal
Databases: Theory, Design, and Implementation. Redwood City, California:
Benjamin/Cummings, 1993. p.67-91.
[Loucopoulos 91] LOUCOPOULOS, P.; THEODOULIDIS, C.; WANGLER, B. The
entity relationship time model and conceptual rule language. Proceedings of
the 10th Int. Conf. on the Entity-Relationship Approach, San Mateo, California,
1991.
[McKenzie 86] McKENZIE, M. Bibliography: Temporal databases. ACM SIGMOD
Record, v.15, n.4, p.40-52, Dec. 1986.
[McKenzie 90] MCKENZIE, E.; SNODGRASS, R. Schema evolution and the
relational algebra. Information Systems , v.15, n.2, p.207-232, 1990.
[Moreira 97] MOREIRA, V.P. Evoluo de Esquemas em Bancos de Dados
Temporais. Porto Alegre: CPGCC da UFRGS, 1997. (Trabalho Individual 662).
[Navathe 88] NAVATHE, S.B.; AHMED, R. TSQL: A Language interface for history
databases. In: ROLLAND, C.; BODART, F.; LEONARD, M. (Eds.) Temporal
Aspects in Information Systems . Amsterdam: North-Holland, 1988. p.109-122.
[Navathe 93] NAVATHE, S.B.; AHMED, R. Temporal extensions to the relational
Model and SQL. In: A.U. TANSEL et al. (eds.) Temporal Databases: Theory,
Design, and Implementation. Redwood City, California: Benjamin/Cummings,
1993. p.92-109.
[Nicolao 98] NICOLAO, M.; EDELWEI SS, N. Workflow Modelling using a Temporal
Object-Oriented Model. Proceedings of the EDBT Workshop on Workflow
Management Systems, March 27-28, 1998, Valencia, Spain. O. Bukhres, J.
Eder, S. Salza (Eds.) p. 71-79.
[Oberweis 94] OBERWEIS, A.; SNGER, V. GTL - A graphical language for
temporal data. Proceedings of the 7th International Working Conference on
Scientific and Statistical Database Management. IEEE Computer Press, 1994.
[Oliveira 95] OLIVEIRA, J.P.M., EDELWEISS, N., ARRUDA, E., LAENDER, A.H.F.,
CAVALCANTI, J.M.B. Implementation of an Object-Oriented Temporal Model.
Proceedings of the International Workshop and Conference on Database and
Expert Systems Applications - DEXA95, London, U.K., September 1995.
[Overmeyer 82] OVERMEYER, R.; STONEBRAKER, M. Implementation of a Time
Expert in a Data Base System. ACM SIGMOD Record, v. 11, n. 3, p. 51, Apr 82.
[zsoyoglu 95] ZSOYOGLU, G.; SNODGRASS, R. T. Temporal and real-time
databases: a survey. IEEE Transactions on Knowledge and Data Engineering,
New York, v.7, n.4, p.513-532, Aug. 1995.
[zsu 95] ZSU, M.T. et al. TIGUCAT: A Uniform Behavioral Objectbase
Management System. The VLDB Journal , v.4, p.100-147, Aug. 1995.
[Peuquet 95] PEUQUET, D.J. An Event-based spatiotemporal data model (ESTDM)
for temporal analysis of geographical data. International Journal of Geographical
Information Systems , v.9, n.4, 1995.
[Roddick 92] RODDICK, J.F.; PATRICK, J.D. Temporal semantics in information
systems - a survey. Information Systems , v.17, n.3, p.249-267.
[Roddick 94] RODDICK, J.F. A Modelfor Temporal Inductive Inference and Schema
Evolution in Relational Database Systems . La Trobe University, Department of
Computer Science and Computer Engineering, 1994. Ph.D. Thesis.
[Snodgrass 85] SNODGRASS, R.; AHN, I. A Taxonomy of time in databases.
Proceedings of the ACM SIGMOD I nternational Conference on Management of
Data, Texas, May 28-31, 1985. p.236-46.
[Snodgrass 95] SNODGRASS, R. The TSQL2 Temporal Query Language, Kluwer
Academic Publishers Northwell, MA, 1995.
[Soo 91] SOO, M.D. Bibliography on temporal databases. ACM SIGMOD Record,
v.20, n.1, p.14-23, Mar. 1991.
[Stam 88] STAM, R.; SNODGRSS, R.T. Bibliography on temporal databases. IEEE
Database Eng., v.7, n.4, p.231-239, Dec. 1988.
[Su 91] SU, S.Y.W.; CHEN, H.-H. M. A Temporal knowledge representation model
OSAM */T and its query language OQL/T. Proceedings of the 17 th International
Conference on Very Large Data Bases, Barcelona, Spain, 1991. p.431-442.
[Tansel 93] TANSEL, A.U. et al. (eds.) Temporal Databases: Theory, Design, and
Implementation. Redwood City, California: Benjamin/Cummings, 1993.
[Tauzovich 91] TAUZOVICH, B. Towards temporal extensions to the entity-
relationship model. Proceedings of the 10th Int. Conf. on the Entity-Relationship
Approach, San Mateo, California, 1991.
[Tsotras 96] TSOTRAS, V.J.; KUMAR, A. Temporal database bibliography update.
ACM SIGMOD Record, v.25, n.1, p.41-51, Mar. 1996.
[Wiederhold 75] WIEDERHOLD, G. et al. Structured Organization of Clinical
Database. Proceedings of the AFIPS National Conference, Anhein, U.S.A., 1975.
[Wuda 92] WUDA, G.; DAYAL, U. A Uniform model for temporal object-oriented
databases. Proceedings of the 8th IEEE Data Engineering Conference, 1992.
[Wu 97] WU, Y.; JOJODIA, S.; WANG, X.S. Temporal Database Bibliography
Update. http://isse.gmu.edu/~csis/tdb/bib97/bib97.html.
[Wuu 93] WUU, G.T.J.; DAYAL, U. A Uniform model for temporal and versioned
object-oriented databases. In: A.U. TANSEL et al. (eds.) Temporal Databases:
Theory, Design, and Implementation. Redwood City, California:
Benjamin/Cummings, 1993. p.230-247.
[Zaniolo 97] ZANIOLO, C.; CERI, S.; FALOUTSOS, C.; SNODGRASS, R.T.;
SUBRAHMANIAN, V.S.; ZICARI, R. Advanced Database Systems . San
Francisco, CA: Morgan Kaufmann Publishers, 1997. 574p.
[Zicari 91] ZICARI, R. A Framework for schema updates in an object -oriented
database system. 7th Data Engineering, Kobe, Japan, April 8-12, 1991. p.2-12.

Anda mungkin juga menyukai