作者结合自己多年的实践经验,系统阐述了利用ERWin进行数据库建模的思想、方法和注意事项,具有一定实用价值。
ERWin Data Modeler是CA公司的数据库建模工具,目前在关系数据库的设计中,有着比较广泛的应用。笔者经过多年的实践,感觉使用ERWin设计数据库,上手还 是比较快的,但是要在项目中使用好,对于不同的开发环境和不同的项目,在开发的不同阶段使用ERWin,可能采取的最佳策略也不相同。
使用前的准备
1.学习ERWin支持的方法论
ERWin 支持两种方法论,一种是IE(信息工程),另一种是IDEF1X,在使用ERWin之前必须了解其一,不然,将连标记符号也搞不清楚。这里笔者简单谈一下 IDEF1X(详细内容在ERWin的联机文档中有介绍)。IDEF1X为数据模型提供了一种规范的结构,是语义模型化技术,主要描述的对象包括实体、联 系和属性。同时,作为一种工业规范,IDEF1X还强调了对开发上述模型需要的方法。这样,标准化的标记语言和相关的辅助方法论组合在一起,就可以充分保 证设计的高效率和有效性的平衡了。
2.学习ERWin
掌 握了ERWin支持的方法论,并不等于掌握了ERWin,方法论仅仅解决的是逻辑模型,而ERWin还要支持物理模型,还有界面和操作的问题。由于在生成 数据库的过程中,需要对于使用的物理数据库有比较多的了解,所以还一定要了解IDEF1X和目标关系数据库之间的差异,这种差异,可能对于微机平台、小数 据量的应用关系不大,但是对于大型数据库,还是有很多物理的参数、限制等应该了解。
4.确定数据库表、字段的命名规则
确定数据库表、字段的命名规则,看似容易,其实涉及到的方面很多,而且初始阶段一旦没有处理好,以后再改难度比较大。笔者认为,命名宜考虑如下因素:
● 如果新开发的系统是一个大系统的子系统,那么应该考虑原来大系统的数据库、字段命名的规则,即使这样的规则存在问题,也要在取得 1 2 3 : ERWin Data Modeler是CA公司的数据库建模工具,目前在关系数据库的设计中,有着比较广泛的应用。本文系统阐述了利用ERWin进行数据库建模的思想、方法和注意事项,具有一定实用价值。
1.用好Domain
Domain 的概念有点像是属性的数据类型,笔者的体会是,如果不打算使用Domain,则不要增加任何Domain,都用ERWin提供的默认值; 如果打算使用Domain,则应该对于每一类数据等同的属性建立一个Domain,而且在修改数据类型的时候,仅仅修改Domain中的内容。总体来看, 使用Domain虽然可能增加一些工作量,但是可以建立所有属性数据类型的定义树。
2. 用好Definition
Definition和Domain不同,不是一个可操作的实体,而是在每一个Domain,每一个实体和属性中的一个标签。在Domain、实体和属性的建立和修改过程中,正确地维护Definition,是能够随时得到文本数据结构说明的一种有效的方法。
3. 处理好键值组命名
采 用自己方便和清晰、又能为实现环境所接受的键值组命名。其中,对于主键、次键、外键和单独建立的可重复索引,应该进行区分,因为对银行等行业的多应用交互 的大型、复杂的运行环境,如果不加以关注,可能在投产后的系统管理中造成很多麻烦。实际上,ERWin对于上述的键名称和索引,在命名的时候是有所区分 的,应该充分利用这种区分,在满足环境的情况下,可以直接使用ERWin给出的命名。
对于外键的命名,在逻辑 模型中,体现为关系的命名。ERWin默认的做法是用一个内部连续的编号,这样可以做到保证命名的惟一,但是并不清晰。在实际工作中,笔者发现,父实体对 于子实体往往是包含关系,尤其是对于代码类的父实体,更是如此。因此,笔者采用了“子实体3父实体”的方式,其中“子实体”和“父实体”都可以是实体名称 的缩写,而“3”的意义是借用了其字形比较像数学中的属于符号的含义。这样,实际上是对IDEF1X一种变形的应用,这个短句包括父实体、动词和子实体, 而动词永远是“属于”。
4. 充分利用Subject
对于大型的应用,可以用Subject来关注某些方面的内容。可以仅仅将感兴趣的实体放入Subject中进行处理,而且还可以按照Subject来产生建表的脚本。对于图形布局来说,各个Subject是相互独立的。笔者在以下的两种情况下经常使用Subject:
● 从业务逻辑分析问题的时候。对于某一个角度,可能往往仅仅涉及到部分表,为了充分利用图形来描述实体间的关系,将这些相关的实体放入一个Subject中,然后用手工进行图形的布局。
● 对于工作表和历史数据表,往往具有基本相同的数据结构,但是历史数据表还要增加一些历史纪录信息。一般不论是由ERWin自动进行版面布局还是自己根据需 要进行的版面布局,很难将工作表和历史数据表放在一起,而在修改时,这两个表最好是一起修改,不然如果出现不一致的问题就相当麻烦了。
5. 谨慎使用参照完整性
在关系数据库中,提供了参照完整性的概念,利用好参照完整性,可以保持应用数据的高度一致性,但一定要谨慎使用。一般来说,实现参照完整性有三种方法,第一种是使用数据库的触发器; 第二种是使用数据库的外键; 第三种是使用应用逻辑。
对 于使用数据库的触发器,这种方法有着最大的灵活性。触发器是由数据库的引擎控制的,只要数据库的引擎不出问题,那么触发器就总是有效的,除非人工关闭触发 器,否则数据的一致性可以得到最大的保证。但是这样也会引入两个问题: 对于数据的修改没有痕迹,如果是误操作,那后果是不堪设想的; 对于一些联机交易系统,所有的交易必须快速响应,如果采用这样的触发器,系统的响应时间就会变得太长。 9 1 2 3 : ERWin Data Modeler是CA公司的数据库建模工具,目前在关系数据库的设计中,有着比较广泛的应用。本文系统阐述了利用ERWin进行数据库建模的思想、方法和注意事项,具有一定实用价值。







评论列表