创新性应用
――在银行的关键应用中使用国产数据库
众所周知,银行对于数据安全性和系统稳定性的要求无疑是最高的,在这种高标准的要求下,我们敢于尝试敢于创新,在为华夏银行开发的“华夏银行运行资金与资源管理系统”中使用了由北京大学开发的国产数据库。此系统集资金流、工作流、物流于一体,以资金流为主线、以工作流为驱动、以物流为产物,全面管理银行的预算资金、项目、公文、固定资产,系统采用大集中模式,B/S架构,使用国产数据库。
这也是国产数据库首次在金融领域的关键系统中应用,此项目是863课题,已于2005年11月验收通过,在验收会上得到专家的一致好评和肯定,也得到了
信息产业部领导的肯定和好评。目前系统运行稳定,效率较高,尤其对于数据的插入操作和删除操作。随着数据量的不断增加,访问次数的增加,系统表现出的健壮和稳定打消了所有人的顾虑,也让银行的系统管理人员接收了国产数据库。
由此,不能不说这是一次创新,是金融的创新,也是数据库的创新,是一次改变,改变了银行的关键应用中没有国产数据库的局面,更是一次开始,将从此打开这个局面,让国产数据库走进各行各业。
――XML导出
在开发数据仓库平台的过程中,经常会遇到异构数据的交换问题,比如需要接收EXCEL和XML格式的数据,也需要导出EXCEL和XML格式的数据,现有的数据库产品大都没有实现EXCEL格式和XML格式的转换,为此我们基于数据库在应用层开发了一块公用的程序,用于完成关系型数据库与EXCEL和XML的数据交换问题,当导出时我们读出表的结构信息,将SHEET名称设置为表名称,利用结构信息生成EXCEL的头部信息(列名称及列类型),再将数据从表中读出写入到EXCEL中。相反,当要导入时,从EXCEL的头信息中读取信息,生成数据库表,将数据插入到表中,完成与EXCEL数据交换。用同样的方法,我们实现了与XML的数据交换。
虽然没有从数据库底层解决此问题,而是从应用层解决了此问题,可以说是一种基于数据库的应用罢了,但这对于应用来说已足够了,可以说是从应用层弥补了数据库的空白(注:在要本文写作前IBM推出了DB29已提供了与XML的数据交换功能)。
这种解决方案得到了用户的一致好评,尤其是对于银行会计人员,他们对EXCEL非常熟练,且对表格比较敏感,习惯于看表格数据,因此能将数据库中的数据以EXCEL的形式提供,为他们提供了极大的方便。
――数据库中数据安全解决办法
大家都可能会想到或遇到这样的问题,就是说数据库管理员修改数据怎么办?,数据库管理员从数据库中查询用户的密码怎么办?,从数据库中手工删除或增加记录怎么办?,在某些安全级别要求特别高的系统中,我们不能完全依赖于数据库管理员的道德来解决这个问题,尤其是在巨大利益诱惑下。
基于上述几个问题,我们在建设安全认证中心时采用对数据进行加密、哈希、摘要的办法来解决,对于关键数据采用加密的办法,为了防止数据被修改,对整个记录进行哈希和摘要算法,对整个表进行分段哈希,然后再做摘要来防止对记录个数的改变,通过这些办法我们解决了数据安全的问题,从而提高了整个系统的安全性。另外,可以对数据库用户的访问口令进行加密保护,由应用系统来接管口令,提高口令的安全性。(注:关于密码运算的技术不在此次讨论范围,在此不再详述)。
我们通过将简单的密码运算与数据库相结合的办法,在某种程度上解决了数据库数据安全的问题,为应用系统提供了足够了保障,既避免了从底层整体加密数据给系统带来压力和降低效率的问题,又巧妙的解决了数据的安全问题,满足了应用的需求,这一点也可供大家借鉴。
行业借鉴经验
――银行数据仓库建设
通过建设数据仓库,可以共享业务数据,对业务数据进行分析和二次加工,为经营和管理提供决策依据,利用数据仓库可以集中提供各类报表,既可以降低基层工作人员的工作量,又可以统一报表口径,同时为将来增加报表和开发基于数据分析的业务提供基础。
对于银行业,总结起来有以下几点意义:
1.减少手工操作,节省人力成本
系统的实施会让许多繁重的手工制表工作得以解放,不必再对数据采集工作和手工计算付出时间和工作量,节省更多的人力和财力用于发展业务或提升管理水平。
2.增强报表功能和扩展性
系统采用数据定制抽取和定制计算的功能,一方面可以使现有的报表多形式展现,多角度分析,同时可以定制现在没有的报表,不用再为制作报表而发愁或进行二次投入。
3.增加报表数据的正确性
采用集中数据抽取的方式,确保数据来源的真实性和准确性及一致性,避免人工介入造成的误差,并且按规则自动进行计算,提高报表的正确性和数据的真实性。
4.提高协作办公的能力
系统接入公网,通过安全认证和加密保护来保证访问的安全性,公网接入方式打破了办公地域的局限性,领导可以随时随地及时了解全行的业务状况和经营情况,提升协作办公的能力。
5.统一报表口径
通过对各个报表口径的整合,可以使报表数据高度一致,不会出现同一个指标从不同口径报出而不一致的情况,这样有助于各部门做出目标一致的决策。
6.高度的宏观分析和深入的细化分析
系统建设后,数据比较全面和完整,既有宏观的总账报表和损益报表等,也有细化的业务量分析,并可多角度和多形式展现,有助于对业务和资金进行宏观分析和精细化分析。
7.节省未来的资源投入
本系统具有很强的扩展性和定制功能,对于增加新的报表不再需要投入大量资金来建设,只需投入少量的实施费用就可以达到要求,从长远来看可以节省大量的投资。
8.提高管理能力
系统建成后,报表数据的入口和出口都高度统一,方便管理和维护。
应用难点技巧
――数据的分隔存储
对于灵活性要求特别高的报表系统,通常的解决办法是将数据按单元格存储,并且统一以字符串类型存储,再定义一个字段来标识数据在应用中的数据类型,再定义其行号和列号来确定其位置,这类似于一个系统表,变相的定义了一个结构化的数据,但它与结构数据相比具有无限大的扩展性。但同时也带来一个问题,就是数据表中的记录数变得相当庞大,会给维护和查询带来很大问题,为此我们可以根据业务范围将数据分布在多个相同结构的表中。
总之,通过分隔记录和分隔表的办法达到扩展性与效率的平衡,以满足应用对数据库的要求。
――数据的结构化合成
针对上述问题,由于存储时是以单元格的形式保存的,但实际使用数据时又往往是结构化的,因此需要对数据进行重构,我们可以根据保存在数据表中的数据类型及列号来创建表或生成有格式的数据文件,简单的做到数据的结构化合成,如果想进一步准确的合成数据,可再创建一个表来定义一些类型、长度、主键等结构信息,这与数据库中的保存表的信息的系统表很相似,但是可供开发者来定制和控制,达到灵活效果。