论文部分内容阅读
摘要:传统DSS基于业务系统数据库从而缺乏统一、充足的数据源支持,这严重影响了DSS的发展。数据仓库的出现解决了DSS应用的一大难题。该文以江西省社会保险DSS为应用实例,给出了社保数据仓库的具体设计与实现过程。
关键词:数据仓库;决策支持系统;社会保险
中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)23-869-03
Design and Implementation of Data Warehouse in Social Insurance DSS
PENG Qiao-zhen, DENG Lin-sheng
(School of Computing, Nanchang Hangkong University, Nanchang 330063, China)
Abstract: Traditional DSS is based on MIS database which is lacked of uniform and sufficient data, so the development of DSS was put off. The appearance ofdata warehouse technology resolve the difficult problem of DSS. This paper, using the project of Social Insurance DSS as the application instance, shows the design and implementation procedure of Social Insurance DW.
Key words: data warehouse; DSS; social insurance
1 引言
决策支持系统(Decision Support System,DSS)自70年代提出以来,已在很多领域得到了应用。DSS旨在通过人机交互方式解决决策过程中的半结构化和非结构化问题,帮助决策者提高决策水平和实现决策的科学化。
传统DSS由数据库、模型库、方法库和人机交互系统组成,构建于数据库系统基础之上。随着数据量的迅速增长和用户查询要求的复杂化,数据库技术越来越难以满足决策支持的要求。这是因为传统的数据库主要用于事务处理,只能对原始数据进行一般的加工和汇总,不能提供大量集成的、历史的和综合的数据。数据仓库(Data Warehouse,DW)概念的提出及其发展为决策支持系统提供了适当的数据组织形式,解决了DSS的一大难题,基于数据仓库的DSS体系结构如图1所示。
2 数据仓库
2.1 数据仓库的定义[1]
1992年,数据仓库之父Inmon W H 在《建立数据仓库》(Building the Data Warehouse)一书中首先给出了数据仓库的定义:数据仓库是一个面向主题的、集成的、不可更新的、随时间变化的用来支持管理人员决策的数据集合。
这个定义概括了数据仓库最主要的四个特征:数据仓库的数据是面向主题的、集成的、不可更新的、随时间变化的。这四个特征能很好地满足DSS对数据的要求,可以把数据以方便查询的方式组织到数据仓库之中,从而为决策者提供有效的信息支持。
2.2 数据仓库的设计
创建数据仓库时,首先需要对原业务系统进行分析,根据需求确定主题,然后根据主题设计数据仓库。目前,在设计数据仓库时较常用的有下面两种模型:星型模型和雪花模型。
1)星型模型:如图2所示,星型模型的结构由一点向外辐射,中间有一个单一对象沿半径向外连接到多个对象。星型模型中心的对象称为“事实表”,事实表包含了基本的和汇总的业务事实,描述了主题的数据;与事实表相连的对象称为“维表”,维表分布在事实表的外围,从不同的角度描述了业务的各个维度。
2)雪花模型:如图3所示,雪花模型是对星型模型的扩展。在此模型中,维表分解成与事实表直接关联的主维表和与主维表关联的次维表,次维表与事实表间接关联。
3 数据仓库在社保DSS中的应用
3.1 社保数据仓库的设计[2,3]
社保包括养老、医疗、工伤、生育、失业五种保险,其中以养老保险的覆盖面最大,对社会和国民经济的影响力也最大。所以,本文以养老保险为例给出社保数据仓库的设计。
通过对养老保险业务系统的分析,可以看出养老保险最为核心的业务就是每个月的基金征收和养老金发放。而且,社保机构各级决策层领导最为关心的问题也是养老保险基金收支情况,对于该情况的准确了解和预测将有助于他们制定出相应的政策以使个人、集体和国家利益能够达到平衡。因此,在创建社会保险DSS的数据仓库时,我们首先确定了以下两个主题:基金征收(收)和养老金发放(支)。
如图4所示,对于基金征收主题,我们采用了星型模型。考虑到在职职工调动比较频繁并且在调动的那个月可能出现两个单位同时缴费的情况,在事实表中我们采用了时间ID、单位ID、在职职工ID三个字段作为主键,同时这三个字段分别参照相应的维表成为外键。
如图5所示,对于养老金发放主题,我们采用了雪花模型。考虑到职工一旦退休后,该职工的所属单位便不再变化,在事实表中我们只采用了时间ID、退休职工ID二个字段做为主键,同时这二个字段分别参照相应的维表成为外键。通过在退休职工维表中加入退休单位ID字段来标明职工退休时所属的单位,该字段参照单位维表成为外键。
从图4和图5中我们可以看出,在职职工维表和退休职工维表是相应主题的私有维表,而时间维表,单位维表是两个主题共用的公共维表。需要注意的是:单位维表在基金征收主题中是主维表;养老金发放主题采用的是雪花模型,单位维表在该主题中是次维表。
3.2 社保数据仓库的实现[4]
完成了数据仓库的设计,下一步就是DW的具体实现。Oracle作为一种大型关系数据库在OLTP中得到了广泛应用。因为社保业务的数据量较大,而且数据需要保留的时间较长,社保业务系统采用了Oracle作为后台数据库。经过多年的实际使用,Oracle数据库的高效、稳定以及安全性得到了各级社保机构的肯定。在开发社保DSS时,考虑到对原业务系统的继承性以及Oracle产品的优越性,我们选用了Oracle数据仓库平台来创建数据仓库。
下面给出了最典型的基金征收事实表C_INCOME的创建脚本,其它表的创建类似。
CREATETABLEC_INCOME
(TIME_IDNUMBER(6),
ENTERPRISE_IDNUMBER(9),
ZZZG_IDNUMBER(9),
JFJSNUMBER(8,2),
QYJJENUMBER(8,2),
GRJJENUMBER(8,2),
HRGRZHJENUMBER(8,2),
CONSTRAINTC_INCOME_PKPRIMARYKEY(TIME_ID, ENTERPRISE_ID, ZZZG_ID),
CONSTRAINTC_INCOME_TIME_FKFOREIGNKEY(TIME_ID)
REFERENCESD_TIME (TIME_ID),
CONSTRAINTC_INCOME_ ENTERPRISE _FKFOREIGNKEY(ENTERPRISE_ID)
REFERENCESD_ ENTERPRISE (ENTERPRISE_ID),
CONSTRAINTC_INCOME_ ZZZG _FKFOREIGNKEY(ZZZG _ID)
REFERENCESD_ZZZG(ZZZG _ID)
);
4 结束语
社会保险是国家长治久安的大计,它关系到每个职工的生、老、病、死。数据库系统作为MIS的基础在社保领域得到了广泛应用,然而数据仓库作为DSS的基础在社保领域的应用还处在初级阶段。本文将数据仓库引入社保领域,希望进一步推动社保DSS的发展。
参考文献:
[1] (美)Inmon W H,著,王志海,林友芳,译.数据仓库[M].北京:机械工业出版社,2003.
[2] 黄琨,高位肖,王嘉祯,等.基于数据仓库的政务决策系统[J].河北科技大学学报,2005,26(1):64-66.
[3] 王文香,左春,张正.保险业决策支持系统的数据仓库的设计与实现[J].计算机系统应用,2006(7):9-12.
[4] 飞思科技产品研发中心.Oracle 9i数据仓库构建技术[M].北京:电子工业出版社,2003.
关键词:数据仓库;决策支持系统;社会保险
中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)23-869-03
Design and Implementation of Data Warehouse in Social Insurance DSS
PENG Qiao-zhen, DENG Lin-sheng
(School of Computing, Nanchang Hangkong University, Nanchang 330063, China)
Abstract: Traditional DSS is based on MIS database which is lacked of uniform and sufficient data, so the development of DSS was put off. The appearance ofdata warehouse technology resolve the difficult problem of DSS. This paper, using the project of Social Insurance DSS as the application instance, shows the design and implementation procedure of Social Insurance DW.
Key words: data warehouse; DSS; social insurance
1 引言
决策支持系统(Decision Support System,DSS)自70年代提出以来,已在很多领域得到了应用。DSS旨在通过人机交互方式解决决策过程中的半结构化和非结构化问题,帮助决策者提高决策水平和实现决策的科学化。
传统DSS由数据库、模型库、方法库和人机交互系统组成,构建于数据库系统基础之上。随着数据量的迅速增长和用户查询要求的复杂化,数据库技术越来越难以满足决策支持的要求。这是因为传统的数据库主要用于事务处理,只能对原始数据进行一般的加工和汇总,不能提供大量集成的、历史的和综合的数据。数据仓库(Data Warehouse,DW)概念的提出及其发展为决策支持系统提供了适当的数据组织形式,解决了DSS的一大难题,基于数据仓库的DSS体系结构如图1所示。
2 数据仓库
2.1 数据仓库的定义[1]
1992年,数据仓库之父Inmon W H 在《建立数据仓库》(Building the Data Warehouse)一书中首先给出了数据仓库的定义:数据仓库是一个面向主题的、集成的、不可更新的、随时间变化的用来支持管理人员决策的数据集合。
这个定义概括了数据仓库最主要的四个特征:数据仓库的数据是面向主题的、集成的、不可更新的、随时间变化的。这四个特征能很好地满足DSS对数据的要求,可以把数据以方便查询的方式组织到数据仓库之中,从而为决策者提供有效的信息支持。
2.2 数据仓库的设计
创建数据仓库时,首先需要对原业务系统进行分析,根据需求确定主题,然后根据主题设计数据仓库。目前,在设计数据仓库时较常用的有下面两种模型:星型模型和雪花模型。
1)星型模型:如图2所示,星型模型的结构由一点向外辐射,中间有一个单一对象沿半径向外连接到多个对象。星型模型中心的对象称为“事实表”,事实表包含了基本的和汇总的业务事实,描述了主题的数据;与事实表相连的对象称为“维表”,维表分布在事实表的外围,从不同的角度描述了业务的各个维度。
2)雪花模型:如图3所示,雪花模型是对星型模型的扩展。在此模型中,维表分解成与事实表直接关联的主维表和与主维表关联的次维表,次维表与事实表间接关联。
3 数据仓库在社保DSS中的应用
3.1 社保数据仓库的设计[2,3]
社保包括养老、医疗、工伤、生育、失业五种保险,其中以养老保险的覆盖面最大,对社会和国民经济的影响力也最大。所以,本文以养老保险为例给出社保数据仓库的设计。
通过对养老保险业务系统的分析,可以看出养老保险最为核心的业务就是每个月的基金征收和养老金发放。而且,社保机构各级决策层领导最为关心的问题也是养老保险基金收支情况,对于该情况的准确了解和预测将有助于他们制定出相应的政策以使个人、集体和国家利益能够达到平衡。因此,在创建社会保险DSS的数据仓库时,我们首先确定了以下两个主题:基金征收(收)和养老金发放(支)。
如图4所示,对于基金征收主题,我们采用了星型模型。考虑到在职职工调动比较频繁并且在调动的那个月可能出现两个单位同时缴费的情况,在事实表中我们采用了时间ID、单位ID、在职职工ID三个字段作为主键,同时这三个字段分别参照相应的维表成为外键。
如图5所示,对于养老金发放主题,我们采用了雪花模型。考虑到职工一旦退休后,该职工的所属单位便不再变化,在事实表中我们只采用了时间ID、退休职工ID二个字段做为主键,同时这二个字段分别参照相应的维表成为外键。通过在退休职工维表中加入退休单位ID字段来标明职工退休时所属的单位,该字段参照单位维表成为外键。
从图4和图5中我们可以看出,在职职工维表和退休职工维表是相应主题的私有维表,而时间维表,单位维表是两个主题共用的公共维表。需要注意的是:单位维表在基金征收主题中是主维表;养老金发放主题采用的是雪花模型,单位维表在该主题中是次维表。
3.2 社保数据仓库的实现[4]
完成了数据仓库的设计,下一步就是DW的具体实现。Oracle作为一种大型关系数据库在OLTP中得到了广泛应用。因为社保业务的数据量较大,而且数据需要保留的时间较长,社保业务系统采用了Oracle作为后台数据库。经过多年的实际使用,Oracle数据库的高效、稳定以及安全性得到了各级社保机构的肯定。在开发社保DSS时,考虑到对原业务系统的继承性以及Oracle产品的优越性,我们选用了Oracle数据仓库平台来创建数据仓库。
下面给出了最典型的基金征收事实表C_INCOME的创建脚本,其它表的创建类似。
CREATETABLEC_INCOME
(TIME_IDNUMBER(6),
ENTERPRISE_IDNUMBER(9),
ZZZG_IDNUMBER(9),
JFJSNUMBER(8,2),
QYJJENUMBER(8,2),
GRJJENUMBER(8,2),
HRGRZHJENUMBER(8,2),
CONSTRAINTC_INCOME_PKPRIMARYKEY(TIME_ID, ENTERPRISE_ID, ZZZG_ID),
CONSTRAINTC_INCOME_TIME_FKFOREIGNKEY(TIME_ID)
REFERENCESD_TIME (TIME_ID),
CONSTRAINTC_INCOME_ ENTERPRISE _FKFOREIGNKEY(ENTERPRISE_ID)
REFERENCESD_ ENTERPRISE (ENTERPRISE_ID),
CONSTRAINTC_INCOME_ ZZZG _FKFOREIGNKEY(ZZZG _ID)
REFERENCESD_ZZZG(ZZZG _ID)
);
4 结束语
社会保险是国家长治久安的大计,它关系到每个职工的生、老、病、死。数据库系统作为MIS的基础在社保领域得到了广泛应用,然而数据仓库作为DSS的基础在社保领域的应用还处在初级阶段。本文将数据仓库引入社保领域,希望进一步推动社保DSS的发展。
参考文献:
[1] (美)Inmon W H,著,王志海,林友芳,译.数据仓库[M].北京:机械工业出版社,2003.
[2] 黄琨,高位肖,王嘉祯,等.基于数据仓库的政务决策系统[J].河北科技大学学报,2005,26(1):64-66.
[3] 王文香,左春,张正.保险业决策支持系统的数据仓库的设计与实现[J].计算机系统应用,2006(7):9-12.
[4] 飞思科技产品研发中心.Oracle 9i数据仓库构建技术[M].北京:电子工业出版社,2003.