网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.如何使SQL Server数据库支持XML.
.ExactPapers Oracle 1Z0-121 200.
.对Oracle学习者的一些建议:兴趣.
.Oracle9i 数据库管理实务讲座(七).
.Oracle Tuning (Oracle 性能调整.
.在字符集移值之前使用CSSCAN工具.
.grub中的分区命名方法.
.如何在Oracle中使用游标来实现多.
.oracle 存储过程的基本语法.
.Oracle 和 PHP 使用入门.
.如何让Linux运行两块以太网卡.
.讲解Oracle面试过程中常见的二十.
.实例讲解Oracle数据库自带的几个.
.Oracle数据库复制常用脚本.
.在一台机器配置两个listener.
.使用过的rman备份集的变化.
.Oracle错误案例:ORA-00235.
.oracle与unix时间的转换.
.设置sql进行跟踪.
.linux下安装oracle 10g 的艰难之.

Oracle Spatial时态空间数据库设计

发表日期:2008-2-9


需求前提:数据每年变化1~2次,软件预计生命周期50年。 实践环境:Oracle Spatial。 术语表:时空对象,快照。 时空对象:一个地理目标从诞生到消亡所经历的空间和时间范围及其属性信息。这是一个为处理时空数据方便而抽象出来的概念,相当于全信息模型中的全信息对象。为了理解时空对象,我们以二维地物为例。二维地物在二维空间中占据一定的空间范围,表现为一个二维几何体,也就是它的几何属性。假如再增加一条时间轴,成为(x,y,t)坐标系,并认为任何的空间对象都有诞生和消亡,则这个二维地物就在(x,y,t)坐标系中占据了一定的三维空间。我们就把二维地物从诞生到消亡这一时间段所占据的空间-时间范围称之为“时空对象”。同理,也可以将时空对象扩展为三维的空间对象在时间维度上的延续,也就是四维对象。时空对象的属性信息是一张二维表。 快照:一个地理目标在某一特定时刻所占据的空间范围及其属性信息,或者说:时空对象在某一特定的时刻所占据的空间范围及其相应的属性信息。举例来说,地图上绘制了一个饭店的位置,大小,这就是饭店的一个快照。因为饭店是从某一时刻才诞生的,又会在某一时刻消亡,而在诞生和消亡之间,还可能会搬迁或扩建。所以地图上反映的仅仅是饭店在某一时刻的状态,所以称之为饭店在某一时刻的快照或时空对象在某一特定时刻的快照。注重,快照总是对应于某一特定的时刻,否则将失去快照的意义。快照的属性信息是时空对象属性信息表中的一条记录。 设计方向:以时空对象的概念组织空间数据和属性数据,使得对地物变迁历史的查询和分析成为可能。对应用层屏蔽历史数据的处理过程,将历史数据的处理当作数据库模块的功能之一。 技术要点: 1、 Oracle包变量的会话独立性。 2、 动态视图技术(基于函数的视图) 每一个时空对象都是由多个快照记录所描述的。观察者的每一次观察都是基于一个特定的观察时间的。例如,图示中的观察者应该看到对象一的快照2和对象三的快照2,而无法看到对象二和对象一、三的其他快照记录。看不到对象二是因为在此观察时间之前,对象二已经消亡。看不到对象一的快照1是因为对象一有更新的观察数据快照2可以更好地近似反映对象二在当前观察时间所处的状态。 数据表:数据表的设计基于以上概念 存储过程:利用Oracle中包变量的会话独立性,在包中建立以下几个基本的存储过程:设置当前观察时间,获取当前观察时间,利用当前观察时间和传入的Snap_time,Snap_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的返回值也有了更丰富的含义,可以用不同的数字(例如:1,2,4)表示某一快照记录在当前时间段开始,结尾,中间的可见性。这种模式可以用于需要对两个不同时间点的数据进行比较的场合。 2、 增加对象关系表以描述时空对象之间的联系 时空对象之间可能会有各种各样的联系,例如:变化,融合,分裂等。可通过以下表格加以描述。 使用方法:假如是查询最新信息,即观察时间为系统当前时间,则直接访问视图即可。假如是查询历史数据,只需在数据连接会话中调用存储过程来设置当前观察时间,其效果是所有视图中可见的记录集合都是当前观察时间点可见的记录,其他记录不会出现在视图中。

上一篇:关于Oracle数据库的性能优化心得 人气:921
下一篇:优化数据库大幅度提高Oracle的性能 人气:950
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐