大型项目中如何开展数据库设计工作
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大型项目中如何开展数据库设计工作
本文基于我在上海证券交易所第三代监察系统项目的实践描述如何
在大型项目中开展数据库设计工作,本文避免过多的描述具体实现的
技术细节,侧重于从软件工程角度描述数据库设计的整体流程以及项
目各个阶段的工作侧重点。
1. 开展数据库设计工作所需条件
对于基于数据信息处理的大型行业解决方案项目来说,数据库设计是
整个系统设计工作中最为重要、最为基础的环节之一,具备什么样的
条件才能顺利开展数据库设计工作呢?
本章主要从资源配置角度描述如何确保数据库设计工作能够顺利进
行。
1.1. 独立的数据库设计小组
对于一个软件合同额数千万,前后参与项目的人员数量数百人的大型
软件工程项目来说,项目管理的重要程度要远比几十个人月、几个人
完成的小项目要重要的多,而成功进行项目管理的基础之一便是完备
的组织机构。
对于一个基于数据处理的大型核心业务应用系统来说,数据库设计是
整个应用系统实现的基础,可以说其设计质量的好坏直接影响到整个
项目的成败,应当有专门的组织机构负责其设计。
教训:在3GSS项目中数据库规划组成立时间过晚,只是在开发工作
过半的时候才组建起来,在这之前我个人也是在需求工作、架构工作
都已基本结束的时间点进入项目组,这对于顺利的进行数据库设计造
成了很大的困难。
1.1.1职责
数据库设计小组的职责主要体现在以下方面:
●参与项目总体架构设计,对于涉及到数据库应用的架构问题主要
负责。
●保证在项目进行过程中数据库设计的稳定,为各个应用子系统的
开发提供稳定的数据平台,从而保证项目计划的正常执行。
●在数据库性能优化工作起到主导作用,并对数据库性能优化的结
果负责。
●对于数据库版本的管理和发布以及变更负责。
●做好需求与开发之间的桥梁。
1.1.2在项目组中的地位和作用
数据库设计小组在整个项目组的组织机构配置中应当与架构组、需求组、测试组等平级,直接对项目组PM、PSM负责,因为数据库设计的工作需要各个小组的积极配合才能够顺利完成,所以项目小组之间的沟通协调工作显得尤其重要,如果不能做到从组织机构上将数据库设计小组提到项目组中一个相对较高的位置上,那么在一个大型项目组中,沟通协调工作将会很难进行。
教训:3GSS项目中,数据库规划组在项目进入到编码阶段之前并没有单独独立出来,只是隶属于核心预警系统组,因此在与其他组的沟通协调方面增加了一定的困难。
1.2. 如何组建数据库设计小组
描述数据库设计小组的组建过程和资源角色配置。
1.2.1.角色配置
一个数据库设计小组主要应当包括以下角色:
1.2.2.资源使用
可以这样说,数据库设计工作没有太多的开发工作量,但是对人员素质的要求很高,因此数据库设计小组的组建要按照“外科手术”的标准进行,贵在精而不在多:
1.3. 硬件资源
数据库设计工作顺利开展的一个重要条件是拥有既定硬件方案所规定型号的主机以及配套的存储设备,并且网络通讯能力要和真实上线条件一致,总之数据库设计工作需要一整套真实上线环境下的硬件设备,这不仅仅是数据库设计的需要,同时也是整个项目开发工作的一个重要基础条件,因为没有经过真实上线环境的检验,谁也不敢说我们用PC机和低档服务器开发出来的系统能否在上线的时候稳定运行。必需要保证在编码工作开始前准备好硬件方案所规定型号的主机以及配套的存储设备。
教训:3GSS项目在7月进入开发编码阶段,而硬件环境直到9月份才到位,在这之前我们只能使用PC机来作数据库服务器,根本没有
办法模拟大数据量存储,致使数据库物理设计的优化调整只能延后,
如果我们能够在这宝贵的2个月时间内仔细验证、优化我们的数据库
物理设计方案,我们完全可以规避很多实现风险,也不会造成后来开
发阶段数据库存储性能的瓶颈问题。
1.4. 设计工具
工欲善其事,必先利其器,现在有很多数据库设计工具可供选择,
3GSS项目选择Sybase公司的PowerDesigner9.5作为设计工具,我认
为这个工具主要有以下好处:
1、可以方便地进行数据库的物理设计、逻辑设计
2、有很强的文档生成能力,可以定制生成各种数据库设计文档
3、拥有数据库反向工程能力
2. 数据库设计工作的流程与方法
首先提出一个问题:在一个项目中数据库设计工作什么时候开始启
动?什么时候结束?
我认为,从需求工作启动的那一刻起,数据库设计工作就正式开始了,
直到项目交付完毕、正式上线运行方才告一段落!其中工作重心主要
放在需求阶段、架构设计阶段、详细设计阶段。
2.1. 需求阶段
数据库的设计,特别是大型核心业务应用系统的数据库设计,远非建
几张数据库表那么简单,在数据库设计工作的初时阶段,就其本质来
讲,是对客户核心业务的一次数据建模,出色完成该阶段数据库设计
任务的关键条件是对用户核心业务的业务模式、处理流程、数据构成
充分理解,可以说在这一阶段的数据库设计工作中,并没有涉及多少
数据库技术方面的工作,更多的工作集中在对于客户核心业务的理解
和学习上,为在后续阶段对数据库进行逻辑设计打好基础。而在这一
方面,无疑需求组的同事是处于主导地位的,我们必须和需求组的同
事合作,获取它们的帮助,同时,我们的参与也会促进需求组的同事
进一步和客户沟通、明确很多业务方面的细节问题,从某种意义上讲
也是间接推动了客户需求的细化工作。
数据库设计小组需要在需求阶段投入最大的精力和资源。