• Nenhum resultado encontrado

3 MODELOS DE DADOS ENVOLVENDO A “DIMENSÃO” TEMPORAL DOS DADOS

3.1 Modelos de Dados Temporal e Espaço-Temporal

3 MODELOS DE DADOS ENVOLVENDO A “DIMENSÃO”

TEMPORAL DOS DADOS

Este capítulo introduz os modelos dados temporal e espaço-temporal e métrico-temporal. Os conceitos dos modelos de dados temporal e espaço-temporal, como granu-laridade, ordem e dimensão do tempo, são apresentados na Seção 3.1. Na Seção 3.2 é apresentada a definição de espaço métrico-temporal e as operações exploradas até então neste espaço. Em termos de ordem, o tempo pode ser consecutivo e linearmente ordenado, ramificado ou circular, ilustrados na Figura 3. Em tempo consecutivo e linearmente or-denado dois pontos sempre são ordenáveis; em tempo ramificado, no futuro pode possuir diferentes sucessores e no passado diferentes antecessores; e o tempo circular é utilizado quando eventos de tempo se repetem periodicamente, como dias da semana ou estações do ano [2].

3.1 Modelos de Dados Temporal e Espaço-Temporal

O conceito de banco de dados temporal abrange qualquer tipo de aplicação de banco de dados que utiliza algum conceito de tempo na organização de suas informações. Esse tipo de aplicação começou a ser desenvolvido assim que banco de dados começaram a ser utilizados. Exemplos de uso incluem históricos de pacientes, sistemas de reservas (pas-sagens aéreas, hotéis, etc.), histórico escolar de alunos, dados de experimentos científicos que incluem tempo de coleta, etc. [6].

Em banco de dados temporal, tempo é representado como uma sequência ordenada de pontos, a granularidade dos pontos varia de acordo com a aplicação. Por exemplo, cada ponto pode representar um segundo, um dia ou qualquer outro intervalo determinado. Normalmente o termo chronon é utilizado ao invés de ponto, para representar a menor granularidade de uma aplicação. Para que um ponto representado tenha significado, é necessário usar algum tipo de calendário que organize o tempo de forma conveniente (ex: Gregoriano, Chinês, Islâmico, Hindu, etc) [6].

Em termo de dimensões, o tempo pode ser tratado de maneiras distintas. A inter-pretação mais natural é associar o tempo em que o evento ocorreu ou o tempo em que um fato é considerado verdadeiro no mundo real. Esta interpretação é chamada de tempo

de validade. Outra interpretação usada, refere-se à associação do tempo em que a

infor-mação está armazenada no banco de dados, ou seja o tempo que a inforinfor-mação é válida no sistema. Esta interpretação é chamada de tempo de transação. Estas duas formas de interpretação são as mais comuns, e aplicações podem fazer uso de apenas uma desta, ou de ambas, neste caso o banco de dados pode ser chamado de bitemporal [6]. TSQL2 [7] é

34

(a) Tempo consecutivo e linearmente

ordenado (b) Tempo circular

(c) Tempo ramificado com diferentes sucessores

(d) Tempo ramificado com diferentes antessores

Figura 3 – Tipos de ordem de tempo [2]

uma extensão temporal definida para o padrão SQL-92, que permite consultas utilizando tempo de validade, tempo de transação e bitemporal em banco de dados relacionais.

Banco de dados espaciais incorporam o suporte de objetos em um espaço multi-dimensional. Por exemplo, banco de dados cartográficos armazenam mapas, incluindo a descrição de objetos em um espaço bidimensional. Os sistemas que gerenciam este tipo de dados e as aplicações relacionadas, são chamados Sistema de Informação Geográfica. Consultas a esses dados podem ser consultas por abrangência, por vizinhos mais próximos e consultas topológicas [6, 8].

Um modelo de dados Espaço-Temporal incorpora conceitos espaciais, temporais e espaço-temporais, e captura simultaneamente os aspectos temporais e espaciais do dado [9]. Modelos de dados espaço-temporais são utilizados em aplicações onde ocorrem mudanças em objetos espaciais ao longo do tempo, e definem tipos de objetos, relações, operações e regras para manter a integridade do banco de dados. Consultas a dados espaço-temporais podem ser classificadas em três categorias: Consultas espaço-temporais simples como mudanças discretas ou objetos de referência em movimento; Consultas espaço-temporal por abrangência e/ou consultas por junção; Consultas espaço-temporal por comportamento envolvendo operadores unários [8].

3.1.1 Álgebra de Intervalos Temporais de Al len

A álgebra de Allen é utilizada como base para a descrição de eventos temporais. Em seu artigo Maintaining Knowledge about Temporal Intervals [10], James F. Allen des-creve uma álgebra para intervalos temporais. No trabalho, são descrito treze tipos de

35

relacionamentos possíveis, são eles 𝑏𝑒𝑓 𝑜𝑟𝑒 (antes), 𝑎𝑓 𝑡𝑒𝑟 (depois), 𝑒𝑞𝑢𝑎𝑙 (igual), 𝑚𝑒𝑒𝑡𝑠 (encontra), met-by (encontrado por), 𝑜𝑣𝑒𝑟𝑙𝑎𝑝𝑠 (sobrepõe), overlaped-by (sobreposto por),

𝑑𝑢𝑟𝑖𝑛𝑔 (durante), 𝑐𝑜𝑛𝑡𝑎𝑖𝑛𝑠 (contém), 𝑠𝑡𝑎𝑟𝑡𝑠 (inicia), started-by (iniciado), 𝑓 𝑖𝑛𝑖𝑠ℎ𝑠

(fina-liza) e finished-by (finalizado por). A Tabela 1, ilustra os treze tipos de relacionamentos possíveis e sua representação segundo a álgebra de Allen [10].

Tabela 1 – Relações da álgebra de Allen. Relação Símbolo Símbolo inverso Exemplo

X 𝑏𝑒𝑓 𝑜𝑟𝑒 Y < > X X X Y Y Y X 𝑎𝑓 𝑡𝑒𝑟 Y > < Y Y Y X X X X 𝑒𝑞𝑢𝑎𝑙 Y = = X X X Y Y Y X 𝑚𝑒𝑒𝑡𝑠 Y 𝑚 𝑚𝑖 X X X Y Y Y X met-by Y 𝑚𝑖 𝑚 Y Y Y X X X X 𝑜𝑣𝑒𝑟𝑙𝑎𝑝𝑠 Y 𝑜 𝑜𝑖 X X X Y Y Y X overlaped-by Y 𝑜𝑖 𝑜 X X X Y Y Y X 𝑑𝑢𝑟𝑖𝑛𝑔 Y 𝑑 𝑑𝑖 X X X Y Y Y Y Y Y X 𝑐𝑜𝑛𝑡𝑎𝑖𝑛𝑠 Y 𝑑𝑖 𝑑 X X X X X X Y Y Y X 𝑠𝑡𝑎𝑟𝑡𝑠 Y 𝑠 𝑠𝑖 X X X Y Y Y Y Y X started-by Y 𝑠𝑖 𝑠 X X X X X Y Y Y X 𝑓 𝑖𝑛𝑖𝑠ℎ𝑠 Y 𝑓 𝑓 𝑖 X X X Y Y Y Y Y X finished-by Y 𝑓 𝑖 𝑓 X X X X X Y Y Y

Parte das relações definidas na álgebra de Allen foram incluídas no padrão SQL e são suportadas por alguns SGBD. A próxima seção descreve o suporte a relações temporais no padrão SQL.

3.1.2 Funcionalidades Temporais do Padrão SQL:2011

O padrão SQL:2011 define uma série de extensões e, entre estas, existem algumas extensões temporais. Em [11], são exemplificas tabelas com período de validade, tabelas com período de transação, e permite a combinação em tabelas bitemporais.

Para definição de chaves primárias em tabelas com período de validade, para que não haja sobreposição de períodos, o período pode ser adicionado à chave primária com a cláusula “WITHOUT OVERLAPS”. Chaves estrangeiras também ser adicionadas. Para expressar consultas a estas tabelas podem ser usados os predicados: “CONTAINS”,

36

“OVERLAPS”, “EQUALS”, “PRECEDES”, “SUCCEEDS”, “IMMEDIATELY PRECE-DES”, e “IMMEDIATELY SUCCEEDS”. Para fazer atualizações e deleções neste tipo de tabela, a cláusula “FOR PORTION OF” deve ser utilizada [11].

Os predicados do padrão SQL:2011 não correspondem exatamente aos operadores de Allen. A lista abaixo demonstra as expressões booleanas equivalentes, utilizando os operadores de Allen:

∙ X OVERLAPS Y:

(X overlaps Y) OR (X overlapped-by Y) OR (X during Y) OR (X contains Y) OR (X starts Y) OR (X started-by Y) OR (X finishes Y) OR (X finished-by Y) OR (X equal Y);

∙ X CONTAINS Y:

(X contains Y) OR (X starts Y)OR (X finishes Y) OR (X equal Y);

∙ X PRECEDES Y:

(X before Y) OR (X meets Y);

∙ X SUCCEEDS Y:

(X after Y) OR (X met-by Y);

∙ X EQUALS Y: X equal Y; ∙ X IMMEDIATELY PRECEDES Y: X meets Y; ∙ X IMMEDIATELY SUCCEEDS Y: X met-by Y;

O padrão define que uma tabela que contenha um período do tipo “SYSTEM_TIME”, e inclua “WITH SYSTEM VERSIONING” em sua definição é uma tabela com tempo de transação. Para consultar este tipo de tabela, os predicados “FOR SYSTEM_TIME AS OF”, “FOR SYSTEM_TIME FROM . . . TO . . .” (não inclui o tempo inicial), e “FOR TEM_TIME BETWEEN . . . AND . . .” (inclui o tempo inicial). O predicado “FOR SYS-TEM_TIME AS OF CURRENT_TIMESTAMP” é assumido por padrão, caso nenhum destes predicados sejam especificados [11].

Em [11] são ilustrados diversos exemplos de consultas com as funcionalidades tem-porais do padrão SQL:2011.

Documentos relacionados