iii jornada de informática

Propaganda
MINICURSO AVANÇADO DE COMPUTAÇÃO
Bancos de Dados Temporais
por
Ulrich Schiel
UNIVERSIDADE FEDERAL DA PARAÍBA
DEPARTAMENTO DE SISTEMAS E COMPUTAÇÃO
Campina Grande - PB
POR QUE
BANCOS DE DADOS TEMPORAIS ?
separação entre
O QUE É O
ESPAÇO
X
(Geometria
x
TEMPO
Aritmética)
TEMPO ????
Se ninguém me perguntar, eu sei;
se o quiser explicar, ja não sei
Santo. Agostinho - (354-430)
REFERÊNCIAS BIBLIOGRÁFICAS
2
A. Roncalli A. Brayner “Implementação de um Sistema Temporal em um
Banco de Dados Orientado a Objetos” Dissertação de mestrado,
IMECC, UNICAMP, 1994
N. Edelweiss & J. Palazzo M. de Oliveira “Modelagem de Aspectos
Temporais de Sistemas de Informação” IX Escola de Computação,
Recife, 1994
A. Galton “Temporal Logics and their Applications” Academic Press,
1987
Z. Manna & A. Pnueli “The Temporal Logic of Reactive and Concurrent
Systems” Springer Verlag, 1991
U. Schiel “Aspectos Temporais em Sistemas de Informação”, Monografia,
UFPB/DSC, Campina Grande, 1994
C. Traina, "Armazenagem e Gerenciamento de Informações Temporais em
um Modelo de Dados Orientado a Objetos", In: Simpósio Brasileiro de
Banco de Dados , 7, Porto Alegre, 1992.Anais, p.93-107.
Tansel, Clifford, Gadia, Jajoia, Segev, Snodgrass “Temporal Databases:
Theory, Design and Implementation”, Benjamin/Cummings, 1993
TEMPO em
Sistemas de
Informaзг o
modelagem
temporal
modelagem
comportamental
estuda os tempos quando
eventos ocorrem ou
fatos existem
estuda a reaзг o do sistema
aos eventos (mudanзas de
estado)
- Bancos de Dados
Temporais
- Lуgica Temporal
- Lуgica de Intervalos
- Bancos de Dados
Ativos
3
dicotomia filosófica de visão do TEMPO:
visão absolutista (Newton)
visão relativista (Leibnitz)
o tempo (e o espaço vazio)
existem a priori. As ’coisas’
acontecem dentro do tempo e
existem no espaço
só faz sentido falar em tempo e
espaço em relação a objetos e
ocorrências
(aqui e agora)
Lógica Temporal
Calendários
Lógica do Tempo
Qual é o ‘ZERO’ do eixo do tempo da visão absolutista?
é o AGORA
Além do zero o tempo deve ter uma ordem e uma
métrica.
4
O conjunto T do tempo é totalmente ordenado pela relação 
(antes ou ao mesmo tempo), ou seja
t1, t2, t3T vale
 t1  t1 (reflexividade)
 t1 t2  t2t1  t1 = t2 (antisimétrica)
 t1 t2  t2t1 (linearidade)
 (t1 t2  t2t3)  t1t3 (transitividade)
Uma métrica para o conjunto T do tempo é uma função
d : TxT ->> R
que associa a cada par de elementos de T um número real tal
que, para todo t1, t2 e t3 em T, temos
d(t1,t2) = 0  t1 = t2
d(t1,t2) = d(t2,t1)
d(t1,t2) + d(t2,t3)  d(t1,t3)
Se o tempo é um conjunto discreto a métrica é dada por uma
constante associada a dois pontos adjacentes, denominada
chronon. Pode ser um segundo, uma hora, um século, etc.
5
Confusão entre tempo e espaço.
Livro: MOMO de Michael Ende.
Desperdício de tempo
Dormindo
Trabalhando
Comendo
Cuidando da mãe
Cuidando do pássaro
Fazendo compras
Amigos, cantando, etc
Segredo (amante)
Olhando pela janela
441 504 000 segundos
441 504 000 segundos
110 376 000 segundos
55 188 000 segundos
13 797 000 segundos
55 188 000 segundos
165 564 000 segundos
27 594 000 segundos
13 797 000 segundos
Caderneta de Poupança do Tempo
Se, ha 20 anos, tivesse começado a economizar uma horinha por dia,
ele teria, aos 62 anos um crédito (com juros que duplicam o saldo a
cada 5 anos) de vinte e seis bilhões novecentos e dez milhões e
setecentos e vinte mil segundos.
6
Considerações sobre o tempo:
elemento primitivo: Ponto
ou
Intervalo
Densidade: Discreto (enumerável) ou
Contínuo
Espaço: Presente e Futuro ou Passado, Presente e Futuro
Ordem:
Linear
ou
Lógica: Primeira Ordem
Ramificado ou
ou
Paralelo
Modal
7
Aplicações:
INTELIGÊNCIA ARTIFICIAL
Raciocínio temporal
[](trovão  (-) raios) “todo trovão é precedido por raios”
Processamento de linguagem natural
(Termos quando, enquanto, ontem, sempre, depois, conjugação
dos verbos, ..)
PROGRAMAÇÃO
verificação de programas
corretude (safety)
vitalidade (liveness)
precedência
P  []Q
P  <>Q
PQNR
programação concorrente
BANCOS DE DADOS
Bancos de dados Temporais
Consistência Temporal
Um carro deve ir para a revisão de 3 em 3 anos:
[](revisão(c) = ano-atual - 3  <>(revisão(c) antes fim(anoatual)
(sinbad2.21-2.22, atsi2-)
8
Modelagem Comportamental
A Lógica Dinâmica de Harel e
[programa] pós-condição
Linguagem:
Programas: P, Q, ...
Proposições: p, q, r, ...
então
pq 
p  são proposições
<P>p 
P::Q
PQ
P*
p?




são programas
Definição: [P]p def <P>p “sempre que P terminar, p é
verdadeiro”
Com este formalismo são definidos as construções usuais de
programas, como if-then-else, do-while, case, etc.
9
(sinbad2.23, atsi10, sinbad2.24
BANCOS DE DADOS TEMPORAIS
RELACIONAMENTOS
3.000
tem-salбrio
Flavio
ENTIDADES
1.1.95
agora
TEMPO
Sejam
E
R
T
U
o conjunto das entidades de uma classe
o conjunto dos relacionamentos de E
o conjunto dos instantes temporais
o universo de valores dos relacionamentos de E
Os elementos de uma classe são dados por uma função
: E x R x T  U
(sinbad:2.17-2.18)
10
Recuperação de Informações Temporais
Tipos de Consultas:
A=As-Of (corte vertical no tempo)
W=Walk-Through (corte horizontal:história de um
objeto)
Informações Consultadas:
D=Dados
T=Tempos
note-se que consultas temporais a dados sempre serão do tipo AS-OF
Processamento da Consulta:
S= Seleção (condição da consulta)
P=Projeção (Saída) - (dados de saída)
EXEMPLOS:
tanto a seleção (S) como a projeção (P) podem se referir a
dados (D), a tempos (T) ou a ambos (DT):
 em quais departamentos trabalhamou trabalharam pessoas de
nome ‘Maria Silva’ com salário maior de 5.000,-? SD+PD
 Quando ‘Maria Silva’ tem ou tinha salário maior de 5.000?
SD+PT
 quais os funcionários em 1.1.1995? ST(as-of)+PD
11
 selecione os funcionários e seus salários com as respectivas datas,
no período de 1.1.-31.12.90. ST+PDT
Armazenamento de dados temporais
Banco de Dados Atuais
estruturas convencionais dos SGBD.
Banco de Dados Históricos
1.encadeamento reverso2.lista de acesso
3.clustering
4.encadeamento celular (combinação de 1 e 3)
Banco de Dados Relíquia
Banco de Dados Futuros (??)
12
Principais sistemas e modelos
RELACIONAIS EXTENDIDOS
HRDM (Clifford)
HSQL (Sarda)
TRM/TSQL (Navathe)
TODM (Ariav)
TQUEL (Snodgrass)
TBE/HQUEL (Tansel) - TRA, TRC
OUTROS
TEER/GORDAS (Elmasri)
OODAPLEX (Wuu, Dayal)
TDM (Segev)
OSAM*/T (Su)
NACIONAIS
TF-ORM (N. Edelweiss - UFRGS)
TOODM/TOOL (A. Brayner, C.B. Medeiros - UniCamp)
TOM/ConTOM (U. Schiel, S. Fernandes - UFPB)
GEO (C. Traina - USP/S.Carlos)
13
TRM - Temporal Relational Model (Navathe & Ahmed)
Uma relação temporal possue dois atributos adicionais
tempo-de-início Ts
tempo-de-fim Te
um destes atributos fará parte da chave.
Atributos síncronos são atributos que mudam ao mesmo tempo.
Uma relação está em forma normal temporal quando está em
Boyce-Codd Normal Form e todos atributos não-chave são síncronos
EXEMPLO:
A relação
EMP(COD, SAL, CARGO, GERENTE, Ts, Te)
é decomposta em
EMPS(COD, SAL, CARGO, Ts, Te) e
EMPG(COD, GERENTE, Ts, Te)
14
TSQL - Uma Linguagem para o TRM
Acrescenta ao SQL a cláusula WHEN e mais algumas modificações.
Operadores: BEFORE, AFTER, DURING, EQUIVALENT,
ADJACENT, OVERLAP, FOLLOWS, PRECEDES
EXEMPLOS:
encontre o salário do empregado 125 quando ‘Smith’ era seu
gerente.
SELECT SAL
FROM EMPS, EMPG
WHERE EMPS.COD = EMPG.COD AND EMPS.COD=125
AND EMPG .GERENTE = ‘Smith’
WHEN EMPS.INTERVAL OVERLAP EMPG.INTERVAL
liste o gerente ea história do salário de todos empregados
enquanto seus salários foram menores que 40K. Obtenha os
intervalos que se interceptam.
SELECT EMPG.COD, GER, SAL,
(EMPG INTER EMPS).TIME-START, TIME-END
FROM EMPG, EMPS
WHERE EMPS.COD=EMPG.COD AND SAL < 40K
15
WHEN EMPG.INTERVAL OVERLAP EMPS.INTERVAL
TF-ORM - Um Modelo Orientado a Objetos
(Barbara Pernici & Nina Edelweiss)
Classes e subclasses são regidos por papéis
podem ser do tipo agente, recurso processo
Agregação só para classes do tipo recurso
Funções temporais:
value-at(id, propriedade, tempo)
valid-time(id, propriedade)
transaction-time(id, propriedade)
class-creation-time(id)
state-at(id, time)
Operadores temporais:
sometime past A, immediately past A, always past A,
sometime future A, .... ,
A since B, A until B, A before B, A after B
16
Linguagem de Recuperação de Informação
SELECT <cláusula de especificação>
FROM <cláusula de identificação>
WHERE <cláusula de busca>
[ON <cláusula de instante temporal>]
saídas
dominio de valores
condições dos objetos
referencial do tempo
SELECT <cláusula de especificação>
FROM <cláusula de identificação>
WHEN <cláusula de busca>
[ON <cláusula de instante temporal>
EXEMPLOS:
SELECT work-dept
FROM Person.Employee
WHEN (name=“Maria Silva” or
sometime past name =“Maria Silva”) and salary>5000
selecione todos períodos em que ‘Maria Silva’ esteve
autorizada a dirigir automóveis no período de 1.1.91 a
31.12.91, de acordo com o que se acreditava em 1.3.92
SELECT PERIOD
FROM Person.Employee
WHEN (sometimes past name =‘Maria Silva’) and
skill contains “drive-cars” and
17
PERIOD in [1.1.90, 31.12.90]
AS ON 3.1.92
18
Download