Nina Edelweiss CMP151 - 2005
Implementação de
BDs Temporais
Implementação de BDs Temporais
• poucos sistemas implementados
• implementação de protótipos
• experiências de mapeamentos para BD
Nina Edelweiss CMP151 - 2005
TimeDB
• BD temporal comercial:
TimeDB
! bitemporal
! SQL estendida
http://www.timeconsult.com/TemporalData/TemporalDB
CREATE TABLE Employees ( EmpID INTEGER, Name CHAR(30),
Department CHAR(40), Salary INTEGER )
AS VALIDTIME AND TRANSACTIONTIME;
VALIDTIME PERIOD ‘1990 - 1995’
INSERT INTE Employees VALUES (10, ‘John’, ‘Research’, 11000);
VALIDTIME PERIOD ‘1995 - ‘forever’
INSERT INTO Employees VALUES (10, ‘John’, Sales, 12000);
Tiger
http://www.cs.auc.dk/~tigeradm/index.htm
• protótipo de BD temporal (Dinamarca)
!
bitemporal
! intervalos de tempo
! linguagem de consulta ATSQL
! suporte a aplicações legadas
! BD relacional
! módulos externos estendem as funcionalidades
do sistema, acrescentando facilidades temporais
! suporte a Ensino à Distância através de um
Nina Edelweiss CMP151 - 2005
" três formas, de acordo com o grau de
integração crescente do conceito de tempo no
SGBD
• dados temporais manipulados pelo usuário
• ações semânticas associadas a propriedades
temporais
• propriedades temporais tratadas como extensão
do modelo de dados e da linguagem de
manipulação
Implementação de tempo
DBA
DDL
Compilador
DDL
Catálogo do
Sistema
Usuários
Consultas
Processador de
Consultas
Avaliador da
Consulta
Gerenciador de Dados
Compartilhados
BD Temporal
SGBDT
Arquitetura de um SGBDT
Nina Edelweiss CMP151 - 2005
Esquema
Modelo
Temporal
BD
Convencional
Consulta
Linguagem
do Modelo
Temporal
Mapeamento
do Esquema
Mapeamento
da Consulta
gerenciamento
Implementação de BD temporal
sobre BD convencional
Três níveis
- dependendo das características do SGBD:
• nível 1- SGBD não manipula regras nem mensagens
- devem ser implementadas pelo usuário nos
programas de aplicação
• nível 2 - SGBD gerencia regras de transição de estados
• nível 3 - SGBD gerencia regras e mensagens
Nina Edelweiss CMP151 - 2005
Implementação de BD temporal
sobre BD convencional – proposta 1
• informações não temporalizadas em uma tabela
• uma tabela para cada atributo temporalizado
• informações temporais da entidade/objeto também na tabela
onde estão as informações não temporalizadas
Id nascimento
morte nome endereço
001 01/02/1947 23/07/1998
maria
Dr. Flores 10
002 12/03/2000 null
joão
Rua da Praia 20
… … …
... ...
001 compras
15/03/99 16/03/99
01/03/99 14/12/99
002 fábrica
15/03/00 null
12/03/00 null
001
vendas
01/01/00
null
01/01/00 null
Id depto.
t_timei t_timef
v_timei
v_timef
001 1000
15/03/99 16/03/99
01/03/99 30/10/99
002 900
15/03/00 null
12/03/00 null
001 1200
05/11/00
null
01/11/99 null
Id salário
t_timei t_timef
v_timei
v_timef
Implementação de BD temporal
sobre BD convencional – proposta 2
• acrescentar à tabela não temporalizada o estado atual dos
atributos temporalizados
• demais tabelas só com o histórico passado
• facilita consultas ao estado atual
• dificulta atualização dos dados
Id birth death
name
address
depto salário
001 01/02/1947 23/07/1998
maria
Dr. Flores 10 vendas 1200
002 12/03/2000 null
joão
Rua da Praia 20 fábrica 900
… … …
... ...
001 compras
15/03/99 16/03/99
01/03/99 14/12/99
Id depto.
t_timei t_timef
v_timei
v_timef
001 1000
15/03/99 16/03/99
01/03/99 30/10/99
Nina Edelweiss CMP151 - 2005
Gerência de Dados em
BDs Temporais
» inserção
» seleção
» atualização
» remoção
Operações em BD Temporais
Sistema Gerenciador dos Dados Temporais
deve tratar da interpretação correta das
informações temporais, e da manutenção correta
da evolução dos dados
Nina Edelweiss CMP151 - 2005
•
depende de:
- tipo de BD Temporal
(BDTT / BDTV / BD Bitemporal)
- tipo de rótulo temporal
(ponto no tempo / intervalo t. / elemento t.)
•
dados históricos devem ser preservados
•
gerenciamento depende do BD utilizado na
implementação
Gerenciamento de operações em BDs Temporais
SGBD Temporal
•
inserção
•
seleção
•
atualização
•
remoção
recuperar valores ao longo
de toda a história do BD
informação atualizada, sem
sobrescrever a antiga
Nina Edelweiss CMP151 - 2005
• Novas definições de informações podem gerar
inconsistências temporais - resolvidas pelo
sistema gerenciador.
• Quais os casos que podem ocorrer e como poderá
ser feita a atualização?
• Ao solicitar a remoção de informações da base de
dados, qual a atitude tomada por um sistema
gerenciador?
SGBD Temporal
• Remoção Lógica
– encerra a “vida” da informação
Remoção em BD Temporal
• Remoção Física - vaccuming
– a informação válida anteriormente será válida durante
toda a validade da informação excluída;
– a informação válida posteriormente iniciará sua validade
quando a validade da informação excluída iniciou;
– o tempo no qual esta informação era válida poderá ser
Nina Edelweiss CMP151 - 2005
• Pontos no tempo
:
– atributo adicional - representando o “estado” da
informação (ativa ou não) ;
– definir valor nulo;
• Intervalo Temporal
:
– encerrar validade da tupla;
• Elemento Temporal
:
– como intervalo temporal
Remoção lógica em BD temporais
Atualização em BD de T. Transação
• Elemento Temporal:
• Pontos no tempo:
Code
Address
TT
001 Olive Av., 400
01/12/1998
001 Apple Str., 500
10/01/2000
• Intervalo temporal:
Code
Address
Initial_TT
Final_TT
001 Olive Av., 400
01/12/1998
09/01/2000
Nina Edelweiss CMP151 - 2005
• Pontos no Tempo
:
– TV > que todos TV da base:
Atualização em BD de T. Validade
(X, 3)
(B, 3)
?
– TV = ao > rótulo temporal:
(X, 2)
–TV < que o último definido
Atualização em BD de T. Validade
• Pontos no Tempo (cont)
:
Nina Edelweiss CMP151 - 2005
–TVI > que o > TVF
(D, 7)
–TVI = TVI definido
(D, 3)
– TVI > que TVI definido
(D, 4)
Atualização em BD de T. Validade
• Intervalo Temporal
:
A B C now
1 2 3
– definição de intervalo com interseção com
outros existentes:
Atualização em BD de T. Validade
Nina Edelweiss CMP151 - 2005