banco de dados temporal - computação unioesteolguin/4463-semin/g9-monografia.pdf · são...

35
Unioeste – Universidade Estadual do Oeste do Paraná CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS Colegiado de Informática Curso de Bacharelado em Informática CASCAVEL 2005 BANCO DE DADOS TEMPORAL Lucilia Yoshie Araki Marcio Cezar Santos da Rosa

Upload: hoanghanh

Post on 08-Nov-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

Unioeste – Universidade Estadual do Oeste do Paraná

CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS

Colegiado de Informática

Curso de Bacharelado em Informática

CASCAVEL

2005

BANCO DE DADOS TEMPORAL

Lucilia Yoshie Araki Marcio Cezar Santos da Rosa

ÍNDICE DE FIGURAS

Figura 1: Estruturas temporais (Worboys, 1998) ................................................................... 7

Figura 2Tempo ramificado (Worboys e Duckhan , 2004) ..................................................... 8

Figura 3Tempo circular (Worboys e Duckhan , 2004)........................................................... 8

Figura 4 Diferentes granularidades temporais (EDELWEISS, 1998).................................... 9

Figura 5 As entidades e os relacionamentos no modelo TempER são classificados em

transitórios e perenes, conforme a sua relação com a dimensão temporal. ......................... 14

Figura 6 Visualização da validade temporal de uma Entidade Transitória. ......................... 15

Figura 7 Visualização da validade temporal de uma Entidade Perene................................. 16

Figura 8 Exemplo de Identificador Interno de Entidades - OID (ANTUNES et al., 1998) .17

Figura 9 Exemplo de perspectivas temporal e intemporal das entidades ............................. 19

Figura 10 Exemplo de atributos no modelo ER convencional e temporal ........................... 20

SUMÁRIO

1. INTRODUÇÃO ........................................................................................................... 4

2. PRINCIPAIS CONCEITOS DE REPRESENTAÇÃO TEMPORAL ....6

2.1 DIMENSÃO TEMPORAL .................................................................................................. 6 2.2 TEMPO DE TRANSAÇÃO E TEMPO DE VALIDADE............................................................ 6 2.3 ORDEM NO TEMPO......................................................................................................... 7 2.4 TEMPO ABSOLUTO E TEMPO RELATIVO......................................................................... 8 2.5 VARIAÇÃO TEMPORAL .................................................................................................. 9 2.6 GRANULARIDADE TEMPORAL........................................................................................ 9 2.7 REPRESENTAÇÃO TEMPORAL ...................................................................................... 10

3. MODELAGEM DE DADOS EM BANCO DE DADOS TEMPORAL 12

3.1 ENTIDADES TRANSITÓRIAS .......................................................................................... 15 3.2 ENTIDADES PERENES................................................................................................... 16 3.3 O IDENTIFICADOR INTERNO DE ENTIDADES - OID ....................................................... 16 3.4 RELACIONAMENTOS TEMPORAIS ................................................................................. 18 3.5 RELACIONAMENTOS INTEMPORAIS .............................................................................. 18 3.6 AS PERSPECTIVAS TEMPORAL E INTEMPORAL DAS ENTIDADES..................................... 18 3.7 ATRIBUTOS.................................................................................................................. 19

3.7.1 Atributos temporais ............................................................................................. 21 3.7.2 Atributos intemporais .......................................................................................... 21

3.8 RESTRIÇÕES DE CARDINALIDADE ................................................................................ 21

4. SISTEMAS DE BANCO DE DADOS TEMPORAL................................... 23

4.1 CARACTERÍSTICAS GERAIS A SEREM SUPORTADAS POR SGBDT.................................. 23 4.2 EVOLUÇÕES EM SISTEMAS DE INFORMAÇÕES TEMPORAIS........................................... 23

5. MANIPULAÇÃO DOS DADOS TEMPORAIS............................................ 25

5.1 INSERÇÃO EM BANCO DE DADOS TEMPORAIS.............................................................. 25 5.2 REMOÇÃO EM BANCO DE DADOS TEMPORAIS ............................................................. 26 5.3 ATUALIZAÇÃO EM BANCO DE DADOS TEMPORAIS ...................................................... 26 5.4 CONSULTA EM BANCO DE DADOS TEMPORAIS ............................................................ 27

5.5 Linguagem de Manipulação de Dados Temporais................................................. 27

6. IMPLEMENTAÇÃO DE BANCOS DE DADOS TEMPORAIS............ 30

7. CONCLUSÃO............................................................................................................ 31

8. REFERÊNCIAS BIBLIOGRÁFICAS.............................................................. 32

APÊNDICE...................................................................................................................... 35

4

1. INTRODUÇÃO

Um banco de dados (BD) mantém dados sobre uma organização e suas

atividades. Os bancos de dados convencionais são projetados para capturar os dados mais

recentes, ou seja, os dados correntes. O processo de alteração dos dados em BD é feito

adicionando novos dados sobre os já existentes, isto é, através de uma sobreposição parcial

ou total dos dados, e isto leva à perda dos dados anteriores à modificação. Portanto, os

banco de dados convencionais servem apenas para aquelas aplicações que necessitam de

informações sobre os dados atuais do BD, sendo insuficientes para aquelas que requerem

informações sobre o passado e/ou futuro dos dados. Enquanto que os bancos de dados

temporais mantêm os dados passados, presentes e futuros, suprindo assim as

“insuficiências” dos BDs convencionais.

Bancos de dados temporais permitem armazenar e recuperar todos os

estados de um objeto, registrando sua evolução ao longo do tempo. Informações temporais

são associadas implicitamente aos dados, correspondendo ao tempo de validade (tempo que

a informação será válida no banco de dados) e/ou ao tempo de transação (tempo que a

informação foi inserida no banco de dados). Característica que se torna evidente em

determinadas aplicações, tais como:

• Registros de informações acadêmicas, nas quais devem ser armazenados

todos os conceitos obtidos pelos alunos nos respectivos semestres;

• Em áreas de contabilidade (datas de contas a pagar e receber, fluxo de

caixa, pagamentos efetuados e recebidos), em tomadas de decisão

(baseadas em informações históricas), em controle de estoques e em

processos de importação/exportação;

• Aplicações financeiras, como no mercado de ações, aplicações

bancárias;

• Companhias seguradoras, nos planos a serem oferecidos e onde os

valores das apólices geralmente são baseados nas informações passadas

dos clientes;

5• Sistemas de reservas (de companhias aéreas, de hotéis e etc);

• Área médica, onde o registro das informações históricas de pacientes é

fundamental.

Em bancos de dados temporais, muitas pesquisas tem sido realizadas com

o objetivo de definir conceitos e estratégias para tratar informações históricas. Os bancos de

dados foram classificados em quatro categorias, dependendo da possibilidade de

representação de informações históricas:

• Bancos de Dados Instantâneos (Snapshots): são armazenados somente

os valores presentes e, ao alterar uma informação, a antiga é sobrescrita

pela nova. Correspondem aos bancos de dados convencionais;

• Bancos de Dados de Tempo de Transação (Rollback): associam aos

dados apenas o tempo em que a informação foi inserida no banco de

dados, recuperando somente o passado e o presente das informações;

• Bancos de Dados de Tempo de Validade (Histórico): suporta o tempo

válido, ou seja, associam aos dados o tempo em que a informação será

válida no banco de dados, possibilitando a recuperação tanto do passado,

quanto do presente e do futuro das informações;

• Bancos de Dados Bitemporais: suporta tanto o tempo de validade

quanto o tempo de transação, ou seja, permite a recuperação de todos os

estados das informações.

A noção de tempo, como datas, períodos, duração de validade de

informações e intervalos temporais, surge em três diferentes níveis:

i) Na modelagem de dados;

i) Na linguagem de recuperação e manipulação de dados;

ii) No nível de implementação do Sistema Gerenciador de Banco de

Dados (SGBD).

62. PRINCIPAIS CONCEITOS DE REPRESENTAÇÃO TEMPORAL

2.1 Dimensão Temporal

Os modelos de dados tradicionais apresentam duas dimensões, as linhas

(instâncias dos dados) e as colunas (atributos) de uma tabela. Cada atributo de uma

instância apresenta um só valor. Se for feita uma alteração deste valor, o anterior é perdido.

Os modelos temporais acrescentam mais uma dimensão aos modelos

tradicionais – a dimensão temporal. Esta dimensão associa alguma informação temporal a

cada valor. Caso o valor de um atributo seja alterado, o valor anterior não é removido do

banco de dados – o novo valor é acrescentado, associado a alguma informação que define,

por exemplo, seu tempo inicial de validade.

Por exemplo, o Banco Central quer ter acesso às informações relativas

aos lançamentos que ocorreram entre janeiro/93 e julho/94 nas contas ativas e encerradas,

de determinadas pessoas físicas e jurídicas para efeito de fiscalização. Em muitos casos

estas informações "vencidas" são excluídas dos bancos de dados. No entanto, mantê-las

arquivadas pode ser vital para se conhecer o comportamento histórico de uma organização.

Deste modo, é possível acessar toda a história dos atributos, sendo possível analisar sua

evolução temporal.

2.2 Tempo de Transação e Tempo de Validade

Na área de estudo dos bancos de dados temporais (TANSEL,

EDELWEISS, CLIFFORD, ÖZSOYOGLU) normalmente consideram-se duas linhas de

tempo: o tempo de validade e o tempo de transação. O tempo de validade de um fato é o

momento do tempo em que o fato torna-se verdadeiro no mundo real. O tempo de transação

é o momento do tempo em que o fato é registrado no banco de dados. O tempo de validade é

definido pelo usuário e o tempo de transação é definido automaticamente pelo SGBD.

7

O tempo de validade da informação pode não coincidir com o tempo de

transação. Para este caso, coloca-se explicitamente um atributo para a validade. Por exemplo, o

funcionário João teve seu salário alterado para R$900, referente a 01/Jun/98. Essa alteração

pode ter sido feita no dia 03 de junho de 1998. Internamente no banco de dados, a data de

transação é 03/Jun/98 e a validade da informação de 01/Jun/98.

2.3 Ordem no Tempo

A definição de uma ordem a ser seguida no tempo é fundamental quando

utiliza alguma representação temporal. Conceitualmente, pode-se representar o tempo

através de diferentes estruturas, definidas, principalmente, com base em três aspectos da

representação temporal: granularidade, variação e ordem no tempo (Figura 1) e há três

opções de ordenação temporal: tempo linear, tempo ramificado e tempo circular.

.

Figura 1: Estruturas temporais (Worboys, 1998)

• Tempo linear: total ordenação entre quaisquer dois pontos no tempo.

Esta é a forma mais comum de ordenação temporal;

• Tempo ramificado: permite a possibilidade de dois pontos diferentes

serem sucessores (ramificação no futuro, figura 2a) ou antecessores

(ramificação no passado, figura 2b) imediatos de um mesmo ponto. Para

ambos a restrição linear é abandonada;

8

Figura 2Tempo ramificado (Worboys e Duckhan , 2004)

• Tempo circular: utilizado para modelar eventos e processos

recorrentes. Neste caso, a periodicidade de sua ocorrência faz com que

sempre se volte à mesma referência de tempo. Um exemplo é o ciclo

anual de produção de mudas de plantas como mostra a figura 3.

Figura 3Tempo circular (Worboys e Duckhan , 2004)

2.4 Tempo Absoluto e Tempo Relativo

Tempo Absoluto é uma informação temporal que define um tempo

preciso, com uma granularidade determinada, associada a um fato. Exemplo: João morreu

no dia 13/01/70.

Tempo Relativo tem sua validade relacionada à validade de outro dado

temporal, ou ao momento atual. Exemplo: A Páscoa ocorre 40 dias após a quarta-feira de

cinzas.

92.5 Variação Temporal

Quanto à variação, o tempo pode ser contínuo ou discreto. O tempo é

contínuo por natureza e um dado pode ter um valor diferente em qualquer instante de

tempo. Para sua representação computacional, é necessário utilizar uma representação

discreta do tempo, na qual a variação temporal corresponde a uma linha de tempo,

composta por uma seqüência de chronons1 consecutivos e com idêntica duração. A duração

de tempo pode ser fixa, como uma hora, ou variável, como um mês, podendo ser

visualizada na Figura 4.

Figura 4 Diferentes granularidades temporais (EDELWEISS, 1998).

2.6 Granularidade Temporal

A granularidade temporal de um sistema é um parâmetro que consiste na

duração de um chronon. Entretanto, dependendo da aplicação considerada, às vezes é

necessário considerar simultaneamente diferentes granularidades (minutos, dias, mês e

anos) para permitir uma melhor representação da realidade. Por exemplo, em um

determinado sistema de banco de dados de uma empresa é composto pelos campos RG,

nome, salário e função dos empregados. Para manter a evolução dos atributos salário e

função, o chronon para salário refere-se a mês e para a função a anos.

Os elementos primitivos de representação da granularidade do tempo são

instante, intervalo e elemento temporal.

1 Chronon é um intervalo temporal que não pode ser decomposto, pois é uma unidade de tempo representada pelo número inteiro 1 (EDELWEISS, 1998).

10• O instante representa um ponto particular no tempo e depende da

forma de variação temporal considerada. No tempo contínuo, um

instante é um ponto no tempo de duração infinitesimal, sendo que entre

dois pontos no tempo sempre existirá outro ponto. Se a variação

temporal for discreta, um instante é representado por um dos chronons

no eixo temporal.

• Um intervalo temporal é caracterizado pelo tempo decorrido entre

dois instantes. No tempo contínuo, o intervalo consiste de infinitos

instantes do tempo. Na variação discreta, um intervalo é representado

por um conjunto finito de chronons consecutivos. Portanto, um intervalo

é representado pelos dois instantes que o delimitam.

• Elemento temporal é uma união finita de intervalos de tempo,

produzindo um novo elemento temporal para as operações de conjunto

de união, interseção e complemento Como estas operações encontram

contrapartida nos operadores booleanos or, and e not, isto produz uma

substancial simplificação na habilidade do usuário de expressar consultas

temporais. Um exemplo é uma pessoa ser funcionário de uma empresa

durante o intervalo [1995,1997], tendo saído da empresa em 1998 e

sendo readmitida no ano de 2000. A validade da existência desta pessoa

na empresa seria a união dos intervalos [1995,1997] ∪ [2000].

2.7 Representação Temporal

A definição de tempo pode ser feita de forma explícita, através da

associação de um valor temporal a uma informação na forma de um rótulo temporal

(timestamp), ou de forma implícita, através da utilização de uma linguagem de lógica

temporal.

11A associação explícita de tempo às informações consiste em associar, a

cada valor atribuído a um atributo, o valor que corresponde à sua primitiva temporal. A

representação implícita é feita através da manipulação de conhecimentos sobre a ocorrência

de eventos ou do relacionamento de intervalos de tempo, como por exemplo, a aula de BDT

ocorreu ontem.

123. MODELAGEM DE DADOS EM BANCO DE DADOS TEMPORAL

Segundo OLIVEIRA (2001), um modelo de dados temporal adequado

deve ser utilizado pelos seguintes motivos:

• O sistema a ser modelado pode apresentar informações temporais a

serem introduzidas no banco de dados que o representa, sob forma de

informação propriamente dita;

• Processos a serem executados podem apresentar interações

temporais, interações estas que devem ser representadas;

• Tarefas podem apresentar pré-condições à sua execução, as quais

podem ser representadas através de restrições temporais;

• Condições de integridade temporal do banco de dados podem ser

necessárias.

Diversos modelos de dados tradicionais foram estendidos para

possibilitar a representação de aspectos temporais sem ter que definir novos modelos.

Várias extensões à abordagem entidade-relacionamento (ER) original têm sido propostas

com o objetivo de incorporar a possibilidade de modelar propriedades temporais. Entre as

quais:

• TERM (Temporal Entity-Relationship Model);

• RAKE (Relationships, Attributes, Keys, and Entities);

• ERT (Entity Relationship Time Model);

• TER (Temporal Entity-Relationship Model);

• TEER (Temporal Enhanced Entity-Relationship Model) e a sua

variante STEER;

• TF-ORM (Temporal Functionality in Objects With Roles Model);

• TRM (Temporal Relational Model);

• IXRM (Internal-eXtend Relational Model );

• HRDM (Historical Relational Data Model ).

13Os modelos de dados temporais podem ser comparados por quatro

questões:

• como o tempo de validade é representado (alternativas incluem,

intervalo ou elemento temporal de atributos individuais ou tuplas);

• como o tempo de transação é representado (alternativas incluem

evento, elemento temporal de atributos individuais ou tuplas, ou

conjunto de tuplas);

• como os valores dos atributos são representados (valores atômicos,

pares ordenados, valores triplos ou conjunto triplo de valores);

• o modelo é homogêneo (permite agrupamento).

Quando o modelo ER convencional é utilizado, a associação das

entidades e relacionamentos com o tempo materializa-se através da inclusão de atributos

comuns que armazenam datas, horas ou qualquer outra referência temporal. Caso necessite

registrar os diversos valores que um atributo pode apresentar ao longo do tempo (por

exemplo, as notas de um aluno) existem duas alternativas possíveis:

1) especificar uma nova entidade composta deste atributo e mais os

atributos de referência ao tempo;

2) definir tal atributo como composto e multivalorado.

No modelo de dados temporal ERT, o tempo é introduzido como uma

classe especial chamada de classe de período de tempo, no qual o período de existência de

uma entidade é o tempo associado a esta. Conseqüentemente, o período de validade de um

relacionamento também é o tempo associado a um relacionamento. O modelo armazena

toda a história dos objetos que compõem o sistema. Pode-se definir o objeto evento e

especificar sua duração por meio de rótulos temporais (timestamps), nos quais cada rótulo

deve possuir uma granularidade.

O TempER é um modelo de dados do tipo Entidade-Relacionamento,

que permite referenciar os objetos (entidades, relacionamentos ou valores de atributos) à

dimensão temporal. Existem as entidades transitórias (temporalizadas), onde a validade

temporal é o subconjunto de pontos do eixo temporal; e as entidades perenes (não-

temporalizadas), em que a existência ocorre durante todo o eixo temporal, ou seja, a

14validade temporal é constante. Tanto as entidades transitórias como as entidades perenes

apresentam duas perspectivas: temporal e intemporal. Em nível de modelagem, considera-

se apenas um eixo temporal, o qual representa o tempo de validade, não sendo necessário

especificar o tempo de transação, pois se trata de um aspecto inerente à implementação

física.

Em virtude disto são chamadas de entidades transitórias. Em relação às

entidades não temporalizadas, é assumido que "existem" durante todo o eixo temporal, ou

seja, a sua validade temporal é constante, implícita e igual a todo o eixo temporal. Por isto,

são denominadas entidades perenes.

Qualquer que seja a classificação de uma entidade em relação ao tempo,

seja transitória ou perene, ela sempre vai apresentar duas perspectivas: uma intemporal e

uma temporal. No tocante aos relacionamentos, ou as entidades se associam entre si na

perspectiva temporal (relacionamentos temporais) ou na perspectiva intemporal

(relacionamentos intemporais).

Assim como o modelo ER convencional, o modelo TempER apresenta

também os seguintes elementos básicos: entidade, relacionamento e atributos.

Aos objetos de uma aplicação que forem especificados como

temporalizados, sejam eles entidades, relacionamentos ou valoração de atributos, são

implicitamente anexados rótulos temporais (timestamps), que conterão o conjunto de

pontos do tempo nos quais estes objetos são considerados como existentes no contexto da

realidade modelada, como visto na Figura 5.

Figura 5 As entidades e os relacionamentos no modelo TempER são classificados em

transitórios e perenes, conforme a sua relação com a dimensão temporal.

15

Segundo SIMONETTO (1998), os vários modelos temporais propostos

nos últimos anos mostram a grande preocupação da comunidade científica com a

representação do fator tempo na modelagem de sistemas, desenvolvidos seguindo a

possibilidade de se estender por modelos já existentes cuja grande maioria está baseada no

modelo relacional. Os modelos de dados temporais devem representar as propriedades

semânticas das informações temporais, tais como, a ordem temporal, duração temporal,

granularidade, entre outras.

3.1 Entidades transitórias

Entidades transitórias são aquelas cuja validade temporal é um

subconjunto de pontos do tempo do eixo temporal. Normalmente, utiliza-se este tipo de

entidade quando se quer modelar entidades que valem por um certo período de tempo. Por

exemplo: os empregados de uma companhia que existem como tal desde a sua admissão até

a sua demissão.Como é possível haver readmissão de empregados, a existência de uma

destas entidades pode ser composta por mais de um intervalo de tempo, portanto, o

subconjunto de pontos do tempo que define a validade temporal de uma entidade não

necessariamente é formado por momentos consecutivos. Isto é ilustrado pela figura 6, onde

um certo empregado “emp1” apresenta três vínculos com a empresa ao longo do tempo.

Figura 6 Visualização da validade temporal de uma Entidade Transitória.

(ANTUNES et al., 1998)

163.2 Entidades Perenes

Entidades perenes são aquelas cuja validade temporal é exatamente igual

a todo o eixo temporal. Toda vez que uma entidade perene é incluída no banco de dados do

sistema, assume-se que seu rótulo temporal é igual a "[« , »]", isto é, a sua validade

temporal inicia no primeiro ponto do eixo temporal e se estende até o último, conforme

ilustra a figura 7.

Normalmente as entidades que o modelador não necessita ou não deseja

associar ao tempo são consideradas como perenes. O fato de ser perene não significa que

uma entidade não possa ser eliminada do banco de dados. Entretanto, enquanto uma

entidade perene estiver presente no banco de dados, a sua validade temporal será constante,

igual ao conjunto de todos os pontos do eixo temporal. Portanto, diferentemente das

entidades transitórias, a validade temporal das entidades perenes de forma alguma pode

sofrer acréscimo ou redução.

Por ser constante, a validade temporal das entidades perenes não precisa

ser registrada no banco de dados.

Figura 7 Visualização da validade temporal de uma Entidade Perene.

(ANTUNES et al., 1998)

3.3 O identificador interno de entidades - OID

Segundo Oliveira (2001), é assumido que todas as instâncias das

entidades possuem um identificador interno, gerado pelo sistema, que é denominado de

OID (object identifier). Cada OID, por princípio, é único no âmbito do universo do discurso

17da aplicação, invisível ao usuário e define a identidade de uma instância de uma entidade.

Quando duas entidades se associam, este fato pode ser representado pelo relacionamento

dos OID’s respectivos. Isto faz com que um relacionamento seja identificável pela

composição dos OID’s das entidades associadas.

Segundo ANTUNES, HEUSER e EDELWEISS (1998), a presença do OID

não descarta a necessidade de que haja um atributo (ou composição de atributos) que

desempenhe o papel de chave primária de uma entidade, de forma que um usuário do

sistema possa identificar e acessar esta entidade, já que o OID é invisível externamente.

Embora possa parecer redundante coexistirem OID’s e chaves primárias, o que se busca é

aproximar o modelo TempER de um dos mais importantes princípios da orientação a

objetos, que é a identidade dos objetos. Além disso, existe a vantagem de ser possível

alterar a chave primária de uma entidade sem que isto afete os relacionamentos em que ela

participe.

Para exemplificar, pode-se visualizar a figura 8, onde tanto a tabela

Empregado como a tabela Depto, possuem uma coluna referente ao OID, e a tabela referente

ao conjunto-relacionamento Lotação possui duas colunas de OID’s referentes aos conjuntos-

entidade relacionados.

Figura 8 Exemplo de Identificador Interno de Entidades - OID (ANTUNES et al., 1998)

183.4 Relacionamentos Temporais

Relacionamentos são objetos resultantes da associação de duas ou mais

entidades, por exemplo, o relacionamento Lotação relaciona as entidades Empregado e

Departamento, conforme a figura 8.

Relacionamentos temporais são relacionamentos que associam duas

entidades no âmbito da dimensão temporal, isto é, além dos OID´s das instâncias das

entidades, estes relacionamentos também se associam a pontos do tempo do eixo temporal.

Este tipo de relacionamento serve para modelar as associações das quais se necessita

conhecer a validade temporal. Os relacionamentos temporais só são válidos nos momentos

especificados pelos seus rótulos temporais.

3.5 Relacionamentos Intemporais

Relacionamentos intemporais são relacionamentos que não levam em

consideração a dimensão temporal, ou seja, participam apenas os OID´s das entidades, sem

qualquer referência a pontos do tempo. Estes relacionamentos se materializam no nível das

perspectivas intemporais das entidades. Por exemplo, uma relação que não tem momento

inicial ou final de validade é intemporal.

3.6 As perspectivas temporal e intemporal das entidades

As entidades são os elementos básicos de um modelo de dados que

emprega a abordagem Entidade-Relacionamento(ER). No modelo TempER, em virtude da

dimensão temporal, as entidades apresentam sempre duas perspectivas, uma perspectiva

temporal e uma perspectiva intemporal.

19A Perspectiva intemporal não leva em conta a dimensão temporal, isto é,

o OID da entidade não é visualizado como associado a um conjunto de pontos do tempo.

Nesta perspectiva, as entidades apresentam apenas duas dimensões: atributos e valores. Já a

perspectiva temporal leva em consideração a dimensão temporal ao referenciar um dado. O

OID de uma entidade é visualizado como uma associação a um conjunto de pontos do

tempo, sendo que este conjunto define a validade temporal da entidade no contexto do

banco de dados do sistema. Nesta perspectiva, as entidades apresentam três dimensões:

atributos, valores e tempo. Estas perspectivas podem ser visualizadas na figura 9.

Figura 9 Exemplo de perspectivas temporal e intemporal das entidades

(ANTUNES et al., 1998)

3.7 Atributos

20Os atributos representam propriedades elementares de entidades ou

relacionamentos. A descrição de um atributo apresenta os seguintes elementos: o nome do

atributo, o domínio dos valores primitivos que podem ser associados ao atributo e a

classificação do atributo em relação ao tempo (indicando se o atributo é temporal ou

intemporal). Estes atributos podem ser vistos na figura 10.

Uma entidade normalmente possui um identificador de uso externo, uma

chave primária. Em geral trata-se de um único atributo, no entanto pode resultar da

composição de dois ou mais atributos. O valor de um identificador é único dentro do

contexto de uma entidade, isto é, não existem duas instâncias com o mesmo valor para o

identificador. O identificador deve sempre ser formado por atributo(s) intemporal(is).

As entidades, sejam elas transitórias ou perenes, por apresentarem duas

perspectivas em relação ao tempo, podem combinar atributos temporais com atributos

intemporais. Isto não acontece com os relacionamentos. Se forem temporais possuem

apenas atributos temporais, se forem intemporais apresentam apenas atributos intemporais.

Figura 10 Exemplo de atributos no modelo ER convencional e temporal

(ANTUNES et al., 1998)

213.7.1 Atributos temporais

Atributos temporais são aqueles cuja valoração (conteúdo) deve ser

referenciada a pontos do tempo. Na parte inferior da figura 10, o atributo at-sal das

entidades do conjunto Empregado é um exemplo de atributo temporal. Este atributo

apresenta um valor a cada momento do tempo. O objetivo dos atributos temporais é

permitir que registre a evolução dos valores de uma propriedade ao longo do tempo.

3.7.2 Atributos intemporais

São aqueles cujos valores não apresentam qualquer associação com a

dimensão temporal. Através dos atributos intemporais é possível representar os atributos

convencionais do modelo Entidade-Relacionamento. Através da figura 10, podemos

verificar que os atributos cod e nome da entidade Empregado representam atributos

intemporais.

3.8 Restrições de Cardinalidade

Restrição de cardinalidade especifica o número de instâncias de um tipo

de relacionamento que uma entidade pode participar, ou seja, refere-se à participação das

entidades nos conjuntos-relacionamento.

Segundo OLIVEIRA (2001), os relacionamentos temporais e

intemporais apresentam as seguintes restrições de cardinalidade:

• (0,1): a entidade pode não participar em relacionamentos, ou pode

participar no máximo uma vez;

• (0,N): a entidade pode não participar em relacionamento, ou pode

participar mais de uma vez;

• (1,1): a entidade participa uma única vez do relacionamento;

22• (1,N): a entidade participa no mínimo uma vez em relacionamento,

ou pode participar mais de uma vez.

23

4. SISTEMAS DE BANCO DE DADOS TEMPORAL

Um sistema gerenciador de banco de dados temporais (SGBDT) é responsável por

manter a consistência do Banco de Dados Temporal (BDT), fornecer mecanismos de

armazenamento e recursos para operações de inserção, exclusão e atualização de forma

rápida e segura.

4.1 Características gerais a serem suportadas por SGBDT

Uma importante consideração trata da questão de dados temporais em

BDT. O suporte a dados deveria ser análogo ao que ocorre nos BD convencionais com os

atributos já predefinidos. Se um atributo é definido como inteiro, não é possível inserir

caracteres.

Analogamente, há a necessidade de testes de consistência para justificar

a definição de um atributo como temporal. Por exemplo, suponha-se que o nome de uma

função determina o salário. O SGBDT deve garantir que o mesmo nome não esteja

associado com dois salários diferentes ao mesmo tempo. Se o atributo temporal é tratado

simplesmente como outro atributo qualquer, parece não ser necessário defini-lo

especialmente como temporal.

Outra questão é o suporte a valores de tempo de muitas granularidades

diferentes. Operações apropriadas devem ser suportadas para realizar conversões de valores

de tempo entre as diferentes granularidades e para formular consultas e apresentar os

resultados em uma forma apropriada. Há a necessidade de uma operação de merge para

tornar o trabalho com dados vindos de diferentes BD ou relações definidas em diferentes

níveis de granularidade.

4.2 Evoluções em Sistemas de Informações Temporais

24Várias evoluções foram realizadas dentro da área de sistemas de

informações temporais nos últimos anos, como:

• uma grande quantidade de modelos de dados temporais foi proposta,

tanto relacional quanto orientada a objetos;

• muitas linguagens de consultas foram projetadas baseadas nos mais

diferentes modelos de dados, sendo que boa parte destas linguagens

possui bases formais sólidas;

• uma significativa quantidade de protótipos de SGBDs temporais

foram desenvolvidos; e

• vários SGBDs comerciais orientados a objeto, já existentes no

mercado, incluem algum suporte temporal.

25

5. MANIPULAÇÃO DOS DADOS TEMPORAIS

As operações de manipulação sobre os dados são fundamentais em um BD. A

gerência dos dados é feita através de uma linguagem associada a cada modelo de dados, e

deve propiciar a manipulação dos mesmos da melhor forma possível, tanto em

funcionalidade como em desempenho.

Em banco de dados temporais, a tarefa é mais complexa do que em banco de dados

tradicionais, tendo em vista o volume de informações e a semântica do tempo em relação a

cada aplicação, ou seja, o significado da evolução dos dados ao longo do tempo. Na

manipulação existem a inserção, remoção e atualização dos dados.

5.1 Inserção em Banco de Dados Temporais

A operação de inserção em banco de dados tradicionais é vista como uma transação

relativamente simples pois não envolve a historia da informação que está sendo inserida,

apenas o seu valor no exato momento. Algumas precauções básicas são tomadas, tais como:

chaves primárias, integridade referencial e integridade de entidade.

Em banco de dados temporais, a operação de inserção pode causar grandes

preocupações além daquelas usuais em banco de dados tradicionais, pois existe um

significado de tempo no contexto da aplicação. Quando uma operação de inserção é

realizada, deve ser armazenado, além do novo valor em questão, o valor temporal

correspondente ao tempo de transação e/ou validade inicial da tupla. Assim, um conjunto

de regras analisa esses valores, para garantir a consistência temporal do banco de dados. A

questão de tempo de transação é relativamente fácil de verificação, pois é avaliado apenas

se o exato momento em que o dado foi transacionado no BD é válido no domínio temporal.

Com relação ao tempo de transação, este tempo dever ser fornecido pelo usuário, sendo seu

controle mais complexo. Por exemplo, não se pode ter dois valores válidos ao mesmo

tempo para o mesmo atributo.

265.2 Remoção em Banco de Dados Temporais

Uma remoção em banco de dados tradicionais é feita através da exclusão física da

tupla, levando-se em consideração o conceito de transação. Uma vez feita esta operação, ela

não pode ser desfeita. Isto implica que a informação não pode ser recuperada

posteriormente. Na remoção a preocupação principal envolve a integridade referencial, ou

seja, não pode remover uma tupla que está relacionada com tuplas subordinadas a ela.

Em banco de dados temporais, a remoção é tratada de forma diferente, pois deve ser

fornecida a possibilidade de recuperar informações tanto do passado, quanto do presente e

futuro. Assim, a remoção em banco de dados temporais consiste em uma remoção lógica,

ou seja, o tempo de validade da informação é encerrado, sendo que todos os valores

permanecem sempre armazenados. Porém, a remoção pode ser um mecanismo importante

quando se deseja excluir fisicamente do banco de dados informações muito antigas ou sem

relevância. Esta operação recebe o nome de vaccuming (gerar vácuo) sendo a

responsabilidade do administrador do banco de dados (DBA).

5.3 Atualização em Banco de Dados Temporais

Em banco de dados tradicionais, a atualização inspira alguns cuidados, tais como: a

recuperação da tupla correta, chaves primárias, integridade referencial, integridade de

entidade, entre outros. Além dos cuidados tradicionais, no banco de dados temporais, existe

a semântica do tempo.

A atualização em banco de dados temporais compreende sempre pelo menos duas

operações: o encerramento do tempo de validade da informação anteriormente válida e a

inserção de uma nova tupla, com o novo valor e os rótulos temporais adequados.

275.4 Consulta em Banco de Dados Temporais

As consultas podem apresentar diferentes formas quando bancos de

dados temporais são utilizados. Uma linguagem de consulta temporal faz-se necessária a

fim de explorar ao máximo os rótulos temporais de um BDT.

O SQL derivou várias linguagens de consulta textuais utilizando

modelos de dados temporais, sendo que a mais conhecida é TSQL2.

Existem quatro situações diferentes na recuperação de informações, que

são:

• Recuperar valores de propriedades cujo domínio é temporal. Por

exemplo, selecionar o valor da propriedade que armazena a data de

nascimento de uma pessoa;

• Referir-se a um determinado instante ou a um intervalo temporal. Por

exemplo, selecionar as notas no 2º semestre de 2004;

• Recuperar valores com base em restrições temporais. Por exemplo,

recuperar todos os valores da nota do aluno antes do dia 28/06/2004;

• Recuperar informações temporais (datas, intervalos).

Segundo OLIVEIRA (2001), o processamento de consultas temporais

apresenta problema da necessidade de novos métodos de indexação (estrutura e algoritmos

de busca) devido ao grande volume de dados armazenados em BDT. Métodos tradicionais

de indexação só podem ser utilizados para valores com algum tipo de ordenação completa e

com estruturas de acesso a intervalos.

5.5 Linguagem de Manipulação de Dados Temporais

A definição da linguagem de consulta temporal baseou-se na linguagem

ATSQL2 (Applied TSQL2) (SNODGRASS et al., 1996) (BÖHLEN et al., 1995) por ser

um padrão mais simples e por possuir similaridade sintática com o padrão SQL. Esta

linguagem foi a primeira a especificar um padrão para uma linguagem de consulta

28temporal, tendo como foco a consolidação de diferentes abordagens de modelos de dados

temporais e o objetivo de criar uma linguagem de consulta temporal associada a um modelo

de dados.

O TSQL2(Temporal Structured Query Language) é uma linguagem de

consulta temporal, designada à consulta e manipulação dos dados que variam de acordo

com o tempo. Estes dados são armazenados em bases de dados relacionais. Esta linguagem

também se baseia em SQL. Na linguagem TSQL2 poderíamos, por exemplo, listar o nome

dos funcionários que estiveram empregados em janeiro de 1992 da seguinte forma:

SELECT Name

FROM Employee

WHERE VALID (Employee) OVERLAPS PERIOD ‘[01/01/1992, 01/31/1992]’

Além desse exemplo, poderíamos listar o nome dos funcionários que

foram registrados como empregados em janeiro de 1992 da seguinte forma:

SELECT Name

FROM Employee

WHERE TRANSACTION (Employee) OVERLAPS PERIOD ‘[01/01/1992,

01/31/1992]’

Com relação a inserção de dados na tabela, primeiramente, é necessário

a criação de uma tabela, que através desta, poderá ser realizado a inserção de dados. Por

exemplo, desejamos criar um registro incluindo informações da prescrição do remédio de

cada paciente. Estas informações poderiam ser o nome do paciente, o nome do médico, o

nome do remédio, a dosagem do remédio e a freqüência que o remédio será ingerido. Além

disso a tabela poderá ser tanto para tempo de validade quanto para tempo de transação. A

criação da tabela pode ser visualizada abaixo:

CREATE TABLE Prescription

(Name, Physician, Drug, Dosage, Frequency INTERVAL MINUTE)

AS VALID DAY AND TRANSACTION

Um exemplo de inserção de dados no registro através da tabela criada,

pode ser realizar da seguinte forma:

INSERT INTO Prescription

29VALUES (‘Sally’, ‘Dr. Beren’, ‘Proventil’, ‘100 mg’, INTERVAL ‘8:00’

MINUTE)

VALID PERIOD ‘[1993/01/01 - 1993/06/30]’

A remoção, por exemplo, do período de um determinado paciente no

banco de dados, pode ser realizada da seguinte forma:

DELETE FROM Prescription

WHERE Name = ‘Melanie’

VALID PERIOD ‘[1993-06-01 - 1993-06-30]’

A atualização, por exemplo, da dosagem e do tempo de validade de um

determinado paciente, pode ser realizada da seguinte maneira:

UPDATE Prescription

SET Dosage TO ‘50 mg’

VALID PERIOD ‘[1993-03-01 - 1993-05-30]’

WHERE Name = ‘Melanie’

AND Drug = ‘Proventil’

Portanto, como observado, a manipulação de dados na linguagem

TSQL2 é semelhante a SQL.

306. IMPLEMENTAÇÃO DE BANCOS DE DADOS TEMPORAIS

Atualmente existem poucos sistemas de banco de dados temporais

realmente utilizáveis, apesar das intensas pesquisas desenvolvidas nos últimos anos.

Existem várias experiências sob forma de protótipos, nos quais baseiam estudos de

problemas encontrados (de armazenamento e recuperação de informações) e mapeamento

de modelos temporais para BDs tradicionais, nos quais os rótulos temporais são

explicitamente representados e manipulados.

Na literatura de BDT, não há um consenso comum aceito em modelo de

dados ou linguagens de consulta que servirão de base para projetos de BDT e otimização de

consultas temporais. Em um nível mais fundamental, a terminologia de BDT é altamente

não padronizada. Contudo a utilização de um modelo de dados temporal para especificação

de uma aplicação não implica, necessariamente, na utilização de um SGBD específico para

o modelo.

Tendo em vista essa realidade, uma alternativa seria continuar utilizando

os SGBD comerciais, sendo que, agora, acrescentando um software intermediário que faria

a tradução de uma linguagem de consulta temporal (escrita pelo usuário) para o padrão

SQL (utilizado pelo SGBD). O software intermediário, então, receberia como entrada uma

consulta em linguagem do modelo temporal e faria a conversão para a linguagem

convencional (não-temporal) correspondente àquela consulta, colocando-a como saída final

do processo. Assim, o SGBD seria preservado, pois não precisaria interpretar uma

linguagem temporal. O usuário, por sua vez, também seria preservado, pois não precisaria

escrever comandos de consulta SQL complexos envolvendo aspectos temporais.

317. CONCLUSÃO

Antigamente, os sistemas de informação não possuíam o aspecto da

temporalidade, ou seja, não armazenavam a história das informações, apenas estocavam os

dados presentes. Por este motivo, sistemas de informação temporais passaram a ser

especialmente estudados, bem como os bancos de dados e modelos temporais.

O SGBD deve permitir armazenar e manipular dados temporais com

outros dados, considerando o mesmo BD. O BD pode conter, tanto tabelas temporais,

quanto tabelas tradicionais, sendo que as aplicações com dados temporais, geralmente,

suportam grande volume de dados.

O uso adequado de SQL garante o acesso e manipulação de dados

temporais, não sendo necessário empregar métodos ou linguagens diferentes.

Atualmente, existem poucos sistemas implementados de Banco de

Dados Temporais. Para sua implementação é necessário a criação de regras,

principalmente, quando operações de atualização e remoção são realizadas sobre as

informações. Isto se deve às diferentes combinações possíveis admitindo o passado, o

presente e o futuro.

A principal vantagem de utilizar um modelo de dados temporal está na

sua capacidade de expressar a associação dos elementos com o tempo e de especificar as

restrições decorrentes disto. Já nos modelos de dados convencionais, o tempo é

representado por atributos comuns (datas, horas, etc.) e não há mecanismos disponíveis

para representar restrições temporais, exigindo que o modelador as especifique ao nível do

modelo dinâmico.

O estudo dos sistemas de informação temporais é bem formalizado e

implementado teoricamente, mas a principal característica, que é atender ao mercado

consumidor, ainda não está disponível, causando uma deficiência no estudo prático dos

sistemas de informação temporais.

328. REFERÊNCIAS BIBLIOGRÁFICAS

ALMEIDA, Adriana C.; CORDENONZI, Walkiria H., Aspectos Temporais em Sistemas

de Informação, 2001.

ANTUNES, Dante C.; HEUSER, Carlos A.; EDELWEISS, Nina, TempER: Uma

Propostade Modelagem de Dados Temporal. 1998.

BÖHLEN, M.; JENSEN, C. S. e SNODGRASS, R.. Evaluating the completeness of

TSQL2. In J. Cli ord and A. Tuzhilin, editors, Recent Advances in Temporal Databases,

1995. p.153-172.

CARVALHO, Henry G.; HEUSER, Carlos A., Linguagem de Consulta Temporal:

Definição e Implementação. 2000

http://www.inf.ufrgs.br/pos/SemanaAcademica/Semana2000/HenryCarvalho/

CLIFFORD, J.; TUZHILIN, A. Recent advances in temporal databases. Berlin:

Springer-Verlag, 1995.

EDELWEISS, Nina; OLIVEIRA, José Palazzo M.; CASTILHO, José Mauro V. Evolução

de esquemas em banco de dados temporais. In: CONFERÊNCIA LATINO-

AMERICANA DE INFORMÁTICA, 1995, Canela, RS. Porto Alegre: Instituto de

Informática da UFRGS, 1995.

EDELWEISS , N. Bancos de Dados Temporais: Teoria e Prática. XVI I Jornada de

Atualização em Informática – JAI . XVIII SBC. Belo Horizonte, 1998.

EDELWEISS, N; Modelo de Dados Temporais. 2004

http://metropole.inf.ufrgs.br/versoestempo/cmp151/MaterialAulas/Aula8-BDTemp9pp.pdf

33

HUBLER, Patrícia Nogueira; EDELWEISS, N. Implementação de um Sistema de Banco

de Dados Temporal para o Modelo TF-ORM. 1999.

www.inf.ufrgs.br/pos/SemanaAcademica/Semana99/hubler/hubler.html

JENSEN, Christian S. A consensus glossary of temporal database concepts. ACM

SIGMOD Record, New York, v.23, n.1, p. 52-64, Mar. 94.

JENSEN, C. et al. A glossary of temporal database concepts. ACM SIGMOD Record,

New York, v.21, Setembro, 1992.

OLIVEIRA, José Palazzo M .; EDELWEISS , Nina. Modelagem de Aspectos Temporais

de Sistemas de Informação. IX Escola de Computação, Recife, 1994.

OLIVEIRA, Rosiane A., Modelagem e Desenvolvimento de um Banco de Dados

Temporal. Monografia - Departamento de Ciência da Computação da Universidade

Federal de Lavras. Minas Gerais/MG. 2001

Ö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.

SIMONETTO, Eugênio O. Uma proposta para incorporação de aspectos temporais, no

projeto lógico de bancos de dados, em SGBDs relacionais. Porto Alegre. Dissertação –

Programa de Mestrado em Informática, Pontifícia Universidade Católica do Rio Grande do

Sul, 1998.

SNODGRASS, R. T.; BÖHLEN, M. H.; JENSEN, C. S. e STEINER., A., Adding

Transaction Time to SQL/Temporal. SQL/Temporal Change Proposal, ANSI X3H2-96-

502r2, ISO/IEC JTC1/SC21/WG3 DBL MAD-147r2, Novembro 1996.

34

SOUZA, Fernanda Lima de; SANTOS, Kellyne M. Implementando a Dimensão Tempo

em Banco de Dados Convencionais : Um Estudo de Caso. Universidade Tiradentes –

Centro de Ciências Formais e Tecnologia. 2002.

TANSEL, A. et al. Temporal databases: theory, design and implementation.

Redwood City: The Benjamin/Cummings Publishing, 1993.

WORBOYS, M. F., 1998. A Generic Model for Spatio -Bitemporal Geographic

Information. In: EGENHOFER, M. J., GOLLEDGE, E. R. G. eds. Spatial and Temporal

Reasoning in Geographics Information Systems. New York, Oxford University Press: 25-

39.

35

APÊNDICE

Questionário

1) Qual a idéia principal de Banco de Dados Temporais? Cite um exemplo de sua

aplicação.

Os bancos de dados temporais mantêm os dados passados, presentes e futuros, suprindo

assim as “insuficiências” dos BDs convencionais, mantendo dados sobre uma organização e

suas atividades. Por exemplo, o histórico do salário de um empregado.

2) Diferencie tempo de transação e tempo de validade.

O tempo de validade de um fato é o momento do tempo em que o fato torna-se verdadeiro

no mundo real. O tempo de transação é o momento do tempo em que o fato é registrado no

banco de dados. O tempo de validade é definido pelo usuário e o tempo de transação é definido

automaticamente pelo SGBD.

3) Qual a principal diferença entre Banco de Dados Convencional e Banco de Dados

Temporais?

Diferentemente de BDs convencionais onde a realidade é representada apenas pelo estado

presente de um objeto, os bancos de dados temporais permitem armazenar e recuperar todos

os estados do objeto ao longo do tempo. Os modelos temporais acrescentam mais uma

dimensão aos modelos tradicionais – a dimensão temporal. Esta dimensão associa alguma

informação temporal a cada valor. Caso o valor de um atributo seja alterado, o valor

anterior não é removido do banco de dados, ou seja, o novo valor é acrescentado no BD.