一种基于SQL运动目标时空查询语言
2014-12-31朱剑涛李芬红
朱剑涛 李芬红
摘要:运动目标时空查询语言是实现运动目标时空数据访问和分析的主要语言工具,是时空数据应用程序和运动目标时空数据库交互的查询语言。该文为了给用户提供方便的数据查询、数据操作和数据管理功能,运动目标时空查询语言的设计采用扩充商业对象关系数据库中标准SQL语言的方法。
关键词:运动目标;时空查询语言;SQL
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)35-8359-04
运动目标时空查询语言主要有两种实现途径。一种是独立于SQL标准进行时空查询语言设计与开发,这种方法开发难度和工作量都比较大,一般用于初级的实验系统。另一种是基于SQL的对象关系特性进行时空扩展,这种方法可以利用现有SQL强大的关系操作,且容易和对象关系型数据库集成[1]。
1 SQL
SQL Multimedia(简称SQL/MM)是结构化查询语言SQL针对多媒体应用的规范。SQL/MM国际标准主要包含空间拓展(Spatial)、全文索引(Full-Text)、静态图像(StillImage)和数据挖掘(Data Mining)等针对不同领域的内容。SQL-2008标准在这四个领域定义新的结构化查询类,使得空间等四各方面的SQL查询效率大幅提高,并使基于SQL/MM的查询更加规范、兼容性好且易于管理。特别是空间拓展支持包括点、线、面等二维空间数据,以及部分三维拓展功能和不同空间参考坐标系的支持。并且在几何操作、方位坐标、拓扑关系等方面都提供了强大的支持。
2 基于SQL的时态和空间查询语言
随着SQL新标准的修订,新特性和新技术的引入,SQL支持用户自定义类型,以便用它来获取和操纵复杂数据。SQL的这种可扩展特性为特殊领域的非结构化数据应用提供了支持,比如时态数据和空间数据等。
2.1 基于SQL的时态查询语言
SQL/Temporal[2]是对SQL标准进行时态扩展形成SQL的建议标准。SQL/Temporal是在SQL标准的基础上,增加了NOSEQUENCED、VALIDTIME和TRANSACTIONTIME等关键词[3][4]。时态查询语言是基于常用时间类型的查询语言,并且时间模型不完善。因此,该时态查询语言的功能非常有限,离实用还有很长一段距离。
2.2 基于SQL的空间查询语言
空间查询语言的基本要求是,采用更贴近人们对空间理解的概念,为空间数据提供更高层次的抽象。OGC[5]标准对SQL进行了空间特性的扩展,制定了空间数据类型及其相关的运算,它们对空间数据的应用具有指导意义。利用SQL的对象关系特性,把OGC指定的空间数据类型及其对应的空间操作函数作为SQL的空间扩展,使之可以进行空间数据查询和分析。OGC标准,空间操作分成三类:基本函数、拓扑/集合运算和空间分析。
3 基于SQL扩展的运动目标时空查询语言
因为对于运动目标时空查询来说,除了基本的时态、空间查询之外,更重要的是时空联合查询。从上述基于SQL扩展的时间和空间查询语言的总结和分析来看,二者都不能满足运动目标时空数据查询的要求。所以,需要在SQL、时态和空间查询语言基础上,针对运动目标时空查询的特点进行时空谓词扩展。
3.1 运动目标时空查询的分类
运动目标时空查询中常用的查询方式主要有四类:即Who(What)、When、Where和How查询,简称为4W查询。
3.1.1 Who查询——已知时间和空间条件或运动状态,查询运动目标
1) 时间点查询:[Qwho=(S,t)],其中[S]是一个空间查询条件,即一个空间窗口,查询[t]时刻与空间窗口相交的所有运动目标。
2) 时间段查询:[Qwho=(S,t1,t2)],如果[S]是[n]维空间的超立方体,[S]和时间区间[[t1,t2]]构成[n+1]维的超立方体。
3) 移动查询:[Qwho=(S1,S2,t1,t2)]是指运动目标的空间属性在[t1和t2]时刻分别满足[S1和S2],移动查询也称为时空隧道查询。
4) 最邻近查询:[QKNN=(D,t)],即查询最邻近的n个目标。这类查询也是非常有用的。
3.1.2 When查询——已知运动目标和空间条件,查询时间信息
When查询可以用[Qwhen=(Si,Oi)]表达,其中[Si]表示给定的空间条件,可以是通过空间谓词连接的空间对象,[Oi]是已知的运动目标。根据给定查询条件的不同,返回结果可能是(过去、现在或未来的)时间点或段。
3.1.3 Where查询——已知运动目标和时间条件,查询空间信息
Where查询可以用[Qwhere=(Ti,Oi)]表达,其中[Ti]表示给定的(过去、现在或未来)时间条件,可以是通过时间谓词连接的时间对象,[Oi]是已知的运动目标。根据给定的查询条件的不同,返回结果可能是目标对应的空间的位置、范围或某一段轨迹。
3.1.4 How查询——已知运动目标和时空条件,查询其运动信息
How查询可以用[Qhow=(Si,Ti,Oi)]表达,其中[Si]表示给定的空间条件,[Ti]表示给定的(过去、现在或未来)时间条件,可以是通过时间谓词连接的时间对象,[Oi]是已知的运动目标。
3.2 运动目标时空谓词扩展
运动目标时空数据的操作和分析是通过STQL语句(主要是指数据操纵语句)中时空谓词完成的。所以,运动目标时空谓词的扩展是实现运动目标时空数据库查询语言的核心任务。运动目标时空谓词主要包括数据库一致性、拓扑关系、投影、几何特征、距离和方向、集合和变化率等七类操作。endprint
3.2.1 运动目标时空数据库一致性操作
主要是指检核运动目标时空数据的有效性和运动目标的类型变异,以保证运动目标时空数据库的一致性,如表1所示。
3.2.2 运动目标时空拓扑和其它关系谓词操作
主要是指关于给定空间条件和运动目标之间距离和拓扑关系的操作谓词,如表2所示。
表2 拓扑和其他关系谓词操作
[谓词名\&实现函数\&返回值\&说明\&f_within_distance\&f_within_distance_func(distance NUMBER, m_polygon REF Moving_Polygon,tolerance NUMBER, tp Timepoint
其中,f_relate操作谓词允许用户通过mask参数输入拓扑关系类型的关键词有:ANYINTERACT(相交)、CONTAINS(包含且不相切)、COVEREDBY(被包含且相切)、COVERS(包含且相切)、DISJOINT(不相交)、EQUAL(相等)、INSIDE(包含且不接触)、OVERLAPBDYDISJOINT(重叠且边界不相交)、OVERLAPBDYINTERSECT(重叠且边界至少一处相交)、TOUCH(相触且无内部公共点)。
另外,mask的值也可以是上述关键词的逻辑组合。如INSIDE+TOUCH根据情况的不同可以返回INSIDE+ TOUCH或FALSE。
总之,f_relate函数返回的结果包括以下三种情况:
1) 当输入mask的值是一个或多个关系的关键词时,如果二者的关系是真返回关系的关键词,否则返回FALSE。
2) 当输入mask的值是DETERMINE时,函数返回一个能反映二者关系的最佳关键词。DETERMINE只能用在relate作为谓词出现在SQL语言的SELECT从句中。
3) 如果输入mask的值是ANYINTERACT时,如果二者不是分离的将返回TRUE,否则返回FALSE。
3.2.3 运动目标时间/空间域的投影/操作
主要是指运动目标在时间/空间域上的投影和相交操作,如表3所列。二维平面运动点目标在时间域上的投影如图1所示。
3.2.4 运动目标几何特征操作
关于面积、长度和几何组成部分的操作和相应的实现函数,如下表所示。
3.2.5 运动目标距离和方向操作
主要完成运动目标间距离和方向计算,包含两个函数:f_distance和f_direction。两个运动目标之间的距离实质上是两个运动目标之间的最短距离,即两个最邻近点或线段之间的距离。f_direction只是对Moving_Point定义的,用来计算用户指定时刻通过第一和第二个Moving_Point线段的角度(单位:度),其中[0≤angle<360]。
3.2.6 运动目标集合操作
主要完成运动目标间的并、交、差和异或等集合操作,如表6所列。
3.2.7 运动目标变化率操作
主要完成运动目标速度、速率和变化率等计算,如表7所列。其中,速率只有大小没有方向,速度是向量同时具有大小和方向。
4 小结
本文基于SQL进行时空谓词扩展实现运动目标时空查询语言,既可以利用现有强大的SQL关系操作,也可以很容易地与商业数据库集成。STQL继承了标准SQL的全部功能,在语言的语法表示上与标准SQL保持统一,提供了数据类型、数据表示和数据操作的可重用性。
参考文献:
[1] 单国慧.面向CJOP的运动目标时空数据模型研究[D].郑州: 解放军信息工程大学,2008.
[2] Abraham Silberschatz,Henry F Korth,Sudarshan S.数据库系统概念[M].杨冬青,唐世渭,等,译.北京:机械工业出版社,2003.
[3] Richard T Snodgrass,Michael H B?hlen,Christian S.Adding Valid Time to SQL/Temporal[S].ANSI Experts Contribution, ANSIX3H2—96—501r1,ISO/IECJTC1/SC21/WG3DBLMAD—146r2, International Organization for Standardization, 1996.
[4] Richard T Snodgrass,Michael H B?hlen,Christian S Jensen.Adding Transaction Valid Time to SQL/Temporal[S].ANSI Experts Contribution, ISO/IECJTC1/SC21/WG3DBLMCI—147r2, International Organization for Standardization, 1996.
[5] Open GIS Consortium[EB/OL].http://www.opengis.org.
[6] 王宏勇.空间运动对象时空数据模型的研究[D].郑州: 解放军信息工程大学,2005.
[7] Cindy Xinmin Chen.Data Models and Query Languages of Spatio-Temporal Information[D]. University of California Los Angeles,2001.
3.2.1 运动目标时空数据库一致性操作
主要是指检核运动目标时空数据的有效性和运动目标的类型变异,以保证运动目标时空数据库的一致性,如表1所示。
3.2.2 运动目标时空拓扑和其它关系谓词操作
主要是指关于给定空间条件和运动目标之间距离和拓扑关系的操作谓词,如表2所示。
表2 拓扑和其他关系谓词操作
[谓词名\&实现函数\&返回值\&说明\&f_within_distance\&f_within_distance_func(distance NUMBER, m_polygon REF Moving_Polygon,tolerance NUMBER, tp Timepoint
其中,f_relate操作谓词允许用户通过mask参数输入拓扑关系类型的关键词有:ANYINTERACT(相交)、CONTAINS(包含且不相切)、COVEREDBY(被包含且相切)、COVERS(包含且相切)、DISJOINT(不相交)、EQUAL(相等)、INSIDE(包含且不接触)、OVERLAPBDYDISJOINT(重叠且边界不相交)、OVERLAPBDYINTERSECT(重叠且边界至少一处相交)、TOUCH(相触且无内部公共点)。
另外,mask的值也可以是上述关键词的逻辑组合。如INSIDE+TOUCH根据情况的不同可以返回INSIDE+ TOUCH或FALSE。
总之,f_relate函数返回的结果包括以下三种情况:
1) 当输入mask的值是一个或多个关系的关键词时,如果二者的关系是真返回关系的关键词,否则返回FALSE。
2) 当输入mask的值是DETERMINE时,函数返回一个能反映二者关系的最佳关键词。DETERMINE只能用在relate作为谓词出现在SQL语言的SELECT从句中。
3) 如果输入mask的值是ANYINTERACT时,如果二者不是分离的将返回TRUE,否则返回FALSE。
3.2.3 运动目标时间/空间域的投影/操作
主要是指运动目标在时间/空间域上的投影和相交操作,如表3所列。二维平面运动点目标在时间域上的投影如图1所示。
3.2.4 运动目标几何特征操作
关于面积、长度和几何组成部分的操作和相应的实现函数,如下表所示。
3.2.5 运动目标距离和方向操作
主要完成运动目标间距离和方向计算,包含两个函数:f_distance和f_direction。两个运动目标之间的距离实质上是两个运动目标之间的最短距离,即两个最邻近点或线段之间的距离。f_direction只是对Moving_Point定义的,用来计算用户指定时刻通过第一和第二个Moving_Point线段的角度(单位:度),其中[0≤angle<360]。
3.2.6 运动目标集合操作
主要完成运动目标间的并、交、差和异或等集合操作,如表6所列。
3.2.7 运动目标变化率操作
主要完成运动目标速度、速率和变化率等计算,如表7所列。其中,速率只有大小没有方向,速度是向量同时具有大小和方向。
4 小结
本文基于SQL进行时空谓词扩展实现运动目标时空查询语言,既可以利用现有强大的SQL关系操作,也可以很容易地与商业数据库集成。STQL继承了标准SQL的全部功能,在语言的语法表示上与标准SQL保持统一,提供了数据类型、数据表示和数据操作的可重用性。
参考文献:
[1] 单国慧.面向CJOP的运动目标时空数据模型研究[D].郑州: 解放军信息工程大学,2008.
[2] Abraham Silberschatz,Henry F Korth,Sudarshan S.数据库系统概念[M].杨冬青,唐世渭,等,译.北京:机械工业出版社,2003.
[3] Richard T Snodgrass,Michael H B?hlen,Christian S.Adding Valid Time to SQL/Temporal[S].ANSI Experts Contribution, ANSIX3H2—96—501r1,ISO/IECJTC1/SC21/WG3DBLMAD—146r2, International Organization for Standardization, 1996.
[4] Richard T Snodgrass,Michael H B?hlen,Christian S Jensen.Adding Transaction Valid Time to SQL/Temporal[S].ANSI Experts Contribution, ISO/IECJTC1/SC21/WG3DBLMCI—147r2, International Organization for Standardization, 1996.
[5] Open GIS Consortium[EB/OL].http://www.opengis.org.
[6] 王宏勇.空间运动对象时空数据模型的研究[D].郑州: 解放军信息工程大学,2005.
[7] Cindy Xinmin Chen.Data Models and Query Languages of Spatio-Temporal Information[D]. University of California Los Angeles,2001.
3.2.1 运动目标时空数据库一致性操作
主要是指检核运动目标时空数据的有效性和运动目标的类型变异,以保证运动目标时空数据库的一致性,如表1所示。
3.2.2 运动目标时空拓扑和其它关系谓词操作
主要是指关于给定空间条件和运动目标之间距离和拓扑关系的操作谓词,如表2所示。
表2 拓扑和其他关系谓词操作
[谓词名\&实现函数\&返回值\&说明\&f_within_distance\&f_within_distance_func(distance NUMBER, m_polygon REF Moving_Polygon,tolerance NUMBER, tp Timepoint
其中,f_relate操作谓词允许用户通过mask参数输入拓扑关系类型的关键词有:ANYINTERACT(相交)、CONTAINS(包含且不相切)、COVEREDBY(被包含且相切)、COVERS(包含且相切)、DISJOINT(不相交)、EQUAL(相等)、INSIDE(包含且不接触)、OVERLAPBDYDISJOINT(重叠且边界不相交)、OVERLAPBDYINTERSECT(重叠且边界至少一处相交)、TOUCH(相触且无内部公共点)。
另外,mask的值也可以是上述关键词的逻辑组合。如INSIDE+TOUCH根据情况的不同可以返回INSIDE+ TOUCH或FALSE。
总之,f_relate函数返回的结果包括以下三种情况:
1) 当输入mask的值是一个或多个关系的关键词时,如果二者的关系是真返回关系的关键词,否则返回FALSE。
2) 当输入mask的值是DETERMINE时,函数返回一个能反映二者关系的最佳关键词。DETERMINE只能用在relate作为谓词出现在SQL语言的SELECT从句中。
3) 如果输入mask的值是ANYINTERACT时,如果二者不是分离的将返回TRUE,否则返回FALSE。
3.2.3 运动目标时间/空间域的投影/操作
主要是指运动目标在时间/空间域上的投影和相交操作,如表3所列。二维平面运动点目标在时间域上的投影如图1所示。
3.2.4 运动目标几何特征操作
关于面积、长度和几何组成部分的操作和相应的实现函数,如下表所示。
3.2.5 运动目标距离和方向操作
主要完成运动目标间距离和方向计算,包含两个函数:f_distance和f_direction。两个运动目标之间的距离实质上是两个运动目标之间的最短距离,即两个最邻近点或线段之间的距离。f_direction只是对Moving_Point定义的,用来计算用户指定时刻通过第一和第二个Moving_Point线段的角度(单位:度),其中[0≤angle<360]。
3.2.6 运动目标集合操作
主要完成运动目标间的并、交、差和异或等集合操作,如表6所列。
3.2.7 运动目标变化率操作
主要完成运动目标速度、速率和变化率等计算,如表7所列。其中,速率只有大小没有方向,速度是向量同时具有大小和方向。
4 小结
本文基于SQL进行时空谓词扩展实现运动目标时空查询语言,既可以利用现有强大的SQL关系操作,也可以很容易地与商业数据库集成。STQL继承了标准SQL的全部功能,在语言的语法表示上与标准SQL保持统一,提供了数据类型、数据表示和数据操作的可重用性。
参考文献:
[1] 单国慧.面向CJOP的运动目标时空数据模型研究[D].郑州: 解放军信息工程大学,2008.
[2] Abraham Silberschatz,Henry F Korth,Sudarshan S.数据库系统概念[M].杨冬青,唐世渭,等,译.北京:机械工业出版社,2003.
[3] Richard T Snodgrass,Michael H B?hlen,Christian S.Adding Valid Time to SQL/Temporal[S].ANSI Experts Contribution, ANSIX3H2—96—501r1,ISO/IECJTC1/SC21/WG3DBLMAD—146r2, International Organization for Standardization, 1996.
[4] Richard T Snodgrass,Michael H B?hlen,Christian S Jensen.Adding Transaction Valid Time to SQL/Temporal[S].ANSI Experts Contribution, ISO/IECJTC1/SC21/WG3DBLMCI—147r2, International Organization for Standardization, 1996.
[5] Open GIS Consortium[EB/OL].http://www.opengis.org.
[6] 王宏勇.空间运动对象时空数据模型的研究[D].郑州: 解放军信息工程大学,2005.
[7] Cindy Xinmin Chen.Data Models and Query Languages of Spatio-Temporal Information[D]. University of California Los Angeles,2001.