刘灿娟,毛先成,陈 振
(中南大学地球科学与信息物理学院,长沙 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.