2. Banco de Dados:
Um banco de dados armazena dados transacionais relevantes de uma
organização, sejam eles estáticos ou dinâmicos. Para cada caso existe
uma abordagem de retenção de dados.
São elas,
• Banco de Dados Convencionais.
• Banco de Dados Temporais.
A implementação de um desses modelos é decidida de acordo com a
necessidade do cliente/aplicação.
Porém a necessidade de controle da informação coloca o BD temporal
como a melhor das opções em uma organização.
3. Banco de Dados Convencionais:
Os Bancos de Dados convencionais buscam uma visão estática da
realidade ocasionando:
• Perda do histórico de atualizações.
• Falta de controle das Informações.
• Impossível a analise de evolução.
Ou seja, a evolução histórica da realidade não é armazenada, desta
forma os dados atualizados não persistem.
Modelo query de Consulta de Dados,
select salário
from Empregados E, Salários S
where S.RG = E.RG
and E.nome = ‘Maria’
and S.início >= ’01/07/02’
and S.fim <= ’31/12/02’
4. Definição:
Os Bancos de Dados temporais retém a informação de forma dinâmica,
possui 3 dimensões [Linha, Coluna e tempo], permitindo uma consulta
histórica da evolução dos dados.
Seja ela baseada em,
• Tempo de Transação. (timestamp)
• Tempo de Validade. (byuser)
ou
• Bitemporal - (Tempo Validade + Transação).
Modelo query de Consulta de Dados,
select salário
Coluna
from Empregados
where nome = ‘Maria’
and period ‘[01/07/02,31/12/02]’
po
m
Linha Te
5. Predicados e Funções Temporais:
• INCLUDES
– contém
• OVERLAPS
– sobrepõe (intersecção)
• PRECEDS / BEFORE
– precede no tempo
• FOLLOWS / AFTER
– sucede no tempo
• MEETS
– “casa” (encontro no tempo)
• VACUUM
– Exclusão física
• INTERSECT
– Entre dois pontos
• ... (para todos, exige-se chronons¹ iguais)
¹Chronons – Intervalos temporais consecutivos em uma dada linha de tempo.
6. Banco de Dados Convencional x Banco de Dados Temporal
Além da abordagem sobre a capacidade ou não de contextualizar
o ‘tempo’ histórico dos dados, uma outra característica marcante
quando um BD convencional e um BD temporal são
comparados é sem dúvida o armazenamento de dados.
• Um BD temporal requer maior espaço de armazenamento.
• Armazena a informação antiga.
• Possuí crescimento acelerado.
• Um BD convencional não necessita de um espaço grande.
• Sobrescreve os dados, descartando os antigos.
• Seu crescimento pode ser previsto, ou controlado.
IBM System Storage DS3400 IBM XIV Storage System
21.6TB 180TB
7. Aspectos Temporais:
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.
8. Classificação de Banco de Dados:
• Banco de Dados Instantâneos • Banco de Dados de Tempo de Transação
• Banco de Dados de Tempo de Validade • Banco de Dados Bi temporais
9. 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êmico
• Sistemas de Informações Geográficas
• Sistema de Reservas
• (...)
10. Linguagem - TSQL2 (Temporal Structured Query Language):
TSQL2 – Definida em 1995 após uma lista de discussão por emails
criada em 1992.
A linguagem é baseada em SQL e foi acrescida de outras funções:
• suporte a períodos de tempo
• suporte a múltiplas granularidades (um chronon)
• suporte a múltiplas representações
• suporte a múltiplas linguagens
• suporte a múltiplos calendários
(lunar – acadêmico – fiscal – eras geográficas)
• suporte a tempo indeterminado
• suporte a tempo histórico
11. Linguagem - TSQL2 (Temporal Structured Query Language):
Não é possível encontrar um SGBD totalmente Temporal, algumas
funcionalidades podem ser encontradas mas não em sua totalidade.
Como solução existem as camadas de softwares que simulam um
Banco de Dados Temporal, permitindo consultas escritas.
SGBDs que suportam TSQL2:
• Oracle (PTV – Pacote de Tempo de Validade + TSQL2)
• PostgreSQL (TSQL2 + Btpgsql(Bi temporal) + EMap)
• MySQL (EMap adaptado UFGRS/UPF)
12. Linguagem - TSQL2 (Temporal Structured Query Language):
Listar o nome de todos os empregados que trabalharam na
empresa ao mesmo tempo em que João esteve no departamento
de brinquedos.
SELECT E1.Nom
FROM Empregado E1, Empregado E2
WHERE E2.Nom = João AND E2.Dept = “Brinquedos”
AND VALID(E1) OVERLAPS VALID(E2)
14. Considerações Finais:
A utilização de um BD Temporal se faz necessária em tempos
onde a riqueza de dados é fundamental para a analise e
obtenção de informações, ampliando a capacidade de sistemas
que tem como “matéria prima” o cruzamento de
dados/informações, como os,
• SIGs (Sistemas de Informações Gerenciais)
• Dataminer (mineração de dados)
• Data Warehousing
Sistemas de Suporte a decisão como,
• BI (Business Intelligence)
dentre vários outros.
Apesar do custo de armazenamento ser alto, os benefícios são
relevantes como a consistência, permitindo consultas históricas
com alta recuperabilidade de dados.
15. Fonte:
[Universidade do Arizona] Disponível em,
ftp://ftp.cs.arizona.edu/tsql/tsql2/bookspec.pdf (EN-US)
http://www.cs.arizona.edu/people/rts/tsql2.html (EN-US)
Acesso em 12 Jun.2009
[Ferramenta para Suporte a Consultas Temporais em SGBDs convencionais.]
http://www.projetos.unijui.edu.br/erbd2009/arquivo/52075.pdf
Acesso em 13 Jun.2009
[Nina Krahe Edelweiss]
http://www.inf.ufrgs.br/~nina/
Acesso em 13 Jun.2009
[Oliveira, Alex Martins de]
http://www.lume.ufrgs.br/bitstream/handle/10183/6040/000435641.pdf
Acesso em 13 Jun.2009