数据库设计参考规范.doc
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
数据库设计规范化的五个要求 数据库逻辑设计是优化关系数据库的核心。而数据库设计的规范化则是这个核心的核 心。一个规范化的逻辑数据库,可以为数据库管理员优化数据库和应用程序性能打下坚 实的基础。相反,若逻辑数据库设计不规范,则会损害整个数据库,包括应用程序的性 能。 通常情况下,可以从两个方面来判断数据库是否设计的比较规范。一是看看是否拥 有大量的窄表,二是宽表的数量是否足够的少。若符合这两个条件,则可以说明这个数 据库的规范化水平还是比较高的。当然这是两个泛泛而谈的指标。为了达到数据库设计 规范化的要求,一般来说,需要符合以下五个要求。 要求一:表中应该避免可为空的列 虽然表中允许空列,但是,空字段是一种比较特殊的数据类型。数据库在处理的时 候,需要进行特殊的处理。如此的话,就会增加数据库处理记录的复杂性。当表中有比 较多的空字段时,在同等条件下,数据库处理的性能会降低许多。 所以,虽然在数据库表设计的时候,允许表中具有空字段,但是,我们应该尽量避 免。若确实需要的话,我们可以通过一些折中的方式,来处理这些空字段,让其对数据 库性能的影响降低到最少。 一是通过设置默认值的形式,来避免空字段的产生。 二是若一张表中,允许为空的列比较多,接近表全部列数的三分之一。而且,这些列 在大部分情况下,都是可有可无的。若数据库管理员遇到这种情况,建议另外建立一张 副表,以保存这些列。然后通过关键字把主表跟这张副表关联起来。将数据存储在两个 独立的表中使得主表的设计更为简单,同时也能够满足存储空值信息的需要。 要求二:表不应该有重复的值或者列 如进销存管理中,还需要对客户的联系人进行管理。而一个客户的联系人可能有多 个,为了解决这个问题,有多种实现方式。若设计不合理的话在,则会导致重复的值或 者列。我们可以这么设计,把客户信息、联系人都放入同一张表中。为了解决多个联系 人的问题,可以设置第一联系人、第一联系人电话、第二联系人、第二联系人电话等等 。若还有第三联系人、第四联系人等等,则往往还需要加入更多的字段。 可是这么设计的话,会产生一系列的问题。如客户的采购员流动性比较大,在一年 内换了六个采购员。直接修改又不利于追踪。 所以,在数据库设计的时候要尽量避免这种重复的值或者列的产生。建议,若数据 库管理员遇到这种情况,可以改变一下策略。如把客户联系人另外设置一张表。然后通 过客户ID把供应商信息表跟客户联系人信息表连接起来。也就是说,尽量将重复的值放 置到一张独立的表中进行管理。然后通过视图或者其他手段把这些独立的表联系起来。 要求三:表中记录应该有一个唯一的标识符。 在数据库表设计的时候,数据库管理员应该养成一个好习惯,用一个ID号来唯一的 标识行记录,而不要通过名字、编号等字段来对纪录进行区分。每个表都应该有一个ID 列,任何两个记录都不可以共享同一个ID值。另外,这个ID值最好有数据库来进行自动 管理,而不要把这个任务给前台应用程序。否则的话,很容易产生ID值不统一的情况。 另外,在数据库设计的时候,最好还能够加入行号。ID号是用户不能够维护的。但是 ,行号用户就可以维护。这是在实际应用程序设计中对ID列的一个有效补充。 要求四:数据库对象要有统一的前缀名。 一个比较复杂的应用系统,其对应的数据库表往往以千计。若让数据库管理员看到 对象名就了解这个数据库对象所起的作用,恐怕会比较困难。而且在数据库对象引用的 时候,数据库管理员也会为不能迅速找到所需要的数据库对象而头疼。 建议:在开发数据库之前,最好能够花一定的时间,去制定一个数据库对象的前缀 命名规范。最常用的是根据前台应用程序的模块来定义后台数据库对象前缀名。需要注 意的是,这个命名规范应该在数据库管理员与前台应用程序开发者之间达成共识,并且 严格按照这个命名规范来定义对象名。 其次,表、视图、函数等最好也有统一的前缀。如视图可以用V为前缀,而函数则可 以利用F为前缀。如此数据库管理员无论是在日常管理还是对象引用的时候,都能够在最 短的时间内找到自己所需要的对象。 要求五:尽量只存储单一实体类型的数据。 实体类型跟数据类型不是一回事,要注意区分。如现在有一个图书馆里系统,有图 书基本信息、作者信息两个实体对象。若用户要把这两个实体对象信息放在同一张表中 也是可以的。如可以把表设计成图书名字、图书作者等等。可是如此设计的话,会给后 续的维护带来不少的麻烦。 如当后续有图书出版时,则需要为每次出版的图书增加作者信息,这无疑会增加额 外的存储空间,也会增加记录的长度。而且若作者的情况有所改变,如住址改变了以后 ,则还需要去更改每本书的记录。同时,若这个作者的图书从数据库中全部删除之后, 这个作者的信息也就荡然无存了。很明显,这不符合数据库设
- 粉丝: 83
- 资源: 9357
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助