数据库设计需做好前期工作 Agile方法不适合

日期: 2013-11-03 作者:Jack Vaughan翻译:孙瑞 来源:TechTarget中国 英文

在许多企业当中,关系型数据库设计几乎成为了一种“失传的手艺”。但《数据库设计入门经典》作者Michael J. Hernandez却认为这是非常重要的一环,其核心原则仍然值得企业深思熟虑。

作为入行多年的数据库开发者,Hernandez曾作为项目经理就职于微软公司,并为许多大型企业提供培训服务。《数据库设计入门经典》一书早在1996年就发布了第一版,这本书详细介绍了数据库设计以及配置实践等内容。

Hernandez善于设计灵活而且组织良好的关系型数据库,这种数据库能够支持Web应用的快速上线,同时可以应对数据增长以及业务变更。目前有很多企业认为数据建模以及设计良好的数据库是浪费时间的工作,他们只想快速编写想要的程序。对此Hernandez的回答很直接:决不能忽视数据库设计过程。

为此,TechTarget记者对Hernandez进行了专访,并共同探讨了数据库设计的最佳实践。以下为本次采访节选:

在您的书中,您提到数据库开发者往往急于开始写代码,而忽视了良好的关系型数据库设计。您认为需求收集阶段为何如此重要?我们该如何做?

Michael Hernandez:很多时候,人们会做一大堆假设,然后就开始创建数据库并发布。然后业务用户就开始抱怨,出现这样那样的问题。因此,提前与业务用户进行沟通是非常关键的,你需要了解业务的情况以及用户的具体需求。

通常来讲,不同阶段需要与不同的人进行沟通,这样才能确保捕捉到正确的概念,真正深入地理解业务。这是我特别强调它的原因。

那么怎么做呢?你需要理解企业内部各个流程的各个方面,以及他们之间的相互关系。你需要理清关系,找到在数据库中呈现的各个细节与概念。去找业务部门员工聊一聊,去试着理解他们的需求,这包含了设计数据库的关键信息。

怎样做到与业务人员的有效沟通呢?

Hernandez:这是门无法用语言表达出来的学问,但经过努力相信每个数据库开发人员都能学会。它的前提是你必须有良好的逻辑分析能力和沟通能力。你要问业务人员如何定义他们的日常工作,他们每天上班要做的第一件事是什么,还有从概念上理解他们处理哪些任务。比如说,他们处理的是与客户有关的任务,那么你可以问,“客户对于你来说意味着什么?”每个公司给出的答案都不同,甚至每个公司的各个部门也会有不同的答案。你需要理解他们的角度,以及他们处理工作的语言。

如客户,拜访,日程,订单或任务这样的概念,是最主要最基本的概念,你需要搞清楚这些概念的细节。

那么阻碍这种需求信息,或者说影响一个良好的数据设计的因素都有哪些呢?

Hernandez:这是时间的问题。如今,人们想要快速完成这项工作,先把它放在那,然后再等着看结果如何。如果用户反馈有问题,那么就随着进行修改。对我来说,这是非常不好的做法。如果你肯花一定的时间进行规划,那肯定会避免许多令人头疼的麻烦。

在培训中我总是告诉别人:这绝不是浪费时间。你把时间投入到前期考虑方法并保证数据产品的质量上,相信我,你最后取得成功的几率肯定比那些快速上线的要大。

因此从我个人角度来说,我非常不支持敏捷开发(Agile)的概念。我认为这是与数据库设计初衷背道而驰的方法。很多人想要走近路,省去前期沟通的环节。但这才是你设计信息的来源,也是成功的关键。

回过头来再看看你的数据库设计,需要把业务用户和部门经理一起叫过来。他们会对数据的使用方式提出独特的看法和角度。那些不做前期工作,只靠后期改代码度日的企业,最终的结果也是得到一个混乱不堪的系统。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者

Jack Vaughan
Jack Vaughan

TechTarget新闻记者和网站编辑,主要关注数据管理领域的技术趋势和动态。

翻译

孙瑞
孙瑞

相关推荐