460 likes | 556 Views
Objetos móveis: modelagem e consulta. Cássio Leonardo Rodrigues Raul Fernandes Herbster. Roteiro. Motivação Contextualização Problemática Objetos Móveis Abordagem de Modelagem Avaliação de Consultas Comentários Finais. Motivação.
E N D
Objetos móveis: modelagem e consulta Cássio Leonardo Rodrigues Raul Fernandes Herbster
Roteiro • Motivação • Contextualização • Problemática • Objetos Móveis • Abordagem de Modelagem • Avaliação de Consultas • Comentários Finais
Motivação • Aplicações que manipulam objetos cujas características espaciais se modificam com o passar do tempo • Aplicações SIG envolvendo tempo • Aplicações de tempo real para monitoração de veículos • Aplicações de realidade virtual
Contextualização • A cidade Lyon pretende oferecer um novo serviço de transporte público • Em cada terminal de ônibus, o usuário pode consultar informações a respeito dos ônibus que circulam
Contextualização • Jean quer saber quais os ônibus que estarão dentre 5 min naquele terminal
Contextualização • Marie quer saber quais os ônibus estão a um raio de 5 km de distância daquele terminal
Contextualização • Mais exemplos • Quais aviões passaram pelo território aéreo da Venezuela na última semana? • Quais os satélites mais próximos à rota da nave espacial nas próximas 4 horas? • Quão rápido a Floresta Atlântica está sendo desmatada? • Rotas de migração de aves e baleias
Problemática Definir modelos para armazenamento e consulta de objetos móveis
Objetivos • Discutir abordagens para modelar objetos móveis • Analisar consultas a objetos móveis
Objetos Móveis • São objetos que se movem no espaço ao longo do tempo • Posição e/ou extensão • Exemplos • Trajetórias de transportes públicos • Evolução da área atingida por um câncer em um paciente
Abordagem de Modelagem • Criação de tipos e operações entre os tipos • Associar uma álgebra aos tipos e operações criadas • Modelo Abstrato • Modelo Discreto
Criação de Tipos • Tipos básicos • point – descreve um ponto no plano 2D • region – descreve uma região no plano 2D • time – descreve dimensões de tempo válidas • Tipos estendidos • mpointtime point • mregiontime region
Criação de Tipos mpoint mregion
Operações attime mpoint ×time point minvalue,maxvalue mpoint point start,stop mpoint time duration mpoint real const point mpoint
Operações mdistance mpoint mpoint mreal visits mpoint mregion mpoint trajectory mpoint line inside point region bool length line real
Modelo Abstrato • Para os seguintes tipos e operações tipospoint,time,real,mpoint,mreal operações attimempoint× time point mdistancempoint× mpoint mreal
Modelo Abstrato • Para os tipos
Modelo Abstrato • Para as operações • Sejam r, s valores do tipo mpoint e t tempo
Modelo Discreto • Modelos abstratos não podem ser implementados • São necessárias representações finitas • Modelos discretos são aproximações • Descrições finitas de conjuntos infinitos • Há dificuldades de mapear modelos abstratos em modelos discretos • Tipos de dados, operações
Modelo Discreto • Para os seguintes tipos e operações tipospoint,time,real,mpoint operações attimempoint× time point
Modelo Discreto • Para os tipos
Modelo Discreto • Para as operações
Consultas flights(id:string,from:string,to:string,route:mpoint) “Quais os destinos distantes em no máximo 3 horas de Fortaleza?” SELECT id FROM flights WHERE from = “FOR” AND duration(route) <= 3.0
Consultas flights(id:string,from:string,to:string,route:mpoint) weather(kind:string,area:mregion) “Quais são os vôos que passaram através de uma tempestade tropical?” SELECT id FROM flights, weather WHERE kind = “snow storm” AND duration(visits(route,area)) > 0
Avaliação de Consultas • Exemplo da frota de táxis • Qual o táxi mais próximo de um endereço específico? • Nós próximos 15 minutos, quais táxis estarão pelo menos 3 km próximos de um endereço de um cliente? • Quantos táxis viajaram mais de 5 km até chegar ao endereço de um cliente
Avaliação de Consultas • Objetivos • Definição de um conjunto conciso de tipos de dados para objetos móveis • Definir um esquema de avaliação de consulta a objetos móveis • 1 e 2 devem se basear soluções industriais prontas (off-the-shelf)
Modelo de dados • A trajetória é uma relação em cada elemento tem os seguintes atributos • (sequence#, (x, y), t, b) • Exemplo: (3, (50,75), 1000, true) • Em uma trajetória típica de 10 km de extensão, cada trecho tem cerca de 500 m
Modelo de dados • Definição do tipo trajetória CREATE TYPE trajectory AS OBJECT (SEQUENCE# integer, x integer, y integer, t real, b boolean); • Definição do tipo objeto móvel CREATE TYPE m_o AS OBJECT (id integer, T trajectory, color integer, driver person_id);
Predicados de consulta • Nos próximos 20 minutos, quais táxis estarão sempre pelo menos 5 minutos próximos de um endereço de um cliente, sem sair da sua trajetória original? • A consulta SQL equivalente é SELECT obj FROM M_O WHERE obj WITHIN cost minutes FROM R ALONG EXISTING PATH ALWAYS BETWEEN StartTime AND EndTime
Custo = 5 min StartTime = 40 min EndTime = 60 min R = (50,50)
Custo = 5 min StartTime = 40 min EndTime = 60 min R = (50,50)
Custo = 5 min StartTime = 40 min EndTime = 60 min R = (50,50)
Esquema de processamento da consulta • Processamento de consulta em duas fases: • Filtragem • Refinamento • Filtragem • Consulta SQL é mapeada para uma janela de consulta 3D, chamada Q • Trajetórias que intersectam Q são recuperadas e são armazenadas em um conjunto S
Q = (R,StartTime), (R,EndTime+Custo) Custo = 5 min StartTime = 40 min EndTime = 60 min R = (50,50)
Custo = 5 min StartTime = 40 min EndTime = 60 min
Esquema de processamento da consulta • Refinamento • Para cada trajetória T pertencente a S, vamos considerar a coordenada temporal em que T cruza o ponto R • e1 = tempo em que T intersecta R pela primeira vez • e2 = tempo em que T intersecta R pela segunda vez • ... e assim por diante
Esquema de processamento da consulta • Situação hipotética em que a consulta é satisfeita • Se e1 – StartTime > Cost • O objeto móvel está mais 5 min longe. Logo deve ser descartado e1 e2 e3 e4 ST ST + Cost ET ET + Cost e1 ST ST + Cost ET ET + Cost
Esquema de processamento da consulta • Se e1 – StartTime Cost • Precisamos analisar e1 em relação ao tempo final ET. Se e1 > ET então a trajetória deve ser selecionada • Situação ocorre quando o custo é maior que o intervalo em que o predicado deve valer e1 ST ST + Cost ET ET + Cost e1 ST ET ST + Cost ET + Cost
Esquema de processamento da consulta • se ET > e1, temos que analisar a subtrajetória entre e1 e ET com relação a e2, e3 etc. • Esse processo é feito recursivamente, atribuindo-se e1 a StartTime • Se não existe nenhum e2, a trajetória deve ser eliminada de S • No final, as trajetórias que permanecem em S são a resposta da consulta e1 ST ST + Cost ET ET + Cost
Comentários Finais • Solução simples e poderosa • Permite tratamento de geometrias que se modificam ao longo do tempo • Modelagem e consulta • Tipos de dados espaço-temporal podem ser usados para estender qualquer SGBD • Banco de dados e mobilidade
Referências • Martin Erwig, Ralf Hartmut Güting, Markus Schneider and Michalis Vazirgiannis. “Spatio-Temporal Data Types:An Approach to Modeling and Querying Moving Objects in Databases”. GeoInformatica Vol. 3, No. 3, 1999. • Michalis Vazirgiannis and Ouri Wolfson. “A Spatiotemporal Model and Language for Moving Objects on Road Networks”. C.S. Jensen et al. (Eds.): SSTD 2001, LNCS 2121, pp. 20-35, 2001