河理工地理信息系統(tǒng)原理與應(yīng)用教案第3章 空間數(shù)據(jù)庫(kù)_第1頁(yè)
河理工地理信息系統(tǒng)原理與應(yīng)用教案第3章 空間數(shù)據(jù)庫(kù)_第2頁(yè)
河理工地理信息系統(tǒng)原理與應(yīng)用教案第3章 空間數(shù)據(jù)庫(kù)_第3頁(yè)
河理工地理信息系統(tǒng)原理與應(yīng)用教案第3章 空間數(shù)據(jù)庫(kù)_第4頁(yè)
河理工地理信息系統(tǒng)原理與應(yīng)用教案第3章 空間數(shù)據(jù)庫(kù)_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第三章空間數(shù)據(jù)結(jié)構(gòu)與空間數(shù)據(jù)庫(kù)數(shù)據(jù)結(jié)構(gòu)即指數(shù)據(jù)組織的形式,是適合于計(jì)算機(jī)存儲(chǔ)、管理和處理的數(shù)據(jù)邏輯結(jié)構(gòu)。對(duì)空間數(shù)據(jù)則是地理實(shí)體的空間排列方式和相互關(guān)系的抽象描述。它是對(duì)數(shù)據(jù)的一種理解和解釋?zhuān)徽f(shuō)明數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)是毫無(wú)用處的,不僅用戶(hù)無(wú)法理解,計(jì)算機(jī)程序也不能正確的處理,對(duì)同樣一組數(shù)據(jù),按不同的數(shù)據(jù)結(jié)構(gòu)去處理,得到的可能是截然不同的內(nèi)容??臻g數(shù)據(jù)結(jié)構(gòu)是地理信息系統(tǒng)溝通信息的橋梁,只有充分理解地理信息系統(tǒng)所采用的特定數(shù)據(jù)結(jié)構(gòu),才能正確有效地使用系統(tǒng)。地理信息系統(tǒng)的空間數(shù)據(jù)結(jié)構(gòu)主要有柵格結(jié)構(gòu)和矢量結(jié)構(gòu)。第一節(jié)柵格數(shù)據(jù)結(jié)構(gòu)一、簡(jiǎn)單柵格數(shù)據(jù)結(jié)構(gòu)(a)點(diǎn)、線、面數(shù)據(jù)(b)柵格表示圖3-1點(diǎn)、線、面數(shù)據(jù)的柵格結(jié)構(gòu)表示柵格結(jié)構(gòu)是最簡(jiǎn)單最直觀的空間數(shù)據(jù)結(jié)構(gòu),又稱(chēng)為網(wǎng)格結(jié)構(gòu)(raster或g(a)點(diǎn)、線、面數(shù)據(jù)(b)柵格表示圖3-1點(diǎn)、線、面數(shù)據(jù)的柵格結(jié)構(gòu)表示柵格結(jié)構(gòu)的顯著特點(diǎn)是:屬性明顯,定位隱含,即數(shù)據(jù)直接記錄屬性的指針或?qū)傩员旧?,而所在位置則根據(jù)行列號(hào)轉(zhuǎn)換為相應(yīng)的坐標(biāo)給出,也就是說(shuō)定位是根據(jù)數(shù)據(jù)在數(shù)據(jù)集中的位置得到的。由于柵格結(jié)構(gòu)是按一定的規(guī)則排列的,所表示的實(shí)體的位置很容易隱含在網(wǎng)格文件的存貯結(jié)構(gòu)中,在后面講述柵格結(jié)構(gòu)編碼時(shí)可以看到,每個(gè)存貯單元的行列位置可以方便地根據(jù)其在文件中的記錄位置得到,且行列坐標(biāo)可以很容易地轉(zhuǎn)為其他坐標(biāo)系下的坐標(biāo)。在網(wǎng)格文件中每個(gè)代碼本身明確地代表了實(shí)體的屬性或?qū)傩缘木幋a,如果為屬性的編碼,則該編碼可作為指向?qū)嶓w屬性表的指針。圖3-1中表示了一個(gè)代碼為6的點(diǎn)實(shí)體,一條代碼為9的線實(shí)體,一個(gè)代碼為7的面實(shí)體。由于柵格行列陣列容易為計(jì)算機(jī)存儲(chǔ)、操作和顯示,因此這種結(jié)構(gòu)容易實(shí)現(xiàn),算法簡(jiǎn)單,且易于擴(kuò)充、修改,也很直觀,特別是易于同遙感影像結(jié)合處理,給地理空間數(shù)據(jù)處理帶來(lái)了極大的方便,受到普遍歡迎,許多系統(tǒng)都部分和全部采取了柵格結(jié)構(gòu),柵格結(jié)構(gòu)的另一個(gè)優(yōu)點(diǎn)是,特別適合于FORTRAN、BASIC等高級(jí)語(yǔ)言作文件或矩陣處理,這也是柵格結(jié)構(gòu)易于為多數(shù)地理信息系統(tǒng)設(shè)計(jì)者接受的原因之一。圖3-2柵格數(shù)據(jù)結(jié)構(gòu)的幾種其它形式柵格結(jié)構(gòu)表示的地表是不連續(xù)的,是量化和近似離散的數(shù)據(jù)。在柵格結(jié)構(gòu)中,地表被分成相互鄰接、規(guī)則排列的矩形方塊(特殊的情況下也可以是三角形或菱形、六邊形等(如圖3-2所示),每個(gè)地塊與一個(gè)柵格單元相對(duì)應(yīng)。柵格數(shù)據(jù)的比例尺就是柵格大小與地表相應(yīng)單元大小之比。在許多柵格數(shù)據(jù)處理時(shí),常假設(shè)柵格所表示的量化表面是連續(xù)的,以便使用某些連續(xù)函數(shù)。由于柵格結(jié)構(gòu)對(duì)地表的量化,在計(jì)算面積、長(zhǎng)度、距離、形狀等空間指標(biāo)時(shí),若柵格尺寸較大,則會(huì)造成較大的誤差,同時(shí)由于在一個(gè)柵格的地表范圍內(nèi),可能存在多于一種的地物,而表示在相應(yīng)的柵格結(jié)構(gòu)中常常只能是一個(gè)代碼。這類(lèi)似于遙感影像的混合象元問(wèn)題,如landsatMSS衛(wèi)星影像單個(gè)象元對(duì)應(yīng)地表79×79m2的矩形區(qū)域,影像上記錄的光譜數(shù)據(jù)是每個(gè)象元所對(duì)應(yīng)的地表區(qū)域內(nèi)所有地物類(lèi)型的光譜輻射的總和效果。因而,這種誤差不僅有形態(tài)上的畸變,還可能包括屬性方面的偏差。圖3-2柵格數(shù)據(jù)結(jié)構(gòu)的幾種其它形式柵格結(jié)構(gòu)數(shù)據(jù)主要可由四個(gè)途徑得到,即①目讀法:在專(zhuān)題圖上均勻劃分網(wǎng)格,逐個(gè)網(wǎng)格地決定其代碼,最后形成柵格數(shù)字地圖文件;②數(shù)字化儀手扶或自動(dòng)跟蹤數(shù)字化地圖,得到矢量結(jié)構(gòu)數(shù)據(jù)后,再轉(zhuǎn)換為柵格結(jié)構(gòu);③掃描數(shù)字化:逐點(diǎn)掃描專(zhuān)題地圖,將掃描數(shù)據(jù)重采樣和再編碼得到柵格數(shù)據(jù)文件;④分類(lèi)影像輸入:將經(jīng)過(guò)分類(lèi)解譯的遙感影像數(shù)據(jù)直接或重采樣后輸入系統(tǒng),作為柵格數(shù)據(jù)結(jié)構(gòu)的專(zhuān)題地圖。在轉(zhuǎn)換和重新采樣時(shí),需盡可能保持原圖或原始數(shù)據(jù)精度,通常有兩種辦法:第一,在決定柵格代碼時(shí)盡量保持地表的真實(shí)性,保證最大的信息容量。圖3-3所示的一塊矩形地表區(qū)域。內(nèi)部含有A、B、C三種地物類(lèi)型,O點(diǎn)為中心點(diǎn),將這個(gè)矩形區(qū)域近似地表示為柵格結(jié)構(gòu)中的一個(gè)柵格單元時(shí),可根據(jù)需要,采取如下方案之一決定該柵格單元的代碼:圖3-3柵格單元代碼的確定①中心點(diǎn)法:用處于柵格中心處的地物類(lèi)型或現(xiàn)象特性決定柵格代碼。在圖3-3所示的矩形區(qū)域中,中心點(diǎn)O落在代碼為C的地物范圍內(nèi),按中心點(diǎn)法的規(guī)則,該矩形區(qū)域相應(yīng)的柵格單元代碼應(yīng)為C,中心點(diǎn)法常用于具有連續(xù)分布特性的地理要素,如降雨量分布,人口密度圖等。圖3-3柵格單元代碼的確定②面積占優(yōu)法:以占矩形區(qū)域面積最大的地物類(lèi)型或現(xiàn)象特性決定柵格單元的代碼。在圖3-3所示的例中,顯見(jiàn)B類(lèi)地物所占面積最大,故相應(yīng)柵格代碼定為B。面積占優(yōu)法常用于分類(lèi)較細(xì),地物類(lèi)別斑塊較小的情況。③重要性法:根據(jù)柵格內(nèi)不同地物的重要性,選取最重要的地物類(lèi)型決定相應(yīng)的柵格單元代碼、假設(shè)圖3-3中A類(lèi)為最重要的地物類(lèi)型,即A比B和C類(lèi)更為重要,則柵格單元的代碼應(yīng)為A。重要性法常用于具有特殊意義而面積較小的地理要素,特別是點(diǎn)、線狀地理要素,如城鎮(zhèn)、交通樞鈕、交通線、河流水系等,在棚格中代碼應(yīng)盡量表示這些重要地物。④百分比法:根據(jù)矩形區(qū)域內(nèi)各地理要素所占面積的百分比數(shù)確定柵格單元的代碼參與,如可記面積最大的兩類(lèi)BA,也可根據(jù)B類(lèi)和A類(lèi)所占面積百分比數(shù)在代碼中加入數(shù)字。逼近原始精度的第二種方法是縮小單個(gè)柵格單元的面積,即增加?xùn)鸥駟卧目倲?shù),行列數(shù)也相應(yīng)地增加。這樣,每個(gè)柵格單元可代表更為精細(xì)的地面矩形單元,混合單元減少?;旌项?lèi)別和混合的面積都大大減小,可以大大提高量算的精度;接近真實(shí)的形態(tài),表現(xiàn)更細(xì)小的地物類(lèi)型。然而增加?xùn)鸥駛€(gè)數(shù)、提高數(shù)據(jù)精度的同時(shí)也帶來(lái)了一個(gè)嚴(yán)重的問(wèn)題,那就是數(shù)據(jù)量的大幅度增加,數(shù)據(jù)冗余嚴(yán)重。為了解決這個(gè)難題,已發(fā)展了一系列柵格數(shù)據(jù)壓縮編碼方法,如游程長(zhǎng)度編碼、塊碼和四叉樹(shù)碼等。二、柵格數(shù)據(jù)的壓縮編碼方式1、鏈?zhǔn)骄幋a(ChainCodes)圖3-4鏈?zhǔn)骄幋a的方向代碼鏈?zhǔn)骄幋a又稱(chēng)為弗里曼鏈碼(Freeman,1961)或邊界鏈碼。鏈?zhǔn)骄幋a主要是記錄線狀地物和面狀地物的邊界。它把線狀地物和面狀地物的邊界表示為:由某一起始點(diǎn)開(kāi)始并按某些基本方向確定的單位矢量鏈?;痉较蚩啥x為:東=0,東南=l,南=2,西南=3,西=4,西北=5,北=6,東北=7等八個(gè)基本方向(如圖3-4所示)。圖3-4鏈?zhǔn)骄幋a的方向代碼如果對(duì)于圖3-5所示的線狀地物確定其起始點(diǎn)為像元(1,5),則其鏈?zhǔn)骄幋a為:圖3-5鏈?zhǔn)骄幋a示意圖1,5,3,3,3,3,3,3,3圖3-5鏈?zhǔn)骄幋a示意圖對(duì)于圖3-5所示的面狀地物,假設(shè)其原起始點(diǎn)定為像元(5,8),則該多邊形邊界按順時(shí)針?lè)较虻逆準(zhǔn)骄幋a為:5,8,3,2,4,4,6,6,7,6,0,2,1鏈?zhǔn)骄幋a的前兩個(gè)數(shù)字表示起點(diǎn)的行、列數(shù),從第三個(gè)數(shù)字開(kāi)始的每個(gè)數(shù)字表示單位矢量的方向,八個(gè)方向以0—7的整數(shù)代表。鏈?zhǔn)骄幋a對(duì)線狀和多邊形的表示具有很強(qiáng)的數(shù)據(jù)壓縮能力,且具有一定的運(yùn)算功能,如面積和周長(zhǎng)計(jì)算等,探測(cè)邊界急彎和凹進(jìn)部分等都比較容易,類(lèi)似矢量數(shù)據(jù)結(jié)構(gòu),比較適于存儲(chǔ)圖形數(shù)據(jù)。缺點(diǎn)是對(duì)疊置運(yùn)算如組合、相交等則很難實(shí)施,對(duì)局部修改將改變整體結(jié)構(gòu),效率較低,而且由于鏈碼以每個(gè)區(qū)域?yàn)閱挝淮鎯?chǔ)邊界,相鄰區(qū)域的邊界則被重復(fù)存儲(chǔ)而產(chǎn)生冗余。2、游程長(zhǎng)度編碼(run-lengthcode)游程長(zhǎng)度編碼是柵格數(shù)據(jù)壓縮的重要編碼方法,它的基本思路是:對(duì)于一幅柵格圖像,常常有行(或列)方向上相鄰的若干點(diǎn)具有相同的屬性代碼,因而可采取某種方法壓縮那些重復(fù)的記錄內(nèi)容。其編碼方案是,只在各行(或列)數(shù)據(jù)的代碼發(fā)生變化時(shí)依次記錄該代碼以及相同代碼重復(fù)的個(gè)數(shù),從而實(shí)現(xiàn)數(shù)據(jù)的壓縮。例如對(duì)圖3-6(a)所示的柵格數(shù)據(jù),可沿行方向進(jìn)行如下游程長(zhǎng)度編碼:(9,4),(0,4),(9,3),(0,5),(0,1)(9,2),(0,1),(7,2),(0,2),(0,4),(7,2),(0,2),(0,4),(7,4),(0,4),(7,4),(0,4),(7,4),(0,4),(7,4)游程長(zhǎng)度編碼對(duì)圖3-6(a)只用了40個(gè)整數(shù)就可以表示,而如果用前述的直接編碼卻需要64個(gè)整數(shù)表示,可見(jiàn)游程長(zhǎng)度編碼壓縮數(shù)據(jù)是十分有效又簡(jiǎn)便的。事實(shí)上,壓縮比的大小是與圖的復(fù)雜程度成反比的,在變化多的部分,游程數(shù)就多,變化少的部分游程數(shù)就少,圖件越簡(jiǎn)單,壓縮效率就越高。游程長(zhǎng)度編碼在柵格加密時(shí),數(shù)據(jù)量沒(méi)有明顯增加,壓縮效率較高,且易于檢索,疊加合并等操作,運(yùn)算簡(jiǎn)單,適用于機(jī)器存貯容量小,數(shù)據(jù)需大量壓縮,而又要避免復(fù)雜的編碼解碼運(yùn)算增加處理和操作時(shí)間的情況。3、塊狀編碼(blockcode)塊碼是游程長(zhǎng)度編碼擴(kuò)展到二維的情況,采用方形區(qū)域作為記錄單元,每個(gè)記錄單元包括相鄰的若干柵格,數(shù)據(jù)結(jié)構(gòu)由初始位置(行、列號(hào))和半徑,再加上記錄單元的代碼組成。根據(jù)塊狀編碼的原則,對(duì)圖3-6(a)所示圖像可以用12個(gè)單位正方形,5個(gè)4單位的正方形和2個(gè)16單位的正方形就能完整表示,具體編碼如下:(1,1,2,9),(1,3,1,9),(1,4,1,9),(1,5,2,0),(1,7,2,0),(2,3,1,9),(2,4,1,0),(3,1,1,0),(3,2,1,9),(3,3,1,9),(3,4,1,0),(3,5,2,7),(3,7,2,0),(4,4,1,0),(4,2,1,0),(4,3,1,0),(4,4,1,0),(5,1,4,0),(5,5,4,7)一個(gè)多邊形所包含的正方形越大,多邊形的邊界越簡(jiǎn)單,塊狀編碼的效率就越好。塊狀編碼對(duì)大而簡(jiǎn)單的多邊形更為有效,而對(duì)那些碎部較多的復(fù)雜多邊形效果并不好。塊狀編碼在合并、插入、檢查延伸性、計(jì)算面積等操作時(shí)有明顯的優(yōu)越性。然而對(duì)某些運(yùn)算不適應(yīng),必須在轉(zhuǎn)換成簡(jiǎn)單數(shù)據(jù)形式才能順利進(jìn)行。4、四叉樹(shù)編碼(quad-treecode)四又樹(shù)結(jié)構(gòu)的基本思想是將一幅柵格地圖或圖像等分為四部分。逐塊檢查其格網(wǎng)屬性值(或灰度)。如果某個(gè)子區(qū)的所有格網(wǎng)值都具有相同的值。則這個(gè)子區(qū)就不再繼續(xù)分割,否則還要把這個(gè)子區(qū)再分割成四個(gè)子區(qū)。這樣依次地分割,直到每個(gè)子塊都只含有相同的屬性值或灰度為止。圖3-7四叉樹(shù)的樹(shù)狀表示(a)原始柵格數(shù)據(jù)(b)四叉樹(shù)編碼示意圖圖3-6四叉樹(shù)編碼示意圖圖3-6(b)表示對(duì)圖圖3-7四叉樹(shù)的樹(shù)狀表示(a)原始柵格數(shù)據(jù)(b)四叉樹(shù)編碼示意圖圖3-6四叉樹(shù)編碼示意圖對(duì)一個(gè)由n*n(n=2*k,k>1)的柵格方陣組成的區(qū)域P,它的四個(gè)子象限(Pa,Pb,Pc,Pd)分別為:再下一層的子象限分別為:圖3-8區(qū)域P子象限的表示其中a、b、c、d分別表示西北(NW)、東北(NE)、西南(SW)、東南(SE)四個(gè)子象限。根據(jù)這些表達(dá)式可以求得任一層的某個(gè)子象限在全區(qū)的行列位置,并對(duì)這個(gè)位置范圍內(nèi)的網(wǎng)格值進(jìn)行檢測(cè)。若數(shù)值單調(diào),就不再細(xì)分,按照這種方法,可以完成整個(gè)區(qū)域四叉樹(shù)的建立。圖3-8區(qū)域P子象限的表示這種從上而下的分割需要大量的運(yùn)算,因?yàn)榇罅繑?shù)據(jù)需要重復(fù)檢查才能確定劃分。當(dāng)n*n的矩陣比較大,且區(qū)域內(nèi)容要素又比較復(fù)雜時(shí),建立這種四叉樹(shù)的速度比較慢。 另一種是采用從下而上的方法建立。對(duì)柵格數(shù)據(jù)按如下的順序進(jìn)行檢測(cè)。如果每相鄰四個(gè)網(wǎng)格值相同則進(jìn)行合并,逐次往上遞歸合并,直到符合四叉樹(shù)的原則為止。這種方法重復(fù)計(jì)算較少,運(yùn)算速度較快。從圖中可以看出,為了保證四叉樹(shù)能不斷的分解下去,要求圖象必須為2n*2n的柵格陣列,n為極限分割次數(shù),n+1是四叉樹(shù)的最大高度或最大層數(shù)。對(duì)于非標(biāo)準(zhǔn)尺寸的圖象需首先通過(guò)增加背景的方法將圖象擴(kuò)充為2n*2n的圖象,也就是說(shuō)在程序設(shè)計(jì)時(shí),對(duì)不足的部分以0補(bǔ)足(在建樹(shù)時(shí),對(duì)于補(bǔ)足部分生成的葉結(jié)點(diǎn)不存儲(chǔ),這樣存儲(chǔ)量并不會(huì)增加)。四叉樹(shù)編碼法有許多有趣的優(yōu)點(diǎn):①容易而有效地計(jì)算多邊形的數(shù)量特征;②陣列各部分的分辨率是可變的,邊界復(fù)雜部分四叉樹(shù)較高即分級(jí)多,分辨率也高,而不需表示許多細(xì)節(jié)的部分則分級(jí)少,分辨率低,因而既可精確表示圖形結(jié)構(gòu)又可減少存貯量;②柵格到四叉樹(shù)及四叉樹(shù)到簡(jiǎn)單柵格結(jié)構(gòu)的轉(zhuǎn)換比其它壓縮方法容易;④多邊形中嵌套異類(lèi)小多邊形的表示較方便。四叉樹(shù)編碼的最大缺點(diǎn)是轉(zhuǎn)換的不定性,用同一形狀和大小的多邊形可能得出多種不同的四叉樹(shù)結(jié)構(gòu),故不利于形狀分析和模式識(shí)別。但因它允許多邊形中嵌套多邊形即所謂“洞”這種結(jié)構(gòu)存在,使越來(lái)越多的地理信息系統(tǒng)工作者都對(duì)四叉樹(shù)結(jié)構(gòu)很感興趣。上述這些壓縮數(shù)據(jù)的方法應(yīng)視圖形的復(fù)雜情況合理選用,同時(shí)應(yīng)在系統(tǒng)中備有相應(yīng)的程序。另外,用戶(hù)的分析目的和分析方法也決定著壓縮方法的選取。四叉樹(shù)結(jié)構(gòu)按其編碼的方法不同又分為常規(guī)四叉樹(shù)和線性四叉樹(shù)。常規(guī)四叉樹(shù)除了記錄葉結(jié)點(diǎn)之外,還要記錄中間結(jié)點(diǎn)。結(jié)點(diǎn)之間借助指針聯(lián)系,每個(gè)結(jié)點(diǎn)需要用六個(gè)量表達(dá):四個(gè)葉結(jié)點(diǎn)指針,一個(gè)父結(jié)點(diǎn)指針和一個(gè)結(jié)點(diǎn)的屬性或灰度值。這些指針不僅增加了數(shù)據(jù)貯存量,而且增加了操作的復(fù)雜性。常規(guī)四叉樹(shù)主要在數(shù)據(jù)索引和圖幅索引等方面應(yīng)用。線性四叉樹(shù)則只存貯最后葉結(jié)點(diǎn)的信息。包括葉結(jié)點(diǎn)的位置、深度和本結(jié)點(diǎn)的屬性或灰度值。所謂深度是指處于四叉樹(shù)的第幾層上。由深度可推知子區(qū)的大小。線性四叉樹(shù)葉結(jié)點(diǎn)的編號(hào)需要遵循一定的規(guī)則,這種編號(hào)稱(chēng)為地址碼,它隱含了葉結(jié)點(diǎn)的位置和深度信息。最常用的地址碼是四進(jìn)制或十進(jìn)制的Morton碼。5、八叉樹(shù)八叉樹(shù)結(jié)構(gòu)(見(jiàn)圖3-9)就是將空間區(qū)域不斷地分解為八個(gè)同樣大小的子區(qū)域(即將一個(gè)六面的立方體再分解為八個(gè)相同大小的小立方體),分解的次數(shù)越多,子區(qū)域就越小,一直到同—區(qū)域的屬性單一為止。按從下而上合并的方式來(lái)說(shuō),就是將研究區(qū)空間先按—定的分辨率將三維空間劃分為三維柵格網(wǎng),然后按規(guī)定的順序每次比較3個(gè)相鄰的柵格單元,如果其屬性值相同則合并,否則就記盤(pán)。依次遞歸運(yùn)算,直到每個(gè)子區(qū)域均為單值為止。八叉樹(shù)同樣可分為常規(guī)八叉樹(shù)和線性八叉樹(shù)。常規(guī)八叉樹(shù)的結(jié)點(diǎn)要記錄十個(gè)位,即八個(gè)指向子結(jié)點(diǎn)的指針,—個(gè)指向父結(jié)點(diǎn)的指針和一個(gè)屬性值(或標(biāo)識(shí)號(hào))。而線性八叉樹(shù)則只需要記錄葉結(jié)點(diǎn)的地址碼和屬性值。因此,它的主要優(yōu)點(diǎn)是,其一節(jié)省存儲(chǔ)空間,因?yàn)橹恍鑼?duì)葉結(jié)點(diǎn)編碼,節(jié)省了大量中間結(jié)點(diǎn)的存儲(chǔ)。每個(gè)結(jié)點(diǎn)的指針也免除了,而從根到某一特定結(jié)點(diǎn)的方向和路徑的信息隱含在定位碼之中,定位碼數(shù)字的個(gè)位數(shù)顯示分辨率的高低或分解程度;其次,線性八叉樹(shù)可直接尋址,通過(guò)其坐標(biāo)值則能計(jì)算出任何輸入結(jié)點(diǎn)的定位碼(稱(chēng)編碼),而不必實(shí)際建立八叉樹(shù),并且定位碼本身就是坐標(biāo)的另—種形式,不必有意去存儲(chǔ)坐標(biāo)值。若需要的話還能從定位碼中獲取其坐標(biāo)值(稱(chēng)解碼);其三,在操作方面,所產(chǎn)生的定位碼容易存儲(chǔ)和執(zhí)行,容易實(shí)現(xiàn)象集合、相加等組合操作。圖3-9八叉樹(shù)編碼圖解(n圖3-9八叉樹(shù)編碼圖解(n=3)矢量數(shù)據(jù)結(jié)構(gòu)地理信息系統(tǒng)中另一種最常見(jiàn)的圖形數(shù)據(jù)結(jié)構(gòu)為矢量結(jié)構(gòu),即通過(guò)記錄坐標(biāo)的方式盡可能精確地表示點(diǎn)、線、多邊形等地理實(shí)體,坐標(biāo)空間設(shè)為連續(xù),允許任意位置、長(zhǎng)度和面積的精確定義,事實(shí)上,因?yàn)槿缦略?,也不可能得到絕對(duì)精確的值:1、表示坐標(biāo)的計(jì)算機(jī)字長(zhǎng)有限;2、所有矢量輸出設(shè)備包括繪圖儀在內(nèi),盡管分辨率比柵格設(shè)備高,但也有一定的步長(zhǎng);3、矢量法輸入時(shí)曲線選取的點(diǎn)不可能太多;4、人工輸圖中不可避免的定位誤差。在前面第二章中已知道,矢量數(shù)據(jù)存儲(chǔ)是以隱式關(guān)系以最小的存儲(chǔ)空間存儲(chǔ)復(fù)雜的數(shù)據(jù)。當(dāng)然這只是相對(duì)而言,在地理信息系統(tǒng)中沒(méi)有絕對(duì)“最好”的方法。矢量數(shù)據(jù)結(jié)構(gòu)編碼的基本內(nèi)容1、點(diǎn)實(shí)體

點(diǎn)實(shí)體包括由單獨(dú)一對(duì)x,y坐標(biāo)定位的一切地理或制圖實(shí)體。在矢量數(shù)據(jù)結(jié)構(gòu)中,除點(diǎn)實(shí)體的x,y坐標(biāo)外還應(yīng)存儲(chǔ)其它一些與點(diǎn)實(shí)體有關(guān)的數(shù)據(jù)來(lái)描述點(diǎn)實(shí)體的類(lèi)型、制圖符號(hào)和顯示要求等。點(diǎn)是空間上不可再分的地理實(shí)體,可以是具體的也可以是抽象的,如地物點(diǎn)、文本位置點(diǎn)或線段網(wǎng)絡(luò)的結(jié)點(diǎn)等,如果點(diǎn)是一個(gè)與其它信息無(wú)關(guān)的符號(hào),則記錄時(shí)應(yīng)包括符號(hào)類(lèi)型、大小、方向等有關(guān)信息;如果點(diǎn)是文本實(shí)體,記錄的數(shù)據(jù)應(yīng)包括字符大小、字體、排列方式、比例、方向以及與其它非圖形屬性的聯(lián)系方式等信息。對(duì)其它類(lèi)型的點(diǎn)實(shí)體也應(yīng)做相應(yīng)的處理。圖3—10說(shuō)明了點(diǎn)實(shí)體的矢量數(shù)據(jù)結(jié)構(gòu)的一種組織方式。圖3-10點(diǎn)實(shí)體的矢量數(shù)據(jù)結(jié)構(gòu)2、線實(shí)體

線實(shí)體可以定義為直線元素組成的各種線性要素,直線元素由兩對(duì)以上的x,y坐標(biāo)定義。最簡(jiǎn)單的線實(shí)體只存儲(chǔ)它的起止點(diǎn)坐標(biāo)、屬性、顯示符等有關(guān)數(shù)據(jù)。例如,線實(shí)體輸出時(shí)可能用實(shí)線或虛線描繪,這類(lèi)信息屬符號(hào)信息,它說(shuō)明線實(shí)體的輸出方式。雖然線實(shí)體并不是以虛線存儲(chǔ),仍可用虛線輸出。圖3-10點(diǎn)實(shí)體的矢量數(shù)據(jù)結(jié)構(gòu)弧、鏈?zhǔn)莕個(gè)坐標(biāo)對(duì)的集合,這些坐標(biāo)可以描述任何連續(xù)而又復(fù)雜的曲線。組成曲線的線元素越短,x,y坐標(biāo)數(shù)量越多,就越逼近于一條復(fù)雜曲線,既要節(jié)省存儲(chǔ)空間,又要求較為精確地描繪曲線,唯一的辦法是增加數(shù)據(jù)處理工作量。亦即在線實(shí)體的紀(jì)錄中加入一個(gè)指示字,當(dāng)起動(dòng)顯示程序時(shí),這個(gè)指示字告訴程序:需要數(shù)學(xué)內(nèi)插函數(shù)(例如樣條函數(shù))加密數(shù)據(jù)點(diǎn)且與原來(lái)的點(diǎn)匹配。于是能在輸出設(shè)備上得到較精確的曲線。不過(guò),數(shù)據(jù)內(nèi)插工作卻增加了?;『玩湹拇鎯?chǔ)記錄中也要加入線的符號(hào)類(lèi)型等信息。線的網(wǎng)絡(luò)結(jié)構(gòu)。簡(jiǎn)單的線或鏈攜帶彼此互相連接的空間信息,而這種連接信息又是供排水網(wǎng)和道路網(wǎng)分析中必不可少的信息。因此要在數(shù)據(jù)結(jié)構(gòu)中建立指針系統(tǒng)才能讓計(jì)算機(jī)在復(fù)雜的線網(wǎng)結(jié)構(gòu)中逐線跟蹤每一條線。指針的建立要以結(jié)點(diǎn)為基礎(chǔ)。如建立水網(wǎng)中每條支流之間連接關(guān)系時(shí)必須使用這種指針系統(tǒng)。指針系統(tǒng)包括結(jié)點(diǎn)指向線的指針。每條從結(jié)點(diǎn)出發(fā)的線匯于結(jié)點(diǎn)處的角度等,從而完整地定義線網(wǎng)絡(luò)的拓?fù)潢P(guān)系。圖3-11線實(shí)體矢量編碼的基本內(nèi)容如上所述,線實(shí)體主要用來(lái)表示線狀地物(公路、水系、山脊線)、符號(hào)線和多邊形邊界,有時(shí)也稱(chēng)為“弧”、“鏈”、“串”等,其矢量編碼包括以下內(nèi)容:圖3-11線實(shí)體矢量編碼的基本內(nèi)容其中唯一標(biāo)識(shí)是系統(tǒng)排列序號(hào):線標(biāo)識(shí)碼可以標(biāo)識(shí)線的類(lèi)型;起始點(diǎn)和終止點(diǎn)可以用點(diǎn)號(hào)或直接用坐標(biāo)表示;顯示信息是顯示線的文本或符號(hào)等;與線相聯(lián)的非幾何屬性可以直接存儲(chǔ)于線文件中,也可單獨(dú)存儲(chǔ),而由標(biāo)識(shí)碼聯(lián)接查找。3、面實(shí)體多邊形(有時(shí)稱(chēng)為區(qū)域)數(shù)據(jù)是描述地理空間信息的最重要的一類(lèi)數(shù)據(jù)。在區(qū)域?qū)嶓w中,具有名稱(chēng)屬性和分類(lèi)屬性的,多用多邊形表示,如行政區(qū)、土地類(lèi)型、植被分布等;具有標(biāo)量屬性的有時(shí)也用等值線描述(如地形、降雨量等)。多邊形矢量編碼,不但要表示位置和屬性,更重要的是能表達(dá)區(qū)域的拓?fù)涮卣?,如形狀、鄰域和層次結(jié)構(gòu)等,以便使這些基本的空間單元可以作為專(zhuān)題圖的資料進(jìn)行顯示和操作,由于要表達(dá)的信息十分豐富,基于多邊形的運(yùn)算多而復(fù)雜,因此多邊形矢量編碼比點(diǎn)和線實(shí)體的矢量編碼要復(fù)雜得多,也更為重要。在討論多邊形數(shù)據(jù)結(jié)構(gòu)編碼的時(shí)候,首先對(duì)多邊形網(wǎng)提出如下的要求:(1)組成地圖的每個(gè)多邊形應(yīng)有唯一的形狀、周長(zhǎng)和面積。它們不象柵格結(jié)構(gòu)那樣具有簡(jiǎn)單而標(biāo)準(zhǔn)的基本單元。即使大多數(shù)美國(guó)的規(guī)劃街區(qū)也不能設(shè)想它們具有完全一樣的形狀和大小。對(duì)土壤或地質(zhì)圖上的多邊形來(lái)說(shuō)更不可能有相同的形狀和大小。(2)地理分析要求的數(shù)據(jù)結(jié)構(gòu)應(yīng)能夠記錄每個(gè)多邊形的鄰域關(guān)系,其方法與水系網(wǎng)中記錄連接關(guān)系一樣。(3)專(zhuān)題地圖上的多邊形并不都是同一等級(jí)的多邊形,而可能是多邊形內(nèi)嵌套小的多邊形(次一級(jí))。例如,湖泊的水涯線在土地利用圖上可算是個(gè)島狀多邊形,而湖中的島嶼為“島中之島”。這種所謂“島”或“洞”的結(jié)構(gòu)是多邊形關(guān)系中較難處理的問(wèn)題。 二、矢量數(shù)據(jù)結(jié)構(gòu)編碼的方法矢量數(shù)據(jù)結(jié)構(gòu)的編碼形式,按照其功能和方法可分為:實(shí)體式、索引式、雙重獨(dú)立式和鏈狀雙重獨(dú)立式。1、實(shí)體式圖3-12多邊形原始數(shù)據(jù)實(shí)體式數(shù)據(jù)結(jié)構(gòu)是指構(gòu)成多邊形邊界的各個(gè)線段,以多邊形為單元進(jìn)行組織。按照這種數(shù)據(jù)結(jié)構(gòu),邊界坐標(biāo)數(shù)據(jù)和多邊形單元實(shí)體一一對(duì)應(yīng),各個(gè)多邊形邊界都單獨(dú)編碼和數(shù)字化。例如對(duì)圖3-12所示的多邊形A、B、C、D、E,可以用表3-1的數(shù)據(jù)來(lái)表示。圖3-12多邊形原始數(shù)據(jù)表3-1多邊形數(shù)據(jù)文件表3-1多邊形數(shù)據(jù)文件多邊形數(shù)據(jù)項(xiàng)A(x1,y1),(x2,y2),(x3,y3),(x4,y4),(x5,y5),(x6,y6),(x7,y7),(x8,y8),(x9,y9),(x1,y1)B(x1,y1),(x9,y9),(x8,y8),(x17,y17),(x16,y16),(x15,y15),(x14,y14),(x13,y13),(x12,y12),(x11,y11),(x10,y10),(x1,y1)C(x24,y24),(x25,y25),(x26,y26),(x27,y27),(x28,y28),(x29,y29),(x30,y30),(x31,y31),(x24,y24)D(x19,y19),(x20,y20),(x21,y21),(x22,y22),(x23,y23),(x15,y15),(x16,y16),(x19,y19)E(x5,y5),(x18,y18),(x19,y19),(x16,y16),(x17,y17),(x8,y8),(x7,y7),(x6,y6),(x5,y5)這種數(shù)據(jù)結(jié)構(gòu)具有編碼容易、數(shù)字化操作簡(jiǎn)單和數(shù)據(jù)編排直觀等優(yōu)點(diǎn)。但這種方法也有以下明顯缺點(diǎn):

(1)相鄰多邊形的公共邊界要數(shù)字化兩遍,造成數(shù)據(jù)冗余存儲(chǔ),可能導(dǎo)致輸出的公共邊界出現(xiàn)間隙或重疊;

(2)缺少多邊形的鄰域信息和圖形的拓?fù)潢P(guān)系;

(3)島只作為一個(gè)單個(gè)圖形,沒(méi)有建立與外界多邊形的聯(lián)系。

因此,實(shí)體式編碼只用在簡(jiǎn)單的系統(tǒng)中。索引式索引式數(shù)據(jù)結(jié)構(gòu)采用樹(shù)狀索引以減少數(shù)據(jù)冗余并間接增加鄰域信息,具體方法是對(duì)所有邊界點(diǎn)進(jìn)行數(shù)字化,將坐標(biāo)對(duì)以順序方式存儲(chǔ),由點(diǎn)索引與邊界線號(hào)相聯(lián)系,以線索引與各多邊形相聯(lián)系,形成樹(shù)狀索引結(jié)構(gòu)。圖3-13線與多邊形之間的樹(shù)狀索引樹(shù)狀索引結(jié)構(gòu)消除了相鄰多邊形邊界的數(shù)據(jù)冗余和不一致的問(wèn)題,在簡(jiǎn)化過(guò)于復(fù)雜的邊界線或合并多邊形時(shí)可不必改造索引表,鄰域信息和島狀信息可以通過(guò)對(duì)多邊形文件的線索引處理得到,但是比較繁瑣,因而給鄰域函數(shù)運(yùn)算、消除無(wú)用邊、處理島狀信息以及檢查拓?fù)潢P(guān)系等帶來(lái)一定的困難,而且兩個(gè)編碼表都要以人工方式建立,工作量大且容易出錯(cuò)。圖3-13線與多邊形之間的樹(shù)狀索引圖3-14點(diǎn)與線之間的樹(shù)狀索引 圖3-13、3-14分別為圖3-12的多邊形文件和線文件樹(shù)狀索引圖。圖3-14點(diǎn)與線之間的樹(shù)狀索引圖3-15多邊形原始數(shù)據(jù)3、雙重獨(dú)立式圖3-15多邊形原始數(shù)據(jù)這種數(shù)據(jù)結(jié)構(gòu)最早是由美國(guó)人口統(tǒng)計(jì)局研制來(lái)進(jìn)行人口普查分析和制圖的,簡(jiǎn)稱(chēng)為DIME(DuallndependentMapEncoding)系統(tǒng)或雙重獨(dú)立式的地圖編碼法。它以城市街道為編碼的主體。其特點(diǎn)是采用了拓?fù)渚幋a結(jié)構(gòu)。雙重獨(dú)立式數(shù)據(jù)結(jié)構(gòu)是對(duì)圖上網(wǎng)狀或面狀要素的任何一條線段,用其兩端的節(jié)點(diǎn)及相鄰面域來(lái)予以定義。例如對(duì)圖3-15所示的多邊形數(shù)據(jù),用雙重獨(dú)立數(shù)據(jù)結(jié)構(gòu)表示如表3-2所示:表中的第一行表示線段a的方向是從節(jié)點(diǎn)1到節(jié)點(diǎn)8,其左側(cè)面域?yàn)镺,右側(cè)面域?yàn)锳。在雙重獨(dú)立式數(shù)據(jù)結(jié)構(gòu)中,節(jié)點(diǎn)與節(jié)點(diǎn)或者面域與面域之間為鄰接關(guān)系,節(jié)點(diǎn)與線段或者面域與線段之間為關(guān)聯(lián)關(guān)系。這種鄰接和關(guān)聯(lián)的關(guān)系稱(chēng)為拓樸關(guān)系。利用這種拓樸關(guān)系來(lái)組織數(shù)據(jù),可以有效地進(jìn)行數(shù)據(jù)存儲(chǔ)正確性檢查,同時(shí)便于對(duì)數(shù)據(jù)進(jìn)行更新和檢索。因?yàn)樵谶@種數(shù)據(jù)結(jié)構(gòu)中,當(dāng)編碼數(shù)據(jù)經(jīng)過(guò)計(jì)算機(jī)編輯處理以后,面域單元的第一個(gè)始節(jié)點(diǎn)表3-2雙重獨(dú)立式(DIME)編碼線號(hào)左多邊形右多邊形起點(diǎn)終點(diǎn)aOA18bOA21cOB32dOB43eOB54fOC65gOC76hOC87iCA89jCB95kCD1210lCD1112mCD1011nBA92應(yīng)當(dāng)和最后一個(gè)終節(jié)點(diǎn)相一致,而且當(dāng)按照左側(cè)面域或右側(cè)面域來(lái)自動(dòng)建立一個(gè)指定的區(qū)域單元時(shí),其空間點(diǎn)的坐標(biāo)應(yīng)當(dāng)自行閉合。如果不能自行閉合,或者出現(xiàn)多余的線段,則表示數(shù)據(jù)存儲(chǔ)或編碼有錯(cuò),這樣就達(dá)到數(shù)據(jù)自動(dòng)編輯的目的。例如,從上表中尋找右多邊形為A的記錄,則可以得到組成A多邊形的線及結(jié)點(diǎn)如表3-3,通過(guò)這種方法可以自動(dòng)形成面文件,并可以檢查線文件數(shù)據(jù)的正確性。表3-3自動(dòng)生成的多邊形A的線及結(jié)點(diǎn)線號(hào)起點(diǎn)表3-3自動(dòng)生成的多邊形A的線及結(jié)點(diǎn)線號(hào)起點(diǎn)終點(diǎn)左多邊形右多邊形a18OAi89CAn92BAb21OA4、鏈狀雙重獨(dú)立式鏈狀雙重獨(dú)立式數(shù)據(jù)結(jié)構(gòu)是DIME數(shù)據(jù)結(jié)構(gòu)的一種改進(jìn)。在DIME中,一條邊只能用直線兩端點(diǎn)的序號(hào)及相鄰的面域來(lái)表示,而在鏈狀數(shù)據(jù)結(jié)構(gòu)中,將若干直線段合為一個(gè)弧段(或鏈段),每個(gè)弧段可以有許多中間點(diǎn)。圖3-16多邊形原始數(shù)據(jù)在鏈狀雙重獨(dú)立數(shù)據(jù)結(jié)構(gòu)中,主要有四個(gè)文件:多邊形文件、弧段文件、弧段坐標(biāo)文件、結(jié)點(diǎn)文件。多邊形文件主要由多邊形記錄組成,包括多邊形號(hào)、組成多邊形的弧段號(hào)以及周長(zhǎng)、面積、中心點(diǎn)坐標(biāo)及有關(guān)“洞”的信息等,多邊形文件也可以通過(guò)軟件自動(dòng)檢索各有關(guān)弧段生成,并同時(shí)計(jì)算出多邊形的周長(zhǎng)和面積以及中心點(diǎn)的坐標(biāo),當(dāng)多邊形中含有“洞”時(shí)則此“洞”的面積為負(fù),并在總面積中減去,其組成的弧段號(hào)前也冠以負(fù)號(hào);弧段文件主要有弧記錄組成,存儲(chǔ)弧段的起止結(jié)點(diǎn)號(hào)和弧段左右多邊形號(hào);弧段坐標(biāo)文件由一系列點(diǎn)的位置坐標(biāo)組成,一般從數(shù)字化過(guò)程獲取,數(shù)字化的順序確定了這條鏈段的方向。結(jié)點(diǎn)文件由結(jié)點(diǎn)記錄組成,存儲(chǔ)每個(gè)結(jié)點(diǎn)的結(jié)點(diǎn)號(hào)、結(jié)點(diǎn)坐標(biāo)及與該結(jié)點(diǎn)連接的弧段。結(jié)點(diǎn)文件一般通過(guò)軟件自動(dòng)生成,因?yàn)樵跀?shù)字化的過(guò)程中,由于數(shù)字化操作的誤差,各弧段在同一結(jié)點(diǎn)處的坐標(biāo)不可能完全一致,需要進(jìn)行匹配處理。當(dāng)其偏差在允許范圍內(nèi)時(shí),可取同名結(jié)點(diǎn)的坐標(biāo)平均值。如果偏差過(guò)大,則弧段需要重新數(shù)字化。圖3-16多邊形原始數(shù)據(jù)表3-4多邊形文件多邊形號(hào)表3-4多邊形文件多邊形號(hào)弧段號(hào)周長(zhǎng)面積中心點(diǎn)坐標(biāo)Ah,b,aBg,f,c,h,-jCjDe,i,fEe,i,d,b表3-5弧段文件表3-5弧段文件弧段號(hào)起始點(diǎn)終結(jié)點(diǎn)左多邊形右多邊形a51OAb85EAc168EBd195OEe1519ODf1516DBg115OBh81ABi1619DEj3131BC表3-6弧段坐標(biāo)文件弧段號(hào)點(diǎn)號(hào)a5,4,3,2,1b8,7,6,5c16,17,8d19,18,5e15,23,22,21,20,19f15,16,g1,10,11,12,13,14,15h8,9,1i16,19j31,30,29,28,27,26,25,24,31兩種數(shù)據(jù)結(jié)構(gòu)的比較與轉(zhuǎn)化一、兩種數(shù)據(jù)結(jié)構(gòu)的比較柵格結(jié)構(gòu)和矢量結(jié)構(gòu)是模擬地理信息的兩種不同的方法。柵格數(shù)據(jù)結(jié)構(gòu)類(lèi)型具有“屬性明顯、位置隱含”的特點(diǎn),它易于實(shí)現(xiàn),且操作簡(jiǎn)單,有利于基于柵格的空間信息模型的分析,如在給定區(qū)域內(nèi)計(jì)算多邊形面積、線密度,柵格結(jié)構(gòu)可以很快算得結(jié)果,而采用矢量數(shù)據(jù)結(jié)構(gòu)則麻煩的多;但柵格數(shù)據(jù)表達(dá)精度不高,數(shù)據(jù)存儲(chǔ)量大,工作效率較低。如要提高一倍的表達(dá)精度(柵格單元減小一半),數(shù)據(jù)量就需增加三倍,同時(shí)也增加了數(shù)據(jù)的冗余。因此,對(duì)于基于柵格數(shù)據(jù)結(jié)構(gòu)的應(yīng)用來(lái)說(shuō),需要根據(jù)應(yīng)用項(xiàng)目的自身特點(diǎn)及其精度要求來(lái)恰當(dāng)?shù)仄胶鈻鸥駭?shù)據(jù)的表達(dá)精度和工作效率兩者之間的關(guān)系。另外,因?yàn)闁鸥駭?shù)據(jù)格式的簡(jiǎn)單性(不經(jīng)過(guò)壓縮編碼),其數(shù)據(jù)格式容易為大多數(shù)程序設(shè)計(jì)人員和用戶(hù)所理解,基于柵格數(shù)據(jù)基礎(chǔ)之上的信息共享也較矢量數(shù)據(jù)容易。最后,遙感影象本身就是以象元為單位的柵格結(jié)構(gòu),所以,可以直接把遙感影象應(yīng)用于柵格結(jié)構(gòu)的地理信息系統(tǒng)中,也就是說(shuō)柵格數(shù)據(jù)結(jié)構(gòu)比較容易和遙感相結(jié)合。矢量數(shù)據(jù)結(jié)構(gòu)類(lèi)型具有“位置明顯、屬性隱含”的特點(diǎn),它操作起來(lái)比較復(fù)雜,許多分析操作(如疊置分析等)用矢量數(shù)據(jù)結(jié)構(gòu)難于實(shí)現(xiàn);但它的數(shù)據(jù)表達(dá)精度較高,數(shù)據(jù)存儲(chǔ)量小,輸出圖形美觀且工作效率較高。兩者的比較見(jiàn)3-7表:表3-7柵格、矢量數(shù)據(jù)結(jié)構(gòu)特點(diǎn)比較比較內(nèi)容矢量格式柵格格式數(shù)據(jù)量小大圖形精度高低圖形運(yùn)算復(fù)雜、高效簡(jiǎn)單、低效遙感影像格式不一致一致或接近輸出表示抽象、昂貴直觀、便宜數(shù)據(jù)共享不易實(shí)現(xiàn)容易實(shí)現(xiàn)拓?fù)浜途W(wǎng)絡(luò)分析容易實(shí)現(xiàn)不易實(shí)現(xiàn)二、矢量數(shù)據(jù)結(jié)構(gòu)向柵格數(shù)據(jù)結(jié)構(gòu)的轉(zhuǎn)換在地理信息系統(tǒng)中柵格數(shù)據(jù)與矢量數(shù)據(jù)各具特點(diǎn)與適用性,為了在一個(gè)系統(tǒng)中可以兼容這兩種數(shù)據(jù),以便有利于進(jìn)一步的分析處理,常常需要實(shí)現(xiàn)兩種結(jié)構(gòu)的轉(zhuǎn)換。1、矢量數(shù)據(jù)結(jié)構(gòu)向柵格數(shù)據(jù)結(jié)構(gòu)的轉(zhuǎn)換許多數(shù)據(jù)如行政邊界、交通干線、土地利用類(lèi)型、土壤類(lèi)型等都是用矢量數(shù)字化的方法輸人計(jì)算機(jī)或以矢量的方式存在計(jì)算機(jī)中,表現(xiàn)為點(diǎn)、線、多邊形數(shù)據(jù)。然而,矢量數(shù)據(jù)直接用于多種數(shù)據(jù)的復(fù)合分析等處理將比較復(fù)雜,特別是不同數(shù)據(jù)要在位置上一一配準(zhǔn),尋找交點(diǎn)并進(jìn)行分析。相比之下利用柵格數(shù)據(jù)模式進(jìn)行處理則容易得多。加之土地覆蓋和土地利用等數(shù)據(jù)常常從遙感圖象中獲得,這些數(shù)據(jù)都是柵格數(shù)據(jù),因此矢量數(shù)據(jù)與它們的疊置復(fù)合分析更需要把其從矢量數(shù)據(jù)的形式轉(zhuǎn)變?yōu)闁鸥駭?shù)據(jù)的形式。矢量數(shù)據(jù)的基本坐標(biāo)是直角坐標(biāo)X、Y,其坐標(biāo)原點(diǎn)一般取圖的左下角。網(wǎng)格數(shù)據(jù)的基本坐標(biāo)是行和列(i,j),其坐標(biāo)原點(diǎn)一般取圖的左上角。兩種數(shù)據(jù)變換時(shí),令直角坐標(biāo)X和Y分別與行與列平行。由于矢量數(shù)據(jù)的基本要素是點(diǎn)、線、面,因而只要實(shí)現(xiàn)點(diǎn)、線、面的轉(zhuǎn)換,各種線劃圖形的變換問(wèn)題基本上都可以得到解決。(1)點(diǎn)的變換點(diǎn)的變換十分簡(jiǎn)單,只要這個(gè)點(diǎn)落在那個(gè)網(wǎng)格中就是屬于那個(gè)網(wǎng)格元素。其行、列坐標(biāo)i,j可由下式求出:圖3-17兩種坐標(biāo)關(guān)系 其中X,Y為矢量點(diǎn)位坐標(biāo);ΔX,ΔY分別表示元素的二個(gè)邊長(zhǎng);Xmin,Xmax表示全圖X坐標(biāo)的最小值和最大值;Ymin,Ymax表示全圖Y坐標(biāo)的最小值和最大值;I,J分別表示全圖網(wǎng)格的行數(shù)和列數(shù)(見(jiàn)圖3-17),則它們之間的關(guān)系可以表示成:圖3-17兩種坐標(biāo)關(guān)系這里I和J可以由原地圖比例尺根據(jù)地圖對(duì)應(yīng)的地面長(zhǎng)寬和網(wǎng)格分辨率相除求得,并取整數(shù)。(2)矢量線段的變換 曲線在數(shù)字化時(shí)輸入多個(gè)點(diǎn),形成折線,由于點(diǎn)多而密集,折線在視覺(jué)上就形成曲線。因?yàn)橄噜弮牲c(diǎn)之間是直線,所以只要知道直線轉(zhuǎn)換網(wǎng)格的方法,曲線和多邊形邊的轉(zhuǎn)換就可以完成。假定一線段兩端點(diǎn)之間經(jīng)過(guò)若干個(gè)網(wǎng)格元素(至少一個(gè)),如圖3—18所示。兩端點(diǎn)坐標(biāo)已知為(X1,Y1),(X2,Y2),則要確定直線經(jīng)過(guò)的中間網(wǎng)格,只要先確定中間那一行的中心坐標(biāo)Y.例如由(3—1)式先標(biāo)出兩端點(diǎn)的行數(shù)i為3和6,那么需要知道直線經(jīng)過(guò)的4,5兩行哪個(gè)網(wǎng)格與直線相交,因?yàn)樾袛?shù)已知主要計(jì)算列數(shù)。計(jì)算時(shí).先找到4行(I=4)中心的Y值是多少,再可以由ΔY和Ymax求出這一點(diǎn)的J值。同樣方法可以計(jì)算第5行(I=5)的J值。圖3-18線的變換依次用同樣方法找到直線經(jīng)過(guò)的每一網(wǎng)格并用本直線的屬性值(特征值)去填充這些網(wǎng)絡(luò),完成直線的轉(zhuǎn)換。對(duì)于曲線或多邊形邊上的每條直線作連續(xù)運(yùn)算,可以完成曲線或多邊形的交換。圖3-18線的變換圖3-19閉合多邊形圖3-20多邊形矢量結(jié)構(gòu)向柵格結(jié)構(gòu)的轉(zhuǎn)換圖3-19閉合多邊形圖3-20多邊形矢量結(jié)構(gòu)向柵格結(jié)構(gòu)的轉(zhuǎn)換首先應(yīng)當(dāng)指出的是,雖然可以用特征碼的形式來(lái)定義任何一條多邊形線段的屬性,但是,這種屬性只是線段的屬性,而并不是面域的屬性,要完成面域的柵格化,其首要前提是實(shí)現(xiàn)以多邊形線段反映其周?chē)嬗虻膶傩源?。目前一般采用的是左碼記錄法。其原理是,如圖3—19,有一閉合多邊形,它將整個(gè)矩形面域分割成屬性為1和為0的兩部分。如果在矢量數(shù)字化取數(shù)時(shí)沒(méi)有在數(shù)字化點(diǎn)的屬性碼中反映面域?qū)傩苑之悹顩r,轉(zhuǎn)換的第一步工作即是要實(shí)現(xiàn)這個(gè)目標(biāo)。首先,從數(shù)字化數(shù)據(jù)的第一點(diǎn)開(kāi)始依次記錄每一點(diǎn)左邊面域的屬性值(面域外為O,面域內(nèi)為1)。記錄方法可以由計(jì)算機(jī)自動(dòng)完成、如果圖內(nèi)的圖斑及屬性多而繁雜,可采用人機(jī)交互方式完成。這樣,每一個(gè)多邊是形數(shù)字化點(diǎn)便實(shí)現(xiàn)了“三值化”,即坐標(biāo)值、線段自身屬性值及左側(cè)面域?qū)傩灾怠P枰⒁獾?,?duì)每一條邊柵格化時(shí),記錄的點(diǎn)的坐標(biāo)值每一行只記錄一個(gè)。如線段ab只跨越了5行,所以最后只記錄5個(gè)柵格點(diǎn)的坐標(biāo)值、線段屬性值和左側(cè)面域?qū)傩灾?。第二步,?duì)多邊形的每一條邊,按以上所述的線段柵格化的方法進(jìn)行轉(zhuǎn)換,得到如圖3—20所示的數(shù)據(jù)組成。第三步,節(jié)點(diǎn)處理,使節(jié)點(diǎn)的柵格值唯一而準(zhǔn)確。第四步,排序,從第一行起逐行按列的先后順序排序,這時(shí),所得到的數(shù)據(jù)結(jié)構(gòu)完全等同于柵格數(shù)據(jù)壓縮編碼的數(shù)據(jù)結(jié)構(gòu)形式。圖3-21全柵格數(shù)據(jù)結(jié)構(gòu)最后展開(kāi)為全柵格數(shù)據(jù)結(jié)構(gòu),完成由矢量數(shù)據(jù)系統(tǒng)向柵格數(shù)據(jù)系統(tǒng)的轉(zhuǎn)換(見(jiàn)圖3—21)。圖3-21全柵格數(shù)據(jù)結(jié)構(gòu)矢量數(shù)據(jù)變成柵格數(shù)據(jù)的原理與方法并不困難,但由于矢量數(shù)據(jù)的記錄方式各不相同,也會(huì)產(chǎn)生一些問(wèn)題。如多邊形之間公共邊原來(lái)只有一條交界線轉(zhuǎn)變成網(wǎng)格后成為有一定寬度的界線產(chǎn)生了一定的近似性。特別是幾條線交叉處.一個(gè)網(wǎng)格元素中包括了相鄰的幾種類(lèi)別,轉(zhuǎn)換時(shí)只能用其中的一種類(lèi)別作為交叉點(diǎn)所在元素的類(lèi)別,這種誤差應(yīng)在允許的范圍以?xún)?nèi)。而減小網(wǎng)格尺寸,雖提高了精度.但大大提高了數(shù)據(jù)的冗余量,這是一對(duì)明顯的矛盾。除此轉(zhuǎn)換方法以外,矢量數(shù)據(jù)向柵格數(shù)據(jù)轉(zhuǎn)換的方法還有內(nèi)部點(diǎn)擴(kuò)散法,復(fù)數(shù)積分算法,射線算法和掃描線算法,但相比之下,這些方法都比較復(fù)雜、并有較大的限制條件,這里不作進(jìn)一步討論。三、柵格數(shù)據(jù)結(jié)構(gòu)向矢量數(shù)據(jù)結(jié)構(gòu)的轉(zhuǎn)換柵格向矢量轉(zhuǎn)換處理的目的,是為了將柵格數(shù)據(jù)分析的結(jié)果,通過(guò)矢量繪圖裝置輸出,或者為了數(shù)據(jù)壓縮的需要,將大量的面狀柵格數(shù)據(jù)轉(zhuǎn)換為由少量數(shù)據(jù)表示的多邊形邊界,但是主要目的是為了能將自動(dòng)掃描儀獲取的柵格數(shù)據(jù)加入矢量形式的數(shù)據(jù)庫(kù)。轉(zhuǎn)換處理時(shí),基于圖象數(shù)據(jù)文件和再生柵格數(shù)據(jù)文件的不同,分別采用不同的算法。1、基于圖象數(shù)據(jù)的矢量化方法圖象數(shù)據(jù)是由不同灰階的影像或線劃,通過(guò)自動(dòng)掃描儀(scanner),按一定的分辨率進(jìn)行掃描采樣,得到以不同灰度值(0—255)表示的數(shù)據(jù)(圖3—22(b))。目前掃描儀的分辨率可達(dá)0.0125mm,因此對(duì)一般粗度(例如0.1mm)的線條,其橫斷面掃描后平均也有8個(gè)像元,而矢量化的要求只能允許橫斷面保持一個(gè)柵格的寬度,因此需要進(jìn)行從柵格向(a(a)掃描前的矢量數(shù)據(jù)(b)掃描得到的灰度值(c)根據(jù)給定的閾值二值化后得到的柵格數(shù)據(jù)圖3-22經(jīng)掃描得到柵格數(shù)據(jù)的過(guò)程具體轉(zhuǎn)換的步驟如圖3—23所示:(1)二值化線劃圖形掃描后產(chǎn)生柵格數(shù)據(jù),這些數(shù)據(jù)是按從0—255的不同灰度值量度的(類(lèi)似圖3-22(b)),設(shè)以G(i,j)表示,為了將這種256或128級(jí)不同的灰階壓縮到2個(gè)灰階,即0和1兩級(jí),首先要在最大與最小灰階之間定義一個(gè)閾值,設(shè)閾值為T(mén),則如果G(i,j)大于等于T,則記此柵格的值為1,如果G(i,j)小于T,則記此柵格的值為0,得到一幅二值圖(如圖3—23(a))。圖3-243*3柵格組合圖(a)(b)(c)(d)圖3-23柵格-矢量轉(zhuǎn)換過(guò)程(2)細(xì)化細(xì)化是消除線劃?rùn)M斷面柵格數(shù)的差異,使得每一條線只保留代表其軸線或周?chē)喞€(對(duì)面狀符號(hào)而言)位置的單個(gè)柵格的寬度。對(duì)于柵格線劃的“細(xì)化”方法,可分為“剝皮法”和“骨架化”兩大類(lèi)。剝皮法的實(shí)質(zhì)是從曲線的邊緣開(kāi)始,每次剝掉等于一個(gè)柵格寬的一層,直到最后留下彼此連通的由單個(gè)柵格點(diǎn)組成的圖形。因?yàn)橐粭l線在不同位置可能有不同的寬度,故在剝皮過(guò)程中必須注意一個(gè)條件,即不允許剝?nèi)?huì)導(dǎo)致曲線不連通的柵格。這是這一方法的技術(shù)關(guān)鍵所在。其解決辦法是,借助一個(gè)在計(jì)算機(jī)中存儲(chǔ)著的,由待剝柵格為中心的3×3柵格組合圖(圖3—24)來(lái)決定。如圖所示,一個(gè)3×3的柵格窗口,其中心柵格有八個(gè)鄰域,因此組合圖共有28種不同的排列格式,若將相對(duì)位置關(guān)系的差異只是轉(zhuǎn)置90。、180圖3-243*3柵格組合圖(a)(b)(c)(d)圖3-23柵格-矢量轉(zhuǎn)換過(guò)程(3)跟蹤跟蹤的目的是將寫(xiě)入數(shù)據(jù)文件的細(xì)化處理后的柵格數(shù)據(jù),整理為從結(jié)點(diǎn)出發(fā)的線段或閉合的線條,并以矢量形式存儲(chǔ)于特征柵格點(diǎn)中心的坐標(biāo)(圖3—23(d))。跟蹤時(shí),從圖幅西北角開(kāi)始,按順時(shí)針或逆時(shí)針?lè)较?,從起始點(diǎn)開(kāi)始,根據(jù)八個(gè)鄰域進(jìn)行搜索,依次跟蹤相鄰點(diǎn)。并記錄結(jié)點(diǎn)坐標(biāo),然后搜索閉曲線,直到完成全部柵格數(shù)據(jù)的矢量化,寫(xiě)入矢量數(shù)據(jù)庫(kù)。2、基于再生柵格數(shù)據(jù)的矢量化方法再生柵格數(shù)據(jù)是指根據(jù)弧段數(shù)據(jù)或多邊形數(shù)據(jù)生成的柵格數(shù)據(jù)。這種數(shù)據(jù)除了要與圖象數(shù)據(jù)相匹配,加入數(shù)據(jù)庫(kù),一般只提供分析應(yīng)用,不需作為永久文件保存。而作為永久文件保存的是原始的矢量數(shù)據(jù)文件,包括節(jié)點(diǎn)坐標(biāo)文件、弧段文件、多邊形文件及多邊形內(nèi)部點(diǎn)文件;這種再生柵格數(shù)據(jù)的矢量化,其主要目的是為了通過(guò)矢量繪圖裝置輸出,具體的矢量化方法主要有以下幾個(gè)步驟:(1)邊界線追蹤:對(duì)每個(gè)邊界弧段由一個(gè)節(jié)點(diǎn)向另一個(gè)節(jié)點(diǎn)搜索,通常對(duì)每個(gè)已知邊界點(diǎn)需沿除進(jìn)入方向的其它7個(gè)方向搜索下一個(gè)邊界點(diǎn),直到連成邊界弧段。(2)拓?fù)潢P(guān)系生成:對(duì)于矢量表示的邊界弧段,判斷其與原圖上各多邊形的空間關(guān)系,形成完整的拓?fù)浣Y(jié)構(gòu),并建立與屬性數(shù)據(jù)的聯(lián)系。(3)去除多余點(diǎn)及曲線圓滑:由于搜索是逐個(gè)柵格進(jìn)行的,必須去除由此造成的多余點(diǎn)記錄以減少冗余。搜索結(jié)果曲線由于柵格精度的限制可能不夠圓滑,需要采用一定的插補(bǔ)算法進(jìn)行光滑處理。常用的算法有線性疊代法、分段三次多項(xiàng)式插值法、正軸拋物線平均加權(quán)法、斜軸拋物線平均加權(quán)法、樣條函數(shù)插值法等。圖3-25是兩個(gè)多邊形轉(zhuǎn)換示意圖。圖3-25兩個(gè)多邊形轉(zhuǎn)換示意圖圖3-25兩個(gè)多邊形轉(zhuǎn)換示意圖第四節(jié)數(shù)據(jù)庫(kù)概述 數(shù)據(jù)庫(kù)技術(shù)是60年代初開(kāi)始發(fā)展起來(lái)的一門(mén)數(shù)據(jù)管理自動(dòng)化的綜合性新技術(shù)。數(shù)據(jù)庫(kù)的應(yīng)用領(lǐng)域相當(dāng)廣泛,從一般事務(wù)處理,到各種專(zhuān)門(mén)化數(shù)據(jù)的存儲(chǔ)與管理,都可以建立不同類(lèi)型的數(shù)據(jù)庫(kù)。建立數(shù)據(jù)庫(kù)不僅僅是為了保存數(shù)據(jù),擴(kuò)展人的記憶,而主要是為了幫助人們?nèi)ス芾砗涂刂婆c這些數(shù)據(jù)相關(guān)聯(lián)的事物。地理信息系統(tǒng)中的數(shù)據(jù)庫(kù)就是一種專(zhuān)門(mén)化的數(shù)據(jù)庫(kù),由于這類(lèi)數(shù)據(jù)庫(kù)具有明顯的空間特征,所以有人把它稱(chēng)為空間數(shù)據(jù)庫(kù),空間數(shù)據(jù)庫(kù)的理論與方法是地理信息系統(tǒng)的核心問(wèn)題。數(shù)據(jù)庫(kù)的定義數(shù)據(jù)庫(kù)就是為了一定的目的,在計(jì)算機(jī)系統(tǒng)中以特定的結(jié)構(gòu)組織、存儲(chǔ)和應(yīng)用的相關(guān)聯(lián)的數(shù)據(jù)集合。計(jì)算機(jī)對(duì)數(shù)據(jù)的管理經(jīng)過(guò)了三個(gè)階段—最早的程序管理階段,后來(lái)的文件管理階段,現(xiàn)在的數(shù)據(jù)庫(kù)管理階段。其中,數(shù)據(jù)庫(kù)是數(shù)據(jù)管理的高級(jí)階段,它與傳統(tǒng)的數(shù)據(jù)管理相比有許多明顯的差別,其中主要的有兩點(diǎn):一是數(shù)據(jù)獨(dú)立于應(yīng)用程序而集中管理,實(shí)現(xiàn)了數(shù)據(jù)共享,減少了數(shù)據(jù)冗余,提高了數(shù)據(jù)的效益;二是在數(shù)據(jù)間建立了聯(lián)系,從而使數(shù)據(jù)庫(kù)能反映出現(xiàn)實(shí)世界中信息的聯(lián)系。地理信息系統(tǒng)的數(shù)據(jù)庫(kù)(以下稱(chēng)為空間數(shù)據(jù)庫(kù))是某區(qū)域內(nèi)關(guān)于一定地理要素特征的數(shù)據(jù)集合??臻g數(shù)據(jù)庫(kù)與一般數(shù)據(jù)庫(kù)相比,具有以下特點(diǎn):(1)數(shù)據(jù)量特別大,地理系統(tǒng)是一個(gè)復(fù)雜的綜合體,要用數(shù)據(jù)來(lái)描述各種地理要素,尤其是要素的空間位置,其數(shù)據(jù)量往往大得驚人。即使是一個(gè)很小區(qū)域的數(shù)據(jù)庫(kù)也是如此。(2)不僅有地理要素的屬性數(shù)據(jù)(與一般數(shù)據(jù)庫(kù)中的數(shù)據(jù)性質(zhì)相似),還有大量的空間數(shù)據(jù),即描述地理要素空間分布位置的數(shù)據(jù),并且這兩種數(shù)據(jù)之間具有不可分割的聯(lián)系。(3)數(shù)據(jù)應(yīng)用的面相當(dāng)廣,如地理研究、環(huán)境保護(hù)、土地利用與規(guī)劃、資源開(kāi)發(fā)、生態(tài)環(huán)境、市政管理、道路建設(shè)等等。上述特點(diǎn),尤其是第二點(diǎn),決定了在建立空間數(shù)據(jù)庫(kù)時(shí),一方面應(yīng)該遵循和應(yīng)用通用數(shù)據(jù)庫(kù)的原理和方法,另一方面又必須采取一些特殊的技術(shù)和方法來(lái)解決其它數(shù)據(jù)庫(kù)所沒(méi)有的管理空間數(shù)據(jù)的問(wèn)題。二、數(shù)據(jù)庫(kù)的主要特征數(shù)據(jù)庫(kù)方法與文件管理方法相比,具有更強(qiáng)的數(shù)據(jù)管理能力。數(shù)據(jù)庫(kù)具有以下主要特征:數(shù)據(jù)集中控制特征在文件管理方法中,文件是分散的,每個(gè)用戶(hù)或每種處理都有各自的文件,不同的用戶(hù)或處理的文件一般是沒(méi)有聯(lián)系的,因而就不能為多用戶(hù)共享,也不能按照統(tǒng)一的方法來(lái)控制、維護(hù)和管理。數(shù)據(jù)庫(kù)很好地克服了這一缺點(diǎn),數(shù)據(jù)庫(kù)集中控制和管理有關(guān)數(shù)據(jù),以保證不同用戶(hù)和應(yīng)用可以共享數(shù)據(jù)。數(shù)據(jù)集中并不是把若干文件“拼湊”在一起,而是要把數(shù)據(jù)“集成”。因此,數(shù)據(jù)庫(kù)的內(nèi)容和結(jié)構(gòu)必須合理,才能滿足眾多用戶(hù)的要求。數(shù)據(jù)冗余度小的特征冗余是指數(shù)據(jù)的重復(fù)存儲(chǔ)。在文件方式中,數(shù)據(jù)冗余太。冗余數(shù)據(jù)的存在有兩個(gè)缺點(diǎn):一是增加了存儲(chǔ)空間;二是易出現(xiàn)數(shù)據(jù)不一致。設(shè)計(jì)數(shù)據(jù)庫(kù)的主要任務(wù)之一是識(shí)別冗余數(shù)據(jù),并確定是否能夠消除。在目前情況下,即使數(shù)據(jù)庫(kù)方法也不能完全消除冗余數(shù)據(jù)。有時(shí),為了提高數(shù)據(jù)處理效率,也應(yīng)該有一定程度的數(shù)據(jù)冗余。但是,在數(shù)據(jù)庫(kù)中應(yīng)該嚴(yán)格控制數(shù)據(jù)的冗余度。在有冗余的情況下,數(shù)據(jù)更新、修改時(shí),必須保證數(shù)據(jù)庫(kù)內(nèi)容的一致性。3、數(shù)據(jù)獨(dú)立性特征數(shù)據(jù)獨(dú)立是數(shù)據(jù)庫(kù)的關(guān)鍵性要求。數(shù)據(jù)獨(dú)立是指數(shù)據(jù)庫(kù)中的數(shù)據(jù)與應(yīng)用程序相互獨(dú)立,即應(yīng)用程序不因數(shù)據(jù)性質(zhì)的改變而改變;數(shù)據(jù)的性質(zhì)也不因應(yīng)用程序的改變而改變。數(shù)據(jù)獨(dú)立分為兩級(jí):物理級(jí)和邏輯級(jí)。物理獨(dú)立是指數(shù)據(jù)的物理結(jié)構(gòu)變化不影響數(shù)據(jù)的邏輯結(jié)構(gòu);邏輯獨(dú)立意味著數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)的改變不影響應(yīng)用程序。但是,邏輯結(jié)構(gòu)的改變必然影響到數(shù)據(jù)的物理結(jié)構(gòu)。目前,數(shù)據(jù)邏輯獨(dú)立還沒(méi)有能完全實(shí)觀。4、復(fù)雜的數(shù)據(jù)模型數(shù)據(jù)模型能夠表示現(xiàn)實(shí)世界中各種各樣的數(shù)據(jù)組織以及數(shù)據(jù)間的聯(lián)系。復(fù)雜的數(shù)據(jù)模型是實(shí)現(xiàn)數(shù)據(jù)集中控制、減少數(shù)據(jù)冗余的前提和保證。采用數(shù)據(jù)模型是數(shù)據(jù)庫(kù)方法與文件方式的一個(gè)本質(zhì)差別。數(shù)據(jù)庫(kù)常用的數(shù)據(jù)模型有三種:層次模型,網(wǎng)絡(luò)模型和關(guān)系模型。因此,根據(jù)使用的模型,可以把數(shù)據(jù)庫(kù)分成:層次型數(shù)據(jù)庫(kù),網(wǎng)絡(luò)型數(shù)據(jù)庫(kù)和關(guān)系型數(shù)據(jù)庫(kù)。5、數(shù)據(jù)保護(hù)特征數(shù)據(jù)保護(hù)對(duì)數(shù)據(jù)庫(kù)來(lái)說(shuō)是至關(guān)重要的,一旦數(shù)據(jù)庫(kù)中的數(shù)據(jù)遭到破壞,就會(huì)影響數(shù)據(jù)庫(kù)的功能,甚至使整個(gè)數(shù)據(jù)庫(kù)失去作用、數(shù)據(jù)保護(hù)主要包括四個(gè)方面的內(nèi)容:安全性控制、完整性控制、并發(fā)控制、故障的發(fā)現(xiàn)和恢復(fù)。三、數(shù)據(jù)庫(kù)的系統(tǒng)結(jié)構(gòu)數(shù)據(jù)庫(kù)是一個(gè)復(fù)雜的系統(tǒng)。數(shù)據(jù)庫(kù)的基本結(jié)構(gòu)可以分成三個(gè)層次:物理級(jí)、概念級(jí)和用戶(hù)級(jí)。1、物理級(jí):數(shù)據(jù)庫(kù)最內(nèi)的一層。它是物理設(shè)備上實(shí)際存儲(chǔ)的數(shù)據(jù)集合(物理數(shù)據(jù)庫(kù))。它是由物理模式(也稱(chēng)內(nèi)部模式)描述的。2、概念級(jí):數(shù)據(jù)庫(kù)的邏輯表示,包括每個(gè)數(shù)據(jù)的邏輯定義以及數(shù)據(jù)間的邏輯聯(lián)系。它是由概念模式定義的,這一級(jí)也被稱(chēng)為概念模型。用戶(hù)級(jí):用戶(hù)所使用的數(shù)據(jù)庫(kù),是一個(gè)或幾個(gè)特定用戶(hù)所使用的數(shù)據(jù)集合(外部模型),是概念模型的邏輯子集。它由外部模式定義。四、數(shù)據(jù)組織方式數(shù)據(jù)是現(xiàn)實(shí)世界中信息的裁體,是信息的具體表達(dá)形式。為了表達(dá)有意義的信息內(nèi)容,數(shù)據(jù)必須按照一定的方式進(jìn)行組織和存儲(chǔ)。數(shù)據(jù)庫(kù)中的數(shù)據(jù)組織一般可以分為四級(jí):數(shù)據(jù)項(xiàng)、記錄、文件和數(shù)據(jù)庫(kù)。1、數(shù)據(jù)項(xiàng):是可以定義數(shù)據(jù)的最小單位,也叫元素、基本項(xiàng)、字段等。數(shù)據(jù)項(xiàng)與現(xiàn)實(shí)世界實(shí)體的屬性相對(duì)應(yīng),數(shù)據(jù)項(xiàng)有一定的取值范圍,稱(chēng)為域。域以外的任何值對(duì)該數(shù)據(jù)項(xiàng)都是無(wú)意義的。如表示月份的數(shù)據(jù)項(xiàng)的域是1—12,13就是無(wú)意義的值。每個(gè)數(shù)據(jù)項(xiàng)都有一個(gè)名稱(chēng),稱(chēng)為數(shù)據(jù)項(xiàng)目。數(shù)據(jù)項(xiàng)的值可以是數(shù)值的、字母的、漢字的等形式。數(shù)據(jù)項(xiàng)的物理特點(diǎn)在于它具有確定的物理長(zhǎng)度,一般用字節(jié)數(shù)表示。幾個(gè)數(shù)據(jù)項(xiàng)可以組合,構(gòu)成組合數(shù)據(jù)項(xiàng)。如“日期”可以由日、月、年三個(gè)數(shù)據(jù)項(xiàng)組合而成。組合數(shù)據(jù)項(xiàng)也有自己的名字,可以作為一個(gè)整體看待。2、記錄:由若干相關(guān)聯(lián)的數(shù)據(jù)項(xiàng)組成。記錄是應(yīng)用程序輸入—輸出的邏輯單位。對(duì)大多數(shù)據(jù)庫(kù)系統(tǒng),記錄是處理和存儲(chǔ)信息的基本單位。記錄是關(guān)于一個(gè)實(shí)體的數(shù)據(jù)總和,構(gòu)成該記錄的數(shù)據(jù)項(xiàng)表示實(shí)體的若干屬性。記錄有“型”和“值”的區(qū)別。“型”是同類(lèi)記錄的框架,它定義記錄,“值”是記錄反映實(shí)體的內(nèi)容。為了唯一標(biāo)識(shí)每個(gè)記錄,就必須有記錄標(biāo)識(shí)符,也叫關(guān)鍵字。記錄標(biāo)識(shí)符一般由記錄中的第一個(gè)數(shù)據(jù)項(xiàng)擔(dān)任,唯一標(biāo)識(shí)記錄的關(guān)鍵字稱(chēng)主關(guān)鍵字,其它標(biāo)識(shí)記錄的關(guān)鍵字稱(chēng)為輔關(guān)鍵字。3、文件:文件是一給定類(lèi)型的(邏輯)記錄的全部具體值的集合。文件用文件名稱(chēng)標(biāo)識(shí)。文件根據(jù)記錄的組織方式和存取方法可以分為:順序文件、索引文件、直接文件和倒排文件等等。4、數(shù)據(jù)庫(kù):是比文件更大的數(shù)據(jù)組織。數(shù)據(jù)庫(kù)是具有特定聯(lián)系的數(shù)據(jù)的集合,也可以看成是具有特定聯(lián)系的多種類(lèi)型的記錄的集合。數(shù)據(jù)庫(kù)的內(nèi)部構(gòu)造是文件的集合,這些文件之間存在某種聯(lián)系,不能孤立存在。五、數(shù)據(jù)間的邏輯聯(lián)系圖3-26一對(duì)一的聯(lián)系(1:1)數(shù)據(jù)間的邏輯聯(lián)系主要是指記錄與記錄之間的聯(lián)系。記錄是表示現(xiàn)實(shí)世界中的實(shí)體的。實(shí)體之間存在著一種或多種聯(lián)系,這樣的聯(lián)系必然要反映到記錄之間的聯(lián)系上來(lái)。數(shù)據(jù)之間的邏輯聯(lián)系主要有三種:圖3-26一對(duì)一的聯(lián)系(1:1)1、一對(duì)一的聯(lián)系:簡(jiǎn)記為1:1,如圖4-1所示,這是一種比較簡(jiǎn)單的一種聯(lián)系方式,是指在集合A中存在一個(gè)元素ai,則在集合B中就有一個(gè)且僅有一個(gè)bj與之聯(lián)系。在1:1的聯(lián)系中,一個(gè)集合中的元素可以標(biāo)識(shí)另一個(gè)集合中的元素。例如,地理名稱(chēng)與對(duì)應(yīng)的空間位置之間的關(guān)系就是一種一對(duì)一的聯(lián)系.圖3-27一對(duì)多的聯(lián)系(1:N)2、一對(duì)多的聯(lián)系(1:N):現(xiàn)實(shí)生活中以一對(duì)多的聯(lián)系較多常見(jiàn)。如圖4-2所示,這種聯(lián)系可以表達(dá)為:在集合A中存在一個(gè)ai,則在集合B中存在一個(gè)子集B′=(bj1,bj2…bjn)與之聯(lián)系。通常,B′是B的一個(gè)子集。行政區(qū)劃就具有一對(duì)多的聯(lián)系,一個(gè)省對(duì)應(yīng)有多個(gè)市,一個(gè)市有多個(gè)縣,一個(gè)縣又有多個(gè)鄉(xiāng)。圖3-27一對(duì)多的聯(lián)系(1:N)圖3-28多對(duì)多的聯(lián)系(M:N)3、多對(duì)多的聯(lián)系(M:N):這是現(xiàn)實(shí)中最復(fù)雜的聯(lián)系(如圖4-3所示),即對(duì)于集合A中的一個(gè)元素ai。在集合B就存在一個(gè)子集B′=(bj1,bj2…bjn)與之相聯(lián)系。反過(guò)來(lái),對(duì)于B集合中的一個(gè)元素Bj在集合A中就有一個(gè)集合A′=(ai1,ai2,ai3…ain)與之相聯(lián)系。M:N的聯(lián)系,在數(shù)據(jù)庫(kù)中往往不能直接表示出來(lái),而必須經(jīng)過(guò)某種變換,使其分解成兩個(gè)1:N的聯(lián)系來(lái)處理。地理實(shí)體中的多對(duì)多聯(lián)系是很多的,例如土壤類(lèi)型與種植的作物之間有多對(duì)多聯(lián)系。同一種土壤類(lèi)型可以種不同的作物,同一種作物又可種植在不同的土壤類(lèi)型上。圖3-28多對(duì)多的聯(lián)系(M:N)第五節(jié)傳統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)的數(shù)據(jù)模型圖3-29原始地圖M數(shù)據(jù)模型是數(shù)據(jù)庫(kù)系統(tǒng)中關(guān)于數(shù)據(jù)和聯(lián)系的邏輯組織的形式表示。每一個(gè)具體的數(shù)據(jù)庫(kù)都是由一個(gè)相應(yīng)的數(shù)據(jù)模型來(lái)定義。每一種數(shù)據(jù)模型都以不同的數(shù)據(jù)抽象與表示能力來(lái)反映客觀事物,有其不同的處理數(shù)據(jù)聯(lián)系的方式。數(shù)據(jù)模型的主要任務(wù)就是研究記錄類(lèi)型之間的聯(lián)系。

目前,數(shù)據(jù)庫(kù)領(lǐng)域采用的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和關(guān)系模型,其中應(yīng)用最廣泛的是關(guān)系模型。圖3-29原始地圖M圖3-30層次數(shù)據(jù)模型層次模型圖3-30層次數(shù)據(jù)模型 層次模型是數(shù)據(jù)處理中發(fā)展較早、技木上也比較成熟的一種數(shù)據(jù)模型。它的特點(diǎn)是將數(shù)據(jù)組織成有向有序的樹(shù)結(jié)構(gòu)。層次模型由處于不同層次的各個(gè)結(jié)點(diǎn)組成。除根結(jié)點(diǎn)外,其余各結(jié)點(diǎn)有且僅有一個(gè)上一層結(jié)點(diǎn)作為其“雙親”,而位于其下的較低一層的若干個(gè)結(jié)點(diǎn)作為其“子女”。結(jié)構(gòu)中結(jié)點(diǎn)代表數(shù)據(jù)記錄,連線描述位于不同結(jié)點(diǎn)數(shù)據(jù)間的從屬關(guān)系(限定為一對(duì)多的關(guān)系)。對(duì)于圖3-29所示的地圖M用層次模型表示為如圖4-5所示的層次結(jié)構(gòu)。層次模型反映了現(xiàn)實(shí)世界中實(shí)體間的層次關(guān)系,層次結(jié)構(gòu)是眾多空間對(duì)象的自然表達(dá)形式,并在一定程度上支持?jǐn)?shù)據(jù)的重構(gòu)。但其應(yīng)用時(shí)存在以下問(wèn)題:1、由于層次結(jié)構(gòu)的嚴(yán)格限制,對(duì)任何對(duì)象的查詢(xún)必須始于其所在層次結(jié)構(gòu)的根,使得低層次對(duì)象的處理效率較低,并難以進(jìn)行反向查詢(xún)。數(shù)據(jù)的更新涉及許多指針,插入和刪除操作也比較復(fù)雜。母結(jié)點(diǎn)的刪除意味著其下屬所有子結(jié)點(diǎn)均被刪除,必須慎用刪除操作。2、層次命令具有過(guò)程式性質(zhì),它要求用戶(hù)了解數(shù)據(jù)的物理結(jié)構(gòu),并在數(shù)據(jù)操縱命令中顯式地給出存取途徑。3、模擬多對(duì)多聯(lián)系時(shí)導(dǎo)致物理存貯上的冗余。4、數(shù)據(jù)獨(dú)立性較差。二、網(wǎng)狀模型圖3-31網(wǎng)絡(luò)數(shù)據(jù)模型網(wǎng)絡(luò)數(shù)據(jù)模型是數(shù)據(jù)模型的另一種重要結(jié)構(gòu),它反映著顯示世界中實(shí)體間更為復(fù)雜的聯(lián)系,其基本特征是,結(jié)點(diǎn)數(shù)據(jù)間沒(méi)有明確的從屬關(guān)系,一個(gè)結(jié)點(diǎn)可與其它多個(gè)結(jié)點(diǎn)建立聯(lián)系。如圖3-31所示的四個(gè)城市的交通聯(lián)系,不僅是雙向的而且是多對(duì)多的。如圖4-7所示,學(xué)生甲、乙、丙、丁、選修課程,其中的聯(lián)系也屬于網(wǎng)絡(luò)模型。圖3-31網(wǎng)絡(luò)數(shù)據(jù)模型圖3-32網(wǎng)絡(luò)數(shù)據(jù)模型網(wǎng)絡(luò)模型用連接指令或指針來(lái)確定數(shù)據(jù)間的顯式連接關(guān)系,是具有多對(duì)多類(lèi)型的數(shù)據(jù)組織方式,網(wǎng)絡(luò)模型將數(shù)據(jù)組織成有向圖結(jié)構(gòu)。結(jié)構(gòu)中結(jié)點(diǎn)代表數(shù)據(jù)記錄,連線描述不同結(jié)點(diǎn)數(shù)據(jù)間的關(guān)系。圖3-32網(wǎng)絡(luò)數(shù)據(jù)模型有向圖(Digraph)的形式化定義為:Digraph=(Vertex,(Relation))其中Vertex為圖中數(shù)據(jù)元素(頂點(diǎn))的有限非空集合;Relation是兩個(gè)頂點(diǎn)(Vertex)之間的關(guān)系的集合。有向圖結(jié)構(gòu)比層次結(jié)構(gòu)具有更大的靈活性和更強(qiáng)的數(shù)據(jù)建模能力。網(wǎng)絡(luò)模型的優(yōu)點(diǎn)是可以描述現(xiàn)實(shí)生活中極為常見(jiàn)的多對(duì)多的關(guān)系,其數(shù)據(jù)存貯效率高于層次模型,但其結(jié)構(gòu)的復(fù)雜性限制了它在空間數(shù)據(jù)庫(kù)中的應(yīng)用。網(wǎng)絡(luò)模型在一定程度上支持?jǐn)?shù)據(jù)的重構(gòu),具有一定的數(shù)據(jù)獨(dú)立性和共享特性,并且運(yùn)行效率較高。但它應(yīng)用時(shí)存在以下問(wèn)題:1、網(wǎng)狀結(jié)構(gòu)的復(fù)雜,增加了用戶(hù)查詢(xún)和定位的困難。它要求用戶(hù)熟悉數(shù)據(jù)的邏輯結(jié)構(gòu),知道自身所處的位置。2、網(wǎng)狀數(shù)據(jù)操作命令具有過(guò)程式性質(zhì)。3、不直接支持對(duì)于層次結(jié)構(gòu)的表達(dá)。三、關(guān)系模型在層次與網(wǎng)絡(luò)模型中,實(shí)體間的聯(lián)系主要是通過(guò)指針來(lái)實(shí)現(xiàn)的,即把有聯(lián)系的實(shí)體用指針連接起來(lái)。而關(guān)系模型則采用完全不同的方法。關(guān)系模型是根據(jù)數(shù)學(xué)概念建立的,它把數(shù)據(jù)的邏輯結(jié)構(gòu)歸結(jié)為滿足一定條件的二維表形式。此處,實(shí)體本身的信息以及實(shí)體之間的聯(lián)系均表現(xiàn)為二維表,這種表就稱(chēng)為關(guān)系。一個(gè)實(shí)體由若干個(gè)關(guān)系組成,而關(guān)系表的集合就構(gòu)成為關(guān)系模型。圖3-33關(guān)系數(shù)據(jù)模型示意圖關(guān)系模型不是人為地設(shè)置指針,而是由數(shù)據(jù)本身自然地建立它們之間的聯(lián)系,并且用關(guān)系代數(shù)和關(guān)系運(yùn)算來(lái)操縱數(shù)據(jù),這就是關(guān)系模型的本質(zhì)。圖3-33關(guān)系數(shù)據(jù)模型示意圖在生活中表示實(shí)體間聯(lián)系的最自然的途徑就是二維表格。表格是同類(lèi)實(shí)體的各種屬性的集合,在數(shù)學(xué)上把這種二維表格叫做關(guān)系。二維表的表頭,即表格的格式是關(guān)系內(nèi)容的框架,這種框架叫做模式,關(guān)系由許多同類(lèi)的實(shí)體所組成,每個(gè)實(shí)體對(duì)應(yīng)于表中的一行,叫做一個(gè)元組。表中的每一列表示同一屬性,叫做域。對(duì)于圖4-4的地圖,用關(guān)系數(shù)據(jù)模型則表示為圖3-33所示。關(guān)系數(shù)據(jù)模型是應(yīng)用最廣泛的一種數(shù)據(jù)模型,它具有以下優(yōu)點(diǎn):1、能夠以簡(jiǎn)單、靈活的方式表達(dá)現(xiàn)實(shí)世界中各種實(shí)體及其相互間關(guān)系,使用與維護(hù)也很方便。關(guān)系模型通過(guò)規(guī)范化的關(guān)系為用護(hù)提供一種簡(jiǎn)單的用戶(hù)邏輯結(jié)構(gòu)。所謂規(guī)范化,實(shí)質(zhì)上就是使概念單一化,一個(gè)關(guān)系只描述一個(gè)概念,如果多于一個(gè)概念,就要將其分開(kāi)來(lái)。 2、關(guān)系模型具有嚴(yán)密的數(shù)學(xué)基礎(chǔ)和操作代數(shù)基礎(chǔ)——如關(guān)系代數(shù)、關(guān)系演算等,可將關(guān)系分開(kāi),或?qū)蓚€(gè)關(guān)系合并,使數(shù)據(jù)的操縱具有高度的靈活性;3、在關(guān)系數(shù)據(jù)模型中,數(shù)據(jù)間的關(guān)系具有對(duì)稱(chēng)性,因此,關(guān)系之間的尋找在正反兩個(gè)方向上難度程度是一樣的,而在其它模型如層次模型中從根結(jié)點(diǎn)出發(fā)尋找葉子的過(guò)程容易解決,相反的過(guò)程則很困難。目前,絕大多數(shù)數(shù)據(jù)庫(kù)系統(tǒng)采用關(guān)系模型。但它的應(yīng)用也存在著如下問(wèn)題: 1、實(shí)現(xiàn)效率不夠高。由于概念模式和存貯模式的相互獨(dú)立性,按照給定的關(guān)系模式重新構(gòu)造數(shù)據(jù)的操作相當(dāng)費(fèi)時(shí)。另外,實(shí)現(xiàn)關(guān)系之間聯(lián)系需要執(zhí)行系統(tǒng)開(kāi)銷(xiāo)較大的聯(lián)接操作。

2、描述對(duì)象語(yǔ)義的能力較弱?,F(xiàn)實(shí)世界中包含的數(shù)據(jù)種類(lèi)和數(shù)量繁多,許多對(duì)象本身具有復(fù)雜的結(jié)構(gòu)和涵義,為了用規(guī)范化的關(guān)系描述這些對(duì)象,則需對(duì)對(duì)象進(jìn)行不自然的分解,從而在存貯模式、查詢(xún)途徑及其操作等方面均顯得語(yǔ)義不甚合理。

3、不直接支持層次結(jié)構(gòu),因此不直接支持對(duì)于概括、分類(lèi)和聚合的模擬,即不適合于管理復(fù)雜對(duì)象的要求,它不允許嵌套元組和嵌套關(guān)系存在。4、模型的可擴(kuò)充性較差。新關(guān)系模式的定義與原有的關(guān)系模式相互獨(dú)立,并未借助已有的模式支持系統(tǒng)的擴(kuò)充。關(guān)系模型只支持元組的集合這一種數(shù)據(jù)結(jié)構(gòu),并要求元組的屬性值為不可再分的簡(jiǎn)單數(shù)據(jù)(如整數(shù)、實(shí)數(shù)和字符串等),它不支持抽象數(shù)據(jù)類(lèi)型,因而不具備管理多種類(lèi)型數(shù)據(jù)對(duì)象的能力。5、模擬和操縱復(fù)雜對(duì)象的能力較弱。關(guān)系模型表示復(fù)雜關(guān)系時(shí)比其它數(shù)據(jù)模型困難,因?yàn)樗鼰o(wú)法用遞歸和嵌套的方式來(lái)描述復(fù)雜關(guān)系的層次和網(wǎng)狀結(jié)構(gòu),只能借助于關(guān)系的規(guī)范化分解來(lái)實(shí)現(xiàn)。過(guò)多的不自然分解必然導(dǎo)致模擬和操縱的困難和復(fù)雜化。第六節(jié)GIS中空間數(shù)據(jù)庫(kù)的組織方式GIS中的數(shù)據(jù)大多數(shù)都是地理數(shù)據(jù),它與通常意義上的數(shù)據(jù)相比,具有自己的特點(diǎn):地理數(shù)據(jù)類(lèi)型多樣,各類(lèi)型實(shí)體之間關(guān)系復(fù)雜,數(shù)據(jù)量很大,而且每個(gè)線狀或面狀地物的字節(jié)長(zhǎng)度都不是等長(zhǎng)的等等。地理數(shù)據(jù)的這些特點(diǎn)決定了利用目前流行的數(shù)據(jù)庫(kù)系統(tǒng)直接管理地理空間數(shù)據(jù),存在著明顯的不足,GIS必須發(fā)展自己的數(shù)據(jù)庫(kù)-空間數(shù)據(jù)庫(kù)??臻g數(shù)據(jù)庫(kù)是作為一種應(yīng)用技術(shù)而誕生和發(fā)展起來(lái)的,其目的是為了使用戶(hù)能夠方便靈活地查詢(xún)出所需的地理空間數(shù)據(jù),同時(shí)能夠進(jìn)行有關(guān)地理空間數(shù)據(jù)的插入、刪除、更新等操作,為此建立了如實(shí)體、關(guān)系、數(shù)據(jù)獨(dú)立性、完整性、數(shù)據(jù)操縱、資源共享等一系列基本概念。以地理空間數(shù)據(jù)存儲(chǔ)和操作為對(duì)象的空間數(shù)據(jù)庫(kù),把被管理的數(shù)據(jù)從一維推向了二維、三維甚至更高維。由于傳統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)(如關(guān)系數(shù)據(jù)庫(kù)系統(tǒng))的數(shù)據(jù)模擬主要針對(duì)簡(jiǎn)單對(duì)象,因而無(wú)法有效地支持以復(fù)雜對(duì)象(如圖形、影像等)為主體的工程應(yīng)用??臻g數(shù)據(jù)庫(kù)系統(tǒng)必須具備對(duì)地理對(duì)象(大多為具有復(fù)雜結(jié)構(gòu)和內(nèi)涵的復(fù)雜對(duì)象)進(jìn)行模擬和推理的功能。一方面可將空間數(shù)據(jù)庫(kù)技術(shù)視為傳統(tǒng)數(shù)據(jù)庫(kù)技術(shù)的擴(kuò)充;另一方面,空間數(shù)據(jù)庫(kù)突破了傳統(tǒng)數(shù)據(jù)庫(kù)理論(如將規(guī)范關(guān)系推向非規(guī)范關(guān)系),其實(shí)質(zhì)性發(fā)展必然導(dǎo)致理論上的創(chuàng)新。 空間數(shù)據(jù)庫(kù)是一種應(yīng)用于地理空間數(shù)據(jù)處理與信息分析領(lǐng)域的具有工程性質(zhì)的數(shù)據(jù)庫(kù),它所管理的對(duì)象主要是地理空間數(shù)據(jù)(包括空間數(shù)據(jù)和非空間數(shù)據(jù))。傳統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)管理地理空間數(shù)據(jù)有以下幾個(gè)方面的局限性:(1)傳統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)管理的是不連續(xù)的、相關(guān)性較小的數(shù)字和字符;而地理信息數(shù)據(jù)是連續(xù)的,并且具有很強(qiáng)的空間相關(guān)性。(2)傳統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)管理的實(shí)體類(lèi)型較少,并且實(shí)體類(lèi)型之間通常只有簡(jiǎn)單、固定的空間關(guān)系;而地理空間數(shù)據(jù)的實(shí)體類(lèi)型繁多,實(shí)體類(lèi)型之間存在著復(fù)雜的空間關(guān)系,并且還能產(chǎn)生新的關(guān)系(如拓?fù)潢P(guān)系)。(3)傳統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)存貯的數(shù)據(jù)通常為等長(zhǎng)記錄的數(shù)據(jù);而地理空間數(shù)據(jù)通常由于不同空間目標(biāo)的坐標(biāo)串長(zhǎng)度不定,具有變長(zhǎng)記錄,并且數(shù)據(jù)項(xiàng)也可能很大,很復(fù)雜。(4)傳統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)只操縱和查詢(xún)文字和數(shù)字信息;而空間數(shù)據(jù)庫(kù)中需要有大量的空間數(shù)據(jù)操作和查詢(xún),如相鄰、連通、包含、疊加等。圖3-34圖3-34混合結(jié)構(gòu)模型RDBMS幾何空間數(shù)據(jù)存儲(chǔ)子系GIS混合結(jié)構(gòu)模型(HybridModel)它的基本思想是用兩個(gè)子系統(tǒng)分別存儲(chǔ)和檢索空間數(shù)據(jù)與屬性數(shù)據(jù),其中屬性數(shù)據(jù)存儲(chǔ)在常規(guī)的RDBMS中,幾何數(shù)據(jù)存儲(chǔ)在空間數(shù)據(jù)管理系統(tǒng)中,兩個(gè)子系統(tǒng)之間使用一種標(biāo)識(shí)符聯(lián)系起來(lái)。圖3-34為其原理框圖。在檢索目標(biāo)時(shí)必須同時(shí)詢(xún)問(wèn)兩個(gè)子系統(tǒng),然后將它們的回答結(jié)合起來(lái)。由于這種混合結(jié)構(gòu)模型的一部分是建立在標(biāo)準(zhǔn)RDBMS之上,故存儲(chǔ)和檢索數(shù)據(jù)比較有效、可靠。但因?yàn)槭褂脙蓚€(gè)存儲(chǔ)子系統(tǒng),它們有各自的規(guī)則,查詢(xún)操作難以?xún)?yōu)化,存儲(chǔ)在RDBMS外面的數(shù)據(jù)有時(shí)會(huì)丟失數(shù)據(jù)項(xiàng)的語(yǔ)義;此外,數(shù)據(jù)完整性的約束條件有可能遭破壞,例如在幾何空間數(shù)據(jù)存儲(chǔ)子系統(tǒng)中目標(biāo)實(shí)體仍然存在,但在RDBMS中卻已被刪除。屬這種模型的GIS軟件有ARC/INFO、MGE、SICARD、GENEMAP等。二、擴(kuò)展結(jié)構(gòu)模型(ExtendedModel)圖3-35擴(kuò)展數(shù)據(jù)模型空間數(shù)據(jù)標(biāo)準(zhǔn)RDBMS圖3-35擴(kuò)展數(shù)據(jù)模型空間數(shù)據(jù)標(biāo)準(zhǔn)RDBMS屬性數(shù)據(jù)GIS這種模型的代表性GIS軟件有SYSTEM9,SMALLWORLD等。三、統(tǒng)一模數(shù)據(jù)型(IntegratedModel)這種綜合數(shù)據(jù)模型不是基于標(biāo)準(zhǔn)的RDBMS,而是在開(kāi)放型DBMS基礎(chǔ)上擴(kuò)充空間數(shù)據(jù)表達(dá)功能。如圖3-36所示,空間擴(kuò)展完全包含在DBMS中,用戶(hù)可以使用自己的基本抽象數(shù)據(jù)類(lèi)型(ADT)來(lái)擴(kuò)充DBMS。在核心DBMS中進(jìn)行數(shù)據(jù)類(lèi)型的直接操作很方便、有效,并且用戶(hù)還可以開(kāi)發(fā)自己的空間存取算法。該模型的缺點(diǎn)是,用戶(hù)必須在DBMS環(huán)境中實(shí)施自己的數(shù)據(jù)類(lèi)型,對(duì)有些應(yīng)用將相當(dāng)復(fù)雜。屬于此類(lèi)綜合模型的軟件如TIGRIS(intergraph)、GEO++(荷蘭)等。圖3-36統(tǒng)一數(shù)據(jù)模型圖3-36統(tǒng)一數(shù)據(jù)模型第七節(jié)面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng)面向?qū)ο蠹夹g(shù)概述近十幾年來(lái),一種新穎,具有獨(dú)特優(yōu)越性的新方法,正引起全世界越來(lái)越強(qiáng)烈的關(guān)注和高度的重視,它就是被譽(yù)為“研究高技術(shù)的好辦法”的“面向?qū)ο蠓椒ā?Object-OrientedParadigm,簡(jiǎn)稱(chēng)OO)

面向?qū)ο蠓椒ㄆ鹪从诿嫦驅(qū)ο蟮木幊陶Z(yǔ)言(簡(jiǎn)稱(chēng)OOPL)。60年代中后期,Simula-67語(yǔ)言的設(shè)計(jì)者首次提出了“對(duì)象”(Object)的概念,并開(kāi)始使用數(shù)據(jù)封裝(dataencapsulation)技術(shù)(對(duì)外部只提供一個(gè)抽象接口而隱藏具體實(shí)現(xiàn)細(xì)節(jié))。但面向?qū)ο蠓椒ǖ耐茝V應(yīng)用則主要得益于面向?qū)ο笳Z(yǔ)言Smalltalk—80,它在系統(tǒng)設(shè)計(jì)中強(qiáng)調(diào)對(duì)象概念的統(tǒng)—,引入對(duì)象、對(duì)象類(lèi)、方法、實(shí)例等概念和術(shù)語(yǔ),采用動(dòng)態(tài)聯(lián)編和單繼承性機(jī)制。它還以O(shè)OPL為核心,集各種軟件開(kāi)發(fā)工具為一體,建立OO計(jì)算環(huán)境,配有很強(qiáng)的圖形功能和多窗口用戶(hù)界面。因此,Smalltalk的商品化標(biāo)志了面向?qū)ο蟮木幊陶Z(yǔ)言已建立較完善的概念和理論,并推向?qū)嵱?。Smalltalk作為一種新的、純粹的面向?qū)ο缶幊陶Z(yǔ)言,同時(shí)又為面向?qū)ο蠓椒▽W(xué)的形成和發(fā)展起了重大的作用。面向?qū)ο蠓椒ɑ境霭l(fā)點(diǎn)就是盡可能按照人類(lèi)認(rèn)識(shí)世界的方法和思維方式來(lái)分析和解決問(wèn)題??陀^世界是由許多具體的事物或事件、抽象的概念、規(guī)則等組成的。因此,我們將任何感興趣或要加以研究的事物概念都統(tǒng)稱(chēng)為“對(duì)象”(或稱(chēng)目標(biāo))。面向?qū)ο蟮姆椒ㄕ且詫?duì)象作為最基本的元素,它也是分析問(wèn)題,解決問(wèn)題的核心。OO方法很自然地符合人的認(rèn)識(shí)規(guī)律。計(jì)算機(jī)實(shí)現(xiàn)的對(duì)象與真實(shí)世界具有一對(duì)一的對(duì)應(yīng)關(guān)系,不需作任何轉(zhuǎn)換,這樣就使OO方法更易于為人們所理解、接受和掌握。面向?qū)ο蠓椒ň哂械哪K化,信息封裝與隱藏、抽象性、多形性等獨(dú)特之處,為解決大型軟件管理,提高軟件可靠性、可重用性、可擴(kuò)充性和可維護(hù)性提供了有效的手段和途徑,很快被引入到所有與計(jì)算機(jī)科學(xué)有關(guān)的領(lǐng)域,如在編程語(yǔ)言方面,Vc、ObjectPascal,數(shù)據(jù)庫(kù)管理軟件Vb等。吉奧之星、SmallWorld等GIS軟件,也采用了面向?qū)ο蟮姆椒ā?/p>

二、面向?qū)ο蠓椒ㄖ械幕靖拍蠲嫦驅(qū)ο蟮亩x是指無(wú)論怎樣復(fù)雜的事例都可以準(zhǔn)確地由一個(gè)對(duì)象表示,這個(gè)對(duì)象是一個(gè)包含了數(shù)據(jù)集和操作集的實(shí)體。1、對(duì)象

在面向?qū)ο蟮南到y(tǒng)中,所有的概念實(shí)體都可以模型化為對(duì)象。多邊形地圖上的一個(gè)結(jié)點(diǎn)或一條弧段是對(duì)象,—條河流或—個(gè)省也是一個(gè)對(duì)象。一個(gè)對(duì)象是由描述該對(duì)象狀態(tài)的—組數(shù)據(jù)和表達(dá)它的行為的一組操作(方法)組成的。例如,河流的坐標(biāo)數(shù)據(jù)描述了它的位置和形狀,而河流的變遷則表達(dá)了它的行為。由此可見(jiàn),對(duì)象是數(shù)據(jù)和行為的統(tǒng)—體。 GIS中的地理對(duì)象則可定義為:描述一個(gè)實(shí)體的空間和屬性數(shù)據(jù)以及定義一系列對(duì)實(shí)體有意義的操作函數(shù)的統(tǒng)一體。如一個(gè)城市、一條街道、一個(gè)街區(qū)等。定義1:一個(gè)對(duì)象object是一個(gè)三元組object=(ID,S,M)其中,ID為對(duì)象標(biāo)識(shí),M為方法集,S為對(duì)象的內(nèi)部狀態(tài),它可以直接是—屬性值,也可以是另外一組對(duì)象的集合,因而它明顯地表現(xiàn)出對(duì)象的遞歸。把ID,S,M三部分作為—個(gè)整體對(duì)象作如下遞歸定義。定義2:①Number,String,Symbol,True,False等稱(chēng)為原子對(duì)象;②如S中都是屬性值,S1,S2…Sn均為原子對(duì)象,則稱(chēng)object為簡(jiǎn)單對(duì)象。③如果S1,S2…Sn包含了原子對(duì)象以外的其它類(lèi)型的對(duì)象,則稱(chēng)Object為復(fù)雜對(duì)象。而其中的Si稱(chēng)為子對(duì)象。若S中所包含的子對(duì)象屬同—類(lèi)對(duì)象,則稱(chēng)Object為組合對(duì)象,或稱(chēng)簡(jiǎn)單的復(fù)雜對(duì)象。在面向?qū)ο蟮南到y(tǒng)中,對(duì)象作為一個(gè)獨(dú)立的實(shí)體,一經(jīng)定義就帶有一個(gè)唯—的標(biāo)識(shí)號(hào),且獨(dú)立于它的值而存在??傊粋€(gè)對(duì)象就是一個(gè)具有名稱(chēng)標(biāo)識(shí)并有自身的狀態(tài)與功能的實(shí)體。如一個(gè)人,他有一些身體狀況如性別、年齡、身高、體重等,他還有一些其他的情況如所干工作、所學(xué)專(zhuān)業(yè)、愛(ài)好等。2、對(duì)象類(lèi)對(duì)象類(lèi),簡(jiǎn)稱(chēng)類(lèi),是關(guān)于同類(lèi)對(duì)象的集合,具有相同屬性和操作的對(duì)象組合在一起形成“類(lèi)”(class)。類(lèi)是用來(lái)定義抽象數(shù)據(jù)類(lèi)型的,類(lèi)描述了實(shí)例的形式(屬性等)以及作用于類(lèi)中對(duì)象上的操作(方法)。屬于同一類(lèi)的所有對(duì)象共享相同的屬性項(xiàng)和方法,每個(gè)對(duì)象都是這個(gè)類(lèi)的一個(gè)實(shí)例,即對(duì)象與類(lèi)的關(guān)系是instance—of的關(guān)系。同一個(gè)類(lèi)中的對(duì)象在內(nèi)部狀態(tài)的表現(xiàn)形式上(即型)相同,但它們有不同的內(nèi)部狀態(tài),即有不同的屬性值,類(lèi)中的對(duì)象并不是一模一樣的,而應(yīng)用于類(lèi)中所有對(duì)象的操作卻是相同的。所以,在實(shí)際的系統(tǒng)中,僅需對(duì)每個(gè)類(lèi)型定義一組操作,供該類(lèi)中的每個(gè)對(duì)象應(yīng)用。但因每個(gè)對(duì)象的內(nèi)部狀態(tài)不完全相同,所以要分別存貯每個(gè)對(duì)象的屬性值。如所有河流均有共性,名稱(chēng)、長(zhǎng)度、面積以及操作方法,抽象成河流類(lèi),而黃河、長(zhǎng)江等就是其實(shí)例對(duì)象,同時(shí)又有其自身的狀態(tài)特征(屬性值)。3、方法和消息對(duì)一個(gè)類(lèi)所定義的所有操作稱(chēng)為方法。對(duì)對(duì)象類(lèi)的操作是由方法來(lái)具體實(shí)現(xiàn)的,而對(duì)象間的相互聯(lián)系和通信的唯一途徑是通過(guò)“消息”傳送來(lái)實(shí)現(xiàn)。消息是對(duì)象與對(duì)象之間相互聯(lián)系、請(qǐng)求、協(xié)作的途徑。另外,消息還分公有消息和私有消息,例如,如果一批消息都屬于同一個(gè)對(duì)象,但有些是可由其它對(duì)象向它發(fā)送,叫公有消息,另外一些則是由它自己向本身發(fā)送,叫私有消息。4、協(xié)議與封裝對(duì)象和消息對(duì)自然界的實(shí)際事物進(jìn)行了良好的模擬,也簡(jiǎn)化了人們對(duì)世界事物的理解。但是,現(xiàn)實(shí)事物僅靠這兩個(gè)概念還不能充分表達(dá)。例如,一個(gè)人有各種各樣的能力。有一些能力,他樂(lè)意向外人宣告;有些能力只向一部分人通告;還可能有些能力,不想讓任何人知道。另外,即使外人知道了他的某些能力,但他也不向外界提供這些服務(wù)。這是經(jīng)常出現(xiàn)的情況,上面的私有消息便是這樣的例子。這里就有一個(gè)協(xié)議的問(wèn)題。協(xié)議是一個(gè)對(duì)象對(duì)外服務(wù)的說(shuō)明,它告知一個(gè)對(duì)象可以為外界做什么。外界對(duì)象能夠并且只能向該對(duì)象發(fā)送協(xié)議中所提供的消息,請(qǐng)求該對(duì)象服務(wù)。因此,它是由一個(gè)對(duì)象能夠接受并且愿意接受的所有消息構(gòu)成的對(duì)外接口。也就是說(shuō),請(qǐng)求對(duì)象進(jìn)行操作的唯一途徑就是通過(guò)協(xié)議中提供的消息來(lái)進(jìn)行。即使一個(gè)對(duì)象可以完成某一功能,但它沒(méi)有將該功能放入?yún)f(xié)議中去,外界對(duì)象依然不能請(qǐng)求它完成這一功能。從私有消息和公有消息上看,協(xié)議是一個(gè)對(duì)象所能接受的所有公有消息的集合。對(duì)象、消息和協(xié)議是面向?qū)ο笤O(shè)計(jì)中的支柱性概念,這些概念一起又引入了一個(gè)新的概念——封裝。封裝就是將某件事物包圍起來(lái),使外界不必知道其實(shí)際內(nèi)容。也就是說(shuō),對(duì)象通過(guò)封裝后,其它對(duì)象只能從公有消息中提供的功能進(jìn)行請(qǐng)求服務(wù),對(duì)這個(gè)對(duì)象內(nèi)部的情況不必了解。

封裝的最基本單位是對(duì)象。封裝技術(shù)提高了面向?qū)ο蠓椒ㄩ_(kāi)發(fā)軟件的可重用性,從而大大提高了復(fù)雜軟件的開(kāi)發(fā)效率、質(zhì)量和可靠性,更加易于維護(hù)。三、面向?qū)ο蠓椒ǖ臄?shù)據(jù)抽象技術(shù)和數(shù)據(jù)抽象工具面向?qū)ο蟮姆椒ǔ龜?shù)據(jù)與操作的封裝性以外,還具有極強(qiáng)的抽象表達(dá)能力,具有分類(lèi)(classification)、概括(generalization)、聚集(aggregation)和聯(lián)合(association)等數(shù)據(jù)抽象技術(shù)以及繼承(inheritance)和傳播(propagation)等強(qiáng)有力的抽象工具。

1、分類(lèi)(classification)

把一組具有相同結(jié)構(gòu)的實(shí)體歸納成類(lèi)的過(guò)程,稱(chēng)為分類(lèi),而這些實(shí)體就是屬于這個(gè)類(lèi)的實(shí)例對(duì)象。屬于同一類(lèi)的對(duì)象具有相同的屬性結(jié)構(gòu)和操作方法。

2、超類(lèi)與概括

在定義類(lèi)型時(shí),將幾種類(lèi)型中某些具有公共特征的屬性和操作抽象出來(lái),形成一種更一般的超類(lèi)(Superclass)。

設(shè)有兩種類(lèi)型C1assl=(CIDl,CSA,CSB,CMA,CMB)

Class2=(CID2,CSA,CSC,CMA,CMC)C1assl和Class2中都帶有相同的屬性子集CSA和操作子集CMA

并且CSACS1和CSACS2

及CMA

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論