数据审计

浅谈SQL Server采集XML格式标准数据的图形化方法

浏览:

数据转换问题一直是审计人员利用计算机开展审计工作的一个瓶颈,其主要难点在于数据的获取、识别、采集和转换,而有效使用标准接口数据是一个相对简便、具有可操作性的方法。由于符合标准接口的数据以XML格式导出保存,可以直接拷贝获取,且该文件类型为绝大多数数据库管理系统及应用软件所支持;同时,标准接口数据中既包含数据,也包含数据结构信息。因此,在审计实践中,有效应用SQL Server采集XML格式标准数据的图形化方法,是做好数据转换的一种有效选择。
一、背景介绍(一)会计核算软件数据接口国家标准简介。《国务院办公厅关于利用计算机信息系统开展审计工作有关问题的通知》(国办发〔2001〕88号)对被审计单位的数据接口提出了要求:“被审计单位的计算机信息系统应当具备符合国家标准或者行业标准的数据接口;已投入使用的计算机信息系统没有设置符合标准的数据接口的,被审计单位应将审计机关要求的数据转换成能够读取的格式输出”。
2005年1月1日,审计署联合财政部等单位编制的《信息技术会计核算软件数据接口》(GB/T 19581—2004)国家标准(下文简称数据接口标准)经国家质量监督检验检疫总局和国家标准化管理委员会批准正式实施。目前,用友、金算盘、金碟、SAP、浪潮等19个国内外知名软件公司设计的31种会计核算软件提供了符合标准的数据输出接口功能,并通过了国家标准产品认证,市场应用率达90%。审计现场实施系统(AO2011)也提供了标准数据的采集功能,并凭借其自主创新性和广泛应用性,该系统标准获得了2008年度国家标准创新二等奖。
执行数据接口标准的企业(机关)分为四类:会计核算软件开发企业、会计核算软件使用企业、会计核算软件数据利用机构和相关软件开发企业。作为会计核算软件使用企业,随着业务和信息化水平的不断发展,在没有执行数据接口标准前,企业在不同年度可能购买使用不同厂商的会计核算软件,即便是同一厂商的会计核算软件也有可能存在不同版本采用不同的数据格式,导致各年度的业务数据格式不同,字段含义和长度均不匹配。这不仅使该企业的数据缺乏连续性和完整性,也给作为数据利用机构的审计机关开展数据采集和分析工作带来极大的不便,因为审计机关常需要花费大量的人力、物力、财力实现数据的格式转换。反之,在执行数据接口标准后,不同厂商之间、同一厂商不同版本的会计核算软件均可相互导入、导出格式通用的标准数据。数据接口标准的推广应用标志着不同会计核算软件接口的标准化时代到来,不仅有利于加快企业会计电算化和管理一体化的步伐和我国会计核算软件市场的健康发展,实现对来自不同财务管理系统的会计核算数据进行自动处理和加工利用,而且有利于审计、财政、税务、工商等相关监管部门提高信息化监管水平,特别是为审计通过采用审计软件进行数据采集和分析提供了良好基础。
(二)XML语言简介。XML是可标记扩展语言eXtensible Markup Language的缩写,被广泛用来作为跨平台之间交互数据的形式和数据存储的形式。XML具有严格的语法标准,大大提高了XML文件的可读性和可维护性。同时,XML实现了内容与形式的分离,能够描述信息本身的含义和它们之间的关系。它提供了一种描述结构数据的格式,简化了网络中的数据交换和表示,使得代码、数据和表示分离,并作为数据交换的标准格式。XML已成为国际标准化组织万维网联盟W3C推荐的第二代网页发布语言。
数据接口标准以XML作为规范的统一输出格式。因此,掌握XML格式标准数据的采集和转换方法,将成为审计人员分析和利用标准数据的前提和基础。
二、SQL Server采集XML格式标准数据的图形化方法SQL Server采集XML格式标准数据通常有BULK Insert、OpenXML等方法,但这些采集方法往往需要根据数据结构经过创建数据表、编写代码等过程,而SQL Server Business Intelligence Development Studio(下文简称SQL Server BIDS)工具提供了图形化的采集方法,直观、高效地为我们提供了XML格式标准数据采集的另一种选择。
本文将以《财经信息技术 会计核算软件数据接口 第4部分:商业银行》(GB/T 24589.4—2011)(以下简称商业银行标准)作为示例数据,以SQL Server 2008R2作为示例数据库,介绍如何利用SQL Server BIDS图形化工具对XML格式标准数据进行采集。
(一)SQL Server BIDS图形化工具简介。SQL Server BIDS是微软公司开发的图形化开发工具,作为SQL Server数据库软件的组件用于开发商业智能解决方案,包括 Analysis Services、Integration Services 和 Reporting Services 项目。每个项目类型都提供了用于创建商业智能解决方案所需对象的模板,并提供了用于处理这些对象的各种设计器、工具和向导。
SQL Server BIDS丰富的流程控制功能,能够让用户准确地实现数据导入过程中的各种数据转换和过滤工作。由于SQL Server BIDS提供了直观、友好的操作界面,用户只需要进行简单的鼠标拖拽和配置,便可以轻松、快速地完成XML数据文件的导入。同时,SQL Server BIDS创建的SSIS(SQL Server Integration Services)包可以在SQL Server Agent或Windows计划任务中调用,完成自动导入过程。
(二)接口标准XML Schema的简化和合并。在商业银行标准中,共定义了12个Schema 文件:标准数据元素类型.XSD,公共基础档案.XSD,公共变动档案.XSD,个人信贷.XSD,对公信贷.XSD,个人信贷核心会计.XSD,对公信贷核心会计.XSD,个人存款核心会计.XSD,对公存款核心会计.XSD,内部分户账核心会计.XSD,表外分户账核心会计.XSD和总账.XSD。
标准数据元素类型.XSD定义了接口标准的XML元素的元素类型,如“银行机构编号类型”和“银行机构名称类型”等。公共基础档案.XSD,公共变动档案.XSD等Schema文件分别定义了各自主题的数据元素的输出结构。图1是公共基础档案.XSD的Schema视图。


图1为公共基础档案.XSD的Schema视图。
公共基础档案.XSD引用了标准数据元素类型.XSD,并定义了公共基础档案中的元素,如“银行机构编号”和“银行机构名称”等。“银行机构编号”的类型是“银行机构编号类型”,“银行机构名称”的类型是“银行机构名称类型”。这些元素类型都是统一在标准数据元素类型.XSD中定义的。其他Schema类似。
简化合并前提是原则上只简化公共基础档案等11个主题Schema,即公共基础档案.XSD,公共变动档案.XSD,个人信贷.XSD,对公信贷.XSD,个人信贷核心会计.XSD,对公信贷核心会计.XSD,个人存款核心会计.XSD,对公存款核心会计.XSD,内部分户账核心会计.XSD,表外分户账核心会计.XSD和总账.XSD,而对已输出的主题数据文件的数据内容不作修改,仅修改对应的Schema命名空间,即确保数据文件公共基础档案.XML等XML格式标准数据文件的真实性。
具体做法是把标准数据元素类型.XSD对数据元素类型的定义直接放入到各个主题的Schema文件中。
完成对公共基础档案.XSD等Schema文件的简化合并,就可以把这些Schema定义文件顺利导入到SQL Server工程项目中。


图2为简化合并后的公共基础档案.XSD的Schema视图。
从某种程度来讲,对Schema文件的简化和合并是对Schema中各元素的分层定义,再将表结构中的字段名类型定义,从标准数据元素类型.XSD文件中引入进来。如果没有对应的Schema文件,也可仿造上面的形式,手工编写一份对应想要导入的XML文件的Schema文件,并将XML文件指向无命名空间的Schema.XSD文件。自定义的Schema文件无需包含全部标准架构,仅包含需导入关系表对应字段和结构即可。如下面的“公共基础档案XML实例.XML”文件就指向了无命名空间的Schema文件“公共基础档案.XSD”:

<?xml version="1.0" encoding="UTF-8"?>

<公共基础信息 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="D:DocumentsDesktop商业银行宣贯教材公共基础档案.xsd">

<基本信息>

<商业银行机构档案>

<商业银行机构>

<银行机构编号>BKCHCNBJ001</银行机构编号>

<银行机构名称>xx银行xxx分行xxxx支行</银行机构名称>

<上级银行机构编号/>

<支付系统行号>104000101153</支付系统行号>

<电子联行行号>888967</电子联行行号>

<级别>支行</级别>

</商业银行机构>

<商业银行机构>

<银行机构编号>BKCHCNBJ110</银行机构编号>

<银行机构名称>xx银行xxx分行xxxx支行xx1营业网点</银行机构名称>

<上级银行机构编号>BKCHCNBJ001</上级银行机构编号>

<支付系统行号>104000101101</支付系统行号>

<电子联行行号>888999</电子联行行号>

<级别>网点</级别>

</商业银行机构>

<商业银行机构>

<银行机构编号>BKCHCNBJ111</银行机构编号>

<银行机构名称>xx银行xxx分行xxxx支行xx2营业网点</银行机构名称>

<上级银行机构编号>BKCHCNBJ001</上级银行机构编号>

<支付系统行号>888999232111</支付系统行号>

<电子联行行号>104000</电子联行行号>

<级别>网点</级别>

</商业银行机构>

</商业银行机构档案>

</基本信息>

</公共基础信息>

如果能做这样一个比喻,对于理解上面的内容会有帮助:XML文件是一张或多张关系数据表,Schema文件是它的结构和字段定义。
XSD文件的精简和合并需要耗费一定的时间和精力,但标准数据的XSD文件修改后的可重复利用性使得这样的修改似乎具有“一劳永逸”的特征。
(三)SQL Server BIDS工程设计。基于上文对“公共基础档案.XSD”文件的修改,下文以“公共基础档案XML实例.XML”文件作为实例XML数据源,将该实例中的“商业银行机构”这张数据表利用SQL Server BIDS导入SQL Server关系数据库中,该表中有三条数据记录,每条数据记录包含银行机构编号、银行机构名称、上级银行机构编号、支付系统行号、电子联行行号、级别等字段。
1.将“公共基础档案XML实例.XML”和精简合并后的“公共基础档案.XSD”两个文件放在同一个文件夹中。打开SQL Server BIDS,点击“文件”,“新建”,“项目”,新建一个项目类型为“商业智能项目”,使用“Integration Services 项目”模板,修改项目名称为“XMLload”。
2.将左侧工具箱中“数据流任务”拖入中间“控制流”标签页进行编辑,修改名称为“XML load”。
3.双击打开“XML load”,标签页切换到“数据流”。将左侧数据流源中“XML源”拖入中间“数据流”标签页,修改名称为“XML load 源”。
4.双击对“XML load 源”进行编辑。在“XML文件位置”数据访问模式下,浏览找到要导入的XML和对应的XSD文件。
5.点击左侧的“列”,查看XML导入源数据,将输出名称选为“商业银行机构”,取消“商业银行机构档案_Id”的勾选。确定,XML源数据设置完成。
6.将左侧数据流目标中“SQL Server 目标”拖入标签页,将“XML load 源”绿色的箭头连接到“SQL Server 目标”上。
7.在弹出的对话框中,将输出选择“商业银行机构”。
8.双击“SQL Server 目标”。对目标数据库和目标表进行配置。
9.在连接管理器中选择现有数据库或新建“商业银行机构”将要导入的目标数据库。
10.选择现有表格或新建“商业银行机构”将要导入的目标表。点击新建,可自定目标表名,这里使用“商业银行机构表”。
11.点击映射,查看源表和目标表映射关系。
12.配置完成后,进行调试,如果成功,则“XML load 源”和“SQL Server 目标”均为绿色,在连接上标示导入的数据量。本实例中导入3行数据,
至此,公共基础档案XML实例.XML中的“商业银行机构”表已经导入到SQL Server数据库中,可到相应数据库中对导入表进行查询和修改等操作。
三、SQL Server采集XML格式标准数据的“间接图形化”方法所谓“间接图形化”的说法只是为了区别SQL Server BIDS的图形化采集方法,实际上是利用其他数据库工具的图形化导入方法进行数据采集之后,再将数据导入SQL Server中的一种“间接”采集方法。
由于Access提供对XML语言的支持,并且操作简便,因此,可先将XML格式标准数据导入Access中,再利用SQL Server的导入导出工具或ODBC导入到SQL Server中,但所采集的XML格式标准数据受到Access自身不超过2G的容量限制。同样,在数据量较小的情况下,可以类似地使用Excel作为导入“间接”工具,但Excel不适合结构复杂的XML格式标准数据。
随着XML格式的标准数据接口被广泛应用,越来越多的行业、企业应用XML格式进行数据存储和交互,因此,灵活运用适当的采集方法进行XML格式标准数据的采集将成为审计数据分析工作的重要基础和前提。(王超)