Banco de Dados Temporais

Um banco de dados temporal armazena as informações sempre que ocorre um dado evento ou quando um evento é considerado verdadeiro. Um evento pontual, ou fato pontual, normalmente são associados aos bancos de dados por um único ponto de tempo representado por alguma granularidade. Esta informação é frequentemente representado por uma série de dados temporal. Série de dados temporal envolvem valores que são registrados de acordo com uma sucessão específica e predefinida de tempo.

Um período de tempo é representado por um ponto inicial e um ponto final. Essa representação, assim como nos conjuntos matemáticos, podem ser representados por intervalos abertos ou fechados.

Para representação de dados temporais utiliza-se os seguintes tipos de dados: DATE, TIME,DATETIME, TIMESTAMP, INTERVAL e PERIOD.

Informação de evento contra informação de duração(ou estado)

Um banco de dados temporal armazena as informações sempre que ocorre um dado evento ou quando um evento é considerado verdadeiro. Um evento pontual, ou fato pontual, normalmente são associados aos bancos de dados por um único ponto de tempo representado por alguma granularidade. Esta informação é frequentemente representado por uma série de dados temporal. Série de dados temporal envolvem valores que são registrados de acordo com uma sucessão específica e predefinida de tempo(ELMASRI, NAVATHE, 2005).

Os eventos de duração, por um outro lado, podem ser referenciados por um período de tempo específico em um banco de dados(ELMASRI, NAVATHE, 2005), e.g., um funcionário ocupou a diretoria de uma empresa entre o período de 20 de março de 2008 à 31 de outubro de 2008.

Um período de tempo é representado por um ponto inicial e um ponto final[START-TIME, END-TIME](ELMASRI, NAVATHE, 2005). Essa representação, assim como nos conjuntos matemáticos, podem ser representados por intervalos abertos ou fechados.

Tempo válido e dimensões de tempo de transação

Dado um evento associado a um ponto ou a um período de tempo específico, pode-se apresentar significados diferentes. Devido a este fato é preciso interpretar os significados destas associações, a forma mais natural, é que o tempo associado é aquele em que o evento aconteceu ou o período em que o evento foi considerado verdadeiro(ELMASRI, NAVATHE, 2005). Caso se empregue este tipo de interpretação diz-se que o tempo associado é um tempo válido. Bancos de dados temporais que utilizam-se dessa interpretação são denominados banco de dados de tempo válido.

Uma outra interpretação utilizada é aquela onde o evento associado refere-se ao tempo de fato em que a informação foi armazenada no banco de dados. Tal interpretação de evento associado é denominadatempo de transação, e os banco de dados temporais que trabalham sobre esse paradigma são conhecidos como banco de dados de tempo de transação.

Ordenação

O tempo é um aspecto essencial na ocorrência dos fatos e pode ser classificado em diversos ordens, como:

  • Ordem Linear: presume-se que o tempo flui de forma linear, entre dois pontos, do passado ao futuro;
  • Ordem Ramificada: um dado pode ter diversos sucessores ou predecessores. Ex: Uma certa decisão pode gerar um entre diversas opções de resultados;
  • Ordem Circular: são dados que se repetem ao longo de um período de tempo. Ex: datas de promoções vendas em determinadas épocas do ano.

Aplicações

Algumas aplicações onde o controle e acesso a informações temporais são fundamentais:

  • Área Médica
  • Área Empresarial
  • Aplicações Financeiras
  • Controle de Produção
  • Gerenciamento de Vendas
  • Gestão de Pessoas
  • Controle AcadêmicoSistemas de Informações Geográficas
  • Sistema de Reservas
  • Outros

Outras dimensões

Existem outros tipos de interpretação porém as acima citadas são as mais comumente encontradas, e são chamadas de dimensões de tempo. Uma dada aplicação pode necessitar de apenas uma dimensão, já em outra, faz-se necessário a presença de ambas dimensões, neste caso o banco de dados é dito banco de dados bi-temporal.

Pode-se ainda haver a necessidade de outras interpretações do tempo, e estas interpretações serão definidas especificamente para a aplicação, tais bancos serão chamados de banco de dados de tempo definido pelo usuário.

Exemplo

Será levado em conta como exemplo para fixação do conteúdo um banco de dados de tempo válido. O mesmo seguirá o seguinte modelo:

Modelo referente as tabelas do banco exemplificado

Modelo referente as tabelas do banco exemplificado

A tabela Empregado conta com dois campos: PK_IDEMP e NOME, e receberá o nome dos funcionários de uma empresa fictícia. A tabela Funcao, assim como a tabela Empregado, possue dois campos: PK_IDFUNCAO e DESCRICAO, e armazenará a descrição da função exercida por um dado empregado. A relação existente entre as duas gera uma terceira tabela denominada Emp_Funcao, que armazenará todas as funções que um empregado exercer na empresa.
Note que existem dois campos na tabela Emp_Funcao que são tipos que representam datas em banco de dados. Os campos são INICIO e FIM, e receberão o START TIME e o END-TIME, respectivamente. Para este exemplo será levado em conta a granularidade de dia.

Considere que cada tupla referente a relação Empregado-Funcao representa uma versão válida de um evento ocorrido, em um período[INICIO, FIM]. Geralmente, a versão atual de uma dada tupla, neste caso o campo FIM, possue um valor especial que neste exemplo chamar-se-á de ATUAL. Este valor especial, é uma variável temporal que implicitamente representada o tempo corrente a medida que ele acontece(ELMASRI, NAVATHE, 2005). Note que, em uma relação não-temporal só serão armazenadas somente as relações correntes.

Registros de Empregados e Funções

Registros de Empregados e Funções

A figura mais abaixo mostra algumas versões de tuplas de tempo válido: duas versões para JOÃO, três para MARIA, uma para JOSÉ e uma para JOANA. Sempre que haver alguma alteração de um funcionário, e.g., promoção, demissão, etc., o seu campo FIM é mudado para o valor do término e, dependendo da situação, uma nova tupla é inserida com as novas informações.
As tuplas 1 e 2 da figura abaixo tem-se a movimentação das funções para o empregado JOÃO, a segunda tupla da relação indica que foi realizada uma promoção e à medida que a mesma se concretizou(1º de Julho de 2008) a primeira tupla teve seu encerramento um dia antes(30 de Junho de 2008 –GRANULARIDADE DE DIA). A segunda tupla passou a ser a corrente e a anterior passou a ser umaversão fechada ou histórica.

O registros 3, 4 e 5 comporta-se da mesma forma que as tuplas 1 e 2. O registro 6 informa a saída de um funcionário da empresa o seu valor de saída é atualizado e não é inserido um novo registro na relação. O contrário ocorre na sétima e última tupla onde é a admissão de um empregado e seu tempo final está definido com o valor especial ATUAL.

Relação de Empregados por Função

Relação de Empregados por Função

Detalhes

Note que em um relação temporal o tempo de início, juntamente com um outro atributo trabalha como chave primária de uma relação, não repetindo em momento algum. Isto ocorre porque em ponto do tempo deveria haver no máximo uma versão de tempo válido.

As atualizações podem assumir três tipos: proativa, retroativa e simultânea. As atualizações proativas ocorrem no banco antes que o evento ocorra no mundo real, ao contrário das atualizações retroativas que são persistidas em banco depois da ocorrência do evento. As atualizações simultâneas são as acontecem sobre um mesmo instante de tempo.

Algumas funções

  • INCLUDES – contém;
  • OVERLAPS – sobrepõe (intersecção);
  • PROCEDS / BEFORE – precede no tempo;
  • FOLLOWS / AFTER – sucede no tempo;
  • MEETS – “casa” (encontro no tempo);
  • VACUUM – Exclusão física;
  • INTERSECT – Entre dois pontos;

BD Convencional VS BD Temporal

BD Convencional

  • Representação do estado presente de um dado;
  • BDs instantâneos;
  • gerenciamento temporal a cargo da aplicação definição explícita de atributos, consultas temporais, …
  • Não necessita de espaço grande, pois sobrescreve os dados, descartando os antigos;

BD Temporal

  • representação de estados passados, presente e futuros de um dado;
  • BDs históricos, BDs de transação, BDs bi-temporais;
  • Gerenciamento temporal é controlado pelo BD;
  • definição implícita de propriedades temporais, linguagens de consulta estendidas, …
  • Requer mais espaço de armazenamento;
  • Possui um crescimento acelerado;

Sou bacharel em Sistemas de Informação pela Estácio de Sá (Alagoas), especialista em Gestão Estratégica da Tecnologia da Informação pela Univ. Gama Filho (UGF) e pós-graduando em Gestão da Segurança da Informação pela Univ. do Sul de Santa Catarina (UNISUL). Certificações que possuo: EC-Council CEH, CompTIA (Security+, CySA+ e Pentest+), EXIN (EHF e ISO 27001), MCSO, MCRM, ITIL v3. Tenho interesse por todas as áreas da informática, mas em especial em Gestão e Governança de TI, Segurança da Informação e Ethical Hacking.

2 Responses to “Banco de Dados Temporais”

  1. Vai me dizer que você fez isso tudo sem consultar nada?

    Inclusive na apresentação [http://pt.slideshare.net/sergeduardo/banco-de-dados-temporais-temporal-database] me desculpe, nem ligo para isso, mas por coincidencia encontrei na sua pagina frases do slide de sergeduardo. No entanto nao vi nenhuma citação de consulta, tenho certeza de que ele, sergeduardo, se dedicou mais do que você para escrever o slide citado.

    • Diego Macêdo disse:

      Olá Ricardo! Com certeza não fiz isto sem consultar nada, apenas não coloquei as referências quando eu fiz isto. Falando a respeito da fonte que você citou por ter algo parecido com o meu e falando em “tempo”, não sei se você prestou atenção no seguinte detalhe: a data de publicação dos slides e da minha postagem. Minha postagem (08/01/2012) foi feita ANTES dos slides (1/12/2009), então seria impossível eu ter simplesmente copiado de lá. Segundo ponto é que eu não tenho intenção alguma de plagiar ninguém.

      Sua “certeza” agora foi esclarecida.

Deixe um comentário para Diego Macêdo Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *