kamila t. lyra karina c. s. nishimura thiago p. colonhezi william s. strafacce banco de dados...
TRANSCRIPT
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