一、SQL/Oracle數(shù)據(jù)庫(kù)是怎樣與GIS的應(yīng)用相聯(lián)系起來(lái)的
當(dāng)年oracle和ESRI共同開(kāi)發(fā)了一個(gè)擴(kuò)展,也就是今天的oracle spatial,空間數(shù)據(jù)的存儲(chǔ)問(wèn)題本質(zhì)上是空間數(shù)據(jù)的組織和解釋?zhuān)琽ra spatial就是對(duì)關(guān)系型的一個(gè)擴(kuò)展,也就是說(shuō)將地理對(duì)象作為一個(gè)字段,類(lèi)型是geometry(可以看一下對(duì)象關(guān)系型數(shù)據(jù)庫(kù)),與一般sql的char的表達(dá)的型的思想概念都是一樣的(數(shù)據(jù)庫(kù)中術(shù)語(yǔ)叫做啥來(lái)著?值域?)反正就是一個(gè)型的概念。那么剩下的問(wèn)題就是一個(gè)型到底提供什么功能?空間中的矢量分為點(diǎn),線,面,多線多面等等基本的一些類(lèi)型。將這些類(lèi)型對(duì)應(yīng)的數(shù)據(jù)轉(zhuǎn)換為字符串,寫(xiě)入數(shù)據(jù)庫(kù)的一個(gè)字段中,比方說(shuō)一個(gè)點(diǎn)數(shù)據(jù),就是一個(gè)字符串1,30000,40000。這個(gè)1就表示這是一個(gè)點(diǎn),30000,40000就是實(shí)際的坐標(biāo)。同時(shí),空間數(shù)據(jù)庫(kù)提供一個(gè)底層支持,負(fù)責(zé)對(duì)其作出解釋?zhuān)⒔o用戶提供一個(gè)api,例如存儲(chǔ)過(guò)程和函數(shù)。當(dāng)需要取數(shù)據(jù)的時(shí)候,就用SQL語(yǔ)錄從表中將數(shù)據(jù)取出來(lái),前面講的數(shù)據(jù)庫(kù)提供的api負(fù)責(zé)作出解釋和計(jì)算。ArcSDE扮演的角色就是不斷的對(duì)數(shù)據(jù)庫(kù)進(jìn)行存取和取出。你可以找數(shù)據(jù)試試,在arcgis中存到oracle中,然后用sql developer打開(kāi)看一下,也可以看一下這個(gè)geometry類(lèi)型提供的各種存儲(chǔ)過(guò)程和函數(shù),用起來(lái)太爽了。總之,數(shù)據(jù)庫(kù)扮演的角色就是存取數(shù)據(jù)和對(duì)存取的數(shù)據(jù)作出司法解釋的過(guò)程。
網(wǎng)絡(luò)的本質(zhì)就是傳輸數(shù)據(jù); 網(wǎng)絡(luò)的本質(zhì)就是傳輸數(shù)據(jù); 網(wǎng)絡(luò)的本質(zhì)就是傳輸數(shù)據(jù);重要的事情說(shuō)三遍。至于通過(guò)網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)是什么內(nèi)容,怎么解釋那就由客戶端和服務(wù)端說(shuō)了算了。簡(jiǎn)單地來(lái)講就是借助于網(wǎng)絡(luò)底層支持,各個(gè)軟件產(chǎn)品來(lái)制定自己的游戲規(guī)則。
記得好像看過(guò)早期的空間數(shù)據(jù)在數(shù)據(jù)庫(kù)中采用直接存文件或者用關(guān)系表來(lái)存儲(chǔ)坐標(biāo)啥的,我沒(méi)有用過(guò),就不班門(mén)弄斧了。在oracle 官網(wǎng)的幫助文檔中有專(zhuān)門(mén)對(duì)spatial模塊,強(qiáng)烈推薦感興趣的翻一翻,絕對(duì)是詳細(xì)到哭啊。
再說(shuō)說(shuō)應(yīng)用的問(wèn)題,假如有這么一個(gè)場(chǎng)景,某某市政是你的甲方爸爸,你要做一個(gè)城市管網(wǎng)信息管理系統(tǒng),有各種各種的管線圖,包括道路啊,路燈啊,雜七雜八的東西,這些數(shù)據(jù)就可以存儲(chǔ)在數(shù)據(jù)庫(kù)中,存儲(chǔ)的部分解決了,剩下的就是一般的Web開(kāi)發(fā)了,包括一般的GIS系統(tǒng),WebGIS開(kāi)發(fā)。其實(shí)做開(kāi)發(fā)還是一件很有意思的事情,從事計(jì)算機(jī)的人大部分不會(huì)GIS開(kāi)發(fā),會(huì)GIS開(kāi)發(fā)的一般也不會(huì)接觸空間數(shù)據(jù)庫(kù),如果這三個(gè)都能用熟練運(yùn)用,在GIS開(kāi)發(fā)這個(gè)行業(yè)怎么的也屬于上流社會(huì)的人吧,
延伸閱讀:
二、空間數(shù)據(jù)引擎
關(guān)系型數(shù)據(jù)庫(kù)無(wú)法存儲(chǔ)、管理復(fù)雜的地理空間框架數(shù)據(jù)以支持空間關(guān)系運(yùn)算和空間分析等GIS功能。因此,GIS軟件廠商在純關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)基礎(chǔ)上,開(kāi)發(fā)空間數(shù)據(jù)管理的引擎。空間數(shù)據(jù)引擎(Spatial Database Engine,簡(jiǎn)稱SDE)是用來(lái)解決如何在關(guān)系數(shù)據(jù)庫(kù)中存儲(chǔ)空間數(shù)據(jù),使空間數(shù)據(jù)實(shí)現(xiàn)真正的數(shù)據(jù)庫(kù)方式管理,建立空間數(shù)據(jù)服務(wù)器的方法。空間數(shù)據(jù)引擎是用戶和異種空間數(shù)據(jù)庫(kù)之間一個(gè)開(kāi)放的接口,它是一種處于應(yīng)用程序和數(shù)據(jù)庫(kù)管理系統(tǒng)之間的中間件技術(shù)。用戶可通過(guò)空間數(shù)據(jù)引擎將不同形式的空間數(shù)據(jù)提交給數(shù)據(jù)庫(kù)管理系統(tǒng),由數(shù)據(jù)庫(kù)管理系統(tǒng)統(tǒng)一管理,同樣,用戶也可以通過(guò)空間數(shù)據(jù)引擎從數(shù)據(jù)庫(kù)管理系統(tǒng)中獲取空間類(lèi)型的數(shù)據(jù)滿足客戶端操作需求。目前GIS軟件與大型商用關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS)的集成大多采用空間數(shù)據(jù)引擎來(lái)實(shí)現(xiàn)。使用不同GIS廠商數(shù)據(jù)的客戶可以通過(guò)空間數(shù)據(jù)引擎將自身的數(shù)據(jù)提交給大型關(guān)系型DBMS,由DBMS統(tǒng)一管理。同樣,客戶也可以通過(guò)空間數(shù)據(jù)引擎提供的用戶和異構(gòu)數(shù)據(jù)庫(kù)之間的數(shù)據(jù)接口,從關(guān)系型DBMS中獲取其它類(lèi)型的GIS數(shù)據(jù),并轉(zhuǎn)化成客戶可以使用的方式。空間數(shù)據(jù)引擎就成為各種格式的空間數(shù)據(jù)出入大型關(guān)系型DBMS的轉(zhuǎn)換通道。