HJ719-2014环境信息系统数据库访问接口规范Specificationfordatabaseaccessinterfaceofenvironmentinformationsystem(发布稿)本电子版为发布稿。请以中国环境科学出版社出版的正式标准文本为准。2014-12-25发布2015-03-01实施发布I目次前言………………………………………………………………………………………………..II1适用范围………………………………………………………………………………………………12术语和定义……………………………………………………………………………………………13数据库访问接口框架…………………………………………………………………………………14数据库访问接口方式…………………………………………………………………………………25环境信息系统数据库访问接口推荐访问方式………………………………………………………66数据库访问条件………………………………………………………………………………………7附录A(资料性附录)触发器方式数据库接口的SQL脚本(MICROSOFTSQLSERVER)...8附录B(资料性附录)触发器方式数据库接口的SQL脚本(ORACLE)…………………….13附录C(资料性附录)时间戳方式数据库接口的SQL脚本(MICROSOFTSQLSERVER).17附录D(资料性附录)时间戳方式数据库接口的SQL脚本(ORACLE)……………………18附录E(资料性附录)环境信息系统数据库访问示例…………………………………………...19ii前言为贯彻《中华人民共和国环境保护法》,促进环境信息化工作,明确关系型数据库的访问接口,推动环境信息资源建设,制定本标准。本标准规定了环境信息系统中关系型数据库的访问接口,确定了数据库访问接口的基本架构以及数据库访问接口方式、数据库访问工作流程。本标准附录A、附录B、附录C、附录D、附录E为资料性附录。本标准为首次发布。本标准由环境保护部科技标准司组织制订。本标准主要起草单位:环境保护部信息中心、深圳市环境保护宣传教育信息中心。本标准由环境保护部2014年12月25日批准。本标准自2015年3月1日起实施。本标准由环境保护部解释。1环境信息系统数据库访问接口规范1适用范围本标准规定了环境信息系统中关系型数据库的访问接口,确定了数据库访问接口的基本架构以及数据库访问接口方式、数据库访问工作流程。本标准适用于同一局域网内的数据库访问,以及环境信息系统的关系型数据库访问接口的建设。2术语和定义下列术语和定义适用于本标准。2.1环境信息environmentinformation环境管理、环境科学、环境技术、环境保护产业等与环境保护相关的数据、指令和信号等,以及其相关动态变化信息;包括文字、数字、符号、图形、图像、影像和声音等各种表达形式。2.2数据库database按照概念结构组织的数据的汇集,它描述这些数据的特征及与数据对应的实体间的关系,并支持一个或多个应用领域。2.3数据库适配器databaseadapter按指定要求和标准规范进行数据库访问的功能组件,通过对配置文件的解析和处理,完成数据库访问,实现数据采集和交换。2.4数据库访问接口databaseaccessinterface嵌入各环保业务数据库中、专门针对外部应用访问所做的配置。数据库访问接口与适配器相适应,能够实现外部应用对环保业务数据库内容的访问。2.5存储过程storedprocedure一组为了完成特定功能的SQL(StructuredQueryLanguage)语句集合,经编译后存储在数据库中。2.6触发器trigger特殊的存储过程,它的执行只由事件触发,如对一个数据库表进行插入、删除、更新操作(insert,delete,update)时激活它执行。2.7时间戳timestamp指明时间上相对于通用时标、精确到秒级的某一时间点的数据项。3数据库访问接口框架在环境信息系统数据管理中,数据库访问接口用于获取同域内的各个业务应用的数据库内容。对各个业务系统提供的数据库访问接口统一规定,便于其他业务应用系统出于数据传输或数据集成的目的进行数据库访问。环境信息系统数据库访问接口框架见图1。2图1环境信息系统数据库访问接口框架环境信息系统数据库访问者通过数据库访问接口访问不同的环境信息系统数据库。数据库访问者与嵌入在环境信息系统数据库中的数据库访问接口进行交互,获取环境业务应用数据库的内容。4数据库访问接口方式4.1数据库视图方式在实际业务中,对环境信息系统数据库进行访问,需定制数据与其访问需求有关的数据内容,同时须保证被访问的原始业务数据的安全性。数据库视图是从一个或几个基本表中根据用户需要而制作的虚拟表,能够为数据提供一定的逻辑独立性,其数据内容可以随着基表的更新而更新。同时,用户对视图不能随意更改和删除,可以保证数据的安全性。故对环境信息系统的数据库进行全库访问时,可采用数据库视图的访问接口方式。4.1.1接口方式描述根据访问者的访问需要,在环境信息系统数据库中分别创建数据库视图,并对视图赋予相应访问权限。4.1.2接口配置方式使用环境信息系统数据库标准的创建视图语句。4.1.3工作流程数据库视图工作方式见图2。3图2数据库视图工作方式a)将环境信息系统数据表的数据内容根据访问者需要,通过数据库视图创建命令创建相应的数据库视图;b)访问者根据需要访问数据库视图获取所需要的环境信息系统数据。4.2触发器方式4.2.1接口方式描述触发器方式是指在源数据库的业务应用数据表中添加触发器,监控数据表的新增、修改、删除操作。当操作成功时,触发相应的触发器将该记录的主键等信息插入到指定的访问接口中间表,然后数据库访问者从访问接口中间表中获得业务数据内容的变更情况,从而达到实时的数据库增量访问效果。4.2.2接口配置方式a)在被访问的环境信息系统数据库中建立一张访问接口中间表,用于存放相关触发器和临时交换记录。不同的环境信息系统临时交换记录都采用统一的中间表格式,具体包括:xT_Oth_Msgb)创建一个对访问接口中间表做操作的存储过程,用于执行相关的触发操作,具体包括:xP_QueueMsgc)针对要实时访问的数据表建立新增和修改、删除的触发器,用于触发操作,具体包括:xTR_AddTrigger_IxTR_UpdateTrigger_UxTR_DeleteTrigger_D由于触发器方式只是对业务应用数据表进行操作监控,且只对访问接口中间表进行操作,因此不会对被监控的业务应用数据表造成任何影响。4中间表的格式内容和存储过程参见附录A、附录B。4.2.3工作流程环境信息系统数据库的实时访问是指当业务应用数据内容发生变化(包括新增、更新、删除等操作)时,实时地触发数据库访问者,对业务应用数据库内容进行访问,实时获取业务数据的变化情况。环境信息系统数据库的实时访问采用触发器方式的数据库访问接口,具体流程见图3。图3数据库触发器访问流程a)信息系统数据表的内容在执行相关操作的时候,通过触发器将受影响的记录直接推送到数据库访问接口的中间表中。如果受影响记录的字段数未超过中间表的字段数,则将受影响记录的所有信息推送;b)数据库访问者从访问接口中间表中获得业务数据内容的变更情况;c)当受影响的记录字段数超过中间表的字段数时,仅将受影响记录的主键等唯一标识信息推送到中间表。数据库访问者也可以根据中间表中的数据内容,直接访问业务应用数据表,获得业务应用数据内容。4.3时间戳方式4.3.1接口方式描述时间戳方式是指在数据表中配置时间字段,定时轮询数据库是否发生新增或更新的操作,以达到数据增量同步的作用。采用时间戳方式的数据库访问者将上次执行的时间与当前数据表中的时间字段进行比较,甄别在上一时间周期内发生了新增或更新操作的数据库记录,从而达到访问数据的目的。4.3.2接口配置方式a)在被访问的环境信息系统数据表中,创建用于比较的时间戳字段:Create_Time、Update_Time;b)每个被访问的环境信息系统数据表都必须有两个用于轮询的时间字段作为时间戳。一个用于记录创建时间,另一个用于记录修改时间:Create_Time、Update_Time。5时间戳字段的数据类型为业务应用数据库的时间类型,格式必须为:年月日时分秒(例如:2009-8-2012:00:00)。每次查询数据表时,对表中所有的数据按时间进行遍历查询,取出最新的记录。这样,如果源数据库中数据过多,进行定时轮询时就会对交换的性能造成影响。填入时间戳的方式有多种,如通过数据库结构化查询语句(StructureQueryLanguage)填入值、触发器方式自动填入值等。建议采取建立触发器方式,自动获取当前操作时间并填入到对应的字段中。时间戳触发器编写方式参见附录C、附录D。4.3.3工作流程环境信息系统数据库的定时访问是指数据库访问者按照预定的时间周期,定时访问环境信息系统数据库,并根据系统数据表的时间戳,获取上一时间周期里的环境信息系统数据库所发生的变化内容(包括新增、更新、删除等操作)。环境信息系统数据库的定时访问通常采用时间戳方式的数据库访问接口。具体流程见图4。图4数据库时间戳定时访问流程a)业务应用数据表在新增、更新的同时,更新时间戳字段的内容;b)数据库访问者定时访问业务应用数据表,根据时间戳字段所记录的新增和更新时间戳,获取上个时间周期里的业务应用数据库的变化内容。4.4应用服务接口方式专用于应用层面数据库访问,建议采用在线应用服务(webservice)接口方式。4.4.1接口方式描述通过在线应用服务接口对环境信息数据库中数据进行访问,从而获取所需要的信息。4.4.2接口配置方式被访问的环境信息系统根据访问者需要,专门开发一套只用于当前环境信息系统访问的在线应用服务软件。6开发的应用服务软件安装在访问者可访问到的运行环境中。4.4.3工作流程应用服务接口方式见图5。图5应用服务接口工作方式a)访问者在访问环境信息系统数据库中数据时,调用在线应用服务接口;b)应用服务接口根据应用者要求,访问信息系统数据,并将访问结果反馈给访问者。5环境信息系统数据库访问接口推荐访问方式环境信息系统数据库访问按照访问的环境信息数据内容可分为全部数据访问和增量数据访问。全部环境信息数据访问建议采用数据库视图的接口方式,增量环境信息数据访问建议采用触发器和时间戳的接口方式。数据库访问方式参见附录E。在应用层面数据库访问方式中,建议采用应用服务接口方式。不同的环境信息系统采取不同的数据库体系,本规范针对部分主要环境信息系统关系型数据库访问方式进行说明。具体推荐方案见表1。表1环境信息系统推荐数据库访问方式序号类型环境信息系统推荐访问方式实时数据触发器河流水质自动监测历史数据时间戳实时数据触发器空气质量自动监测历史数据时间戳实时数据触发器饮用水源自动监测历史数据时间戳实时数据触发器污染源在线监控历史数据时间戳实时数据触发器机动车尾气自动检测历史数据时间戳实时数据触发器辐射环境监控历史数据时间戳实时数据触发器1自动监控类危险废弃物在线监控历史数据时间戳7其他建设项目管理应用服务接口排污许可证管理时间戳排污收费管理时间戳环保移动执法管理时间戳环境信访投诉管理应用服务接口行政处罚管理应用服务接口公文文件管理触发器2业务管理类其他环境统计数据库视图全国城市环境综合整治定量考核数据库视图污染源普查数据库视图3统计考核类其他6数据库访问条件对某一数据库进行访问时,在网络连通的情况下,需具备以下条件:a)获取数据库管理系统(DBMS)类型;b)获取被访问的数据库所在服务器的网络地址;c)获取被访问的数据库的实例名;d)获取数据库的用户名及口令。8附录A(资料性附录)触发器方式数据库接口的SQL脚本(MicrosoftSQLServer)A.1触发器方式数据库接口的中间表创建脚本CREATETABLE[dbo].[T_Oth_Msg]([PK_MsgId][numeric](28,0)ID