Bancos de Dados Temporais por Ulrich Schiel UNIVERSIDADE FEDERAL DA PARAÍBA DEPARTAMENTO DE SISTEMAS E COMPUTAÇÃO Campina Grande - PB 2 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) 3 REFERÊNCIAS BIBLIOGRÁFICAS 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 4 TEMPO em Sistemas de Informação estuda os tempos quando eventos ocorrem ou fatos existem modelagem temporal modelagem comportamental 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 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 5 Qual é o ‘ZERO’ do eixo do tempo da visão absolutista? é o AGORA assim como no espaço seria o AQUI Além do zero o tempo deve ter uma ordem e uma métrica. O conjunto T do tempo é totalmente ordenado pela relação (antes ou ao mesmo tempo), ou seja t1, t2, t3T vale t1 t1 (reflexividade) t1 t2 t2t1 t1 = t2 (antisimétrica) t1 t2 t2t1 (linearidade) (t1 t2 t2t3) t1t3 (transitividade) 6 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. 7 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. 8 Considerações sobre o tempo: elemento primitivo: Ponto ou Intervalo Densidade: Discreto (enumerável) ou Contínuo Espaço: Presente ou Futuro ou Passado ou Presente e Futuro ou todos os tempos Ordem: Linear ou Lógica: Primeira Ordem Ramificado ou ou Paralelo Modal 9 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 PQNR 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) 10 (sinbad2.21-2.22, atsi2-) 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 pq p são proposições <P>p P::Q PQ 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. 11 (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 12 (sinbad:2.17-2.18) 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 13 quais os funcionários em 1.1.1995? ST(as-of)+PD 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 (??) Principais sistemas e modelos 14 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) TRM - Temporal Relational Model (Navathe & Ahmed) 15 Uma relação temporal possui 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) 16 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 e a 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 WHEN EMPG.INTERVAL OVERLAP EMPS.INTERVAL 17 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 ou 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 18 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 PERIOD in [1.1.90, 31.12.90] AS ON 3.1.92 19