目前审计中遇到两类电子数据,一类是财务数据,另一类是业务数据。财务数据已经形成统一的审计格式,对审计所需数据表和字段都进行了规范,绝大多数被审单位的财务数据可以通过AO软件自带的电子数据采集模板直接转换成审计格式的数据。但是业务数据还没有形成统一的审计格式。这主要是由于各行业或单位的业务性质不同,对应的商业软件稀少,各单位的业务信息系统多是委托开发或自行开发,造成了即使在同一行业中也很少使用统一的软件。因此针对业务电子数据只能具体数据具体分析。 在审计实践中,多数被审计单位不能提供业务数据库设计文档,审计人员无法取得数据字典,在这种情况下审计人员只能自己分析业务数据,进而形成审计所需要的数据字典。笔者在多年的审计工作中,总结出了以下几种分析业务电子数据的方法,将这几种方法综合运用,可以在较短时间内确定被审单位业务数据的数据字典。 一、根据一般的设计思路估测数据表和字段 每个业务信息系统数据库的设计都建立在具体的业务需求之上,就同一个业务信息系统而言,其数据存储、处理的方案并不多,审计人员可以通过对被审单位业务内容和流程的了解,按照数据库设计的规范,首先初步设计一个被审单位的数据库方案,估测出数据库中会有哪些表及对应的字段。如我们在新型农村合作医疗管理信息系统审计中,通过对被审单位的了解,估测出该系统的数据库中应包括以下数据表:村镇表、参保户表、参保人员表、医疗机构表、住院费用明细、住院补偿表、门诊费用明细表、门诊补偿表等反映基本信息及交易情况的数据表。在医疗机构表中应包括:医疗机构代码、医疗机构名称、医疗机级别、隶属关系、地址等字段;参保户表中应包括:家庭编码、地区代码、镇村编码、小组编码、户主性别、户主姓名、人口数、参合性质、当前状态等字段。这样,审计人员就可以依据估测的表和字段在被审单位数据库中有目的的查找,进而确定实际使用的数据表和字段。 二、根据表中数据量的大小确定数据表的性质和作用 数据库设计时为了设计和使用的方便,通常将数据表分为以下几类:业务数据表、基本编码表、辅助编码表、系统信息表、累计数据表、结算数据表、决策数据表。各类表存储的数据内容不同,数据量的大小也会有所不同。业务数据表保存业务发生的明细记录,数据量相对较大;基本编码表用于描述业务实体的基本信息和编码,可以根据具体的业务估测数据量的大小范围;辅助编码表用于描述属性的列表值,如:职称、民族、人员性质等,一般数据量都不大。累计数据表、结算数据表、决策数据表存储当前值或一定时期的结存值,一般数据量也不大。审计人员可以利用这一特性来估测、确定数据表的性质和作用。 首先要确定数据库的数据量。确定数据量的方法有很多种,如果被审单位电子数据是SQL Server 2000格式的,数据量的大小可以利用sysobjects、sysindexes等系统表取得,T-sql语句如下: set nocount on if object_id(N'tempdb.db.#temp') is not null drop table #temp create table #temp (name sysname,count numeric(18)) insert into #temp select o.name,i.rows from sysobjects o,sysindexes i where o.id=i.id and o.Xtype='U' and i.indid<2 select count(count) 总表数,sum(count) 总记录数 from #temp select * from #temp order by count desc set nocount off 以上语句比较通用,需要的时候直接复制到SQL查询分析器中,选择要分析的数据库,点击运行即可。 例如我们通过对新型农村合作医疗管理信息系统的数据库进行分析,得到此系统中共有79张表,总记录数为38557580条,其中最大的表记录数为14520492条。依据对被审单位业务的了解,数据量在10000条记录以上的表,大部分应是业务数据表。根据我县的镇村数量、医疗机构数量、人口数量来分析,镇村、医疗机构等表的数据量一定在400—600条记录之间,参保户表、参保人员表的数据量大致分别为60--100万条记录和200多万条记录。数据量在100条记录以下的多数为辅助编码表。另外还有17张表记录数均为0,审计中不再关注。通过对数据量的分析,缩小了查找范围,可大大提高工作效率。 三、根据表名、字段名的规则性估测表和字段含义 一个设计规范的数据库,表名、字段名会按一定的规则命名,在使用的语言上有全部以英文命名、全部以拼音字母命名、英文+拼音字母命名等方法,在命名形式上有<功能标识>_<表标识>、<表标识>等形式。新中大公共财政管理软件后台数据库的表名、字段名绝大多数使用汉字的拼音缩写,命名形式上有<功能标识>_<表标识>、<表标识>两种形式。如FS_* 表明是与非税收入相关的表。新型农村合作医疗管理信息系统的数据库则采用英文字母命名,命名形式只有<表标识>这一种。如村镇表(VillageList),参保户表(MedicalCard),参保人员表(Memberlist),住院费用明细表(InpatientFee),住院补偿表(inpatientcompensation)。字段的命名与表的命名规则一样,以住院费用明细表(InpatientFee)为例,如下图示: 字段名 类型 长度 小数位数 允许空 含义 id int 10 0 费用ID CompensationID int 10 0 √ 补偿ID CenterItemID int 10 0 √ 中心项目代码 HospitalItemID int 10 0 √ 医院项目代码 FeeAmount money 19 4 √ 数量 FeeSum money 19 4 √ 费用总额 ThenCompensationMark int 10 0 √ 补偿标志(0) 审计人员通过表名、字段名的规则性就能很快确定数据表和字段的含义。 四、根据表中的数据内容确定表及字段含义 不同的表存储的内容不同,根据这一特性,在方法(二)确定表的大致范围后,逐一将要分析的表打开,观察表中的数据内容,确定该表的功能,进而分析各字段的含义。通常情况下,这一方法与方法(三)组合使用会收到事半功倍的效果。 五、观察信息系统录入界面和输出报表的信息确定字段含义 这一方法是最为简便准确的方法,同时也是容易被一些审计人员忽视的方法。软件输入界面中录入的信息一般都直接对应数据表相应的字段,同时,业务系统输出的报表项目也与数据表相应的字段有对应关系,因此这就为审计人员估测数据表及字段含义提供了方便。如从新型农村合作医疗办证界面及医疗证上,我们就很容易确定参保户表及参保人员表中一定包括以下重要字段:镇、村、组、户号、户性质、医疗证号、姓名、性别、出生日期、与户主关系、缴费日期、经办人,发证机关等,根据这些信息就很容易分析出数据字典。
|