你好,游客 登录
背景:
阅读新闻

书摘:数据建模对业务应用至关重要

[日期:2014-10-24] 来源:TechTarget中国  作者:作者:Steve Hoberman翻译:陈洪钰 [字体: ]

      著名作家Steve Hoberman同时也是数据建模讲师,他的数据建模和BI技术课程在全球有一万多名受众。他在刚刚出版的新书 Data Modeling for MongoDB: Building Well-Designed and Supportable MongoDB Databases中阐明:数据建模概念对业务成败仍然很重要。他在书中介绍了在MongoDB应用中简化复杂信息的术语和建议。本文是该书的节选,论证了企业采用数据建模的重要性,列举了数据建模的一系列应用场景。

为什么需要数据建模

      我们之所以要做数据建模,是想要确认并记录我们对不同观点的理解。数据模型是一个通讯工具。因为即便是构建一个简单的应用,也需要很多角色参与,包括业务 专家、业务分析师、数据模型者、数据架构师、数据库开发者、数据库管理者、其他开发者、其他管理者等等,不一而足。人们的背景、经验和专业水平都各不相 同。有了数据模型,我们就可以证实我们对该区域的了解,确保人们获得的信息并无二致,至少,人们能意识到现存的不同点。

      数据模型能够描绘出一个新的信息图景,或者描绘一个当前存在的信息图景。下图展示了两种不同情况下数据模型的应用。

      传统上,项目在分析和设计阶段需要构建数据模型,确保数据库在真正创建之前,人们能够完全理解并且正确捕获对新应用的需求(也就是提前工程设计)。不过,在构建数据库之外,建模还有很多其他应用。

  1. 风险纾解。数据模型能够捕获受开发工程或项目影响的概念和交互。那么,增加或修改已经投入生产的应用结构会产生什么影响呢?这时就会用到“影响分析”,使用数据建模就可以看出结构的修改会对软件销售产生哪些影响。
  2. 逆 向工程师。我们可以通过检验应用程序的数据库,为它的结构搭建数据模型的方法从已有应用程序中获得数据模型。从已有应用程序中搭建数据模型的流程有固定的 技术术语,叫“反向工程”。很多行业的发展趋势是更多地购买软件,减少内部搭建。因此,建模人员的角色也就有了相应的扩展和改变。数据建模人员不再为应用 程序建模,而是在已有应用程序中获取信息。
  3. 了解业务。在做大型的开发之前,技术人员必须要理解业务是如何运作的,这样才能知晓应用是如何支持业务的。比如,在构建订单输入系统之前,你需要了解订单输入业务流程。数据模型呈现的数据和关系为了解业务流程提供了基础。
  4. 知识传递。如果新的团队成员需要快速学习,或者开发人员需要了解需求,那么数据模型会是很有效的媒介。每当有新员工加入我们部门,我都会准备一系列数据模型,教会员工需要的概念和规则。这无疑是最快的方法。

为什么数据建模不可或缺

      数据模型之所以能够确认和记录我们对不同观点的理解,原因就在于一个词,精确。精确,对于数据建模概念而言,意味着在同一个模型中读每一个符号和术语的时 候,都只有一个清晰的,没有歧义的理解方法。你可能会认为某个规则不够精确,但这是另一回事。换句话说,不可能出现一个人看见模型中的符号说,我看见一个 A,另一个人看同样的符号却说我看见一个B的情况。在数据模型中,精确是应用一组标准符号的结果。就像路边的加油站都有统一的标识一样,数据模型中也有标 准的符号,我们很快就会发现的。

      理解和精确记录数据的流程并不是可有可无的。只要应用里还有数据,有两个以上的人在构建或使用应用,就需要确认并记录我们对不同观点的理解。

      以“客户”一词为例。你可能首先要问“你如何定义客户?“。这个问题问起来容易,答起来难,因为理解”客户“一词的角度很多。而当你得到答案之后,你可以继续问其他的数据建模的问题,比如:

  • 你如何描述一个客户
  • 一个客户能否拥有多个账户
  • 多个客户能否拥有一个账户
  • 客户是否可以不拥有任何账户

      在数据建模阶段,还有很多这样的问题。提出这样的问题并获取答案的过程叫做”萃取“,数据建模包括萃取和记录数据管理。在萃取和记录数据需求之间有一个迭代的过程。如下图。

      在数据建模过程中,我们不断提出问题,增加数据建模的准确性,然后再记录数据模型的过程中,我们会提出更多的问题。这个循环会不断继续,直到模型完成。随 着加入建模的人们在术语、假设、规则和概念等方面不断提出问题、解决问题,我们会获得更多的知识,模型也会越来越完善。

【TechTarget中国原创内容,版权所有,经授权中国大数据发布,谢绝转载。





收藏 推荐 打印 | 录入: | 阅读:
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款