国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種基于SQL運(yùn)動(dòng)目標(biāo)時(shí)空查詢語言

2014-12-31 00:33朱劍濤李芬紅
電腦知識與技術(shù) 2014年35期

朱劍濤 李芬紅

摘要:運(yùn)動(dòng)目標(biāo)時(shí)空查詢語言是實(shí)現(xiàn)運(yùn)動(dòng)目標(biāo)時(shí)空數(shù)據(jù)訪問和分析的主要語言工具,是時(shí)空數(shù)據(jù)應(yīng)用程序和運(yùn)動(dòng)目標(biāo)時(shí)空數(shù)據(jù)庫交互的查詢語言。該文為了給用戶提供方便的數(shù)據(jù)查詢、數(shù)據(jù)操作和數(shù)據(jù)管理功能,運(yùn)動(dòng)目標(biāo)時(shí)空查詢語言的設(shè)計(jì)采用擴(kuò)充商業(yè)對象關(guān)系數(shù)據(jù)庫中標(biāo)準(zhǔn)SQL語言的方法。

關(guān)鍵詞:運(yùn)動(dòng)目標(biāo);時(shí)空查詢語言;SQL

中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2014)35-8359-04

運(yùn)動(dòng)目標(biāo)時(shí)空查詢語言主要有兩種實(shí)現(xiàn)途徑。一種是獨(dú)立于SQL標(biāo)準(zhǔn)進(jìn)行時(shí)空查詢語言設(shè)計(jì)與開發(fā),這種方法開發(fā)難度和工作量都比較大,一般用于初級的實(shí)驗(yàn)系統(tǒng)。另一種是基于SQL的對象關(guān)系特性進(jìn)行時(shí)空擴(kuò)展,這種方法可以利用現(xiàn)有SQL強(qiáng)大的關(guān)系操作,且容易和對象關(guān)系型數(shù)據(jù)庫集成[1]。

1 SQL

SQL Multimedia(簡稱SQL/MM)是結(jié)構(gòu)化查詢語言SQL針對多媒體應(yīng)用的規(guī)范。SQL/MM國際標(biāo)準(zhǔn)主要包含空間拓展(Spatial)、全文索引(Full-Text)、靜態(tài)圖像(StillImage)和數(shù)據(jù)挖掘(Data Mining)等針對不同領(lǐng)域的內(nèi)容。SQL-2008標(biāo)準(zhǔn)在這四個(gè)領(lǐng)域定義新的結(jié)構(gòu)化查詢類,使得空間等四各方面的SQL查詢效率大幅提高,并使基于SQL/MM的查詢更加規(guī)范、兼容性好且易于管理。特別是空間拓展支持包括點(diǎn)、線、面等二維空間數(shù)據(jù),以及部分三維拓展功能和不同空間參考坐標(biāo)系的支持。并且在幾何操作、方位坐標(biāo)、拓?fù)潢P(guān)系等方面都提供了強(qiáng)大的支持。

2 基于SQL的時(shí)態(tài)和空間查詢語言

隨著SQL新標(biāo)準(zhǔn)的修訂,新特性和新技術(shù)的引入,SQL支持用戶自定義類型,以便用它來獲取和操縱復(fù)雜數(shù)據(jù)。SQL的這種可擴(kuò)展特性為特殊領(lǐng)域的非結(jié)構(gòu)化數(shù)據(jù)應(yīng)用提供了支持,比如時(shí)態(tài)數(shù)據(jù)和空間數(shù)據(jù)等。

2.1 基于SQL的時(shí)態(tài)查詢語言

SQL/Temporal[2]是對SQL標(biāo)準(zhǔn)進(jìn)行時(shí)態(tài)擴(kuò)展形成SQL的建議標(biāo)準(zhǔn)。SQL/Temporal是在SQL標(biāo)準(zhǔn)的基礎(chǔ)上,增加了NOSEQUENCED、VALIDTIME和TRANSACTIONTIME等關(guān)鍵詞[3][4]。時(shí)態(tài)查詢語言是基于常用時(shí)間類型的查詢語言,并且時(shí)間模型不完善。因此,該時(shí)態(tài)查詢語言的功能非常有限,離實(shí)用還有很長一段距離。

2.2 基于SQL的空間查詢語言

空間查詢語言的基本要求是,采用更貼近人們對空間理解的概念,為空間數(shù)據(jù)提供更高層次的抽象。OGC[5]標(biāo)準(zhǔn)對SQL進(jìn)行了空間特性的擴(kuò)展,制定了空間數(shù)據(jù)類型及其相關(guān)的運(yùn)算,它們對空間數(shù)據(jù)的應(yīng)用具有指導(dǎo)意義。利用SQL的對象關(guān)系特性,把OGC指定的空間數(shù)據(jù)類型及其對應(yīng)的空間操作函數(shù)作為SQL的空間擴(kuò)展,使之可以進(jìn)行空間數(shù)據(jù)查詢和分析。OGC標(biāo)準(zhǔn),空間操作分成三類:基本函數(shù)、拓?fù)?集合運(yùn)算和空間分析。

3 基于SQL擴(kuò)展的運(yùn)動(dòng)目標(biāo)時(shí)空查詢語言

因?yàn)閷τ谶\(yùn)動(dòng)目標(biāo)時(shí)空查詢來說,除了基本的時(shí)態(tài)、空間查詢之外,更重要的是時(shí)空聯(lián)合查詢。從上述基于SQL擴(kuò)展的時(shí)間和空間查詢語言的總結(jié)和分析來看,二者都不能滿足運(yùn)動(dòng)目標(biāo)時(shí)空數(shù)據(jù)查詢的要求。所以,需要在SQL、時(shí)態(tài)和空間查詢語言基礎(chǔ)上,針對運(yùn)動(dòng)目標(biāo)時(shí)空查詢的特點(diǎn)進(jìn)行時(shí)空謂詞擴(kuò)展。

3.1 運(yùn)動(dòng)目標(biāo)時(shí)空查詢的分類

運(yùn)動(dòng)目標(biāo)時(shí)空查詢中常用的查詢方式主要有四類:即Who(What)、When、Where和How查詢,簡稱為4W查詢。

3.1.1 Who查詢——已知時(shí)間和空間條件或運(yùn)動(dòng)狀態(tài),查詢運(yùn)動(dòng)目標(biāo)

1) 時(shí)間點(diǎn)查詢:[Qwho=(S,t)],其中[S]是一個(gè)空間查詢條件,即一個(gè)空間窗口,查詢[t]時(shí)刻與空間窗口相交的所有運(yùn)動(dòng)目標(biāo)。

2) 時(shí)間段查詢:[Qwho=(S,t1,t2)],如果[S]是[n]維空間的超立方體,[S]和時(shí)間區(qū)間[[t1,t2]]構(gòu)成[n+1]維的超立方體。

3) 移動(dòng)查詢:[Qwho=(S1,S2,t1,t2)]是指運(yùn)動(dòng)目標(biāo)的空間屬性在[t1和t2]時(shí)刻分別滿足[S1和S2],移動(dòng)查詢也稱為時(shí)空隧道查詢。

4) 最鄰近查詢:[QKNN=(D,t)],即查詢最鄰近的n個(gè)目標(biāo)。這類查詢也是非常有用的。

3.1.2 When查詢——已知運(yùn)動(dòng)目標(biāo)和空間條件,查詢時(shí)間信息

When查詢可以用[Qwhen=(Si,Oi)]表達(dá),其中[Si]表示給定的空間條件,可以是通過空間謂詞連接的空間對象,[Oi]是已知的運(yùn)動(dòng)目標(biāo)。根據(jù)給定查詢條件的不同,返回結(jié)果可能是(過去、現(xiàn)在或未來的)時(shí)間點(diǎn)或段。

3.1.3 Where查詢——已知運(yùn)動(dòng)目標(biāo)和時(shí)間條件,查詢空間信息

Where查詢可以用[Qwhere=(Ti,Oi)]表達(dá),其中[Ti]表示給定的(過去、現(xiàn)在或未來)時(shí)間條件,可以是通過時(shí)間謂詞連接的時(shí)間對象,[Oi]是已知的運(yùn)動(dòng)目標(biāo)。根據(jù)給定的查詢條件的不同,返回結(jié)果可能是目標(biāo)對應(yīng)的空間的位置、范圍或某一段軌跡。

3.1.4 How查詢——已知運(yùn)動(dòng)目標(biāo)和時(shí)空條件,查詢其運(yùn)動(dòng)信息

How查詢可以用[Qhow=(Si,Ti,Oi)]表達(dá),其中[Si]表示給定的空間條件,[Ti]表示給定的(過去、現(xiàn)在或未來)時(shí)間條件,可以是通過時(shí)間謂詞連接的時(shí)間對象,[Oi]是已知的運(yùn)動(dòng)目標(biāo)。

3.2 運(yùn)動(dòng)目標(biāo)時(shí)空謂詞擴(kuò)展

運(yùn)動(dòng)目標(biāo)時(shí)空數(shù)據(jù)的操作和分析是通過STQL語句(主要是指數(shù)據(jù)操縱語句)中時(shí)空謂詞完成的。所以,運(yùn)動(dòng)目標(biāo)時(shí)空謂詞的擴(kuò)展是實(shí)現(xiàn)運(yùn)動(dòng)目標(biāo)時(shí)空數(shù)據(jù)庫查詢語言的核心任務(wù)。運(yùn)動(dòng)目標(biāo)時(shí)空謂詞主要包括數(shù)據(jù)庫一致性、拓?fù)潢P(guān)系、投影、幾何特征、距離和方向、集合和變化率等七類操作。endprint

3.2.1 運(yùn)動(dòng)目標(biāo)時(shí)空數(shù)據(jù)庫一致性操作

主要是指檢核運(yùn)動(dòng)目標(biāo)時(shí)空數(shù)據(jù)的有效性和運(yùn)動(dòng)目標(biāo)的類型變異,以保證運(yùn)動(dòng)目標(biāo)時(shí)空數(shù)據(jù)庫的一致性,如表1所示。

3.2.2 運(yùn)動(dòng)目標(biāo)時(shí)空拓?fù)浜推渌P(guān)系謂詞操作

主要是指關(guān)于給定空間條件和運(yùn)動(dòng)目標(biāo)之間距離和拓?fù)潢P(guān)系的操作謂詞,如表2所示。

表2 拓?fù)浜推渌P(guān)系謂詞操作

[謂詞名\&實(shí)現(xiàn)函數(shù)\&返回值\&說明\&f_within_distance\&f_within_distance_func(distance NUMBER, m_polygon REF Moving_Polygon,tolerance NUMBER, tp Timepoint)\&Boolean\&判斷運(yùn)動(dòng)目標(biāo)某一時(shí)刻是否在指定距離之內(nèi)\&f_within_distance_func (distance NUMBER, m_polygon REF Moving_Polygon,tolerance NUMBER)\&Moving_Object\&查詢在給定距離之內(nèi)的運(yùn)動(dòng)目標(biāo)\&f_relate\&f_relate_func (mask Varchar2, m_polygon REF Moving_Polygon, tolerance NUMBER, tp Timepoint)\&Boolean\&判斷目標(biāo)某時(shí)刻是否滿足拓?fù)潢P(guān)系\&f_relate_func (mask Varchar2, m_polygon REF Moving_Polygon, tolerance NUMBER)\&Moving_Object\&查詢滿足拓?fù)潢P(guān)系的運(yùn)動(dòng)目標(biāo)\&]

其中,f_relate操作謂詞允許用戶通過mask參數(shù)輸入拓?fù)潢P(guān)系類型的關(guān)鍵詞有:ANYINTERACT(相交)、CONTAINS(包含且不相切)、COVEREDBY(被包含且相切)、COVERS(包含且相切)、DISJOINT(不相交)、EQUAL(相等)、INSIDE(包含且不接觸)、OVERLAPBDYDISJOINT(重疊且邊界不相交)、OVERLAPBDYINTERSECT(重疊且邊界至少一處相交)、TOUCH(相觸且無內(nèi)部公共點(diǎn))。

另外,mask的值也可以是上述關(guān)鍵詞的邏輯組合。如INSIDE+TOUCH根據(jù)情況的不同可以返回INSIDE+ TOUCH或FALSE。

總之,f_relate函數(shù)返回的結(jié)果包括以下三種情況:

1) 當(dāng)輸入mask的值是一個(gè)或多個(gè)關(guān)系的關(guān)鍵詞時(shí),如果二者的關(guān)系是真返回關(guān)系的關(guān)鍵詞,否則返回FALSE。

2) 當(dāng)輸入mask的值是DETERMINE時(shí),函數(shù)返回一個(gè)能反映二者關(guān)系的最佳關(guān)鍵詞。DETERMINE只能用在relate作為謂詞出現(xiàn)在SQL語言的SELECT從句中。

3) 如果輸入mask的值是ANYINTERACT時(shí),如果二者不是分離的將返回TRUE,否則返回FALSE。

3.2.3 運(yùn)動(dòng)目標(biāo)時(shí)間/空間域的投影/操作

主要是指運(yùn)動(dòng)目標(biāo)在時(shí)間/空間域上的投影和相交操作,如表3所列。二維平面運(yùn)動(dòng)點(diǎn)目標(biāo)在時(shí)間域上的投影如圖1所示。

3.2.4 運(yùn)動(dòng)目標(biāo)幾何特征操作

關(guān)于面積、長度和幾何組成部分的操作和相應(yīng)的實(shí)現(xiàn)函數(shù),如下表所示。

3.2.5 運(yùn)動(dòng)目標(biāo)距離和方向操作

主要完成運(yùn)動(dòng)目標(biāo)間距離和方向計(jì)算,包含兩個(gè)函數(shù):f_distance和f_direction。兩個(gè)運(yùn)動(dòng)目標(biāo)之間的距離實(shí)質(zhì)上是兩個(gè)運(yùn)動(dòng)目標(biāo)之間的最短距離,即兩個(gè)最鄰近點(diǎn)或線段之間的距離。f_direction只是對Moving_Point定義的,用來計(jì)算用戶指定時(shí)刻通過第一和第二個(gè)Moving_Point線段的角度(單位:度),其中[0≤angle<360]。

3.2.6 運(yùn)動(dòng)目標(biāo)集合操作

主要完成運(yùn)動(dòng)目標(biāo)間的并、交、差和異或等集合操作,如表6所列。

3.2.7 運(yùn)動(dòng)目標(biāo)變化率操作

主要完成運(yùn)動(dòng)目標(biāo)速度、速率和變化率等計(jì)算,如表7所列。其中,速率只有大小沒有方向,速度是向量同時(shí)具有大小和方向。

4 小結(jié)

本文基于SQL進(jìn)行時(shí)空謂詞擴(kuò)展實(shí)現(xiàn)運(yùn)動(dòng)目標(biāo)時(shí)空查詢語言,既可以利用現(xiàn)有強(qiáng)大的SQL關(guān)系操作,也可以很容易地與商業(yè)數(shù)據(jù)庫集成。STQL繼承了標(biāo)準(zhǔn)SQL的全部功能,在語言的語法表示上與標(biāo)準(zhǔn)SQL保持統(tǒng)一,提供了數(shù)據(jù)類型、數(shù)據(jù)表示和數(shù)據(jù)操作的可重用性。

參考文獻(xiàn):

[1] 單國慧.面向CJOP的運(yùn)動(dòng)目標(biāo)時(shí)空數(shù)據(jù)模型研究[D].鄭州: 解放軍信息工程大學(xué),2008.

[2] Abraham Silberschatz,Henry F Korth,Sudarshan S.數(shù)據(jù)庫系統(tǒng)概念[M].楊冬青,唐世渭,等,譯.北京:機(jī)械工業(yè)出版社,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] 王宏勇.空間運(yùn)動(dòng)對象時(shí)空數(shù)據(jù)模型的研究[D].鄭州: 解放軍信息工程大學(xué),2005.

[7] Cindy Xinmin Chen.Data Models and Query Languages of Spatio-Temporal Information[D]. University of California Los Angeles,2001.

3.2.1 運(yùn)動(dòng)目標(biāo)時(shí)空數(shù)據(jù)庫一致性操作

主要是指檢核運(yùn)動(dòng)目標(biāo)時(shí)空數(shù)據(jù)的有效性和運(yùn)動(dòng)目標(biāo)的類型變異,以保證運(yùn)動(dòng)目標(biāo)時(shí)空數(shù)據(jù)庫的一致性,如表1所示。

3.2.2 運(yùn)動(dòng)目標(biāo)時(shí)空拓?fù)浜推渌P(guān)系謂詞操作

主要是指關(guān)于給定空間條件和運(yùn)動(dòng)目標(biāo)之間距離和拓?fù)潢P(guān)系的操作謂詞,如表2所示。

表2 拓?fù)浜推渌P(guān)系謂詞操作

[謂詞名\&實(shí)現(xiàn)函數(shù)\&返回值\&說明\&f_within_distance\&f_within_distance_func(distance NUMBER, m_polygon REF Moving_Polygon,tolerance NUMBER, tp Timepoint)\&Boolean\&判斷運(yùn)動(dòng)目標(biāo)某一時(shí)刻是否在指定距離之內(nèi)\&f_within_distance_func (distance NUMBER, m_polygon REF Moving_Polygon,tolerance NUMBER)\&Moving_Object\&查詢在給定距離之內(nèi)的運(yùn)動(dòng)目標(biāo)\&f_relate\&f_relate_func (mask Varchar2, m_polygon REF Moving_Polygon, tolerance NUMBER, tp Timepoint)\&Boolean\&判斷目標(biāo)某時(shí)刻是否滿足拓?fù)潢P(guān)系\&f_relate_func (mask Varchar2, m_polygon REF Moving_Polygon, tolerance NUMBER)\&Moving_Object\&查詢滿足拓?fù)潢P(guān)系的運(yùn)動(dòng)目標(biāo)\&]

其中,f_relate操作謂詞允許用戶通過mask參數(shù)輸入拓?fù)潢P(guān)系類型的關(guān)鍵詞有:ANYINTERACT(相交)、CONTAINS(包含且不相切)、COVEREDBY(被包含且相切)、COVERS(包含且相切)、DISJOINT(不相交)、EQUAL(相等)、INSIDE(包含且不接觸)、OVERLAPBDYDISJOINT(重疊且邊界不相交)、OVERLAPBDYINTERSECT(重疊且邊界至少一處相交)、TOUCH(相觸且無內(nèi)部公共點(diǎn))。

另外,mask的值也可以是上述關(guān)鍵詞的邏輯組合。如INSIDE+TOUCH根據(jù)情況的不同可以返回INSIDE+ TOUCH或FALSE。

總之,f_relate函數(shù)返回的結(jié)果包括以下三種情況:

1) 當(dāng)輸入mask的值是一個(gè)或多個(gè)關(guān)系的關(guān)鍵詞時(shí),如果二者的關(guān)系是真返回關(guān)系的關(guān)鍵詞,否則返回FALSE。

2) 當(dāng)輸入mask的值是DETERMINE時(shí),函數(shù)返回一個(gè)能反映二者關(guān)系的最佳關(guān)鍵詞。DETERMINE只能用在relate作為謂詞出現(xiàn)在SQL語言的SELECT從句中。

3) 如果輸入mask的值是ANYINTERACT時(shí),如果二者不是分離的將返回TRUE,否則返回FALSE。

3.2.3 運(yùn)動(dòng)目標(biāo)時(shí)間/空間域的投影/操作

主要是指運(yùn)動(dòng)目標(biāo)在時(shí)間/空間域上的投影和相交操作,如表3所列。二維平面運(yùn)動(dòng)點(diǎn)目標(biāo)在時(shí)間域上的投影如圖1所示。

3.2.4 運(yùn)動(dòng)目標(biāo)幾何特征操作

關(guān)于面積、長度和幾何組成部分的操作和相應(yīng)的實(shí)現(xiàn)函數(shù),如下表所示。

3.2.5 運(yùn)動(dòng)目標(biāo)距離和方向操作

主要完成運(yùn)動(dòng)目標(biāo)間距離和方向計(jì)算,包含兩個(gè)函數(shù):f_distance和f_direction。兩個(gè)運(yùn)動(dòng)目標(biāo)之間的距離實(shí)質(zhì)上是兩個(gè)運(yùn)動(dòng)目標(biāo)之間的最短距離,即兩個(gè)最鄰近點(diǎn)或線段之間的距離。f_direction只是對Moving_Point定義的,用來計(jì)算用戶指定時(shí)刻通過第一和第二個(gè)Moving_Point線段的角度(單位:度),其中[0≤angle<360]。

3.2.6 運(yùn)動(dòng)目標(biāo)集合操作

主要完成運(yùn)動(dòng)目標(biāo)間的并、交、差和異或等集合操作,如表6所列。

3.2.7 運(yùn)動(dòng)目標(biāo)變化率操作

主要完成運(yùn)動(dòng)目標(biāo)速度、速率和變化率等計(jì)算,如表7所列。其中,速率只有大小沒有方向,速度是向量同時(shí)具有大小和方向。

4 小結(jié)

本文基于SQL進(jìn)行時(shí)空謂詞擴(kuò)展實(shí)現(xiàn)運(yùn)動(dòng)目標(biāo)時(shí)空查詢語言,既可以利用現(xiàn)有強(qiáng)大的SQL關(guān)系操作,也可以很容易地與商業(yè)數(shù)據(jù)庫集成。STQL繼承了標(biāo)準(zhǔn)SQL的全部功能,在語言的語法表示上與標(biāo)準(zhǔn)SQL保持統(tǒng)一,提供了數(shù)據(jù)類型、數(shù)據(jù)表示和數(shù)據(jù)操作的可重用性。

參考文獻(xiàn):

[1] 單國慧.面向CJOP的運(yùn)動(dòng)目標(biāo)時(shí)空數(shù)據(jù)模型研究[D].鄭州: 解放軍信息工程大學(xué),2008.

[2] Abraham Silberschatz,Henry F Korth,Sudarshan S.數(shù)據(jù)庫系統(tǒng)概念[M].楊冬青,唐世渭,等,譯.北京:機(jī)械工業(yè)出版社,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] 王宏勇.空間運(yùn)動(dòng)對象時(shí)空數(shù)據(jù)模型的研究[D].鄭州: 解放軍信息工程大學(xué),2005.

[7] Cindy Xinmin Chen.Data Models and Query Languages of Spatio-Temporal Information[D]. University of California Los Angeles,2001.

3.2.1 運(yùn)動(dòng)目標(biāo)時(shí)空數(shù)據(jù)庫一致性操作

主要是指檢核運(yùn)動(dòng)目標(biāo)時(shí)空數(shù)據(jù)的有效性和運(yùn)動(dòng)目標(biāo)的類型變異,以保證運(yùn)動(dòng)目標(biāo)時(shí)空數(shù)據(jù)庫的一致性,如表1所示。

3.2.2 運(yùn)動(dòng)目標(biāo)時(shí)空拓?fù)浜推渌P(guān)系謂詞操作

主要是指關(guān)于給定空間條件和運(yùn)動(dòng)目標(biāo)之間距離和拓?fù)潢P(guān)系的操作謂詞,如表2所示。

表2 拓?fù)浜推渌P(guān)系謂詞操作

[謂詞名\&實(shí)現(xiàn)函數(shù)\&返回值\&說明\&f_within_distance\&f_within_distance_func(distance NUMBER, m_polygon REF Moving_Polygon,tolerance NUMBER, tp Timepoint)\&Boolean\&判斷運(yùn)動(dòng)目標(biāo)某一時(shí)刻是否在指定距離之內(nèi)\&f_within_distance_func (distance NUMBER, m_polygon REF Moving_Polygon,tolerance NUMBER)\&Moving_Object\&查詢在給定距離之內(nèi)的運(yùn)動(dòng)目標(biāo)\&f_relate\&f_relate_func (mask Varchar2, m_polygon REF Moving_Polygon, tolerance NUMBER, tp Timepoint)\&Boolean\&判斷目標(biāo)某時(shí)刻是否滿足拓?fù)潢P(guān)系\&f_relate_func (mask Varchar2, m_polygon REF Moving_Polygon, tolerance NUMBER)\&Moving_Object\&查詢滿足拓?fù)潢P(guān)系的運(yùn)動(dòng)目標(biāo)\&]

其中,f_relate操作謂詞允許用戶通過mask參數(shù)輸入拓?fù)潢P(guān)系類型的關(guān)鍵詞有:ANYINTERACT(相交)、CONTAINS(包含且不相切)、COVEREDBY(被包含且相切)、COVERS(包含且相切)、DISJOINT(不相交)、EQUAL(相等)、INSIDE(包含且不接觸)、OVERLAPBDYDISJOINT(重疊且邊界不相交)、OVERLAPBDYINTERSECT(重疊且邊界至少一處相交)、TOUCH(相觸且無內(nèi)部公共點(diǎn))。

另外,mask的值也可以是上述關(guān)鍵詞的邏輯組合。如INSIDE+TOUCH根據(jù)情況的不同可以返回INSIDE+ TOUCH或FALSE。

總之,f_relate函數(shù)返回的結(jié)果包括以下三種情況:

1) 當(dāng)輸入mask的值是一個(gè)或多個(gè)關(guān)系的關(guān)鍵詞時(shí),如果二者的關(guān)系是真返回關(guān)系的關(guān)鍵詞,否則返回FALSE。

2) 當(dāng)輸入mask的值是DETERMINE時(shí),函數(shù)返回一個(gè)能反映二者關(guān)系的最佳關(guān)鍵詞。DETERMINE只能用在relate作為謂詞出現(xiàn)在SQL語言的SELECT從句中。

3) 如果輸入mask的值是ANYINTERACT時(shí),如果二者不是分離的將返回TRUE,否則返回FALSE。

3.2.3 運(yùn)動(dòng)目標(biāo)時(shí)間/空間域的投影/操作

主要是指運(yùn)動(dòng)目標(biāo)在時(shí)間/空間域上的投影和相交操作,如表3所列。二維平面運(yùn)動(dòng)點(diǎn)目標(biāo)在時(shí)間域上的投影如圖1所示。

3.2.4 運(yùn)動(dòng)目標(biāo)幾何特征操作

關(guān)于面積、長度和幾何組成部分的操作和相應(yīng)的實(shí)現(xiàn)函數(shù),如下表所示。

3.2.5 運(yùn)動(dòng)目標(biāo)距離和方向操作

主要完成運(yùn)動(dòng)目標(biāo)間距離和方向計(jì)算,包含兩個(gè)函數(shù):f_distance和f_direction。兩個(gè)運(yùn)動(dòng)目標(biāo)之間的距離實(shí)質(zhì)上是兩個(gè)運(yùn)動(dòng)目標(biāo)之間的最短距離,即兩個(gè)最鄰近點(diǎn)或線段之間的距離。f_direction只是對Moving_Point定義的,用來計(jì)算用戶指定時(shí)刻通過第一和第二個(gè)Moving_Point線段的角度(單位:度),其中[0≤angle<360]。

3.2.6 運(yùn)動(dòng)目標(biāo)集合操作

主要完成運(yùn)動(dòng)目標(biāo)間的并、交、差和異或等集合操作,如表6所列。

3.2.7 運(yùn)動(dòng)目標(biāo)變化率操作

主要完成運(yùn)動(dòng)目標(biāo)速度、速率和變化率等計(jì)算,如表7所列。其中,速率只有大小沒有方向,速度是向量同時(shí)具有大小和方向。

4 小結(jié)

本文基于SQL進(jìn)行時(shí)空謂詞擴(kuò)展實(shí)現(xiàn)運(yùn)動(dòng)目標(biāo)時(shí)空查詢語言,既可以利用現(xiàn)有強(qiáng)大的SQL關(guān)系操作,也可以很容易地與商業(yè)數(shù)據(jù)庫集成。STQL繼承了標(biāo)準(zhǔn)SQL的全部功能,在語言的語法表示上與標(biāo)準(zhǔn)SQL保持統(tǒng)一,提供了數(shù)據(jù)類型、數(shù)據(jù)表示和數(shù)據(jù)操作的可重用性。

參考文獻(xiàn):

[1] 單國慧.面向CJOP的運(yùn)動(dòng)目標(biāo)時(shí)空數(shù)據(jù)模型研究[D].鄭州: 解放軍信息工程大學(xué),2008.

[2] Abraham Silberschatz,Henry F Korth,Sudarshan S.數(shù)據(jù)庫系統(tǒng)概念[M].楊冬青,唐世渭,等,譯.北京:機(jī)械工業(yè)出版社,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] 王宏勇.空間運(yùn)動(dòng)對象時(shí)空數(shù)據(jù)模型的研究[D].鄭州: 解放軍信息工程大學(xué),2005.

[7] Cindy Xinmin Chen.Data Models and Query Languages of Spatio-Temporal Information[D]. University of California Los Angeles,2001.

南平市| 宿迁市| 始兴县| 南昌市| 灵武市| 肇州县| 阿拉尔市| 江北区| 尚义县| 绥棱县| 宜城市| 叙永县| 丹寨县| 武邑县| 临城县| 阿拉善左旗| 南溪县| 崇州市| 米泉市| 宽甸| 鄂州市| 九江市| 抚松县| 葵青区| 沙坪坝区| 乌海市| 师宗县| 乌兰察布市| 清河县| 汉源县| 泗洪县| 色达县| 黄山市| 江达县| 成安县| 镇平县| 三台县| 琼结县| 新丰县| 宁明县| 内乡县|