移动对象数据库
引言
本章我们从位置管理的视角来考虑移动对象数据
库。
假设我们需要在数据库中管理一些移动对象的集合
(小汽车,直升机,手持移动电话的人等),而这
些移动对象正在运动,我们希望检索这些移动对象
的当前位置,还有它们当前如何移动的信息,未来
位置的查询。
3.1:讨论一些基本的假设和问题
3.2:介绍MOST(移动对象时空)数据模型
3.3:FTL(未来时态逻辑)的查询语言
3.4:移动对象向数据库发送自己当前位置和移动
速度的实际和频率问题
3.5:不确定轨迹问题
3.1 位置管理
许多应用都需要记录移动对象位置的轨迹。
例如:
在一个存储了某个城市所以出租车位置的数据
库中,一个查询可能是:
检索出接近Kongigsallee48(用户请求查询的位
置)的3辆空闲出租车
运输公司数据库:哪些卡车距离卡车T48(可能
这辆车需要帮助)在10公里之内
接下来的15分钟之内到达峡谷的友军直升机
本章提出的基本思路是通过运动矢量而不是通
过对象的位置来表示和存储移动对象(即对象
的位置是时间的一个函数),即使数据库没有
任何显示的更新,数据库中所表示的位置也是
连续变化的,虽然仍需偶尔更新运动矢量,但
与存储位置的方式相比,它的更新频率要小的
多。
运动矢量不是显示可见的,所以引入新的概念
“动态属性”。因为动态属性的值随时间而改
变,因此得到的查询结果也会随时间而变化:
相同的查询在不同时间里执行通常会产生不同
的结果,即使数据库中的内容没有改变。
例:
假设一辆小汽车在高速公路上行驶时驾驶员发
出一个查询:检索出距离我当前位置5公里之内
的便宜的汽车旅馆,此时连续地重复计算这一
查询是有意义的,因为当小汽车行驶时该查询
结果会随之变化。然而,在传统数据库中连续
查询(如触发器)必须在每一次相关更新时重
新计算,但是并没有明确说明该如何执行连续
查询。
后面内容中,我们将描述一种执行策略,该策
略仅需要对连续查询计算一次,并且只在显示
更新是才需要重新计算查询。