收藏本站 
广告服务 
网站地图 
>> 我们从网络和杂志上收集了近100000余篇各类电脑技术、网络技术、软件技术等方面的文章教程,我们的收录原则:不是精华拒不收录!
先飞电脑技术网技术文章
简单谈谈国产数据库使用的项目经验
[ 作者:佚名    转贴自:网络转载    阅读次数:80    更新时间:2007-4-16 22:02:00   录入:刘光勇 ]         
    项目一:银行综合业务系统

项目简介(功能与用途):

银行综合业务系统简单的说就是银行的账务系统,是银行的核心系统,用于完成记账、日结、结息、年结、审计、报表等功能,从业务分类上讲包括:对公、储蓄、银行卡、结算、汇兑、贷款、客户管理、清算、中间业务等,此系统采用大会计思想,数据集中原则,以客户为中心,是当时最先进的模式,平台使用SCO UNIX+INFORMIX+ESQL/C,采用TCP/IP网络,C/S架构,采用版本自动更新技术,业务操作采用菜单驱动和交易码驱动两种方式,用户权限采用角色授权和单独授权两种模式。

项目难点与解决方案:

1、 数据存储的问题,由于采用集中存储,数据量较大,再加上历史数据就更大了,因此采用分隔存储的办法,即历史数据存放在另外一个数据库中,或者将同结构的数据存放在几个表中。

2、 数据库查询效率的问题,通过创建合理的索引和冗余来解决。

3、 处理效率的问题,采用的方案有:对于常用的字典数据缓冲到共享内存,优化SQL,减小事务,增加锁粒度,采用进程池,数据库用带BUFFER的模式。

4、 数据库扩展问题,系统根据需要会增加存储,但不能影响原有的数据,为此采用裸设备存储方式,可以随时为数据库增加存储空间。

5、 数据安全的问题,这是两个层次的问题,一是数据库的整个数据的安全问题,另外就是数据库表中的内容的安全问题。解决的办法是数据库双机同步,内容安全采用校验码和密文方式。

6、 业务统一的问题,由于要将对公和储蓄合并,即统一采用会计记账的方式,这就要对储蓄业务的一些处理方法进行改造,我们通过给储种分配科目,采用多级科目的办法来解决,实际发生业务时记录流水,并改变余额,待批处理时再汇总流水到科目账,并记录账户明细。

项目成功与失败的经验归纳:

整个项目的开发较为成功,表现为如下几点:

1、 项目采用新的思想,即大会计和数据集中。

2、 软件的架构和模块的划分以及组件的组织都较为成功,采用C/S模式,客户端有自动更新功能,这一点可以和现在的一些客户端软件的自动更新功能相比美;前台输入界面采用定制方式,业务采用两种驱动模式;不同类别的业务封装成不同的服务,既方便分拆,又可以提高效率;将公用的函数抽象成公共库,减少了开发量。

3、 数据库设计上架构比较大,扩展性比较好,采用冗余方式和索引策略提高效率,各业务模块比较独立,共享基础数据。

4、 数据库设计中对于一些需要扩展但又需要提高效率的地方,采用了二维表的方式,体现出了设计上的一些精秒之处。

5、 通过此项目的开发,对SQL有了深入的理解,并能非常熟练的使用,感觉到要想写好一个程序,我们应当花些时间去优化和分析程序中的SQL语句,能省一点时间就省一点。

你在项目中岗位与贡献:

参与数据库设计、需求分析和详细设计,开发后台中心机和交易服务。

开发完成了中心机的系统控制、系统定义、报表定义、报表管理、数据字典、日结、结息。

开发完成了交易服务中的,对公业务、客户管理、数据转换、代收代付。

项目二:中国金融认证中心认证系统

项目简介(功能与用途):

中国金融认证中心(现称为银联金融认证中心)是专门提供第三方数字证书和身份认证的营运公司,他需要一套完整的安全平台来提供支持,包括密钥管理基础设施(简称KMI)、公钥基础设施(简称PKI)和授权管理基础设施(简称PMI),此平台是集数据库安全、应用安全、网络安全于一体的整体解决方案和全套安全产品,其中实现和使用了诸多安全协议和国际标准及金融行业标准, 旨在为应用系统提供全面的安全基础服务。

主要是为互联网上的交易安全提供认证和保密服务,为交易双方发放数字证书,并提供基于数字证书的认证服务,当交易双方进行交易前,出示数字证书,通过安全平台认证身份,认证通过后,由双方协商通讯密钥用于加密数据,协商完成后即意味着双方建立了安全连接,然后在安全连接中交互交易数据,在必要时可加数字签名,最终完成虚拟的面对面的交易。

项目难点与解决方法:

1、 数据库安全的问题,在安全要求上,系统要求数据库的字段不能随意修改,表的记录个数也不能修改,为此我们采用了对记录进行哈希和摘要的办法,每一条记录有一个哈希的字段,这个字段由应用系统来管理,当系统修改记录后会重新计算记录的哈希,并对哈希进行消息摘要,最终保存摘要,同时更新整个表的摘要,当再次读取记录时要验证摘要的正确性,通过此办法解决了数据库的安全性。同时当初始化完成后,数据库的登录口令也被加密由安全平台接管。

2、 数据库查询和处理的效率问题,基于上一问题,要对整个表进行哈希和摘要计算,这样当表的记录数增大时重新计算哈希是一个很大的负担,因此我们也采用了分段的办法,即将整表数据分段,每一段计算一个哈希,再将所有的哈希合并计算出整表的哈希,这样当修改一条记录,只会重新计算一个段的哈希和一个整表的哈希,而不用重新计算所有记录的哈希,同样,读取数据时验证的范围也变小了,因此就提供了查询和处理的效率。

3、 由于不同安全级别的系统,对数据库的要求也不同,需要布署在不同的安全区中,对此我们采用多级防火墙的机制来划分安全区,在每个安全区中都部署一个数据库服务器,对于双机模式,利用共享存储空间的办法来达到数据的安全和同步。

4、 开发中为了兼容所有的数据库,采用了ODBC接口,但各个数据库对于ODBC的事务支持都不统一,而且启动事务的SQL语句也不一样,使用锁的语法也不一样,这就给开发兼容性的程序带来了麻烦,为此我们在ODBC之上又作了一层封装,针对主流的数据库分另做了个性化的处理,应用程序使用封装的接口即可,改动时只需要修改封装接口,重新发布动态库就可以了,从而达到程序兼容的目的。

项目成功与失败的经验归纳:

整个项目开发很成功,开发完成了许多安全协议和国际标准,也解决了实际应用中数据库设计方面的问题,总结为如下几点:

1、 解决了数据库数据安全的问题,可以防止内部系统管理员修改或删除数据。

2、 采用二级哈希的方式,巧妙的解决了数据处理的效率问题。

3、 通过对ODBC的再次封装,解决了程序针对ODBC的兼容性问题。

你在项目中岗位与贡献:

在项目中负责系统的架构设计和数据库设计,同时承担开发核心平台、注册认证系统和安全代理产品。

项目三:华夏银行数据仓库系统

项目简介(功能与用途):

此平台集数据抽取、数据清洗、仓库构建、数据加工、数据展现于一体,采用了数据分割、数据集市和数据合成的思想,将全行的业务数据统一提取到数据仓库中,将数据以细粒度存储,构建元数据库,在此基础之上根据需要生成数据指标,然后进行数据合成为用户提供各类分析报表和决策报表,数据展现支持钻取功能。系统还提供异构数据的导入和导出,如EXCEL、XML、TEXT格式的文件数据。

此平台统一了全行的报表口径和报表规范,提供多种展现方式和多种数据格式(EXCEL,XML,TEXT)等,实现了真正的数据共享,可为银行提供业务报表、上市批露报表、分析决策报表、监管报表(如1104工程)、审计报表(如安永审计报表)。

项目难点与解决方法:

1、 数据存储的问题,由于抽取的数据都是以文件形式提供,因此无法识别字段的类型,且无法预知下一个文件的结构是什么样的,因此需要按单元格存储数据,即一个数据保存为一条记录,这样会使数据表中的记录数变得相当庞大,会给维护和查询带来很大问题,因此我们根据业务范围将数据分布在多个结构相同的表中,并统一以字符串的格式保存数据。

2、 数据重构的问题,由于存储时是以单元格的形式保存的,但实际使用数据时又往往是结构化的,因此需要对数据进行重构,但又不能每次需要时实时重构,那样效率会非常慢,我们采用自动结构化的办法,当用户定制了一个表或一个指标,指定了数据组成的规则,那么在抽取数据后或录入数据后,平台会根据定制的结构自动生成一张表,将单元数据组装成记录数据写入到这张表中,实现数据的结构化。

3、 关联计算的问题,有些数据是通过其它数据计算所得,虽然触发器和存储过程是可以解决这些问题的,但这类型的东西兼容性不是很好,因此我们采用在应用系统中定义计算公式的方法,当产生元数据时自动执行计算公式完成关联计算。

4、 数据交换的问题,由于现有的数据库都不能支持XML,且XML的格式可能多种多样,为此我们在应用层采用XML模板的方式来实现数据的转换,当需要导出XML时,程序读取模板,解析模板中的数据标签,如果需要用数据替换的,则从数据库中提取数据替换,最终导出带有数据的XML,当导入时,读取XML,将XML的数据以单元格形式保存到数据库。此外还完成了与EXCEL的数据交换。

5、 异构存储的问题,平台建设中元数据库使用了两种数据库,而业务数据库更是多种多样。解决办法:由业务数据库到元数据库采用文本方式提供数据,两种类型的元数据库分别承担不同类型的应用操作,数据同步由平台通过SQL语句来完成。

项目成功与失败的经验归纳:

整个项目建设的较为成功,在不到半年时间内完成基础建设,成功的关键在于软件架构的设计和数据库结构设计上,一个好的结构会让开发者很顺利的编写代码,也能很好的处理一些编码中的实际问题,而不会带来数据一致性或事务的问题,也不会由于频繁修改结构而给程序带来混乱和翻工的问题。而好的软件架构可以使软件扩展非常方便,不至于影响原有系统,且接口会非常方便,尤其对于大型的系统,显得更加重要。

要根据系统的特点来设计软件架构和数据结构,因为所有的架构终归都是为应用服务的,如果应用的数据比较规范整齐,则在数据结构的设计上层次就可以少一点,也不需要太零散;相同结构的且记录数较少的数据可合并到一个表中,通常见于数据字典的定义中,这样可以提高效率。

你在项目中岗位与贡献:

负责平台的架构设计、数据结构设计、开发平台的核心架构、JAVA基础框架开发,是整个项目的核心贡献者。

上一篇:嵌入式数据库Firebird 2.0近日发布  下一篇: 在银行的关键应用中使用国产数据库  

网站主页 | 收藏本页 | 联系我们 | 广告服务 | 站点地图 | 会员注册 | 招聘信息 | 内容指正

联系QQ:先飞电脑技术网站事务联系QQ,点击可以直接留言. 32933427 电话:13710542091 [世界排名] 鄂ICP备05005890号