T.I.C.数据库的分析和重新设计

2011-01-29 05:44张晶
扬州职业大学学报 2011年4期
关键词:中间件数据流架构

张晶

(苏州市职业大学,江苏苏州215104)

T.I.C.(Technology Innovation Centre)是英国伯明翰的一个技术创新中心,负责这所大学中的工程与计算机技术学院的学习和管理。T.I.C.除提供计算机技术、多媒体和工程等方面的课程外,还和一些大学、科研机构、许多国际和英国工业技术领先的企业密切合作,并为中小型企业提供技术设计、咨询和科技成果转化,其涉及范围从数字广播到工业产品设计。在更新数据库之前,T.I.C.使用的是2个一层构架的数据库:即Microsoft Access,用来存放T.I.C.所做的项目及其相关信息;SQL Server 2005,用于教学。随着时间的推移和使用量的增多,数据库开始出现了弊端,尤其是Microsoft Access数据库的存储容量的限制,对数据库的使用造成了局限性。并且Microsoft Access数据库只能在T.I.C.的内网中使用,不能及时地查找外界数据及更新数据和信息。种种弊端造成了《更新和重建T.I.C.的数据库》这个项目的启动,笔者参与了这个项目。

1 T.I.C.数据库的现状分析

T.I.C.使用的是2个一层构架的数据库,这2个数据库里的数据及所有信息都是相对独立的。Microsoft Access的数据只能在内网中登陆,SQL Server 2005可以从外网登陆。

1.1 一层构架体系

一层构架体系就是所有的处理过程均在一台机器上完成,用户端则直接和这台机器连接,在应用层上有任何的修改都会直接影响数据库层的信息(见图1)。由于它们是直接相互联系的,因此,对涉及到修改数据库信息的人员在应用层的使用和维护的技术上有一定的要求,加大了对人员技术的要求和工作量。

图1 一层架构体系

1.2 数据流的分析

首先,分析Microsoft Access数据库里的信息,并根据T.I.C.的不同部门将这些信息分类,然后,再通过访问不同部门人员对这个数据库的使用情况来分析数据流。T.I.C做项目的具体步骤分为以下方面:

(1)英国有专门的资助机构赞助各类院校和教育体系做项目,一般每二年签约一次,签约时项目所需的资金、发展方向和内容必须确定。这方面由T.I.C.的财务部负责;

(2)T.I.C.业务解决部门通过多种途径收集项目,如通过网站或商务途径将能做的项目范围公布于众,或找一些相关的企业、公司联系项目;

(3)联系到项目后,业务解决部门将项目的信息交给传递小组,由传递小组记录信息后递交给项目总负责人,再由项目总负责人和项目小组商讨能否做此项目,将此项目交给哪个部门去做。同时,项目财务部会给出关于此项目的资金方案;

(4)项目小组和财务部的方案完成后由传递小组做记录,交给负责此项目的部门,部门领导决定具体的人员名单。具体做项目的人员和对方公司联系,商讨项目的详细信息,在三天内向部门负责人递交项目的详细材料;

(5)部门负责人做完此项目的计划和进度后,交由项目小组和财务部审批;

(6)如无疑问,正常开题,则项目小组、传递小组、财务部和做此项目的部门都要填最终开题表格,并要有相关人员和部门的签字盖章;

(7)相关人员开始做项目;

(8)在规定时间内完成项目,如需延期,则递交申请,由部门负责人审阅并签署意见后交项目小组,由项目小组和项目总负责人决定能否延期;

(9)项目如期完成后,交给对方公司,如对方满意结果,无任何问题,则此项目在对方接受后3~6个月自动结题。如对方公司对此项目的结果仍有疑问,则由做项目的人员跟进,并做好记录。

由此可见,整个过程被复杂化,每个步骤都有多个部门需要填表,而这些表凌乱而不统一,造成查找正确的表格和填表的困难。另外,部门间职责不明,大大降低了工作效率。

通过分析和此项目有关的各类资料和数据,决定把Microsoft Access这个数据库改为SQL Server 2005,和原有的另一个SQL Server 2005合并,把里面的数据和信息重新归类,并制作统一的一系列项目表格。

2 数据库的重新设计

在重新设计时,遵循以下设计原则:使每个模块执行一个功能;每个模块用过程语句(或函数方式等)调用其他模块;模块间传送的参数作数据用;模块间共用的信息(如参数等)尽量少。笔者利用结构化系统分析和设计方法(SSADM,Structured Systems Analysis and Design Methodology)画出新的数据流程图。

2.1 SSADM的特点

SSADM是在英国广泛使用的一种计算机应用开发方法,它将应用开发项目分成模块、阶段、步骤以及任务,并提供一种框架,用来描述项目。SSADM的目标为:改善项目管理和控制;更有效利用开发人员;开发质量更好的系统;使得项目对人员流失产生反弹;允许使用计算机服务工具支持项目;为项目参与者建立良好通信构架。

SSADM包含系统生命周期中可行性研究阶段到物理设计生产的一些方面,它通常与其它方法联合使用,如PRINCE。它建立系统开发的瀑布视图,其中包含一系列步骤,各个步骤通向下一步。SSADM的步骤为:可行性分析、目前环境的调查、企业系统选项、需求定义、技术系统选项、逻辑设计、物理设计。

SSADM是一个非常全面的模型,大多数项目可能只使用适合它的SSADM部分元素。

2.2 数据分析

根据收集到的信息和前面的分析,利用Select Yourdon v4.2.1画出了数据流和数据E-R图。

对于一个大型系统,如果在一张数据图上画出所有的数据和加工,则会使得数据流图复杂而难以理解,为了控制复杂性,结构化分析法简化了数据流图分层技术。一套分层的数据流图由顶层、底层和中间层组成。

T.I.C.的数据库与外界的数据联系为:(1)T.I.C.的数据库一部分用在教学方面,它有教师和学生以及教学方面的信息;(2)资助机构的资金信息;(3)连接外网,方便有需要的人员在校外登陆查找信息;(4)技术伙伴,有些大型的项目,仅仅以T.I.C.一人之力完不成,需要其他院校或中小型公司共同完成。

分析中间层数据流图可知,T.I.C.内部有5个部门运作项目工作,分别是:业务部,财务部,项目管理部门,传递部门,合同履约部门。更新后的简略步骤如下:首先,公司先和T.I.C.的业务部联系,业务部初审通过后交给传递部门做相关记录,然后由传递部门交给项目管理部门,同时,财务部也跟进此项目,一旦项目解决方案定下,再交由合同履约部门制定合同,双方签字,合同生效后,T.I.C.开始做此项目。

重新设计后,每个部门的职责明确了,原先所有的信息被重新合并、规整制成新表,数据库里表格的数目减少了,由原先的24张表减少到8张表。设计达到预期的效果:精简步骤、提高效率、增加结果的准确率。

2.3 选取三层架构体系

T.I.C.原先使用的数据库是一层架构体系,通过查找资料和分析,决定在新的数据库中使用三层架构体系。

三层架构体系是指客户端通过中间件等应用服务器访问数据库服务器,中间件是指事务逻辑处理封装的一层。三层结构比一层结构安全。三层体系结构是N层体系结构的典型,已将原来在两层体系结构中的商业逻辑部分从数据层和表现层中提炼出来,形成中间件服务器,三层即表现层、商业逻辑层和数据层。表现层主要提供与客户的交互功能,数据层提供系统中的所有的数据保存载体,商业逻辑层将整个系统中的商业处理逻辑整和在一起,形成中间件。在三层中,中间件起了承前启后的作用,表现层将客户端的请求通过IDL调用中间件,中间件再将其转化成数据处理原则,并从数据库中获得相应的数据,返回给客户端的软件,转换成客户要求的方式显示。在三层体系结构中,提供在客户端和服务器端进行应用功能的分割,系统通过应用将用户定义的界面系统从商业处理逻辑中分割出去。通过将商业处理逻辑集中在中间件服务器中,能减小客户端的工作量并使敏感数据访问控制变得简单。在三层结构中,客户端将与服务器端的数据变化隔离,简单的说,商业处理逻辑不受客户端的用户界面的改变而影响(见图2)。

图2 三层架构体系

2.4 使用SQL Server 2005

T.I.C.的数据库采用了Microsoft Access和SQL Server 2005,这两种不同类型的数据库,通过资料的查找和分析,决定统一为SQL Server 2005。理由为:

(1)数据分区。SQL Server 2005有表和索引数据分区技术,大大地增加了表的可伸缩性和可管理性,处理海量数据的能力有了质的飞跃;

(2)可编程性。如CLR(Common Language Runtime,公共语言运行时)集成,可以让用户轻松利用.NET语言的优势,如其面向对象的封装、继承和多态特性,编写出那些需要对数据进行复杂数值计算或逻辑的代码,如字符串处理,数据加密算法,XML数据操作等等。还可以使用和C++或C#类似的TRYCATCH结构对SQL进行错误处理,大大简化了SQL错误处理编程;

(3)安全性。SQL Server 2005不是简单的提供一些加密函数,而是把市场上已经成熟的数据安全技术引入数据库,有一个清晰的加密层次结构。每层都使用证书、非对称密钥和对称密钥的组合,对它下面的一层进行加密,提高了密钥安全性;

(4)快照隔离。SQL Server 2005除了支持隔离级别外,还有快照隔离级别技术,使阻塞或死锁成为历史。SQL Server 2005在TEMPDB中存放不同版本的数据行,select语句读取这些不同版本的行,读操作不阻塞写数据,写操作也不阻塞读操作,这样那些由于读/写争用导致的大量死锁的系统将从中获得无穷益处;

(5)数据库镜像。SQL Server 2005引入的数据库镜像可作为故障转移群集或Log shipping的替代或补充方案来提高数据库的高可用性。镜像的主要优点是它比前两者更容易管理,没有群集的单点失效缺点,也没有log shipping的时间延迟。镜像服务器可以放在很远的地方,提高了作为备份服务器的高可用性;

(6)增强了商务智能BI的功能。它支持profiler,Profiler对性能调优和排查错误是非常有用的。还具备实时分析能力,新增加的四种数据挖掘算法也支持.NET语言进行开发(如存储过程等);

(7)全文搜索增强。SQL Server 2005全文检索在开发时集中性能、集成和可扩展性;

(8)可用性功能增强。增加了索引联机操作、页校验和在线还原等功能;

(9)复制增强。如peer-to-peer对等复制,可以在参与者之间相互进行复制,这样用户可以采用对等复制在复制参与者之间建立某种程度的负载平衡;

(10)异步处理能力。SQL Server 2005通过引入全新的Service Broker提供异步处理能力。Service Broker为数据库应用程序增加了可靠、可扩展和分布式异步功能异步编程,允许程序仅仅在资源可用时才去执行占用大量资源的任务,以此来缩短响应时间,提高吞吐量。

3 结语

T.I.C.数据库的弊端使其在使用时受到了限制,降低了工作的效率和最终结果的正确率,为了解决这些问题,决定更新这个数据库。笔者收集T.I.C.数据库的相关信息,分析这个数据库的内容和结构,并提出改进的意见。在此工作过程中,利用SSADM和Select Yourdon来分析收集到的数据库相关信息,画出了改进后的数据流图和数据逻辑图,并通过查找和对比不同类型数据库的信息,最终提出用三层架构体系和SQL Server 2005的技术来重建新的数据库。本人所提出的方案毕竟只是理论方案,还未经过实践证实其可行性,但希望能给下一阶段工作的人员有所帮助。

[1]WEAVER,LAMBROU,WALKLEY.Practical Business System Development Using SSADM[M].Pearson Education Ltd,2002.

[2]岁月联盟.Structured systems analysis and design method[EB/OL].[2010-02-08].http://syue.com/Glossary/S/3756.html.

[3]宋修鹞.结构化分析方法[EB/OL].[2011-12-01].http://baike.baidu.com/view/1441153.htm.

[4]DDLJGHGQ.百度知道,二层架构和三层架构的比较?最佳答案[EB/OL].[2009-02-15].http://zhidao.baidu.com/question/86187935.html.

[5]QANHOLAS.SQL Server 2005的优势[EB/OL].[2011-10-05].http://www.cnblogs.com/qanholas/archive/2011/10/05/2199269.html.

猜你喜欢
中间件数据流架构
优先级驱动的泛化航电网络实时性能分析
功能架构在电子电气架构开发中的应用和实践
汽车维修数据流基础(上)
汽车维修数据流基础(下)
我国自主可控中间件发展研究
基于XML的数据流转换在民航离港系统中应用
基于B/S架构的图书管理系统探究
构建富有活力和效率的社会治理架构
VoLTE时代智能网架构演进研究
以实力证明 用事实说话