国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種數(shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)柵格數(shù)據(jù)類(lèi)型的方法及其系統(tǒng)的制作方法

      文檔序號(hào):6438406閱讀:855來(lái)源:國(guó)知局

      專利名稱::一種數(shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)柵格數(shù)據(jù)類(lèi)型的方法及其系統(tǒng)的制作方法
      技術(shù)領(lǐng)域
      :本發(fā)明主要涉及信息處理技術(shù),特別涉及一種在數(shù)據(jù)庫(kù)管理系統(tǒng)內(nèi)核中實(shí)現(xiàn)柵格數(shù)據(jù)類(lèi)型的方法及其系統(tǒng)。
      背景技術(shù)
      :近些年來(lái),隨著遙感與信息探測(cè)技術(shù)的飛速發(fā)展,地理空間數(shù)據(jù)正在呈幾何級(jí)數(shù)增長(zhǎng),如何對(duì)多源、多尺度下的海量地理空間數(shù)據(jù)進(jìn)行高效組織和訪問(wèn)已成為迫切需要解決的核心問(wèn)題。柵格數(shù)據(jù)是地理空間數(shù)據(jù)的重要組成部分,是以像元(或像素)矩陣結(jié)構(gòu)保存的地理空間數(shù)據(jù),它是一類(lèi)數(shù)據(jù)的總稱,涵蓋遙感影像、數(shù)字高程模型、格網(wǎng)數(shù)據(jù)等多種具體形態(tài),甚至普通照片也屬于典型的柵格數(shù)據(jù)。由于遙感平臺(tái)所采集的地理空間數(shù)據(jù)基本都屬于柵格數(shù)據(jù)(即遙感數(shù)據(jù)產(chǎn)品),因此柵格數(shù)據(jù)所占地理空間數(shù)據(jù)總量的比重最大且數(shù)據(jù)量與日俱增,對(duì)其如何進(jìn)行高效組織和訪問(wèn)已構(gòu)成挑戰(zhàn)。對(duì)地理空間數(shù)據(jù)的存儲(chǔ),總體上已從文件方式發(fā)展為數(shù)據(jù)庫(kù)方式。文件方式存儲(chǔ)柵格數(shù)據(jù)主要存在以下缺陷文件的相對(duì)獨(dú)立性導(dǎo)致數(shù)據(jù)的松散型組織;難以實(shí)現(xiàn)高效檢索,尤其是多條件的聯(lián)合檢索;—體化查詢與分析效率不高,包括跨文件一體化、矢柵一體化查詢與分析等;并發(fā)更新與安全問(wèn)題無(wú)法解決。針對(duì)文件方式的不足,近年來(lái)空間數(shù)據(jù)庫(kù)技術(shù)得到了快速發(fā)展??臻g數(shù)據(jù)庫(kù)系統(tǒng)對(duì)柵格數(shù)據(jù)的存儲(chǔ)和操作主要借助擴(kuò)展柵格數(shù)據(jù)類(lèi)型實(shí)現(xiàn)。所謂柵格數(shù)據(jù)類(lèi)型,是除^t、Varchar等常規(guī)字段類(lèi)型之外,針對(duì)存儲(chǔ)柵格數(shù)據(jù)而專門(mén)引入的一種新的字段類(lèi)型。要實(shí)現(xiàn)該數(shù)據(jù)類(lèi)型,需要對(duì)原有數(shù)據(jù)庫(kù)系統(tǒng)內(nèi)核進(jìn)行擴(kuò)展,設(shè)計(jì)針對(duì)該數(shù)據(jù)類(lèi)型的數(shù)據(jù)存儲(chǔ)和訪問(wèn)機(jī)制,并定義一系列針對(duì)該數(shù)據(jù)類(lèi)型的SQL算子以實(shí)現(xiàn)對(duì)柵格數(shù)據(jù)(或稱柵格對(duì)象)的操作,而用戶層面,只要將表中的某個(gè)字段定義為柵格數(shù)據(jù)類(lèi)型字段,就可以在該字段中存儲(chǔ)柵格數(shù)據(jù),并通過(guò)執(zhí)行相應(yīng)的SQL算子實(shí)現(xiàn)對(duì)柵格數(shù)據(jù)的增、刪、改、查。例如,Oracle數(shù)據(jù)庫(kù)發(fā)明了柵格數(shù)據(jù)類(lèi)型SD0_GeORaster,該類(lèi)型底層采用基于數(shù)據(jù)庫(kù)表的存儲(chǔ)和訪問(wèn)機(jī)制,專利號(hào)為US2005/0055376A1;國(guó)產(chǎn)空間數(shù)據(jù)庫(kù)BeyonDB發(fā)明了柵格數(shù)據(jù)類(lèi)型ST_Raster,該類(lèi)型獨(dú)創(chuàng)了基于數(shù)據(jù)庫(kù)表(行內(nèi)模式)和數(shù)據(jù)庫(kù)內(nèi)控文件系統(tǒng)(行外模式)兩種并行結(jié)構(gòu)的存儲(chǔ)和訪問(wèn)機(jī)制,專利號(hào)為ZL200910M4117。以上基于數(shù)據(jù)庫(kù)的類(lèi)型擴(kuò)展機(jī)制來(lái)存儲(chǔ)和操作柵格數(shù)據(jù),可較好地解決所述文件方式所存在的缺陷(即在數(shù)據(jù)的統(tǒng)一組織、高效一體化查詢與檢索、以及并發(fā)安全訪問(wèn)方面存在的問(wèn)題),但前提是需要將外部柵格數(shù)據(jù)物理導(dǎo)入到數(shù)據(jù)庫(kù),并以數(shù)據(jù)庫(kù)內(nèi)部柵格格式存儲(chǔ)才能解決以上問(wèn)題。需要指出的是,所述ZL200910M4117所發(fā)明的行外模式雖然采用的是基于文件存儲(chǔ),但其屬于數(shù)據(jù)庫(kù)內(nèi)部實(shí)現(xiàn)的一種柵格文件系統(tǒng),其目的是提高數(shù)據(jù)庫(kù)只讀訪問(wèn)的效率,即外部柵格數(shù)據(jù)如要基于數(shù)據(jù)庫(kù)行外模式存儲(chǔ)則仍然需要執(zhí)行導(dǎo)入過(guò)程。那么,為何不放棄文件方式或?qū)⑺谢谖募绞降臇鸥駭?shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)?實(shí)際上,柵格數(shù)據(jù)采用文件方式還是數(shù)據(jù)庫(kù)方式存儲(chǔ)一直存在爭(zhēng)議,其原因在于,文件方式存儲(chǔ)柵格數(shù)據(jù)仍有很強(qiáng)的現(xiàn)實(shí)意義大量遙感數(shù)據(jù)產(chǎn)品主要是以GeoTiff等文件格式保存,數(shù)據(jù)量巨大(單衛(wèi)星數(shù)據(jù)中心往往以百TB計(jì)),如要全部導(dǎo)入數(shù)據(jù)庫(kù)幾乎不可能完成,且即使完全導(dǎo)入數(shù)據(jù)庫(kù)存儲(chǔ),也致使同一份數(shù)據(jù)需要維護(hù)文件存儲(chǔ)和數(shù)據(jù)庫(kù)存儲(chǔ)兩個(gè)版本,數(shù)據(jù)一致性難以維護(hù);文件格式的數(shù)據(jù)移動(dòng)、拷貝靈活,不需要類(lèi)似數(shù)據(jù)庫(kù)的導(dǎo)入和導(dǎo)出操作;文件數(shù)據(jù)的獨(dú)立訪問(wèn)和處理性能相對(duì)較高,較適合數(shù)據(jù)生產(chǎn)系統(tǒng)使用。那么,能否設(shè)計(jì)一種內(nèi)置于數(shù)據(jù)庫(kù)的新型柵格數(shù)據(jù)類(lèi)型及其系統(tǒng),能夠屏蔽后端的柵格數(shù)據(jù)物理存儲(chǔ)格式,既能以數(shù)據(jù)庫(kù)內(nèi)部柵格格式存取柵格數(shù)據(jù),又能直接存取外部柵格數(shù)據(jù)源格式(包括常用的如GeoTiff等文件格式或其他數(shù)據(jù)庫(kù)格式),從而保留外部柵格數(shù)據(jù)源相對(duì)獨(dú)立性的同時(shí),又能實(shí)現(xiàn)基于數(shù)據(jù)庫(kù)系統(tǒng)的統(tǒng)一組織、高效一體化查詢檢索以及并發(fā)安全訪問(wèn),是本發(fā)明的初衷。
      發(fā)明內(nèi)容本發(fā)明要解決的技術(shù)問(wèn)題是針對(duì)以GeoTiff等文件方式組織和存儲(chǔ)的大規(guī)模柵格數(shù)據(jù)難以實(shí)現(xiàn)統(tǒng)一組織、高效一體化查詢檢索以及并發(fā)安全訪問(wèn)問(wèn)題,提出了一種同時(shí)支持本地?cái)?shù)據(jù)庫(kù)存儲(chǔ)和外部數(shù)據(jù)源格式存儲(chǔ)的數(shù)據(jù)庫(kù)新型柵格數(shù)據(jù)類(lèi)型,并通過(guò)在數(shù)據(jù)庫(kù)底層引入數(shù)據(jù)結(jié)構(gòu)的統(tǒng)一映射機(jī)制并擴(kuò)展常規(guī)數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu)一包括擴(kuò)展外部存儲(chǔ)驅(qū)動(dòng)器和柵格邏輯對(duì)象處理器,實(shí)現(xiàn)了數(shù)據(jù)庫(kù)系統(tǒng)對(duì)內(nèi)部存儲(chǔ)和外部存儲(chǔ)的柵格數(shù)據(jù)的高效集成和基于SQL的統(tǒng)一操作。本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案根據(jù)本發(fā)明的第一方面,提供一種數(shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)柵格數(shù)據(jù)類(lèi)型的方法,包含如下步驟(1)按照數(shù)據(jù)庫(kù)的數(shù)據(jù)類(lèi)型擴(kuò)展定義規(guī)范,在數(shù)據(jù)庫(kù)管理系統(tǒng)的數(shù)據(jù)類(lèi)型體系中增加定義柵格數(shù)據(jù)類(lèi)型;(2)對(duì)柵格數(shù)據(jù)類(lèi)型所采用的常規(guī)物理存儲(chǔ)模式進(jìn)行擴(kuò)展,能夠同時(shí)支持本地存儲(chǔ)和外部存儲(chǔ),其中,本地存儲(chǔ)即完全以數(shù)據(jù)庫(kù)內(nèi)部柵格格式來(lái)存儲(chǔ)柵格數(shù)據(jù),而外部存儲(chǔ)則以非本地?cái)?shù)據(jù)庫(kù)定義的外部柵格數(shù)據(jù)源格式來(lái)存儲(chǔ)柵格數(shù)據(jù);(3)在數(shù)據(jù)訪問(wèn)時(shí),將本地存儲(chǔ)和外部存儲(chǔ)的不同格式的柵格數(shù)據(jù)動(dòng)態(tài)映射為同構(gòu)的柵格邏輯對(duì)象;(4)以柵格邏輯對(duì)象為統(tǒng)一視圖,實(shí)現(xiàn)針對(duì)柵格數(shù)據(jù)類(lèi)型的各類(lèi)SQL操作。所述步驟O)中的柵格數(shù)據(jù)類(lèi)型包含有存儲(chǔ)標(biāo)志,該存儲(chǔ)標(biāo)志用于標(biāo)識(shí)當(dāng)前記錄的當(dāng)前柵格數(shù)據(jù)類(lèi)型字段值所保存的柵格數(shù)據(jù)所采用的物理存儲(chǔ)模式,即本地存儲(chǔ)或外部存儲(chǔ)。所述步驟O)中的外部柵格數(shù)據(jù)源格式包含文件型柵格數(shù)據(jù)源格式和數(shù)據(jù)庫(kù)型柵格數(shù)據(jù)源格式。所述步驟O)中的外部存儲(chǔ)包含兩個(gè)部分,在柵格數(shù)據(jù)類(lèi)型字段中保存的對(duì)外部柵格數(shù)據(jù)源的描述信息,以及基于所述描述信息關(guān)聯(lián)的以外部柵格數(shù)據(jù)源格式保存的柵格數(shù)據(jù)。其中,所述的在柵格數(shù)據(jù)類(lèi)型字段中保存的對(duì)外部柵格數(shù)據(jù)源的描述信息至少包含對(duì)外部柵格數(shù)據(jù)源的鏈接信息。所述步驟(3)中實(shí)現(xiàn)不同格式柵格數(shù)據(jù)動(dòng)態(tài)映射為同構(gòu)的柵格邏輯對(duì)象的方法具體為首先,數(shù)據(jù)庫(kù)內(nèi)部柵格格式均以柵格邏輯對(duì)象為中介實(shí)現(xiàn)序列化和解序列化;其次,針對(duì)每一種外部柵格數(shù)據(jù)源格式建立數(shù)據(jù)動(dòng)態(tài)轉(zhuǎn)換驅(qū)動(dòng),實(shí)現(xiàn)外部柵格數(shù)據(jù)源格式和柵格邏輯對(duì)象的實(shí)時(shí)轉(zhuǎn)換。所述的數(shù)據(jù)動(dòng)態(tài)轉(zhuǎn)換驅(qū)動(dòng)具備數(shù)據(jù)延遲轉(zhuǎn)換技術(shù),即柵格邏輯對(duì)象實(shí)施分步構(gòu)造過(guò)程,該過(guò)程針對(duì)不同SQL操作實(shí)時(shí)轉(zhuǎn)換并填充柵格邏輯對(duì)象所需訪問(wèn)的局部屬性項(xiàng),以避免僅局部數(shù)據(jù)訪問(wèn)而一次性填充柵格邏輯對(duì)象的全部屬性項(xiàng)。根據(jù)本發(fā)明的第二方面,提供一種實(shí)現(xiàn)柵格數(shù)據(jù)類(lèi)型的數(shù)據(jù)庫(kù)系統(tǒng),包含基礎(chǔ)數(shù)據(jù)庫(kù)系統(tǒng),并具有支持柵格數(shù)據(jù)外部存儲(chǔ)的擴(kuò)展系統(tǒng),該擴(kuò)展系統(tǒng)保存有以外部柵格數(shù)據(jù)源格式存儲(chǔ)但在所述基礎(chǔ)數(shù)據(jù)庫(kù)系統(tǒng)的柵格數(shù)據(jù)類(lèi)型字段中保存有對(duì)該外部柵格數(shù)據(jù)源描述信息的所有柵格數(shù)據(jù),并包括外部存儲(chǔ)驅(qū)動(dòng)器用于底層存取不同格式的外部柵格數(shù)據(jù)源,并動(dòng)態(tài)轉(zhuǎn)換為同構(gòu)的柵格邏輯對(duì)象;柵格邏輯對(duì)象處理器用于輸入柵格邏輯對(duì)象,執(zhí)行基于柵格邏輯對(duì)象的各類(lèi)計(jì)算操作,并返回計(jì)算結(jié)果給基礎(chǔ)數(shù)據(jù)庫(kù)系統(tǒng)。所述基礎(chǔ)數(shù)據(jù)庫(kù)系統(tǒng)包括訪問(wèn)接口用于連接到數(shù)據(jù)庫(kù)并發(fā)出各類(lèi)SQL請(qǐng)求;SQL解析/優(yōu)化/執(zhí)行器用于解析SQL請(qǐng)求、生成查詢計(jì)劃并分解調(diào)用基于數(shù)據(jù)類(lèi)型的各種操作;數(shù)據(jù)類(lèi)型管理器用于維護(hù)數(shù)據(jù)庫(kù)數(shù)據(jù)類(lèi)型體系,并接收SQL解析/優(yōu)化/執(zhí)行器對(duì)數(shù)據(jù)類(lèi)型操作的調(diào)用,執(zhí)行包含柵格數(shù)據(jù)類(lèi)型在內(nèi)的面向數(shù)據(jù)類(lèi)型的各種操作,并將操作結(jié)果返回給SQL解析/優(yōu)化/執(zhí)行器;數(shù)據(jù)I/O管理器用于緩存并底層存取包含柵格數(shù)據(jù)類(lèi)型在內(nèi)的所有數(shù)據(jù)類(lèi)型字段值;事務(wù)管理器用于管理數(shù)據(jù)庫(kù)鎖和日志;柵格數(shù)據(jù)庫(kù)邏輯上包含本地存儲(chǔ)和外部存儲(chǔ)的各類(lèi)柵格數(shù)據(jù)。以上所述的一種實(shí)現(xiàn)柵格數(shù)據(jù)類(lèi)型的數(shù)據(jù)庫(kù)系統(tǒng),其各組件的具體交互職責(zé)為數(shù)據(jù)類(lèi)型管理器接收SQL解析/優(yōu)化/執(zhí)行器對(duì)柵格數(shù)據(jù)類(lèi)型字段的操作調(diào)用,首先在事務(wù)管理器控制并發(fā)的前提下,通過(guò)數(shù)據(jù)I/O管理器讀取柵格數(shù)據(jù)庫(kù)中對(duì)應(yīng)柵格數(shù)據(jù)類(lèi)型字段的值,然后根據(jù)該柵格數(shù)據(jù)類(lèi)型字段中保存的存儲(chǔ)標(biāo)志執(zhí)行相應(yīng)的柵格數(shù)據(jù)訪問(wèn)和計(jì)算操作,最后將操作結(jié)果返回給SQL解析/優(yōu)化/執(zhí)行器。所述的根據(jù)柵格數(shù)據(jù)類(lèi)型字段中保存的存儲(chǔ)標(biāo)志執(zhí)行的柵格數(shù)據(jù)訪問(wèn)操作具體為,根據(jù)存儲(chǔ)標(biāo)志判斷如果是本地存儲(chǔ),則由數(shù)據(jù)類(lèi)型管理器解序列化所述柵格數(shù)據(jù)類(lèi)型字段中保存的數(shù)據(jù)庫(kù)內(nèi)部柵格格式為柵格邏輯對(duì)象;如果是外部存儲(chǔ),則由數(shù)據(jù)類(lèi)型管理器根據(jù)柵格數(shù)據(jù)類(lèi)型字段中保存的對(duì)外部柵格數(shù)據(jù)源的描述信息調(diào)用外部存儲(chǔ)驅(qū)動(dòng)器,由外部存儲(chǔ)驅(qū)動(dòng)器讀取外部柵格數(shù)據(jù)源格式并動(dòng)態(tài)轉(zhuǎn)換為柵格邏輯對(duì)象。所述的外部存儲(chǔ)驅(qū)動(dòng)器可內(nèi)置至少一種對(duì)不同外部柵格數(shù)據(jù)源格式的讀驅(qū)動(dòng)或?qū)戲?qū)動(dòng),其中的讀驅(qū)動(dòng)負(fù)責(zé)將外部柵格數(shù)據(jù)源格式動(dòng)態(tài)轉(zhuǎn)換為柵格邏輯對(duì)象,而寫(xiě)驅(qū)動(dòng)負(fù)責(zé)將柵格邏輯對(duì)象動(dòng)態(tài)轉(zhuǎn)換為外部柵格數(shù)據(jù)源格式。所述的根據(jù)柵格數(shù)據(jù)類(lèi)型字段中保存的存儲(chǔ)標(biāo)志執(zhí)行的柵格數(shù)據(jù)計(jì)算操作具體由柵格邏輯對(duì)象處理器完成,即柵格邏輯對(duì)象處理器接受統(tǒng)一格式的柵格邏輯對(duì)象及計(jì)算所需參數(shù),完成指定的柵格計(jì)算,并將計(jì)算結(jié)果返回給數(shù)據(jù)類(lèi)型管理器。本發(fā)明與現(xiàn)有技術(shù)相比所具有的優(yōu)點(diǎn)是首先,對(duì)柵格數(shù)據(jù)庫(kù)的常規(guī)內(nèi)模式進(jìn)行了擴(kuò)展,引入外部柵格數(shù)據(jù)源格式(如GeoTiff、GeoRaster等)作為柵格數(shù)據(jù)類(lèi)型的底層物理存儲(chǔ)結(jié)構(gòu),從而實(shí)現(xiàn)了數(shù)據(jù)庫(kù)內(nèi)部和外部柵格數(shù)據(jù)的統(tǒng)一組織。其次,在數(shù)據(jù)訪問(wèn)和操作過(guò)程中,通過(guò)在數(shù)據(jù)庫(kù)底層引入柵格數(shù)據(jù)物理異構(gòu)到邏輯同構(gòu)的映射機(jī)制,使數(shù)據(jù)庫(kù)系統(tǒng)能夠?qū)?kù)內(nèi)外不同格式柵格數(shù)據(jù)實(shí)現(xiàn)一體化的查詢與分析操作,同時(shí),借助數(shù)據(jù)庫(kù)天然的索引環(huán)境并配合本發(fā)明所述的柵格邏輯對(duì)象的延遲轉(zhuǎn)換技術(shù),能夠達(dá)到較高的檢索效率。最后,由于用戶統(tǒng)一通過(guò)數(shù)據(jù)庫(kù)接口訪問(wèn)柵格數(shù)據(jù)類(lèi)型中保存的柵格數(shù)據(jù),因此數(shù)據(jù)庫(kù)的并發(fā)訪問(wèn)控制和安全訪問(wèn)策略對(duì)于物理存儲(chǔ)結(jié)構(gòu)透明,也即對(duì)于外部存儲(chǔ)的文件型柵格數(shù)據(jù),數(shù)據(jù)訪問(wèn)時(shí)能夠同樣遵循數(shù)據(jù)庫(kù)的并發(fā)訪問(wèn)控制和安全訪問(wèn)策略,從而解決了直接存取文件型柵格數(shù)據(jù)所存在的并發(fā)與安全隱患。圖1為本發(fā)明中的數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu)示意圖;圖2為本發(fā)明中的數(shù)據(jù)存儲(chǔ)模式示意圖。具體實(shí)施例方式下面結(jié)合附圖和實(shí)施例進(jìn)一步說(shuō)明本發(fā)明的技術(shù)方案。前已述及,所謂柵格數(shù)據(jù)類(lèi)型,是除ht、Varchar等常規(guī)數(shù)據(jù)庫(kù)所提供的字段類(lèi)型之外,針對(duì)存儲(chǔ)柵格數(shù)據(jù)(一種不同于簡(jiǎn)單數(shù)據(jù)的復(fù)雜數(shù)據(jù))而專門(mén)引入的一種字段類(lèi)型。數(shù)據(jù)庫(kù)管理系統(tǒng)如要增加支持一種新的復(fù)雜數(shù)據(jù)類(lèi)型,必須對(duì)數(shù)據(jù)庫(kù)系統(tǒng)內(nèi)核進(jìn)行擴(kuò)展,設(shè)計(jì)針對(duì)該數(shù)據(jù)類(lèi)型的數(shù)據(jù)存儲(chǔ)和訪問(wèn)機(jī)制,并定義一系列針對(duì)該數(shù)據(jù)類(lèi)型的SQL算子以實(shí)現(xiàn)對(duì)柵格數(shù)據(jù)(或稱柵格對(duì)象)的操作。參考圖1,假設(shè)采用擴(kuò)展數(shù)據(jù)庫(kù)系統(tǒng)100底層內(nèi)核的方式實(shí)現(xiàn)本發(fā)明所述的柵格數(shù)據(jù)類(lèi)型及其系統(tǒng),則具體的方案實(shí)施包含類(lèi)型定義、存儲(chǔ)模式擴(kuò)展以及系統(tǒng)結(jié)構(gòu)與處理邏輯擴(kuò)展三個(gè)方面,以下擬結(jié)合具體實(shí)例進(jìn)行說(shuō)明。1、定義柵格數(shù)據(jù)類(lèi)型ST_Raster定義柵格數(shù)據(jù)類(lèi)型是在數(shù)據(jù)庫(kù)管理系統(tǒng)的類(lèi)型體系中增加對(duì)柵格數(shù)據(jù)類(lèi)型及其操作函數(shù)接口的描述,不涉及類(lèi)型的具體存儲(chǔ)結(jié)構(gòu)和操作函數(shù)的具體實(shí)現(xiàn)。不同的數(shù)據(jù)庫(kù)管理系統(tǒng)給出的數(shù)據(jù)類(lèi)型擴(kuò)展定義規(guī)范不同,如Oracle數(shù)據(jù)庫(kù)管理系統(tǒng)采用CreateType語(yǔ)句配合對(duì)象描述實(shí)現(xiàn)新數(shù)據(jù)類(lèi)型的定義,但從數(shù)據(jù)庫(kù)類(lèi)型擴(kuò)展原理上,均符合抽象數(shù)據(jù)類(lèi)型(ADT)的定義方法,以下給出實(shí)施例ADTST_Raster{類(lèi)型屬性{TYPE_NAME=st_raster;TYPE_ID=1121;TYPE_ATTR=OBJ|NOKEY|N0S0RT...}類(lèi)型操作{Int=ST_BandNum(ST_Rasterr)Double=ST—NoData(ST—Rasterr,IntBandlndex)Bool=ST—Georeferenced(ST—Rasterr)其中,①類(lèi)型屬性描述數(shù)據(jù)類(lèi)型的基本特性,如TYPE_NAME為數(shù)據(jù)類(lèi)型的名稱,TYPE_ID為數(shù)據(jù)類(lèi)型的唯一標(biāo)識(shí),TYPE_ATTR為數(shù)據(jù)類(lèi)型的特性標(biāo)志位的組合,其中的OBJ表示該柵格數(shù)據(jù)類(lèi)型為對(duì)象型數(shù)據(jù)類(lèi)型,NOKEY說(shuō)明柵格數(shù)據(jù)類(lèi)型的字段不能作為數(shù)據(jù)表的主鍵,NOSORT說(shuō)明柵格數(shù)據(jù)類(lèi)型不支持排序等。②類(lèi)型操作定義與該柵格數(shù)據(jù)類(lèi)型相關(guān)的所有操作函數(shù)的接口,包括操作函數(shù)的名稱、參數(shù)類(lèi)型以及返回值的類(lèi)型等,如以操作函數(shù)ht=ST_BandNum(ST_Rasterr)為例,該操作函數(shù)用于獲取柵格數(shù)據(jù)類(lèi)型中存儲(chǔ)的柵格數(shù)據(jù)的波段總數(shù),其中,ST_BandNum為該操作函數(shù)的名稱,ST_Rasterr說(shuō)明該操作函數(shù)需要傳入ST_Raster類(lèi)型字段值作為參數(shù),而Int標(biāo)識(shí)該操作函數(shù)返回的波段總數(shù)為整型。2、擴(kuò)展ST_Raster類(lèi)型的物理存儲(chǔ)模式定義完ST_Raster數(shù)據(jù)類(lèi)型后,第二步需要在數(shù)據(jù)庫(kù)管理系統(tǒng)的內(nèi)模式確定ST_Raster數(shù)據(jù)類(lèi)型所對(duì)應(yīng)的物理存儲(chǔ)結(jié)構(gòu)。物理存儲(chǔ)結(jié)構(gòu)涉及到存儲(chǔ)模式和具體存儲(chǔ)格式,其中本發(fā)明主要對(duì)常規(guī)的數(shù)據(jù)庫(kù)存儲(chǔ)模式進(jìn)行擴(kuò)展,但不對(duì)具體存儲(chǔ)格式進(jìn)行限定,例如,當(dāng)采用外部存儲(chǔ)模式時(shí),至于采用GeoTiff格式還是其他格式保存柵格數(shù)據(jù),非本發(fā)明重點(diǎn)ο以圖2中的表rst_tab為例,該表中的字段rast采用上述ST_Raster數(shù)據(jù)類(lèi)型。ST_Raster數(shù)據(jù)類(lèi)型設(shè)計(jì)包含兩種物理存儲(chǔ)模式,即本發(fā)明所提出的本地存儲(chǔ)和外部存儲(chǔ)。其中,本地存儲(chǔ)即完全以數(shù)據(jù)庫(kù)內(nèi)部柵格格式來(lái)存儲(chǔ)柵格數(shù)據(jù),而外部存儲(chǔ)則以非本地?cái)?shù)據(jù)庫(kù)定義的外部柵格數(shù)據(jù)源格式來(lái)存儲(chǔ)柵格數(shù)據(jù)。外部存儲(chǔ)的柵格數(shù)據(jù)可以包含如GeoTiff、ErdasImagine,JPEG等不同格式的文件型柵格數(shù)據(jù),以及類(lèi)似OracleGeoRaster.ArcSDERaster等數(shù)據(jù)庫(kù)型柵格數(shù)據(jù)。以下舉例說(shuō)明實(shí)現(xiàn)兩種物理存儲(chǔ)模式的具體實(shí)施例方式以rid=1的記錄為例字段rast中的“MgMode=IN”用于標(biāo)識(shí)該記錄中存儲(chǔ)的柵格數(shù)據(jù)采用的是本地存儲(chǔ),也即該柵格數(shù)據(jù)以數(shù)據(jù)庫(kù)內(nèi)部柵格格式保存于DBMSdatafile中(數(shù)據(jù)庫(kù)內(nèi)部數(shù)據(jù)文件)中,至于具體存儲(chǔ)格式可參考專利US2005/0055376A1等,此處不作限定。以rid=2的記錄為例該字段rast中保存的柵格數(shù)據(jù)采用的是外部存儲(chǔ)模式,且為文件型柵格數(shù)據(jù),其具體包含兩個(gè)部分,①在柵格數(shù)據(jù)類(lèi)型字段中保存的對(duì)外部柵格數(shù)據(jù)源的描述信息“MgMode=OUT”用于標(biāo)識(shí)該記錄中存儲(chǔ)的柵格數(shù)據(jù)采用的是外部存儲(chǔ),“Frmt=TIF”標(biāo)識(shí)外部柵格數(shù)據(jù)源格式為T(mén)iff格式,“URL=D:\Imgs\600_600_3.tif”記錄外部柵格數(shù)據(jù)源所在路徑的鏈接信息。②基于所述描述信息關(guān)聯(lián)的以外部柵格數(shù)據(jù)源格式保存的柵格數(shù)據(jù),該具體實(shí)施例中即為以Tiff格式保存的600_600_3.tif文件。rid=3的記錄與rid=2的記錄類(lèi)似,采用的也是外部存儲(chǔ)模式,且同樣為文件型柵格數(shù)據(jù),但鏈接的是ErdasImagine格式的外部柵格文件。rid=4的記錄采用的也是外部存儲(chǔ)模式,但為數(shù)據(jù)庫(kù)型柵格數(shù)據(jù),其中的“Frmt=0RA”標(biāo)識(shí)外部柵格數(shù)據(jù)源為Oracle數(shù)據(jù)庫(kù)提供的GeoRaster格式;“URLscott,tiger,db,table,column,rid=21”記錄外部柵格數(shù)據(jù)源所在數(shù)據(jù)庫(kù)的鏈接信息,包括用戶名、密碼、數(shù)據(jù)庫(kù)名、表名、柵格數(shù)據(jù)類(lèi)型字段名以及行的定位條件。綜上,采用以上所述的ST_Raster數(shù)據(jù)類(lèi)型存儲(chǔ)柵格數(shù)據(jù),單從存儲(chǔ)角度具有以下特點(diǎn)(1)存儲(chǔ)結(jié)構(gòu)較為靈活,即使在同一張rst_tab表中,也可以混合基于本地存儲(chǔ)和外部存儲(chǔ)的不同的柵格數(shù)據(jù),且外部存儲(chǔ)既可以是文件型柵格數(shù)據(jù),也可以是其它數(shù)據(jù)庫(kù)系統(tǒng)中保存的數(shù)據(jù)庫(kù)型柵格數(shù)據(jù)。(2)當(dāng)主要采用基于文件型的外部存儲(chǔ)時(shí),由于柵格數(shù)據(jù)主要占據(jù)本地?cái)?shù)據(jù)庫(kù)之外的存儲(chǔ)空間,因此表結(jié)構(gòu)本身數(shù)據(jù)量較小,但卻可以實(shí)現(xiàn)對(duì)外部大規(guī)模柵格數(shù)據(jù)的統(tǒng)一組織。(3)用戶通過(guò)統(tǒng)一的訪問(wèn)接口存取柵格數(shù)據(jù)類(lèi)型字段值,因此用戶對(duì)于ST_Raster的存儲(chǔ)結(jié)構(gòu)可做到透明,這樣充分體現(xiàn)了抽象數(shù)據(jù)類(lèi)型的作用,并實(shí)現(xiàn)了數(shù)據(jù)庫(kù)系統(tǒng)對(duì)不同格式柵格數(shù)據(jù)基于ST_Raster類(lèi)型的統(tǒng)一組織。3、擴(kuò)展數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu)和處理邏輯以擴(kuò)展后的ST_Raster物理存儲(chǔ)模式為基礎(chǔ),進(jìn)一步對(duì)常規(guī)數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu)及處理邏輯進(jìn)行擴(kuò)展,目的是為了實(shí)現(xiàn)對(duì)內(nèi)部存儲(chǔ)和外部存儲(chǔ)柵格數(shù)據(jù)的一體化操作。如圖2所示,對(duì)包含訪問(wèn)接口、SQL解析/優(yōu)化/執(zhí)行器、數(shù)據(jù)類(lèi)型管理器、事務(wù)管理器、數(shù)據(jù)I/O管理器和柵格數(shù)據(jù)庫(kù)的基礎(chǔ)數(shù)據(jù)庫(kù)系統(tǒng)50進(jìn)行擴(kuò)展,加入了柵格邏輯對(duì)象處理器、外部存儲(chǔ)驅(qū)動(dòng)器并引入外部數(shù)據(jù)源,構(gòu)成外部存儲(chǔ)的擴(kuò)展系統(tǒng)60。下面結(jié)合實(shí)施例說(shuō)明各組件職責(zé)和處理邏輯。假設(shè)要從上述rst_tab中搜索出所有未進(jìn)行過(guò)地理空間參考(Georeferencing)的柵格數(shù)據(jù),并返回這些記錄的rid字段值。其中Georeferencing為遙感或地理信息系統(tǒng)領(lǐng)域的公知常識(shí),用于描述柵格數(shù)據(jù)的象元坐標(biāo)和實(shí)地坐標(biāo)的換算關(guān)系,即如果包含Georeferencing信息,則可以由象元坐標(biāo)(指圖面上的坐標(biāo))計(jì)算實(shí)地坐標(biāo)(比如現(xiàn)實(shí)世界的經(jīng)緯度坐標(biāo)),或通過(guò)實(shí)地坐標(biāo)計(jì)算象元坐標(biāo),從而使一幅遙感影像(一種最典型的柵格數(shù)據(jù))具有了空間定位能力。要實(shí)現(xiàn)以上搜索,數(shù)據(jù)庫(kù)只要執(zhí)行以下SQL語(yǔ)句SELECTridFROMrst_tabWHEREST_Georeferenced(rast)=FALSE其中的WHERE語(yǔ)句對(duì)符合條件的記錄進(jìn)行篩選,即對(duì)rst_tab表中的每一行柵格數(shù)據(jù)執(zhí)行ST_Ge0referenced操作函數(shù),如果返回值為FALSE即當(dāng)前行符合搜索條件。ST_Georeferenced操作函數(shù)的完整接口為Bool=ST_Georeferenced(ST_Rasterr),需傳入柵格數(shù)據(jù)類(lèi)型字段值,并判斷該字段中存儲(chǔ)的柵格數(shù)據(jù)是否包含了Georeferencing信息,如果不具備就返回FALSE,如果具備則返回TRUE。以上SQL語(yǔ)句通過(guò)訪問(wèn)接口組件發(fā)送給SQL解析/編譯/執(zhí)行器,SQL解析/編譯/執(zhí)行器解析該SQL請(qǐng)求、生成對(duì)應(yīng)的查詢計(jì)劃并分解執(zhí)行其中的ST_GeoreferenCed操作,而該操作的具體執(zhí)行由數(shù)據(jù)類(lèi)型管理器負(fù)責(zé),即數(shù)據(jù)類(lèi)型管理器首先在事務(wù)管理器控制并發(fā)的前提下,通過(guò)數(shù)據(jù)I/O管理器讀取rst_tab中的當(dāng)前記錄行,其中包含rast字段值,然后根據(jù)該rast字段值中保存的存儲(chǔ)標(biāo)志MgMode執(zhí)行相應(yīng)的柵格數(shù)據(jù)訪問(wèn)和計(jì)算操作。假設(shè)當(dāng)前操作的是rid=1的記錄行,通過(guò)判斷rast字段值中的“StgMode=IN”知道該柵格數(shù)據(jù)采用了本地存儲(chǔ),則數(shù)據(jù)類(lèi)型管理器根據(jù)預(yù)知的數(shù)據(jù)庫(kù)內(nèi)部柵格格式對(duì)rast字段值進(jìn)行解序列化,生成統(tǒng)一的柵格邏輯對(duì)象。其中,柵格邏輯對(duì)象為中間數(shù)據(jù)結(jié)構(gòu),與具體存儲(chǔ)格式無(wú)關(guān),可采用類(lèi)或結(jié)構(gòu)方式實(shí)現(xiàn),此處以結(jié)構(gòu)方式給出示例StructRastOBJ{Int4RastWidth;/*柵格寬度*/Int4RastHeight;/*柵格高度*/Int4BandNum;/*波段數(shù)*/GeoRefPara*georefs;/*GeoRefPara結(jié)構(gòu)定義了有關(guān)Georeferencing的所有參數(shù)信息,業(yè)界有多種參數(shù)形式并為公知技術(shù),比如仿射變換參數(shù)是其中一種*/…}假設(shè)當(dāng)前操作的是rid=2的記錄行,通過(guò)判斷rast字段值中的“StgMode=OUT”知道該柵格數(shù)據(jù)采用了外部存儲(chǔ),則由數(shù)據(jù)類(lèi)型管理器進(jìn)一步根據(jù)rast字段中保存的對(duì)外部柵格數(shù)據(jù)源的描述信息——對(duì)應(yīng)到本實(shí)施例中即為“Frmt=TIF”和“URL=D\Imgs\600_600_3.tif”調(diào)用外部存儲(chǔ)驅(qū)動(dòng)器讀取柵格數(shù)據(jù)。此處,假設(shè)外部存儲(chǔ)驅(qū)動(dòng)器內(nèi)置了對(duì)以上Tiff和IMG兩種文件型柵格數(shù)據(jù)源以及OracleGeoRaster數(shù)據(jù)庫(kù)型柵格數(shù)據(jù)源的讀寫(xiě)驅(qū)動(dòng),其中的讀驅(qū)動(dòng)負(fù)責(zé)將Tiff、IMG和GeoRaster格式的柵格數(shù)據(jù)動(dòng)態(tài)轉(zhuǎn)換為柵格邏輯對(duì)象RastOBJ,而寫(xiě)驅(qū)動(dòng)負(fù)責(zé)將柵格邏輯對(duì)象RastOBJ動(dòng)態(tài)轉(zhuǎn)換為T(mén)iff、IMG和GeoRaster格式。由于當(dāng)前的SI^Georeferenced操作是一種讀取操作,且外部存儲(chǔ)格式為T(mén)iff格式,故外部存儲(chǔ)驅(qū)動(dòng)器將實(shí)例化Tiff格式的讀驅(qū)動(dòng),通過(guò)間接調(diào)用Tiff格式的讀寫(xiě)庫(kù)(如公知的Iibtiff庫(kù)等),讀取D:\Imgs\600_600_3.tif文件的所需數(shù)據(jù)項(xiàng),并填充到RastOBJ中(如果是數(shù)據(jù)庫(kù)型柵格數(shù)據(jù)源,則連接到外部數(shù)據(jù)庫(kù),并通過(guò)數(shù)據(jù)庫(kù)接口訪問(wèn)柵格對(duì)象的所需數(shù)據(jù)項(xiàng))。此處,由于ST_GeoreferenCed操作只涉及對(duì)空間參考信息的讀取,故可進(jìn)一步使用延遲轉(zhuǎn)換技術(shù),即對(duì)RastOBJ實(shí)施分步構(gòu)造過(guò)程,例如,在對(duì)象實(shí)例化時(shí)只填充以上RastHeight、Rastffidth等基本屬性項(xiàng),對(duì)于空間參考、顏色表等非基本屬性項(xiàng)在對(duì)象實(shí)例化時(shí)暫不進(jìn)行填充,直到邏輯對(duì)象處理器執(zhí)行空間參考計(jì)算操作時(shí),再通過(guò)驅(qū)動(dòng)按需實(shí)時(shí)讀取外部柵格數(shù)據(jù)源的空間參考信息,從而實(shí)現(xiàn)較高的數(shù)據(jù)存取效率。通過(guò)以上訪問(wèn)過(guò)程獲得同構(gòu)的柵格邏輯對(duì)象RastOBJ后,具體判斷當(dāng)前RastOBJ是否已被空間參考將由柵格邏輯對(duì)象處理器完成。柵格邏輯對(duì)象處理器以RastOBJ為操作對(duì)象,并實(shí)現(xiàn)了針對(duì)RastOBJ實(shí)例的各類(lèi)計(jì)算操作。例如,對(duì)應(yīng)上述的ST_Georeferenced操作函數(shù),在邏輯對(duì)象處理器中需要實(shí)現(xiàn)對(duì)應(yīng)的針對(duì)RastOBJ實(shí)例的空間參考計(jì)算操作,假設(shè)入口函數(shù)為BoolRastOBJ_ISGeoref(RastOBJ^rastobj),該函數(shù)實(shí)現(xiàn)邏輯如下(1)判斷所傳入的柵格邏輯對(duì)象rastobj是否已經(jīng)讀取了空間參考信息(比如通過(guò)判斷其georefs成員指針是否為空實(shí)現(xiàn)),如果由于延遲轉(zhuǎn)換機(jī)制尚未讀取,則通過(guò)當(dāng)前的柵格數(shù)據(jù)驅(qū)動(dòng)實(shí)例實(shí)時(shí)讀取外部柵格數(shù)據(jù)源的空間參考信息并填充到georefs成員;(2)判斷georefs成員是否已包含準(zhǔn)確的空間參考信息,如果參數(shù)值已被準(zhǔn)確填充,則說(shuō)明已被空間參考,則返回TURE,如果未準(zhǔn)確填充,則返回FALSE,從而實(shí)質(zhì)上完成了ST_Ge0referenced操作函數(shù)所需實(shí)現(xiàn)的功能。以上,在執(zhí)行帶有SI^Georeferenced的SQL操作過(guò)程中,系統(tǒng)借助柵格數(shù)據(jù)物理存儲(chǔ)格式異構(gòu)到邏輯同構(gòu)的映射機(jī)制,使數(shù)據(jù)庫(kù)系統(tǒng)能夠?qū)st_tab表中不同存儲(chǔ)模式的柵格數(shù)據(jù)實(shí)現(xiàn)一體化訪問(wèn)和計(jì)算,其中,柵格邏輯對(duì)象的延遲轉(zhuǎn)換技術(shù),能夠避免為訪問(wèn)局部數(shù)據(jù)(如本實(shí)施例中只需訪問(wèn)空間參考信息)而實(shí)例化整體對(duì)象,從而保證了較高的查詢檢索效率。同時(shí),由于用戶統(tǒng)一通過(guò)類(lèi)似以上SQL操作訪問(wèn)柵格數(shù)據(jù)類(lèi)型中保存的柵格數(shù)據(jù),因此數(shù)據(jù)庫(kù)的并發(fā)訪問(wèn)控制和安全訪問(wèn)策略對(duì)于物理存儲(chǔ)結(jié)構(gòu)透明。比如,當(dāng)一個(gè)會(huì)話執(zhí)行對(duì)rid=2記錄(對(duì)應(yīng)外部存儲(chǔ)的文件型柵格數(shù)據(jù))中的rast字段進(jìn)行Update更新時(shí),另一個(gè)對(duì)該記錄的Update更新會(huì)等待,一旦前一更新完成,后一更新立即執(zhí)行,因此,對(duì)于并發(fā)更新外部存儲(chǔ)的文件型柵格數(shù)據(jù),不會(huì)存在并發(fā)沖突問(wèn)題,從而解決了直接存取文件型柵格數(shù)據(jù)所存在的并發(fā)與安全隱患。本發(fā)明未詳細(xì)闡述部分屬于本領(lǐng)域公知常識(shí),且本
      技術(shù)領(lǐng)域
      中的普通技術(shù)人員應(yīng)當(dāng)認(rèn)識(shí)到,以上的實(shí)施例僅是用來(lái)說(shuō)明本發(fā)明,而并非用于對(duì)本發(fā)明的限定,只要在本發(fā)明的實(shí)質(zhì)思想范圍內(nèi),對(duì)以上實(shí)施例的變化、變型都將落在本發(fā)明的權(quán)利要求書(shū)范圍內(nèi)。權(quán)利要求1.一種數(shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)柵格數(shù)據(jù)類(lèi)型的方法,其特征在于,包含如下步驟(1)按照數(shù)據(jù)庫(kù)的數(shù)據(jù)類(lèi)型擴(kuò)展定義規(guī)范,在數(shù)據(jù)庫(kù)管理系統(tǒng)的數(shù)據(jù)類(lèi)型體系中增加定義柵格數(shù)據(jù)類(lèi)型;(2)對(duì)柵格數(shù)據(jù)類(lèi)型所采用的常規(guī)物理存儲(chǔ)模式進(jìn)行擴(kuò)展,能夠同時(shí)支持本地存儲(chǔ)和外部存儲(chǔ),其中,本地存儲(chǔ)即完全以數(shù)據(jù)庫(kù)內(nèi)部柵格格式來(lái)存儲(chǔ)柵格數(shù)據(jù),而外部存儲(chǔ)則以非本地?cái)?shù)據(jù)庫(kù)定義的外部柵格數(shù)據(jù)源格式來(lái)存儲(chǔ)柵格數(shù)據(jù);(3)在數(shù)據(jù)訪問(wèn)時(shí),將本地存儲(chǔ)和外部存儲(chǔ)的不同格式的柵格數(shù)據(jù)動(dòng)態(tài)映射為同構(gòu)的柵格邏輯對(duì)象;(4)以柵格邏輯對(duì)象為統(tǒng)一視圖,實(shí)現(xiàn)針對(duì)柵格數(shù)據(jù)類(lèi)型的各類(lèi)SQL操作。2.如權(quán)利要求1所述的一種數(shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)柵格數(shù)據(jù)類(lèi)型的方法,其特征在于,所述步驟O)中的柵格數(shù)據(jù)類(lèi)型包含有存儲(chǔ)標(biāo)志,該存儲(chǔ)標(biāo)志用于標(biāo)識(shí)當(dāng)前記錄的當(dāng)前柵格數(shù)據(jù)類(lèi)型字段值所保存的柵格數(shù)據(jù)所采用的物理存儲(chǔ)模式。3.如權(quán)利要求1所述的一種數(shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)柵格數(shù)據(jù)類(lèi)型的方法,其特征在于,所述步驟O)中的外部柵格數(shù)據(jù)源格式包含文件型柵格數(shù)據(jù)源格式和數(shù)據(jù)庫(kù)型柵格數(shù)據(jù)源格式。4.如權(quán)利要求1所述的一種數(shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)柵格數(shù)據(jù)類(lèi)型的方法,其特征在于,所述步驟O)中的外部存儲(chǔ)包含兩個(gè)部分,在柵格數(shù)據(jù)類(lèi)型字段中保存的對(duì)外部柵格數(shù)據(jù)源的描述信息,以及基于所述描述信息關(guān)聯(lián)的以外部柵格數(shù)據(jù)源格式保存的柵格數(shù)據(jù)。5.如權(quán)利要求4所述的一種數(shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)柵格數(shù)據(jù)類(lèi)型的方法,其特征在于,所述的在柵格數(shù)據(jù)類(lèi)型字段中保存的對(duì)外部柵格數(shù)據(jù)源的描述信息至少包含對(duì)外部柵格數(shù)據(jù)源的鏈接信息。6.如權(quán)利要求1所述的一種數(shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)柵格數(shù)據(jù)類(lèi)型的方法,其特征在于,所述步驟(3)中實(shí)現(xiàn)不同格式柵格數(shù)據(jù)動(dòng)態(tài)映射為同構(gòu)的柵格邏輯對(duì)象的方法具體為首先,數(shù)據(jù)庫(kù)內(nèi)部柵格格式均以柵格邏輯對(duì)象為中介實(shí)現(xiàn)序列化和解序列化;其次,針對(duì)每一種外部柵格數(shù)據(jù)源格式建立數(shù)據(jù)動(dòng)態(tài)轉(zhuǎn)換驅(qū)動(dòng),實(shí)現(xiàn)外部柵格數(shù)據(jù)源格式和柵格邏輯對(duì)象的實(shí)時(shí)轉(zhuǎn)換。7.如權(quán)利要求6所述的一種數(shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)柵格數(shù)據(jù)類(lèi)型的方法,其特征在于,所述的數(shù)據(jù)動(dòng)態(tài)轉(zhuǎn)換驅(qū)動(dòng)具備數(shù)據(jù)延遲轉(zhuǎn)換技術(shù),即柵格邏輯對(duì)象實(shí)施分步構(gòu)造過(guò)程,該過(guò)程針對(duì)不同SQL操作實(shí)時(shí)轉(zhuǎn)換并填充柵格邏輯對(duì)象所需訪問(wèn)的局部屬性項(xiàng),以避免僅局部數(shù)據(jù)訪問(wèn)而一次性填充柵格邏輯對(duì)象的全部屬性項(xiàng)。8.一種實(shí)現(xiàn)柵格數(shù)據(jù)類(lèi)型的數(shù)據(jù)庫(kù)系統(tǒng),其特征在于,包含基礎(chǔ)數(shù)據(jù)庫(kù)系統(tǒng),并具有支持柵格數(shù)據(jù)外部存儲(chǔ)的擴(kuò)展系統(tǒng),該擴(kuò)展系統(tǒng)保存有以外部柵格數(shù)據(jù)源格式存儲(chǔ)但在所述基礎(chǔ)數(shù)據(jù)庫(kù)系統(tǒng)的柵格數(shù)據(jù)類(lèi)型字段中保存有對(duì)該外部柵格數(shù)據(jù)源描述信息的所有柵格數(shù)據(jù),并包括外部存儲(chǔ)驅(qū)動(dòng)器用于底層存取不同格式的外部柵格數(shù)據(jù)源,并動(dòng)態(tài)轉(zhuǎn)換為同構(gòu)的柵格邏輯對(duì)象;柵格邏輯對(duì)象處理器用于輸入柵格邏輯對(duì)象,執(zhí)行基于柵格邏輯對(duì)象的各類(lèi)計(jì)算操作,并返回計(jì)算結(jié)果給基礎(chǔ)數(shù)據(jù)庫(kù)系統(tǒng)。9.如權(quán)利要求8所述的一種實(shí)現(xiàn)柵格數(shù)據(jù)類(lèi)型的數(shù)據(jù)庫(kù)系統(tǒng),其特征在于,所述基礎(chǔ)數(shù)據(jù)庫(kù)系統(tǒng)包括訪問(wèn)接口用于連接到數(shù)據(jù)庫(kù)并發(fā)出各類(lèi)SQL請(qǐng)求;SQL解析/優(yōu)化/執(zhí)行器用于解析SQL請(qǐng)求、生成查詢計(jì)劃并分解調(diào)用基于數(shù)據(jù)類(lèi)型的各種操作;數(shù)據(jù)類(lèi)型管理器用于維護(hù)數(shù)據(jù)庫(kù)數(shù)據(jù)類(lèi)型體系,接收SQL解析/優(yōu)化/執(zhí)行器對(duì)數(shù)據(jù)類(lèi)型操作的調(diào)用,執(zhí)行包含柵格數(shù)據(jù)類(lèi)型在內(nèi)的面向數(shù)據(jù)類(lèi)型的各種操作,并將操作結(jié)果返回給SQL解析/優(yōu)化/執(zhí)行器;數(shù)據(jù)I/O管理器用于緩存并底層存取包含柵格數(shù)據(jù)類(lèi)型在內(nèi)的所有數(shù)據(jù)類(lèi)型字段值;事務(wù)管理器用于管理數(shù)據(jù)庫(kù)鎖和日志;柵格數(shù)據(jù)庫(kù)邏輯上包含本地存儲(chǔ)和外部存儲(chǔ)的各類(lèi)柵格數(shù)據(jù)。10.如權(quán)利要求8所述的一種實(shí)現(xiàn)柵格數(shù)據(jù)類(lèi)型的數(shù)據(jù)庫(kù)系統(tǒng),其特征在于,所述的對(duì)外部柵格數(shù)據(jù)源的描述信息至少包含對(duì)外部柵格數(shù)據(jù)源的鏈接信息。11.如權(quán)利要求8或9所述的一種實(shí)現(xiàn)柵格數(shù)據(jù)類(lèi)型的數(shù)據(jù)庫(kù)系統(tǒng),其特征在于,數(shù)據(jù)類(lèi)型管理器接收SQL解析/優(yōu)化/執(zhí)行器對(duì)柵格數(shù)據(jù)類(lèi)型字段的操作調(diào)用,首先在事務(wù)管理器控制并發(fā)的前提下,通過(guò)數(shù)據(jù)I/O管理器讀取柵格數(shù)據(jù)庫(kù)中對(duì)應(yīng)柵格數(shù)據(jù)類(lèi)型字段的值,然后根據(jù)該柵格數(shù)據(jù)類(lèi)型字段中保存的存儲(chǔ)標(biāo)志執(zhí)行相應(yīng)的柵格數(shù)據(jù)訪問(wèn)和計(jì)算操作,最后將操作結(jié)果返回給SQL解析/優(yōu)化/執(zhí)行器。12.如權(quán)利要求11所述的一種實(shí)現(xiàn)柵格數(shù)據(jù)類(lèi)型的數(shù)據(jù)庫(kù)系統(tǒng),其特征在于,所述的根據(jù)柵格數(shù)據(jù)類(lèi)型字段中保存的存儲(chǔ)標(biāo)志執(zhí)行的柵格數(shù)據(jù)訪問(wèn)操作具體為,根據(jù)存儲(chǔ)標(biāo)志判斷如果是本地存儲(chǔ),則由數(shù)據(jù)類(lèi)型管理器解序列化所述柵格數(shù)據(jù)類(lèi)型字段中保存的數(shù)據(jù)庫(kù)內(nèi)部柵格格式為柵格邏輯對(duì)象;如果是外部存儲(chǔ),則由數(shù)據(jù)類(lèi)型管理器根據(jù)柵格數(shù)據(jù)類(lèi)型字段中保存的對(duì)外部柵格數(shù)據(jù)源的描述信息調(diào)用外部存儲(chǔ)驅(qū)動(dòng)器,由外部存儲(chǔ)驅(qū)動(dòng)器讀取外部柵格數(shù)據(jù)源格式并動(dòng)態(tài)轉(zhuǎn)換為柵格邏輯對(duì)象;13.如權(quán)利要求12所述的一種實(shí)現(xiàn)柵格數(shù)據(jù)類(lèi)型的數(shù)據(jù)庫(kù)系統(tǒng),其特征在于,所述的外部存儲(chǔ)驅(qū)動(dòng)器內(nèi)置至少一種對(duì)不同外部柵格數(shù)據(jù)源格式的讀驅(qū)動(dòng)或?qū)戲?qū)動(dòng),其中的讀驅(qū)動(dòng)負(fù)責(zé)將外部柵格數(shù)據(jù)源格式動(dòng)態(tài)轉(zhuǎn)換為柵格邏輯對(duì)象,而寫(xiě)驅(qū)動(dòng)負(fù)責(zé)將柵格邏輯對(duì)象動(dòng)態(tài)轉(zhuǎn)換為外部柵格數(shù)據(jù)源格式。14.如權(quán)利要求11所述的一種實(shí)現(xiàn)柵格數(shù)據(jù)類(lèi)型的數(shù)據(jù)庫(kù)系統(tǒng),其特征在于,所述的根據(jù)柵格數(shù)據(jù)類(lèi)型字段中保存的存儲(chǔ)標(biāo)志執(zhí)行的柵格數(shù)據(jù)計(jì)算操作具體由柵格邏輯對(duì)象處理器完成,即柵格邏輯對(duì)象處理器接受統(tǒng)一格式的柵格邏輯對(duì)象及計(jì)算所需參數(shù),完成指定的柵格計(jì)算,并將計(jì)算結(jié)果返回給數(shù)據(jù)類(lèi)型管理器。全文摘要針對(duì)以GeoTiff等文件方式組織和存儲(chǔ)的大規(guī)模柵格數(shù)據(jù)難以實(shí)現(xiàn)統(tǒng)一組織、高效一體化查詢檢索以及并發(fā)安全訪問(wèn)問(wèn)題,提出了一種數(shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)柵格數(shù)據(jù)類(lèi)型的方法及其系統(tǒng),對(duì)柵格數(shù)據(jù)類(lèi)型所采用的常規(guī)物理存儲(chǔ)模式進(jìn)行了擴(kuò)展,能夠同時(shí)支持基于數(shù)據(jù)庫(kù)內(nèi)部柵格格式的本地存儲(chǔ)和基于外部柵格數(shù)據(jù)源格式的外部存儲(chǔ),并通過(guò)引入數(shù)據(jù)結(jié)構(gòu)的統(tǒng)一映射機(jī)制并擴(kuò)展常規(guī)數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu)——包括擴(kuò)展外部存儲(chǔ)驅(qū)動(dòng)器和柵格邏輯對(duì)象處理器,實(shí)現(xiàn)了數(shù)據(jù)庫(kù)系統(tǒng)對(duì)內(nèi)部存儲(chǔ)和外部存儲(chǔ)柵格數(shù)據(jù)的高效集成和基于SQL的統(tǒng)一操作。文檔編號(hào)G06F17/30GK102368272SQ20111036119公開(kāi)日2012年3月7日申請(qǐng)日期2011年11月15日優(yōu)先權(quán)日2011年11月15日發(fā)明者姜平,張明波,程昌秀,謝炯,陳應(yīng)東,陳振,陳榮國(guó)申請(qǐng)人:中國(guó)科學(xué)院地理科學(xué)與資源研究所,北京博陽(yáng)世通信息技術(shù)有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1