KAMILA T. LYRA KARINA C. S. NISHIMURA THIAGO P. COLONHEZI WILLIAM S. STRAFACCE Banco de Dados...
Transcript of KAMILA T. LYRA KARINA C. S. NISHIMURA THIAGO P. COLONHEZI WILLIAM S. STRAFACCE Banco de Dados...
KAMILA T. LYRAKARINA C . S . N ISHIMURA
THIAGO P. COLONHEZIWILL IAM S . STRAFACCE
Banco de Dados Temporais (BDT)
BDT - Introdução
Bancos de dados convencionais: Manter dados atuais
Bancos de dados temporais: Manter evolução temporal dos dados
Informações históricas Associar informações temporais aos
dados rótulos temporais associados aos objetos
do banco de dados temporal
BDT - Introdução
Bancos de dados temporais permitem armazenar e recuperar todos os estados de uma aplicação (atual, passado e futuro previsto), registrando sua evolução com o passar do tempo [Edelweiss,1998].
BDT – Conceitos de Tempo (1/3)
Dimensão TemporalTipos de dados temporais:
Instante: momento em que ocorre um evento.
Período: intervalo entre dois instantes diferentes e conhecidos
Intervalo: tempo entre dois instantes diferentes. Sabe-se sua duração, mas não quando começa ou termina.
BDT – Conceitos de Tempo (2/3)
Tipos de Tempo Transação
Tempo no qual o fato é registrado no banco de dados.
Validade Tempo em que o valor é válido na realidade
modelada. Definido pelo usuário
propriedades temporais definidas explicitamente pelos usuários em um domínio temporal e manipuladas pelos programas da aplicação
BDT – Conceitos de Tempo (3/3)
Ordem no tempo Linear
Presume-se que o tempo flui linearmente, entre dois pontos, do passado para o futuro.
Ramificada Um dado pode ter diversos sucessores ou predecessores. Ex: Uma certa decisão pode gerar um entre diversas
opções de resultados. Circular
Dados que se repetem ao longo de um período de tempo. Ex: Datas de promoções de vendas que se repetem todo
ano.
BDT – Classificações (1/4)
Bancos de Dados Instantâneos Apenas armazena o estado presente SQL tradicional Para aplicar controle temporal:
Criação explícita de atributos definindo as datas associadas ao registro.
Controle destes atributos deverá ser feito manualmente pelo desenvolvedor da aplicação
BDT - Classificações (2/4)
Bancos de Dados de Tempo de Transação Adicionar um rótulo com a data de cada transação
realizada sobre um registro Transparente ao desenvolvedor (implícito) Não apaga registros anteriores à transação Presente e Passado
BDT - Classificações (3/4)
Bancos de Dados de Tempo de Validade Armazena a data de validade do registro (quando
os dados passarão a ser válidos no sistema), cujo controle é responsabilidade do usuário
A partir da data 15/07/04 o salário do José passa a ser R$900,00.
BDT - Classificações (4/4)
Bancos de Dados Bitemporais Associa tanto o tempo de transação como o tempo de
validade ao registro. Fornece acesso a todo o histórico de alterações com
suas respectivas validades
Consultas a bancos de dados temporais.
BDT – Linguagem de consulta temporalDeve possibilitar a recuperação de
informações: Temporais Não temporais
Tirar real proveito da utilização da dimensão temporal
Enriquecida para manipular a dimensão temporal Deduzir valores não explicitamente armazenados
Consultas temporais. Exemplos
Recuperar valores de domínio temporal selecione o valor da propriedade Data_de_Nascimento
Referir-se a um instante ou intervalo selecione o valor do salario no dia 01/01/11
Recuperar valores com base no tempo selecionar todos os valores do salario antes do dia
01/01/11 Fornecer informações temporais(pontos,
intervalos) quando foi alterado o salário do funcionário
Problemas em consultas temporais
Necessidade de novos métodos de indexação grande volume de dados métodos tradicionais só servem para valores já
ordenadosManipulação de informações incompletas
incerteza sobre a existência de objetos eventos que não se sabe quando ocorreram
Tipos de BDTs e as consultas 1/2
Instantâneos: não permite consultas temporais, apenas armazena o
estado presente do BD.Tempo de transação:
permite consultar tempos atuais e passados ex: qual o salário do funcionário na data 01/01/1993
Tipos de BDTs e as consultas 2/2
Tempo de validade: permite recuperar valores de previsão para o futuro
que estejam armazenados ex: selecione o salário do funcionário em 01//02/2012
Bitemporais: permite consultar tempos passados, atuais e futuros:
história do BDT história presente historia passada: definir data de limite Desejo conhecer a história passada até o dia
20/09/2012
Consultas temporais
Componente de seleção: condição lógica Sobre os dados – condições estabelecidas somente
sobre os valores de dados. Ex: selecionar os empregados que nasceram antes de 01/01/1980
Temporal – somente as informações temporais são analisadas. Ex: selecionar todos os empregados da empresa durante 01/01/2000 a 31/12/2010
Consultas temporais
Mista – atua nos dados e nas informações. Ex: selecione todos os empregados que ganham mais que 2000 no período de 01/01/2000 a 31/12/2010
Consultas temporais
Componente de saída: valores solicitados De dados - retorna exclusivamente valores de dados.
Ex: selecionar os nomes dos funcionários do departamentos de entregas que entraram a partir do dia 01/01/2000
Temporais – traz informações temporais, pontos, intervalos. Ex: selecionar todos os períodos nos quais os funcionários do departamento de entregas ganharam mais que 2000
Consultas Temporais
Mistas – recuperam valores de dados e valores temporais. Ex: selecionar os valores do salário e os respectivos tempos de validade para o empregado chamado João
A única combinação que não pode ser utilizada é a de seleção temporal com saída temporal, devemos ter algum dado envolvido em pelo menos um dos componentes.
Consultas e orientação a objeto
As informações temporais no modelo e dados orientado a objetos são associadas aos objetos e aos atributos
requer propriedades especiais para a recuperação de informações
Linguagem de consulta visual
Linguagem de consulta textual: TSQL2 Exige que o usuário conheça sua sintaxe e o esquema
do BDT.Linguagem de consulta visual: Visual Query
System TF-ORM [97] Permite que o usuário faça a consulta utilizando
símbolos visuais e regras para utilizados Melhor percepção da realidade
Linguagem de consulta visual
Linguagem de consulta visual
Linguagem TSQL2
Extensão do SQL;1995 - Linguagem padrão para tratar
aspectos temporais;Suporte a:
Tipo de dados; Linhas de tempo; Suporte para tempo transação e para tempo de
validade;
Linguagem TSQL2
Tipo de dados; Date time e interval – instants, intervals e spans; Surrogate – utilizado como identificador único para
objetos que possuem atributos temporais, mas não substitui a chave da tabela; Seus valores não podem ser visto pelo usuário.
Linguagem TSQL2
Linhas de tempo; Tres linhas de tempo:
Tempo definido pelo usuário; Tempo de validade – inicio e fim do tempo de validade
(begginning e forever); Tempo de transação – inception (quando a tupla é criada)
e until changed (quando ocorre uma alteração na tupla)
Linguagem TSQL2
Suporte para tempo transação e para tempo de validade; Cada tupla é rotulada com um elemento temporal;
Nome Salário Begginning Forever Inception Until Changed
Ana 20000 01/01/1991 - 15/01/1991
Antonio 10000 01/01/1992 01/01/2000
20/01/1992 02/01/2000
Antonio 15000 01/01/2000 - 02/01/2000
Linguagem TSQL2
Exemplo de consulta: Listar o nome de todos os colaboradores que
trabalharam na empresa ao mesmo tempo que João esteve no departamento de brinquedos.
SELECT C1.nome FROM Colaborador C1, Colaborador C2 WHERE C2.nome = “João” AND C2.Dept = “Brinquedos”AND valid(C1) OVERLAPS valid(C2)
Linguagem TSQL2
Não é possível encontrar um SGBD totalmente temporal, algumas funcionalidades podem ser encontradas outras não;
Como solução existem as camadas de software que simulam essa funcionalidade;
Vantagens
Histórico de manipulação de registros
Agilidade em consultas simultâneas
Relaciona ocorrência x tempo
Possibilita analisar dados históricos e prever um cenário futuro
Desvantagens
Numero elevado de relacionamentos
Redundância no armazenamento dos dados
Grande volume de dados a serem armazenados