objetos móveis: modelagem e consulta cássio leonardo rodrigues raul fernandes herbster
TRANSCRIPT
Objetos móveis: modelagem e consulta
Cássio Leonardo RodriguesRaul 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
5 km
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 Modelagem1. Criação de tipos e operações entre
os tipos2. 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
−mpoint time point−mregion time region
Criação de Tipos
x
y
t
x
y
t
mpoint
mregion
Operaçõesattime mpoint × time pointminvalue,maxvalue mpoint pointstart,stop mpoint timeduration mpoint realconst point
mpoint
Operaçõesmdistance mpoint mpoint mrealvisits mpoint mregion mpointtrajectory mpoint lineinside point region boollength line real
Modelo Abstrato• Para os seguintes tipos e operaçõestipos point,time,real,mpoint,mrealoperaçõesattime mpoint × time pointmdistance mpoint × mpoint mreal
Modelo Abstrato• Para os tipos
}funçãoumaé:|{
}funçãoumaé:|{}{}{
}{
intint
2int
realtimemreal
potimempo
real
time
po
AAffA
AAffAIRAIRA
IRA
Modelo Abstrato• Para as operações
−Sejam r, s valores do tipo mpoint e t tempo
pontos dois entre euclidiana distância a representa ),( ondecontrário caso
)()( se ))(),(()( que tal:
),(
qpd
tstrtstrdtgAAg
srf
realtime
mdisttance
)(),( trtrfattime
Modelo Abstratoti
t
x
y
ti
ti
mdistance
attime
(xi,yi)
(xj,yj)
(xi,yi)
(xj,yj)
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çõestipos point,time,real,mpointoperações
attime mpoint × time point
Modelo Discreto•Para os tipos
)}:},,1{,(
),,,,:1(
,0|),,,(,),,,,({}{
onde }{
onde }{
1111
ji
iitimeipointi
mmmmmpoint
real
timetimetime
pointpointpoint
ttjimji
boolcboolbDtDpmi
mcbtpcbtpArealA
realDDA
realrealDDA
Modelo Discreto•Para as operações
),( trfattime
Consultasflights(id:string,from:string,to:string,route:mpoint)
“Quais os destinos distantes em no máximo 3 horas de Fortaleza?”
SELECT idFROM flightsWHERE from = “FOR” AND duration(route) <= 3.0
Consultas
“Quais são os vôos que passaram através de uma tempestade tropical?”
SELECT idFROM flights, weatherWHERE kind = “snow storm” AND
duration(visits(route,area)) > 0
flights(id:string,from:string,to:string,route:mpoint)weather(kind:string,area:mregion)
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
1. Definição de um conjunto conciso de tipos de dados para objetos móveis
2. Definir um esquema de avaliação de consulta a objetos móveis
3. 1 e 2 devem se basear soluções industriais prontas (off-the-shelf)
Idéia básica
SIGBásico
SGBD
Sistema Gerente de Localização de
OM
Dados Espaço-
Temporais
Representação de um ponto móvel
Representação de um ponto móvel
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óvelCREATE 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 minStartTime = 40 minEndTime = 60 minR = (50,50)
Custo = 5 minStartTime = 40 minEndTime = 60 minR = (50,50)
Custo = 5 minStartTime = 40 minEndTime = 60 minR = (50,50)
Esquema de processamento da consulta• Processamento de consulta em duas fases:
1. Filtragem2. 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
Custo = 5 minStartTime = 40 minEndTime = 60 minR = (50,50)
Q = (R,StartTime), (R,EndTime+Custo)
R = (50,50)
Custo = 5 minStartTime = 40 minEndTime = 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
ST ET ET + CostST + Cost
e1
ST ET ET + CostST + Cost
e1 e2 e3 e4
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
ST ET ET + CostST + Cost
e1
ST ET ET + CostST + Cost
e1
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
ST ET ET + CostST + Cost
e1
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