项目成果数据库系统建设 项目成果数据库系统建设 詹骏(中油辽河油田公司,辽宁盘锦 124010) 摘要:随着油田科研生产工作的不断推进,尤其是近年来油藏描述项目的大力开展,产生并积累了大量的项目成果数据资料,为了有效地管理和利用这些资料,提高勘探开发科研生产的工作效率,便于已有研究成果在今后科研生产中的进一步应用,进行了项目成果数据库系统建设首先通过对相关业务流程和数据流程的分析,论述了数据模型的设计与实现然后具体介绍了数据管理系统和浏览发布系统的软件结构与具体实现的技术框架,以及整个应用系统的体系架构最后详细阐述了在项目成果数据库系统建设过程中所采用的几项关键技术和系统安全策略 关键词:数据模型;Applet;Servlet;MVC架构;Struts框架 1 数据模型的设计与实现 项目成果包括成果报告、成果图件、分层等相关数据资料,是地质研究工作中最重要的成果资料之一因此,有必要建立项目成果数据库对这些数据进行管理与维护,这就要求我们必须首先认真分析各业务单 元的业务流程和数据流程 1.1 业务流程与数据流程分析 在对POSC数据模型及当今流行的一些相关软件的数据模型进行研究与分析的基础上,针对辽河油田的具体业务流程、数据流程进行了详细的分析。
按照数据产生、采集、质检、入库、应用的业务模式和管理结构,将与相关业务过程分为:地质研究人员进行项目研究;数据录入人员录入相关数据;数据审核部门检查数据质量;所有应用人员直接应用数据库中合格数据根据这种业务流程,通过分析,抽象并独立出项目成果数据在企业组织内部的流动情况,从而确定了项目成果数据库系统的数据流程图见图1) 图1 数据流程图 1.2 数据模型逻辑设计 根据业务流、数据流分析结果,参照当前业界主流软件的数据库设计核心技术与标准进行了数据表及表间关系的设计[1]通过分析所有项目成果数据的特性,抽取并定义了井号、项目名称、分层模式等概念,定义了所有数据项的内容和概念内涵,使其内涵唯一,不具二意性,并用二维表来表述,从而实现对所有业务对象的抽象在数据抽象基础上,利用规范化技术,逐步消除数据间的部分依赖和传递依赖,降低冗 余,使其达到第三范式利用这项技术,分别对项目基础数据、成果报告、成果图件、分层模式、分层数 据等数据的存储格式、约束关系、数据表结构进行定义,并对表间关系进行规范化处理,建立了这些数据 的逻辑模型综合规范化后的数据内容,建立数据模型E—R图,完成数据模型逻辑设计。
1.3 数据字典 数据字典是以二维表的形式来描述数据表及其关系设计的结果,以数据库中基本数据项为单位,按一定顺序进行组织,对其内容作详细说明项目成果管理数据库系统的数据字典内容包括数据表名称和代码、数据项名称和代码、数据类型、取值范围、计量单位、索引约束、空值约束、缺省约束、检查约束、参照 约束、触发器、字段定义及填写规定等另外,还制订了数据表、数据项以及约束等相关命名规范 1.4 数据模型物理设计 本项目中的数据库管理系统采用了Oracle9i[2]因此,在物理设计过程中,首先需要确定数据库表空间、用户表空间、临时表空间、回滚段、重做日志文件等的大小,并指定相关数据文件的存放位置然后,利用PL/SQL Developer工具,通过DDL将逻辑建模阶段定义出来的所有表创建到Oracle数据库中然后,通过定义主键来确保数据的唯一性;通过定义外键来指定各数据表之间的关系;通过定义各字段的约束条件来保证数据安全性和完整性;通过定义索引来加快数据访问速度,提高系统响应时间另外,为进一步提高性能,对数据库中主要初始化参数进行了配置,包括Java池、大型池、共享池、排序区、会话数、事务数等。
通过以上方法将逻辑模型映射到Oracle9i数据库中,从而实现数据模型物理设计[3] 2 应用系统架构 经过详细的需求分析,将整个应用系统划分为数据管理系统和浏览发布系统两大组成部分 2.1 数据管理系统 数据管理系统主要负责对研究成果数据进行管理维护,包括数据的加载入库、修改维护及质量审核 2.1.1 数据管理系统结构 数据管理系统细分为数据加载和数据审核两大子系统针对不同的项目成果数据,又可分别将这两个子系统分解为若干软件模块通过对这些软件模块进行分析归纳,制定了数据管理系统软件结构图(图2) 图2数据管理系统软件结构图 图2列出了所有数据加载与审核模块数据加载子系统实现了对各类数据的录入、修改、删除等管理功能,由录入人员使用;数据审核子系统针对已录入的数据进行数据质量检查,由审核人员使用 2.1.2 数据管理系统技术架构 从图2可以看出,数据管理系统包含许多数据加载和审核模块,根据实际需求,这些模块分别在不同的机器上并由不同的录入人员使用,因此系统采用了B/S 模式另外,鉴于J2EE 平台具有企业应用的稳定性和平台无关性,并且J2EE 平台下的多层应用可以实现高可用性、安全性和可扩充性,本系统采用了多层J2EE 技术架构。
通过对不同的技术进行深入探讨,最后确定了数据管理系统的技术基础架构(图3) 数据管理系统采用Applet 技术进行数据加载与审核客户端通过浏览器利用嵌入在HTML 页面中的Applet 进行数据加载与审核;然后利用对象流技术将Applet 中的数据以DataSetData 对象的形式传递给服务器端的Servlet ;服务器端的Servlet 从对象流中抽取出DataSetData 对象,利用JDBC 连接到项目成果数据库,将DataSetData 对象中的数据保存到项目成果数据库中 2.2 浏览发布系统 浏览发布系统主要负责将项目成果数据库中的数据展现给最终应用用户 2.2.1 浏览发布系统结构 经过对项目成果数据进行分类、对用户需求进行详细分析之后,根据数据类别和浏览发布方式,确定了浏览发布系统的软件结构图(图4) 图4展示了各类项目成果数据的浏览发布模块,以及各模块之间的软件层次结构对于这些数据,浏览发布系统除了能够以数据表格的形式显示以外,还提供了数据下载功能,允许用户将成果报告和成果图件下载到本地计算机上,然后利用专业软件打开浏览查看。
2.2.2 浏览发布系统技术架构 从图4可以看出,浏览发布系统包含表格显示和数据下载两个子系统经过分析,尽管这两个子系统给用户展现数据的方式略有不同,但仍然可以统一到B/S 模式上经过对不同的实现技术进行深入探讨后,同样采用了多层J2EE 的技术架构作为浏览发布系统的技术基础架构(图5) 图3 数据管理系统技术基础架构 JDBC HTML Pages Applet Servlet ORACLE DBMS HTTP DataSetData 图4浏览发布系统软件结构图 浏览发布系统利用由JSP 生成的HTML 页面查看表格类数据服务器端通过Servlet [4] 和相关的Action 对象作为控制器,实现业务流程流转,最终调用相关Java Bean 通过JDBC 访问数据库中的数据同样,也是利用JSP 生成的HTML 页面展现要下载的数据,然后通过相应的Servlet 控制并实现数据的下载 2.3 系统的体系结构 根据两大系统的技术基础架构,将整个系统划分为数据层、应用层和客户层系统体系结构见图6 数据层采用Oracle9i 作为数据库服务器,负责存放并管理系统中的数据。
应用层包含Web 服务器和应用服务器两部分,统一由Tomcat 服务器进行管理Web 服务器用来接收客户端数据请求,由Servlet 或JSP [5] 页面根据用户请求调用应用服务器中相应Java Bean ,然后从应用服务器接收响应结果,并根据响应结果生成Web 页面,最后将生成的Web 页面返回给客户端;应用服务器采用JDBC 方式与数据库服务器交互,利用相应的Java Bean 从数据库中求取数据或将客户端提交的数据存入数据库中,并将处理结果返回给Web 服务器客户层主要负责将Web 页面上的数据展现给最终用户,并为用户提供一个固定格式的数据管理页面在这三层体系结构 [6-9] 中,应用层封装了所有数据存取的业务逻辑,是系统建设的核心与关键 3 关键技术及其应用 3.1 Oracle 数据库的序列与触发器技术 为了在项目成果数据库系统中使用自增字段在数据库层面实现多用户并发控制,系统采用了Oracle 数据库的序列(Sequence )与触发器(Trigger )这两项技术 [10] 在使用这两项技术时,首先创建一个序 列,指定序列的最小值、最大值、起始值、增量值和缓冲值;然后创建一个触发器,指定触发器被触发的时机、指定所使用的序列、从序列中选出下一个序列值并赋给指定表的指定字段。
这样就实现了将一个序列绑定到指定表的指定字段上,并且实现了字段值的自动增长,从而也就在数据库层面上实现了多用户的并发控制在本系统中,利用这两项技术实现了对项目编码、分层模式编码、成果报告编码、成果图件编码等一系列字段的并发控制,有效地保证了这些数据在整个数据库中不重复 3.2 事务机制在数据管理系统中的应用 JDBC HTTP 图5 浏览发布系统技术基础架构 HTML Pages JSP Servlet Action Java Bean ORACLE DBMS 在数据管理系统的编程中采用了事务机制来实现数据的并发性和一致性在对数据库中数据进行操作之前先利用conn.setAutoCommit(false)语句将数据库连接的自动提交状态置为false,这条语句标志着事务的开始;然后执行相应的数据库操作(多条SQL语句依次执行);最后执行 mit()语句来提交数据如果在执行SQL语句的过程中发生错误或出现异常,则执行conn.rollback()语句回滚所有操作 在项目成果数据库中成果报告数据和成果图件数据的插入操作均涉及到两个数据库表,这两个表的插入和删除操作必须同时成功,或者同时被回退撤消,因此程序中使用了事务机制来保证数据的一致性。
4 系统安全策略 对于本系统中成果数据的访问采用了两级密码机制,增强了成果数据访问的安全性用户要访问成果数据,应先登录系统,此时系统会首先判断该用户所对应的密码是否正确,如果正确则允许登录,否则不允许登录如果用户已正确登录到系统中,便可以查看项目的相关基础信息,但如果需要查看某个项目的研究成果数据,还必须输入项目所对应的密码,此时,系统会自动判断项目密码输入是否正确,如果正确,则显示相关成果数据,否则给出相应的提示信息两级密码访问成果数据的流程图如下: 图7 两级密码访问成果数据的流程图 5 总结 目前,项目成果数据库系统已经建设完毕,并已投入运行该系统综合利用多种技术手段,实现了项目基础信息、分层模。