专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »数据库 » oracle数据库:Oracle Spatial时态空间数据库设计 »正文

oracle数据库:Oracle Spatial时态空间数据库设计

来源: 发布时间:星期一, 2009年1月26日 浏览:2次 评论:0
="t18"> 需求前提:数据每年变化1~2次软件Software预计生命周期50年 实战环境:Oracle Spatial 术语表:时空对象快照 时空对象:个地理目标从诞生到消亡所经历空间和时间范围及其属性信息这是个为处理时空数据方便而抽象出来概念相当于全信息模型中全信息对象为了理解时空对象我们以 2维地物为例 2维地物在 2维空间中占据空间范围表现为个 2维几何体也就是它几何属性假如再增加条时间轴成为(xyt)坐标系并认为任何空间对象都有诞生和消亡则这个 2维地物就在(xyt)坐标系中占据了 3维空间我们就把 2维地物从诞生到消亡这时间段所占据空间-时间范围称的为“时空对象”同理也可以将时空对象扩展为 3维空间对象在时间维度上延续也就是 4维对象时空对象属性信息是张 2维表 快照:个地理目标在某特定时刻所占据空间范围及其属性信息或者说:时空对象在某特定时刻所占据空间范围及其相应属性信息举例来说地图上绘制了个饭店位置大小这就是饭店个快照饭店是从某时刻才诞生又会在某时刻消亡而在诞生和消亡的间还可能会搬迁或扩建所以地图上反映仅仅是饭店在某时刻状态所以称的为饭店在某时刻快照或时空对象在某特定时刻快照注重快照总是对应于某特定时刻否则将失去快照意义快照属性信息是时空对象属性信息表中条记录 设计方向:以时空对象概念组织空间数据和属性数据使得对地物变迁历史查询和分析成为可能对应用层屏蔽历史数据处理过程将历史数据处理当作数据库模块功能的 技术要点: 1、 Oracle包变量会话独立性 2、 动态视图技术(基于视图) 每个时空对象都是由多个快照记录所描述观察者次观察都是基于个特定观察时间例如图示中观察者应该看到对象快照2和对象 3快照2而无法看到对象 2和对象、 3其他快照记录看不到对象 2是在此观察时间的前对象 2已经消亡看不到对象快照1是对象有更新观察数据快照2可以更好地近似反映对象 2在当前观察时间所处状态 数据表:数据表设计基于以上概念 存储过程:利用Oracle中包变量会话独立性在包中建立以下几个基本存储过程:设置当前观察时间获取当前观察时间利用当前观察时间和传入Snap_timeSnap_end参数判定快照记录是否可见(Snap_Filter) 视图:建立在快照记录表上视图基于存储Snap_Filter实现对表中记录筛选传入参数为:Snap_time,Snap_End.返回值为此快照是否可见
SELECT Obj_id, Snap_time, Geom, Attr



FROM 快照记录表
WHERE Snap_Filter(Snap_time, Snap_end) > 0;



触发器:视图上触发器使应用层用户可以在视图中插入修改删除数据 要点: 1、维护表中数据时要避免出现时间悖论造成时间逻辑混乱 2、快照记录表中Snap_end列维护稍微麻烦应小心谨慎 扩展和变化: 1、 支持多种观察模式 为了查询功能灵活性可以增加几个扩展功能存储过程:设置当前观察模式获取当前观察模式重写Snap_Filter以支持多种观察模式 例如:【对象历史追溯模式】此时当前观察时间这参数失效Snap_Filter行为发生变化视图中看到是某(或某几个)指定对象所有快照这种模式便于对单个对象整个历史变迁过程加以追踪 【时间段观察模式】此时需要设置观察时间不是个时间点而是个时间段Snap_Filter返回值也有了更丰富含义可以用区别数字(例如:124)表示某快照记录在当前时间段开始结尾中间可见性这种模式可以用于需要对两个区别时间点数据进行比较场合 2、 增加对象关系表以描述时空对象的间联系 时空对象的间可能会有各种各样联系例如:变化融合分裂等可通过以下表格加以描述 使用思路方法:假如是查询最新信息即观察时间为系统当前时间则直接访问视图即可假如是查询历史数据只需在数据连接会话中存储过程来设置当前观察时间其效果是所有视图中可见记录集合都是当前观察时间点可见记录其他记录不会出现在视图中

相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: