劉燦娟,毛先成,陳 振
(中南大學地球科學與信息物理學院,長沙 410083)
隨著計算機技術、通訊技術、網絡技術等的發展,信息已成為生產力的重要核心和國家的戰略資源。20世紀60年代以來,我國地質行業廣泛開展地球科學的研究和地質礦產資源的勘查,獲得了可觀的紙質數據和電子文檔。這些地質礦產資料具有階段性、專業性、種類多和格式復雜等特點,且分散在多個部門,資料的完整性、連續性、繼承性差。如何有效的對這些數據進行存儲、管理和充分利用成為國內外地學工作者共同關心的問題[1]。通過對地質數據進行抽象分類,并利用先進的 GIS組件技術以及關系數據庫技術進行管理,有效地實現了綜合地質數據的保存、管理、查詢和利用。
地質礦產工作所積累的地質礦產資料繁多,根據資料內容的表現形式,在地質礦山行業中,存在圖件、文檔、表格、報告和分類共5種基本的數據。其中,前3種數據為物理實體,經過分析和抽象,形成聚合型數據,各自包含元數據(屬性數據)與實體數據(內容數據);元數據描述資料的基本屬性,而實體數據則表示資料的具體內容。后2種數據則為抽象概念,只有元數據而無實體數據。
(1)圖件實體數據:含紙介質圖件(剖面地質圖、綜合地質圖、中段地質圖等)、電子圖件(各類地測圖件的掃描文件、經Map GIS等 GIS軟件矢量化的遙感影像文件)等。
(2)文檔實體數據:含紙介質文檔(勘探報告、研究報告、礦權評估等)、掃描文檔、電子文檔(Word,PDF,PPT等)、軟件包等。
(3)表格實體數據:指一切可用二維表格表示的數據(如測量控制點、鉆孔位置、樣品化驗分析等數據),通常有紙介質形式、電子表格形式、關系表格形式等。
(4)報告:在地質礦山系統中常有大量的工程項目與研究項目的實施,工程報告、研究報告等各種報告則是這些項目的成果展現,報告是文檔、圖件、表格的集合體。因此,將報告抽象為一種地質數據元素,只有元數據而無實體數據。
(5)分類:將地質數據分成不同類別,圖件、表格、文檔或以獨立形式直接歸屬于某類,或相互構成集合以報告形式歸屬于某類。分類是一個數據集合,它的組成元素可以是圖件、文檔,表格和報告或子分類。

圖1 地質數據樹Fig.1 Geological data tree
在地質礦山行業中,圖件、文檔、表格、報告和分類5種基本數據通過樹型層次結構來組織,形成地質數據分類體系樹,簡稱地質數據樹(圖1),使5種基本數據之間的關系形成一種樹型的繼承和包含關系。
地質數據樹是一種變形的樹結構,它與一般樹結構的不同之處在于地質數據樹中各地質數據元素存在以下3個約束關系:①在地質資料中,圖件、文檔、表格是最基本的數據實體[2],所以若地質數據元素為圖件、文檔、表格,則該地質數據元素不能包含或派生其他地質數據元素;②報告、分類這2種地質數據元素若有前驅,則其前驅只能是分類型地質數據元素;③報告若有后繼,則其后繼僅能為圖件、文檔、表格型地質數據元素。
綜合地質數據庫采用C/S與B/S模式相結合的3層架構模式:顯示層、業務邏輯層和數據層(圖2)[3-7]。
顯示層主要為客戶端提供系統訪問接口,即為用戶提供數據顯示和操作界面。在C/S模式中,顯示層由系統客戶端軟件組成;在B/S模式中,顯示層則由ASP.NET WEB窗體和代碼隱藏文件組成,Web窗體負責向用戶展示操作界面,而代碼隱藏文件負責進行各個控件的事件處理。
業務邏輯層完成系統主要業務邏輯并實現系統主要功能,不管是C/S模式還是B/S模式,綜合地質數據庫管理系統的業務邏輯大部分是一致的,故以ActiveX、DLL組件形式實現系統業務邏輯層的各個功能模塊,然后將其封裝到C/S與B/S服務器的業務邏輯層,以實現代碼共享,確保代碼一致性,提高開發效率和系統的易修改性。綜合地質數據庫管理系統業務邏輯層主要包含以下組件:
(1)地質數據樹管理組件 GeoDBTM和地質數據樹會話管理組件 GeoDBTSes。GeoDBTM在GeoDBTSes的協作下為授權用戶提供了對地質數據樹的瀏覽、添加、刪除、修改以及圖件、文檔結點實體數據的上傳與下載等基本操作功能。
(2)用戶管理組件 GeoDBUser、地質數據樹權限管理組件 GeoDBTPrio和系統日志管理組件GeoDBLog。GeoDBUser,GeoDBTPrio,GeoDBSes以及GeoDBLog這4個組件共同實現了在應用程序層上構建綜合地質數據庫管理系統安全機制的功能,該安全機制從數據粒度和數據操作能力上進行訪問控制,以保證用戶只能在其所能夠行使操作的數據上執行對其所授限的操作,并為用戶的每次數據操作記錄日志,為非法操作提供證據。
(3)數據導入組件 GeoDBImp和數據導出組件GeoDBExp。GeoDBExp和 GeoDBImp是地質數據庫管理系統在應用層實現數據備份(導出)與恢復(導入)的組件。
(4)數據輸入組件 GeoDBDI和查詢輸出組件GeoDBQO。GeoDBDI組件實現表格數據的輸入與修改,而 GeodDBQO則提供表格數據的查詢輸出功能。
(5)源表選擇組件 GeoDBTT和三維數據轉換組件 GeoDBTI。GeoDBTT與 GeoDBTI組件共同實現了Micromine與Surpac軟件地質建模數據輸出功能。

圖2 綜合地質數據庫管理系統體系結構圖Fig.2 Architecture of the general geology database management system
系統以地質數據樹為基礎,將系統功能分為四大部分:①地質數據樹(地質分類樹)的管理;②地質數據的管理;③系統與地質數據安全機制管理;④地學三維建模數據輸出管理。用戶通過對地質數據樹的管理實現地質數據分類管理,地質數據的管理則主要是指對地質數據的元數據和實體數據的管理;另外,根據地質數據以及系統自身的安全需要,系統還需提供用戶管理、地質數據樹權限管理、系統日志管理等安全機制;根據地質數據輸出應用的需要,系統提供 Surpac和Micromine軟件數據建模接口。所以系統主要設計了如下功能模塊:
(1)地質數據樹管理:為授權用戶提供瀏覽與搜索地質數據(子)樹,插入、刪除、拖動地質(子)樹,導入與導出地質數據(子)樹,以及編輯分類、報告、圖件、文檔、表格元數據的功能。
(2)圖檔實體數據管理:為授權用戶提供圖件、文檔實體數據的上傳、下載、編輯與測覽等功能。
(3)表格實體數據管理:一個表格實體數據對應一個關系數據表,對表格實體數據的管理主要包括為授權用戶提供新建關系表、維護關系表結構、輸入與修改關系表數據、關系表數據條件查詢輸出等功能。
(4)安全機制管理:實現系統用戶與部門的管理、地質數據樹授權管理、系統日志管理等功能。
(5)地質數據建模輸出:提供 Surpac和Micro-Mine等地學建模軟件的數據建模接口。
綜合地質數據的導入與導出是在數據庫應用與維護過程中經常涉及到的兩個重要操作。導出與導入子系統為用戶在應用程序層執行地質數據入庫、地質數據專題應用提取、地質數據備份與恢復等工作提供了工具[8]。
系統實現了地質數據的批量導入,解決了手工導入速度慢、效率低、易出錯的問題。首先將地質數據按照地質數據樹模型進行組織,形成具有一定規 則的地質數據分類目錄樹,然后通過導入工具把地質數據分類目錄樹作為導入對象,將其所有地質數據批量的自動導入綜合地質數據庫。在導入過程中該系統提供了2個方案:
(1)屬性數據和實體數據都導入Oracle數據庫。這種方案容易理解和實現,將實體數據用BLOB字段進行存儲,對數據量小的數據存儲比較方便。但是當數據量比較大的時候,將會嚴重影響系統的效率。
(2)屬性數據存在Oracle數據庫,實體數據存在Serv-U文件服務器。這種方案實現相對復雜,但是對于提高系統性能有很大的幫助。該方案在文件服務器上按照地質數據分類目錄樹的結構建立相應目錄,然后將實體數據導入到相應的目錄,屬性數據導入到數據庫。
通過導出功能,用戶可以選擇地質數據樹結點,將以該結點為根的子樹導出到物理存儲設備中,實現數據的局部備份;當地質數據因故障而丟失時,則通過導入子系統將原存儲備份導入到綜合地質數據樹,從而實現數據的恢復,確保綜合地質數據庫的安全性和完整性。
系統體系結構如圖3所示。
在 GeoDBMS中,地質數據是用戶需要訪問的數據資源,根據地質數據模型可知,地質數據是以地質數據樹進行組織,在綜合地質數據庫管理系統中對各地質數據的訪問控制表現為對地質數據樹中各結點的訪問控制。因此,借鑒基于角色的訪問控制(RABC)思想,在 GeoDBMS中將地質數據樹中各個結點視為數據資源對象,在各個結點上為每個用戶指派角色,以此實現對地質數據的訪問控制。
3.2.1 權限管理數據庫
該功能的實現涉及到數據庫中多個數據表(包括用戶表、權限表、角色表、角色權限表、用戶角色指派表和地質數據樹表)。用戶表記錄用戶的用戶名、密碼等相關信息;權限表記錄用戶的操作權限,包括編輯、修改和刪除等操作;角色表記錄系統中所有角色的信息;角色權限表記錄角色與權限的對應關系;用戶角色指派表記錄用戶在地質數據樹節點上的權限;地質數據樹表記錄地質數據樹的節點信息以及節點之間的關系。
3.2.2 系統結構
在綜合地質數據庫管理系統中,基于角色的地質數據訪問控制由權限瀏覽、角色權限設置、權限管理工具、會話管理工具等功能模塊構成。各模塊所實現的功能分別為:
(1)權限瀏覽:該模塊通過讀取用戶角色指派表信息,獲取用戶在地質數據樹各結點上所被指派的角色,并從角色權限表獲取角色所包含的權限,從而 實現瀏覽用戶在地質數據樹各結點上所擁有權限的功能。

圖3 綜合地質數據的導入與導出Fig.3 Importing and exporting of the general geological data
(2)角色權限設置:系統級管理員可以根據企業職能崗位的特點進行角色的定義、角色權限的分配等功能操作。
(3)權限管理工具:權限管理工具是系統提供給系統級管理員進行地質數據樹權限管理的功能模塊。在權限管理工具中,系統級管理員可以進行部門管理、用戶管理、用戶角色的指派,以及在不刪除用戶、角色、地質數據樹結點的情況下停止用戶在樹結點上角色所擁有的權限。
(4)會話管理工具:在綜合地質數據庫管理系統中,將用戶對地質數據樹中結點所進行的一次訪問(操作處理)稱為用戶與該結點所執行的一次會話,會話管理工具用于用戶與系統的互動,使用戶獲得地質數據樹中各結點的角色和操作權限的功能支撐模塊[9]。在用戶與地質數據樹結點建立會話之前,會話管理工具獲取用戶在當前結點上所擁有的權限,并將用戶在該地質數據樹結點上能否執行的操作,通過系統主界面上的對應功能菜單按鈕、工具按鈕的禁止與可用狀態予以體現。
通過分析和抽象,將繁多復雜的地質數據抽象成文檔、表格、圖件、報告和分類等5種數據類型,將地質礦產資料數據歸整分類,建立資料分類目錄樹,使得系統的授權粒度細分到目錄樹上的各個結點。對綜合地質數據模型的結構特征以及行為特征進行分析,研制綜合地質數據導出與導入系統,可為地質工作者提供執行地質數據入庫以及地質數據專題應用提取、地質數據備份與恢復等工作的工具;按照本文的思路建立的地質礦產原始數據數字化及入庫流程,以導入系統為實施工具,可系統地、全面地、批量地、自動地將紙介質地質數據導入綜合地質數據庫,實現地質數據數字化存儲和信息化管理。采用面向對象技術和網絡開發技術實現了對地質數據的遠程訪問與更新;同時系統采用基于角色訪問控制思想進行用戶權限管理,提高了系統的安全性和實用性,可根據地質工作需要實現地質數據樹的備份和恢復。
[1] 李永兵,陳旭瑞,胡俊峰,等.基于 GIS的地質數據庫系統:研究現狀和發展趨勢[J].地球物理學進展,2002,17(3):532-539.
[2] 毛先成,戴塔根,鄒艷紅,等.廣西大廠礦田地質礦產數據庫的研究與系統開發[J].地質與勘探,2003,35(9):72-76.
[3] 馬君,袁帥.基于C/S三層結構的 GIS海量影像數據管理系統[J].計算機工程與設計,2005,26(10):265l-2653.
[4] 徐雅斌,王秀敏,劉鴻沈.基于.NET平臺的三層結構應用系統開發[J].遼寧工程技術大學學報,2005,24(1):101-103.
[5] 趙志升,李桂權.一種基于B/S結構與C/S結構結合的新體系結構[J].電子技術應用,2004,30(8):7-9.
[6] 柳蔭塘,魏挺.一種C/S與B/S相結合的企業應用結構[J].河北科技大學學報,2007,28(2):154-156.
[7] 康萍.COM組件技術及其在三層結構模型中的應用[J].微電子學與計算機,2005,22(6):181-187.
[8] 陳振.綜合地質數據模型研究與管理系統的開發[D].長沙:中南大學,2008.
[9] 張紅軍,李亞芬,周小林.大型數據庫應用系統中基于角色的權限管理方案[J].現代計算機,2001(5):6-10.