数据库设计是这样长大的——数据建模[有言在先]

来源:互联网 发布:尘骨 知乎 编辑:程序博客网 时间:2024/05/19 16:35

  酝酿这篇连载已经很久了。写这些文字,只是希望将我所知道的东西与你分享罢了。如果这些文字你看后,觉得对你有帮助,这就是我最大的荣誉!我一直都想写一些计算机类的连载,写一些能放在枕边读的连载。这类连载一般都是故事小说来充当的,希望我也能把“数据建模”写成这样的连载。文章的名字叫“数据库设计是这样长大的——数据建模”,也就是说,我的连载不是讲设计出数据库的“结果”是什么样的,而是得到这一结果的“过程”是什么样的。数据建模之类的文章和书籍很多。我只会用我“非官方”的语言来理解那些“官方”的知识,希望能与您达到共识。

    为什么数据库设计要进行数据建模,这其实不是我想讨论的问题。如果我们把数据库设计看成一个小伙子的话,那么数据建模就是这个小伙子的“儿童时期”。如果你问一个小伙子为什么要经过儿童期,我觉得这个问题意义其实不大。但是,我并不是说这个问题问的荒谬,因为在我们不是很清楚一些问题的时候,问的问题都属于“弱智”问题。我觉得有意义的问题应该是,这个“儿童期”应该怎么渡过才是最佳的?就是因为研究“儿童时期”,反而显得更加重要。这跟中国人经常说——“三岁定八十”的道理类似。我们经常看到报纸杂志上说,儿童时期的行为和习惯会决定人的一生。所以,关注这个“儿童时期”的健康、积极、活泼的状态是重要的。

     孩子只要是健康的、积极的、开朗乐观的,那么以后在他所从事的任何一个岗位上,相信也会是优秀的,这就是“实现的自由”。对于数据库设计来说,也是为了“数据的实现自由”。数据建模就像一张工程的蓝图一样。比如,对于一间房屋的装修来说,在入门处安置一个鞋柜很有必要,这有利于家庭卫生地保持。对于这个鞋柜最终实现来说,具体选用木质材料还是塑料材质,这取决于客户自身的条件限制,其实这就是软件工程中的“业务需求”。上面的例子就是实现的自由。但是,这些都首先取决于设计的正确性、合理性。如果把鞋柜在设计时,就设计在离入门较远的地方,这个合理性就存在问题了!所谓数据建模要讨论的,实际上就是建模逐方面的合理性问题,我把这些合理性都叫做“规矩”。规矩不能违反,违反了就一定错。但,并不是说不违反就一定不错!这是充分非必要的条件。请记住,规矩是为了减少冗余的出现,但不能完全消除冗余。就像法律条文的完善是为了减少违法的出现而不能完全消除违法的出现一样。刚才提到了业务需求,如果想了解其具体的含义和方法,您需要参考其它书籍。在这我只想强调,“业务需求”永远是第一位。永远都不要否定需求,但你可以引导需求。记着——没有写不出来的程序,只有理解不了的业务。数据的实现自由就像上面鞋柜的例子一样,建模与实现其实可以没有任何关联;另一个方面也是说数据建模是健硕的,那么最终将它实现在ORACLESQLserverMYSQL或是其它DBMSDataBase-Management-Systerm数据库管理系统】上,也都是一样的,是一样优秀的。

您可能会问,既然建模与实现无关,那么不同的DBMS又怎么会认识同一个建模呢?首先,要说的是数据建模是通过ERD来实现,ERD就是Entity-Relationship Diagram的缩写,中文意思是实体关系图表。这就是说在建模时,需要用图形和表格化的语言来代替传统的文字语言来表达。但,并不是完全没有文字语言,在以后的篇章中会具体来谈这个问题,但现在你需要记住这一点。建模不是靠哪一种语言语法来实现的。就这一点来看,建模和实现在形式上没有关联性。第二,ERD首先是提供给你的“财神爷”——用户,需求调研人员,分析设计人员进行讨论和读取的依据性文档。当然,最终会由数据库编程人员将它实现。所以,它所面向的对象你也要记着。从这一点来看,建模是实现的依据。第三,建模到实现的过程就是概念模型向物理模型进行映射的过程。概念模型和物理模型是什么意思?我想,你应该为自己选过鞋吧?如果你真没选过,现在就赶紧去。当你在各个商家之间徘徊之际,当众多商家向你兜售之时,你总是在寻觅和你想象中一致的物件——大小、样式、颜色等等。你会试穿一下,照照镜子,左转,右转,为的就是心仪它嘛!商家们会不厌其烦地给你拿来一双又一双并说明它的好处。在你脑海中的那双鞋是概念上的,而你买到的是物理上的。商家让你最终选择他的鞋子,就是要让他的物理与你的概念相一致。由此,可以看出,掌握客户的概念是重要的一件事情,这也就是我在上面说的业务需求很重要的原因。概念模型的正确与否决定了物理模型的一切。数据建模就是来讨论概念模型生命周期间的活动,就是“儿童时期”。物理模型就是讨论数据库实施生命周期间的活动,就是“成人时期”。官方的解释是这样的——概念模型的作用在于:1、精确描述企业的信息需求,有助于进行讨论;2、避免错误与误解;3、建立重要的“理想系统”文档;4、为物理数据库设计建立一个完善的基础;5、记录业务过程(也称为“业务规则”);6、考虑管理该行业的规章和法律。

   以上,是把数据建模概述一下,在以后的连载中,还要具体问题具体分析,还有很多细化的问题。现在你应该大致明白我所说的“三岁定八十”的原因了吧!在以后的连载中,你会看到这个“儿童”是如何成长起来的。

原创粉丝点击