审计数据转换系统的设计与研究
「内容摘要」本文从计算机审计中审计数据转换的必要性入手,给出了审计数据转换涉及的相关操作,结合这些操作设计出审计数据转换系统,并对审计数据转换日志进行了深入探讨。
1、引言
审计数据转换是计算机审计中非常重要的一环。以下两个方面决定了在计算机审计过程中必须进行审计数据转换。
(1)提高数据质量
审计数据来源众多,这些来源于不同被审计单位的数据中可能存在方方面面的质量问题,具体表现为数据不清洁、不完整,甚至有些数据可能是不真实的、错误的。数据质量问题必然会影响数据分析的结果。例如,对错误的数据进行分析将得不到正确的结果。为了有效开展审计,必须最大程度地消除这些数据质量问题。
(2)形成集成的数据
一方面,被审计单位的数据组织通常是面向业务处理的,不是面向分析的。而审计工作要求根据审计目标和分析主题来组织数据,这就需要将不同的数据经过整理和转换后集成到一起,形成审计分析用的统一数据集合。这个集合通常称为审计中间表。也就是说,审计分析必须建立在一个数据清洁、结构良好的审计中间表的基础上。另一方面,审计所需的数据并不单单局限于某个系统或某家被审计单位。利用不同系统间的数据以及外部数据进行关联分析已经成为一种有效的手段,它可以有效克服信息不全面带来的审计风险。例如财务数据和业务数据之间的对比分析,利用商业银行的存贷款数据、人民银行的统一授信数据、税务部门的纳税申报数据和金税工程数据、工商部门的企业登记数据、社保部门的社会保险数据、技术监督局的企业编码数据、海关部门的进出口数据及退税数据、电力公司的电费数据、自来水公司的水费数据进行企业行为的综合分析,等等。从多个数据源中抽取数据进行集成,必须消除数据的不一致性和冲突。这些都对数据转换提出了很高的要求。
2、相关概念
2.1 审计中间表
数据转换过程中经常使用审计中间表。审计中间表是指将清理、转换后的数据按照提高审计分析效率、实现审计目标的要求进一步选择、整合而形成的数据集合。它有两个特点:一是面向分析主题。审计中间表的构建总是针对具体的审计项目进行的。同样的数据库,如果审计目的不同,构建的中间表也不相同。在构建的过程中,审计人员应该依据审计方案既定的审计目标进行数据的选择、整合,构建出面向主题、满足审计目标的数据集合。二是相对稳定。审计中间表是在具体的审计项目实施过程中所形成的,是对采集到的被审计单位数据进行清理、转换,并进一步根据审计目标选择、整合而形成的数据集合。由于这些集合具有比较固定的结构,并且保存的是被审计单位的历史数据,一般不进行更新,所以审计中间表是相对稳定的。
2.2 审计元数据
所谓审计元数据,指的是描述审计中间表内部数据的结构和建立方法的数据。在审计数据的采集和转换系统中,元数据可以帮助审计人员非常方便地找到他们所关心的数据。它有两方面用途。首先,审计元数据能提供审计人员所需的,基于计算机审计的各种信息,如被审计单位数据项的业务描述信息和审计中间表的结构与关系信息等,从而帮助计算机审计人员有效使用各种与审计任务相关的数据。其次,审计元数据能支持系统对审计数据的管理和维护,如关于审计中间表数据项存储方法的元数据能支持系统以最有效的方式访问数据。
3、审计数据转换系统中涉及的相关操作
审计数据转换系统的功能是否强大,在很大程度上取决于转换规则集是否健全。通过分析被审计单位数据和审计项目的具体需求,我们发现几乎所有被审计单位数据都是采用关系数据库来存放的,审计中间表的设计与存储也是建立在关系数据库基础之上的,因此我们制定的审计数据转换规则都是针对关系数据库来定义的。同时,我们的转换规则集设计采用开放的方式进行管理,也就是说审计人员可以根据自己的需求添加转换算法。如果审计人员需要复杂的审计数据转换,可以通过一系列的转换操作组合来达到目的,这个转换组合就是一个转换活动。
3.1 数据的合法性检查
审计中间表中的数据来自于被审计单位的多种数据源,这些数据源可能是在不同的硬件平台上,使用不同的操作系统,因而数据往往以不同的格式存在不同的数据库中。所以,在审计数据转换的过程中,有时需要对被审计单位的数据进行合法性检查,将那些语义相同但格式不同的数据转换成统一的格式,以便更加适用于审计中间表的设计,这也就是数据的格式化的过程(如对不一致的摘要进行处理的问题)。
3.2 数据清理
数据清理主要涉及到数据的匹配与合并。通过匹配,发现重复的对象;通过合并,保留或生成一个完整的对象。数据清理活动的核心是近似重复对象的识别。所谓近似重复对象是指表现形式不同但语义上相同的对象。从狭义的角度来看,如果两条记录在某些字段上的值相等或足够相似,则认为这两条记录互为近似重复
数据清理包括以下几个步骤:
记录排序:选择一个或几个字段作为关键字进行排序;
识别重复记录;
合并重复记录:从相似记录集中获得记录的完整信息,并作为该记录的表示。
3.3 数据变换
常见的数据变换操作包括:简单变换,日期、时间格式的转换,由代码到名称的转换以及字段(值)拆分和字段(值)合并等。
简单变换:是指变换源数据库表中某些字段的类型、长度以及NU约束;
日期、时间格式的转换:是指将来自各个数据源的不同格式的日期和时间数据变换为目标数据库的规范格式;
字段值合并:是指将源数据库中的多个字段的值合并成一个字段的值;
字段值拆分:是指将源数据库中的一个字段值拆分成多个字段值。
3.4 丢失的数据处理
数据丢失是指某个或某些数据元没有值。解决数据丢失问题的方法有:
忽略该元组;
用一个全局常量填充空缺值;
用属性平均值或其他推导值来填充空缺值;
用相关的外部数据填充空缺值。
3.5 数据集成
数据集成是将被审计单位数据从一个或多个来源中取出,并逐字段地将数据映射到审计中间表的数据结构上。这种转换最大的困难在于将被审计单位数据集成为一个紧密结合的审计中间表数据模型。这是因为数据可能来源于多个数据源,这些数据来源往往遵守不同的业务规则,在生成审计中间表数据时,要建立它们之间的关系,消除它们之间的不一致性。数据的集成分为两个层面:字段层面的集成和关系表层面的集成。
4、审计数据转换系统组织结构
我们把从被审计单位数据到审计中间表数据之间所需要的各种操作均刻画为转换操作,因此在审计数据转换系统的设计过程中,可以把对被审计单位数据的转换操作定义为一系列的审计数据转换活动。
在审计数据的转换过程中,一个转换将源对象利用一种转换规则转换成一组目标对象。源对象和目标对象都是数据对象集合的元素。数据对象集中的元素能够是任何类型的数据元素,但是典型的是表、列或表示在内存中暂存对象的模型元素。数据对象集可以是不同转换活动的源和目标。具体来说,在同一个逻辑单元中,一个给定的数据对象集可以是一个转换的目标和一个或多个转换的源。通常,转换也可以产生一系列的临时数据。那些必须一起执行的转换被归类到相应的转换任务中。在执行时,转换步骤是用来协调转换任务之间执行情况的控制流。每个转换步骤执行单一的转换任务,这种转换任务既可以是从源对象利用一种转换规则转换成一组目标对象,又可以是源对象经过多种转换规则转换成一组目标对象。转换步骤可以进一步被归类成转换活动。在每个转换活动中,它的转换步骤的执行序列可以通过审计元数据定义。
5、审计数据转换日志
根据以往审计经验,在审计数据转换系统的设计和开发时需要考虑:对被审计单位数据库系统及相关业务的了解是否充分;审计中间表的设计是否合理,关注的焦点应该是被审计数据的业务内涵;被审计单位数据是否存在质量问题,质量问题是特殊性的,还是普遍性的;审计数据转换与审计元数据之间的关系;由于审计的特点,往往也需要看到被审计单位数据的原貌,因此审计数据转换日志问题也需特别关注。
审计数据转换日志有两种类型,一种是记载审计数据转换过程中产生的转换错误的日志,称之为转换错误日志;另一种是能反映审计数据在转换过程中变化情况的日志,称之为转换变化日志。
5.1 转换错误日志
在审计数据转换过程中,从被审计单位采集的数据可能来自异构的数据源,这些数据之间可能存在着不同层面的冲突。对这些冲突如果考虑不周就会导致审计数据转换错误的发生,从而影响审计中间表的数据质量,进而影响审计人员的数据分析。常见的冲突有:
(1)模式层的冲突
当审计中间表的实体及其联系在被审计单位数据库中被用不同的概念模式表示时,就必然产生模式层的冲突。
命名冲突
主键冲突
结构约束冲突
表达格式冲突
(2)实例层的冲突
将被审计单位的数据转换到审计中间表的过程中,转换错误的来源并不仅限于模式层冲突,还有各种各样的实例冲突:
数据缺失
不正确的数据
数据不一致
以上是审计数据转换时常见的一些冲突,也是设计审计数据转换系统时需要解决的主要问题。这些问题同时也是产生审计数据转换错误的源泉。转换错误日志不仅记载着这些在进行审计数据转换时由于种种冲突所产生的错误,而且还记载着审计数据转换过程中由于系统编程失误而产生的出错信息(比如某些表中的某些记录没有转换成功等),为审计人员最终能得到最准确可靠的数据提供一定的帮助。
5.2 转换变化日志
审计工作的对审计数据有着特殊的要求,不仅要求转换前后保持一致性,而且要求有一定的可追溯性。即当审计人员要进一步查阅数据的原始面貌时,能够保证通过审计中间表中的数据追溯到其被转换前的原始状况。这一工作就需要对审计数据转换过程及有关数据的变化情况进行记载,称为转换变化日志。
转换变化日志包含两个层面:
(1)面向审计数据转换流程步骤的转换流程日志
审计数据的转换过程就是审计数据通过不同的转换活动,最终形成审计中间表数据的过程。而转换活动又由许多不同的转换步骤组成,每个转换步骤又包含多个转换任务。转换流程日志记录的就是审计中间表中的不同数据都是被审计单位哪些数据都经过哪些转换任务、转换步骤以及转换活动而来的,这期间又运用了什么样的转换规则。它实际上是审计元数据中有关审计数据转换的结构描述的具体化,比较容易实现。
(2)面向审计数据变化情况的转换数据日志
审计数据变化主要记录着为避免在审计数据转换过程中由于被审计单位数据中存在的冲突而导致的审计数据转换错误而进行的对被审计单位数据的不同处理过程,比如对日期时间数据、缺失数据以及不正确或不规范数据的处理等。
被审计单位的数据量往往很大,如果对每个数据的变化都进行记载,转换数据日志量就会非常庞大,保存这么庞大的日志数据会增加审计人员的负担。通过分析,我们发现在进行审计数据转换的过程中,有些数据处理(比如日期时间型数据的处理、定义规范不一致的数据处理等)对审计人员的分析将不产生实质性的影响,这些数据通过转换流程日志就可以实现其可追溯性。所以对于这样的变化转换数据日志可以不记录。但其他的数据处理(比如缺失数据处理等)要实现其可追溯性就必须对其进行记载。转换数据日志的数据量取决于转换活动中是否包含这样的数据处理。
6、小结
本文的审计数据转换系统是审计署承接的国家863课题《计算机数据采集与处理技术》的一个子课题,它结合当前的计算机审计实践,根据审计数据转换的需要,提出了数据转换系统的实现技术,并对审计数据转换过程中应关注的审计日志进行了深入的探讨。