国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

基于Oracle Spatial的時(shí)態(tài)空間數(shù)據(jù)庫設(shè)計(jì)

2024-08-29 13:30:00
字體:
供稿:網(wǎng)友

最大的網(wǎng)站源碼資源下載站,


需求前提:數(shù)據(jù)每年變化1~2次,軟件預(yù)計(jì)生命周期50年

實(shí)踐環(huán)境:oracle spatial

 

術(shù)語表:時(shí)空對(duì)象,快照

時(shí)空對(duì)象:一個(gè)地理目標(biāo)從誕生到消亡所經(jīng)歷的空間和時(shí)間范圍及其屬性信息。這是一個(gè)為處理時(shí)空數(shù)據(jù)方便而抽象出來的概念,相當(dāng)于全信息模型中的全信息對(duì)象。為了理解時(shí)空對(duì)象,我們以二維地物為例。二維地物在二維空間中占據(jù)一定的空間范圍,表現(xiàn)為一個(gè)二維幾何體,也就是它的幾何屬性。如果再增加一條時(shí)間軸,成為(x,y,t)坐標(biāo)系,并認(rèn)為任何的空間對(duì)象都有誕生和消亡,則這個(gè)二維地物就在(x,y,t)坐標(biāo)系中占據(jù)了一定的三維空間。我們就把二維地物從誕生到消亡這一時(shí)間段所占據(jù)的空間-時(shí)間范圍稱之為“時(shí)空對(duì)象”。同理,也可以將時(shí)空對(duì)象擴(kuò)展為三維的空間對(duì)象在時(shí)間維度上的延續(xù),也就是四維對(duì)象。時(shí)空對(duì)象的屬性信息是一張二維表。

快照:一個(gè)地理目標(biāo)在某一特定時(shí)刻所占據(jù)的空間范圍及其屬性信息,或者說:時(shí)空對(duì)象在某一特定的時(shí)刻所占據(jù)的空間范圍及其相應(yīng)的屬性信息。舉例來說,地圖上繪制了一個(gè)飯店的位置,大小,這就是飯店的一個(gè)快照。因?yàn)轱埖晔菑哪骋粫r(shí)刻才誕生的,又會(huì)在某一時(shí)刻消亡,而在誕生和消亡之間,還可能會(huì)搬遷或擴(kuò)建。所以地圖上反映的僅僅是飯店在某一時(shí)刻的狀態(tài),所以稱之為飯店在某一時(shí)刻的快照或時(shí)空對(duì)象在某一特定時(shí)刻的快照。注意,快照總是對(duì)應(yīng)于某一特定的時(shí)刻,否則將失去快照的意義。快照的屬性信息是時(shí)空對(duì)象屬性信息表中的一條記錄。

 

設(shè)計(jì)方向:

       以時(shí)空對(duì)象的概念組織空間數(shù)據(jù)和屬性數(shù)據(jù),使得對(duì)地物變遷歷史的查詢和分析成為可能。

       對(duì)應(yīng)用層屏蔽歷史數(shù)據(jù)的處理過程,將歷史數(shù)據(jù)的處理當(dāng)作數(shù)據(jù)庫模塊的功能之一。

 

技術(shù)要點(diǎn):

1、  oracle包變量的會(huì)話獨(dú)立性

2、  動(dòng)態(tài)視圖技術(shù)(基于函數(shù)的視圖)

 

圖形解說:


時(shí)間

空間

對(duì)象誕生時(shí)間

 

觀察方向

 

當(dāng)前觀察時(shí)間

 

對(duì)象消亡時(shí)間

 

快照3

 

快照2

 

快照1

 

時(shí)空對(duì)象(對(duì)象一)

對(duì)象三

對(duì)象二
 

 

 

 

 

 

       從以上示意圖中可以清晰地看出,每一個(gè)時(shí)空對(duì)象都是由多個(gè)快照記錄所描述的。觀察者的每一次觀察都是基于一個(gè)特定的觀察時(shí)間的。例如,圖示中的觀察者應(yīng)該看到對(duì)象一的快照2和對(duì)象三的快照2,而無法看到對(duì)象二和對(duì)象一、三的其他快照記錄??床坏綄?duì)象二是因?yàn)樵诖擞^察時(shí)間之前,對(duì)象二已經(jīng)消亡??床坏綄?duì)象一的快照1是因?yàn)閷?duì)象一有更新的觀察數(shù)據(jù)快照2可以更好地近似反映對(duì)象二在當(dāng)前觀察時(shí)間所處的狀態(tài)。

 

數(shù)據(jù)表:數(shù)據(jù)表的設(shè)計(jì)基于以上概念

對(duì)象表

 

obj_id

number

時(shí)空對(duì)象標(biāo)識(shí)號(hào)

<pk>

start_time

date

對(duì)象誕生時(shí)間

 

end_time

date

對(duì)象消亡時(shí)間

 

obj_attr

varchar2(100)

對(duì)象屬性數(shù)據(jù)

會(huì)因時(shí)間的流逝而發(fā)生變化的屬性信息。

 

 

 

 

 

 

 

快照記錄表

 

obj_id

number

時(shí)空對(duì)象標(biāo)識(shí)號(hào)

<fk>

snap_id

number

快照數(shù)據(jù)的唯一序號(hào)

<pk>

snap_time

date

快照時(shí)間

 

snap_end

date

快照結(jié)束時(shí)間

屬于同一時(shí)空對(duì)象的最近的下一條快照的快照時(shí)間。設(shè)置此列的目的是為了查詢方便。

geom.

mdsys.sdo_geometry

快照幾何數(shù)據(jù)

 

attr

varchar2(100)

快照屬性數(shù)據(jù)

會(huì)因時(shí)間的流逝而發(fā)生變化的屬性信息。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

存儲(chǔ)過程:

       利用oracle中包變量的會(huì)話獨(dú)立性,在包中建立以下幾個(gè)基本的存儲(chǔ)過程:設(shè)置當(dāng)前觀察時(shí)間,獲取當(dāng)前觀察時(shí)間,利用當(dāng)前觀察時(shí)間和傳入的snap_time,snap_end參數(shù)判斷快照記錄是否可見(snap_filter)。

 

視圖:建立在快照記錄表上的視圖,基于存儲(chǔ)函數(shù)snap_filter實(shí)現(xiàn)對(duì)表中記錄的篩選。傳入?yún)?shù)為:snap_time,snap_end.,返回值為此快照是否可見。

 

       select obj_id, snap_time, geom, attr

from 快照記錄表

where snap_filter(snap_time, snap_end) > 0;

 

obj_id

number

時(shí)空對(duì)象標(biāo)識(shí)號(hào)

 

snap_time

date

快照時(shí)間

 

geom.

mdsys.sdo_geometry

快照幾何數(shù)據(jù)

 

attr

varchar2(100)

快照屬性數(shù)據(jù)

 

 

 

 

 

 

觸發(fā)器:

       視圖上的觸發(fā)器,使應(yīng)用層用戶可以在視圖中插入,修改,刪除數(shù)據(jù)。

       要點(diǎn):    1、維護(hù)表中數(shù)據(jù)時(shí)要避免出現(xiàn)時(shí)間悖論,造成時(shí)間邏輯混亂。

2、快照記錄表中的snap_end列的維護(hù)稍微麻煩一些,應(yīng)小心謹(jǐn)慎。

 

擴(kuò)展與變化:

1、  支持多種觀察模式。

為了查詢功能的靈活性,可以增加幾個(gè)擴(kuò)展功能的存儲(chǔ)過程:設(shè)置當(dāng)前的觀察模式,獲取當(dāng)前的觀察模式,重寫snap_filter函數(shù)以支持多種觀察模式。

例如:

【對(duì)象歷史追溯模式】此時(shí)當(dāng)前觀察時(shí)間這一參數(shù)失效,snap_filter的行為發(fā)生變化,視圖中看到的是某一(或某幾個(gè))指定對(duì)象的所有快照。這種模式便于對(duì)單個(gè)對(duì)象的整個(gè)歷史變遷過程加以追蹤。

【時(shí)間段觀察模式】此時(shí)需要設(shè)置的觀察時(shí)間不是一個(gè)時(shí)間點(diǎn),而是一個(gè)時(shí)間段。snap_filter的返回值也有了更豐富的含義,可以用不同的數(shù)字(例如:1,2,4)表示某一快照記錄在當(dāng)前時(shí)間段開始,結(jié)尾,中間的可見性。這種模式可以用于需要對(duì)兩個(gè)不同時(shí)間點(diǎn)的數(shù)據(jù)進(jìn)行比較的場合。

2、  增加對(duì)象關(guān)系表以描述時(shí)空對(duì)象之間的聯(lián)系

時(shí)空對(duì)象之間可能會(huì)有各種各樣的聯(lián)系,例如:變化,融合,分裂等。可通過以下表格加以描述。

 

時(shí)空對(duì)象關(guān)系表

obj_1

number

時(shí)空對(duì)象標(biāo)識(shí)號(hào)

<pk><fk>

obj_2

number

時(shí)空對(duì)象標(biāo)識(shí)號(hào)

<pk><fk>

relation_type

number

關(guān)系類型

<pk>

 

 

 

 

使用方法:

如果是查詢最新信息,即觀察時(shí)間為系統(tǒng)當(dāng)前時(shí)間,則直接訪問視圖即可。

       如果是查詢歷史數(shù)據(jù),只需在數(shù)據(jù)連接會(huì)話中調(diào)用存儲(chǔ)過程來設(shè)置當(dāng)前觀察時(shí)間,其效果是所有視圖中可見的記錄集合都是當(dāng)前觀察時(shí)間點(diǎn)可見的記錄,其他記錄不會(huì)出現(xiàn)在視圖中。

 
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 长治市| 五寨县| 乐山市| 容城县| 万荣县| 抚州市| 体育| 泰州市| 石阡县| 白水县| 陵水| 万源市| 南宁市| 杨浦区| 平度市| 江北区| 黎川县| 达孜县| 大港区| 饶阳县| 忻城县| 封开县| 丹凤县| 泾川县| 古丈县| 滁州市| 佳木斯市| 泰顺县| 陵川县| 沾益县| 建昌县| 兴和县| 东源县| 通城县| 锡林浩特市| 鞍山市| 博客| 玉树县| 东兰县| 确山县| 固阳县|