CMP 151 Modelos de Dados Temporais Roteiro! Conceitos de representação temporal! Modelos de dados temporais! Linguagens de consulta temporais " Bancos de dados temporais " Implementação de BDs temporais " Gerenciamento dos dados
Bancos de Dados Temporais evolução temporal das aplicações... dados t1 dados t2 dados t3 dados t4 tempo Bancos de Dados Temporais armazenar dados presentes - passados - futuros
Estado atual de um BD temporal cargo estagiário engenheiro gerente depto compras salário 600 produção 650 900 Momento atual t Bancos de Dados Temporais Apresentam alguma forma de representação de informações temporais BD históricos Todos valores definidos ficam armazenados
Tipos de Bancos de Dados Temporais # Instantâneo - snapshot $ de tempo de transação - rollback $ de tempo de validade - histórico $ bitemporais - temporal $ multitemporais BD Instantâneo - Snapshot DB BDs convencionais apresentam somente os valores presentes modificação de um valor = transição do BD somente o último estado do BD está disponível informações temporais: através de atributos definidos sobre o domínio tempo informações quanto à validade das informações podem ser armazenadas como dados
BD Instantâneo - Snapshot DB Estados Passados Estado Atual João Silva, 01/jan/92, 800,00 Mara Dias, 01/mar/91, 1.200,00 BD de tempo de transação a cada informação é associado o tempo de sua definição no banco de dados rótulo temporal (timestamp) tempo de transação fornecido pelo SGBD um estado do banco de dados é identificado pelos tempos de transação associados às informações estado atual: últimos valores definidos para cada propriedade validade das informações inicia no momento de sua introdução no banco de dados validade diferente do tempo de transação pode ser definida através de um atributo especial (dado)
BD de tempo de transação t 1 800 01/jan/92 t 2 900 01/jun/92 t 3 t presente 1000 01/jan/93 Momento Atual História do salário de João Tempo BD de tempo de validade a cada informação é associado o tempo de validade da informação início da validade (degraus) intervalo de validade ponto de validade tempo de validade fornecido pelo usuário não é armazenado o tempo em que é feita a transação podem ser feitas correções nas informações armazenadas (alterações no passado)
BD de tempo de validade t 800 01/jan/92 1 t 900 01/jun/92 2 t 3 t presente 1000 01/jan/93 Momento Atual História do salário de João Tempo BD de tempo de validade a b t1 t2 t3 tempo de validade alteração do passado a b t1 t4 t3 tempo de validade
BD bitemporal tempo de transação + tempo de validade toda história do banco de dados fica armazenada acesso a todos os estados do banco de dados estado atual = valores atualmente válidos podem ser definidos valores futuros valores que podem ser recuperados: - atualmente válidos - válidos em momentos passados - valores que se acreditava como válidos em momentos passados, e que foram modificados posteriormente - valores previstos para o futuro BD bitemporal t1: v1 a tempo de validade t2: v1 a v2 b tempo de validade t3: v1 a v2 b v3 c tempo de validade tempos de transação
BD bitemporal t1: v1 a tempo de validade t2: v1 a v2 b tempo de validade t3: v1 a v3 c tempo de validade tempos de transação BD bitemporal 01/jan/92 800 800 03/jan/92 Tempo de Transação 900 900 25/mai/92 01/jun/92 1000 01/jan/93 1000 10/jan/93 Momento Atual História das transações do salário de João Tempo de Validade História da validade do salário de João
BD multitemporal % dados estáticos (sem rótulo temporal) + dinâmicos (com rótulo temporal) % alguns dados com tempo de transação, outros com tempo de validade, outros com ambos Lotação Bitemporal Atributos: Código Inteiro (4) Sigla Char(5) Descrição Char(40) Empregado T.transação Atributos: Código Inteiro (4) Nome Char(40) Salário T.validade Atributos: Código Inteiro (4) Valor Real(12) Departamento instantâneo Atributos: Sigla Char(5) descrição Char(40) Características de um BD Temporal linguagem de definição de dados temporal modelo de dados temporal linguagem de consulta temporal linguagem de manipulação de dados temporal restrições temporais
Implementação de BDs Temporais Implementação de BDs Temporais poucos sistemas implementados implementação de protótipos experiências de mapeamentos para BD tradicionais
TimeDB http://www.timeconsult.com/temporaldata/temporaldb BD temporal comercial: TimeDB % bitemporal % SQL estendida 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 applet
Implementação de tempo & 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 Arquitetura de um SGBDT DBA Usuários Compilador Catálogo do Sistema Processador de Avaliador da Consulta SGBDT Gerenciador de Dados Compartilhados BD Temporal
Suporte ao tempo - acréscimo de domínios temporais - acréscimo de construções para fornecer o suporte a tempo de transação e/ou validade - alterações importantes no dicionário de dados * agora constituído de relações de tempo de transação * somente definição de dados, não importando seu tempo de validade DBA Usuários Compilador SGBDT Catálogo do Sistema Processador de Avaliador da Consulta Gerenciador de Dados Compartilhados BD Temporal Suporte ao tempo Otimização de consultas - bem mais complexas que nos BDs tradicionais - número elevado de dados envolvidos - predicados de avaliação mais complexa - auxiliadas pela ordenação natural DBA Compilador SGBDT Catálogo do Sistema Usuários Processador de Avaliador da Consulta Gerenciador de Dados Compartilhados BD Temporal
Suporte ao tempo Avaliação de consultas - diversas técnicas desenvolvidas, tais como» separar dados históricos dos atuais» novos métodos de indexação ( B + -trees / R-trees )» algoritmos novos para joins DBA Compilador SGBDT Catálogo do Sistema Usuários Processador de Avaliador da Consulta Gerenciador de Dados Compartilhados BD Temporal Suporte ao tempo Gerenciador de dados armazenados - estruturas de armazenamento encadeamento reverso todas as versões históricas de uma mesma chave encadeadas em ordem reversa listas de acesso associando armazenamento histórico e corrente clustering armazenando versões históricas em conjunto stacking armazenando conjunto fixo de versões históricas encadeamento celular encadeando blocos de versões históricas clusterizadas - utilizar técnicas de controle de concorrência para suportar tempo de transação - recovery para BD de tempo de transação DBA Usuários Compilador SGBDT Catálogo do Sistema Processador de Avaliador da Consulta Gerenciador de Dados Compartilhados BD Temporal
Implementação de BD temporal sobre BD convencional Esquema Modelo Temporal Mapeamento do Esquema Consulta Linguagem do Modelo Temporal gerenciamento BD Convencional Mapeamento da Consulta Mapeamento para SGBD 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
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...... Id depto. t_timei t_timef v_timei v_timef Id salário t_timei t_timef v_timei v_timef 001 compras 15/03/99 16/03/99 01/03/99 14/12/99 001 1000 15/03/99 16/03/99 01/03/99 30/10/99 002 fábrica 15/03/00 null 12/03/00 null 002 900 15/03/00 null 12/03/00 null 001 vendas 01/01/00 null 01/01/00 null 001 1200 05/11/00 null 01/11/99 null 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...... Id depto. t_timei t_timef v_timei v_timef Id salário t_timei t_timef v_timei v_timef 001 compras 15/03/99 16/03/99 01/03/99 14/12/99 001 1000 15/03/99 16/03/99 01/03/99 30/10/99