banco de dados temporal

Propaganda
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
BANCO DE DADOS TEMPORAL
Lucilia Yoshie Araki
Marcio Cezar Santos da Rosa
CASCAVEL
2005
Í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).
6
2. 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.
9
2.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.
11
A 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.
12
3. 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 ).
13
Os 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ãotemporalizadas), em que a existência ocorre durante todo o eixo temporal, ou seja, a
14
validade temporal é constante. Tanto as entidades transitórias como as entidades perenes
apresentam duas perspectivas: temporal e intemporal. Em nível de modelagem, considerase 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)
16
3.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
17
da 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 conjuntosentidade relacionados.
Figura 8 Exemplo de Identificador Interno de Entidades - OID (ANTUNES et al., 1998)
18
3.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.
19
A 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
20
Os 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)
21
3.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
24
Vá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.
26
5.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.
27
5.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
28
temporal, 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
29
VALUES (‘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.
30
6. 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.
31
7. 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.
32
8. 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 LATINOAMERICANA 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-96502r2, 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: 2539.
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.
Download