作者结合自己多年的实践经验,系统阐述了利用ERWin进行数据库建模的思想、方法和注意事项,具有一定实用价值。
ERWin Data Modeler是CA公司的数据库建模工具,目前在关系数据库的设计中,有着比较广泛的应用。笔者经过多年的实践,感觉使用ERWin设计数据库,上手还 是比较快的,但是要在项目中使用好,对于不同的开发环境和不同的项目,在开发的不同阶段使用ERWin,可能采取的最佳策略也不相同。
使用前的准备
1.学习ERWin支持的方法论
ERWin 支持两种方法论,一种是IE(信息工程),另一种是IDEF1X,在使用ERWin之前必须了解其一,不然,将连标记符号也搞不清楚。这里笔者简单谈一下 IDEF1X(详细内容在ERWin的联机文档中有介绍)。IDEF1X为数据模型提供了一种规范的结构,是语义模型化技术,主要描述的对象包括实体、联 系和属性。同时,作为一种工业规范,IDEF1X还强调了对开发上述模型需要的方法。这样,标准化的标记语言和相关的辅助方法论组合在一起,就可以充分保 证设计的高效率和有效性的平衡了。
2.学习ERWin
掌 握了ERWin支持的方法论,并不等于掌握了ERWin,方法论仅仅解决的是逻辑模型,而ERWin还要支持物理模型,还有界面和操作的问题。由于在生成 数据库的过程中,需要对于使用的物理数据库有比较多的了解,所以还一定要了解IDEF1X和目标关系数据库之间的差异,这种差异,可能对于微机平台、小数 据量的应用关系不大,但是对于大型数据库,还是有很多物理的参数、限制等应该了解。
4.确定数据库表、字段的命名规则
确定数据库表、字段的命名规则,看似容易,其实涉及到的方面很多,而且初始阶段一旦没有处理好,以后再改难度比较大。笔者认为,命名宜考虑如下因素:
● 如果新开发的系统是一个大系统的子系统,那么应该考虑原来大系统的数据库、字段命名的规则,即使这样的规则存在问题,也要在取得共识的基础上进行改进。
● 考虑开发和运行工具的限制要求,以及生产系统的限制要求。
● 在可能的情况下,应考虑匈牙利命名法。对于应用系统,往往对于数据是有分类的,如果能够把这些分类体现在数据库表名和字段名中,则是有益无害的。
● 字段名保持惟一能够避免一些不小心导致的对数据库字段的使用错误。
5.对数据库表进行分类
对于数据库表进行分类,能够使数据库更加清晰,也便于系统管理。根据笔者的体会,对于每一类数据库表,如果允许,可以按照匈牙利命名法的规则规定一个特征标记,可以是前缀也可以是后缀。
建立数据库的逻辑模型
ERWin作为一个建模工具,引进了一些概念和工具,这些概念和工具往往贯穿于逻辑模型和物理模型中。但是这些方面如果在逻辑模型中处理不好,到了物理模型的阶段也往往木已成舟,没有办法了。
1.用好Domain
Domain 的概念有点像是属性的数据类型,笔者的体会是,如果不打算使用Domain,则不要增加任何Domain,都用ERWin提供的默认值; 如果打算使用Domain,则应该对于每一类数据等同的属性建立一个Domain,而且在修改数据类型的时候,仅仅修改Domain中的内容。总体来看, 使用Domain虽然可能增加一些工作量,但是可以建立所有属性数据类型的定义树。
2. 用好Definition
Definition和Domain不同,不是一个可操作的实体,而是在每一个Domain,每一个实体和属性中的一个标签。在Domain、实体和属性的建立和修改过程中,正确地维护Definition,是能够随时得到文本数据结构说明的一种有效的方法。