版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 用ERWin创建数据库模型项目名称: 用ERWin创建数据库模型项目组成员: 王名荃 0443111075唐 姝 0443111358刘彦希 0443084132指导老师: 尹 浩提交时间: 2007 年 5 月 1 3 号 用ERWin创建数据库模型ERWin Data Modeler是CA公司的数据库建模工具,目前在关系数据库的设计中,有着比较广泛的应用。感觉使用ERWin设计数据库,上手还是比较快的,但是要在项目中使用好,对于不同的开发环境和不同的项目,在开发的不同阶段使用ERWin,可能采取的最佳策略也不相同。 1学习ERWin支持的方法论 ERWin支持两种方法论,一种是IE(信息
2、工程),另一种是IDEF1X,在使用ERWin之前必须了解其一,不然,将连标记符号也搞不清楚。IDEF1X为数据模型提供了一种规范的结构,是语义模型化技术,主要描述的对象包括实体、联系和属性。同时,作为一种工业规范,IDEF1X还强调了对开发上述模型需要的方法。这样,标准化的标记语言和相关的辅助方法论组合在一起,就可以充分保证设计的高效率和有效性的平衡了。 2学习ERWin 掌握了ERWin支持的方法论,并不等于掌握了ERWin,方法论仅仅解决的是逻辑模型,而ERWin还要支持物理模型,还有界面和操作的问题。由于在生成数据库的过程中,需要对于使用的物理数据库有比较多的了解,所以还一定要了解ID
3、EF1X和目标关系数据库之间的差异,这种差异,可能对于微机平台、小数据量的应用关系不大,但是对于大型数据库,还是有很多物理的参数、限制等应该了解。ERwin工具绘制的模型对应于逻辑模型和物理模型两种。在逻辑模型中,IDEF1X工具箱可以方便地用图形化地方式构建和绘制实体联系及实体的属性。在物理模型中,ERwin可以定义对应的表、列,并可针对各种数据库管理系统自动转换为适当的类型。2.1注意:2.1.1确定数据库表、字段的命名规则 确定数据库表、字段的命名规则,看似容易,其实涉及到的方面很多,而且初始阶段一旦没有处理好,以后再改难度比较大。笔者认为,命名宜考虑如下因素: 如果新开发的系统是一个大
4、系统的子系统,那么应该考虑原来大系统的数据库、字段命名的规则,即使这样的规则存在问题,也要在取得共识的基础上进行改进。 考虑开发和运行工具的限制要求,以及生产系统的限制要求。 在可能的情况下,应考虑匈牙利命名法。对于应用系统,往往对于数据是有分类的,如果能够把这些分类体现在数据库表名和字段名中,则是有益无害的。 字段名保持惟一能够避免一些不小心导致的对数据库字段的使用错误。 2.1.2对数据库表进行分类 对于数据库表进行分类,能够使数据库更加清晰,也便于系统管理。根据笔者的体会,对于每一类数据库表,如果允许,可以按照匈牙利命名法的规则规定一个特征标记,可以是前缀也可以是后缀。 2.2建立数据库
5、的逻辑模型 ERWin作为一个建模工具,引进了一些概念和工具,这些概念和工具往往贯穿于逻辑模型和物理模型中。但是这些方面如果在逻辑模型中处理不好,到了物理模型的阶段也往往木已成舟,没有办法了。 用好Domain Domain的概念有点像是属性的数据类型,笔者的体会是,如果不打算使用Domain,则不要增加任何Domain,都用ERWin提供的默认值; 如果打算使用Domain,则应该对于每一类数据等同的属性建立一个Domain,而且在修改数据类型的时候,仅仅修改Domain中的内容。总体来看,使用Domain虽然可能增加一些工作量,但是可以建立所有属性数据类型的定义树。 2.2.2 用好Def
6、inition Definition和Domain不同,不是一个可操作的实体,而是在每一个Domain,每一个实体和属性中的一个标签。在Domain、实体和属性的建立和修改过程中,正确地维护Definition,是能够随时得到文本数据结构说明的一种有效的方法。 2.2.3 处理好键值组命名 采用自己方便和清晰、又能为实现环境所接受的键值组命名。其中,对于主键、次键、外键和单独建立的可重复索引,应该进行区分,因为对银行等行业的多应用交互的大型、复杂的运行环境,如果不加以关注,可能在投产后的系统管理中造成很多麻烦。实际上,ERWin对于上述的键名称和索引,在命名的时候是有所区分的,应该充分利用这种
7、区分,在满足环境的情况下,可以直接使用ERWin给出的命名。 对于外键的命名,在逻辑模型中,体现为关系的命名。ERWin默认的做法是用一个内部连续的编号,这样可以做到保证命名的惟一,但是并不清晰。在实际工作中,笔者发现,父实体对于子实体往往是包含关系,尤其是对于代码类的父实体,更是如此。因此,笔者采用了“子实体3父实体”的方式,其中“子实体”和“父实体”都可以是实体名称的缩写,而“3”的意义是借用了其字形比较像数学中的属于符号的含义。这样,实际上是对IDEF1X一种变形的应用,这个短句包括父实体、动词和子实体,而动词永远是“属于”。 2.2.4 充分利用Subject 对于大型的应用,可以用S
8、ubject来关注某些方面的内容。可以仅仅将感兴趣的实体放入Subject中进行处理,而且还可以按照Subject来产生建表的脚本。对于图形布局来说,各个Subject是相互独立的。笔者在以下的两种情况下经常使用Subject: 从业务逻辑分析问题的时候。对于某一个角度,可能往往仅仅涉及到部分表,为了充分利用图形来描述实体间的关系,将这些相关的实体放入一个Subject中,然后用手工进行图形的布局。 对于工作表和历史数据表,往往具有基本相同的数据结构,但是历史数据表还要增加一些历史纪录信息。一般不论是由ERWin自动进行版面布局还是自己根据需要进行的版面布局,很难将工作表和历史数据表放在一起,
9、而在修改时,这两个表最好是一起修改,不然如果出现不一致的问题就相当麻烦了。 2.2.5 谨慎使用参照完整性 在关系数据库中,提供了参照完整性的概念,利用好参照完整性,可以保持应用数据的高度一致性,但一定要谨慎使用。一般来说,实现参照完整性有三种方法,第一种是使用数据库的触发器; 第二种是使用数据库的外键; 第三种是使用应用逻辑。 对于使用数据库的触发器,这种方法有着最大的灵活性。触发器是由数据库的引擎控制的,只要数据库的引擎不出问题,那么触发器就总是有效的,除非人工关闭触发器,否则数据的一致性可以得到最大的保证。但是这样也会引入两个问题: 对于数据的修改没有痕迹,如果是误操作,那后果是不堪设想
10、的; 对于一些联机交易系统,所有的交易必须快速响应,如果采用这样的触发器,系统的响应时间就会变得太长。 对于使用数据库的外键,这种方法相当于设置了一个子表,对于父表不存在的内容,子表不能插入,也不能修改,但是对父表却没有约束。这种方法,在起作用范围内,效率还是比较高的。 对于系统环境不允许使用触发器的情况,或者对于错误定位要求比较明确以致超出外键能够报告的详细程度的情况,就要使用应用逻辑了。使用应用逻辑实际上可能效率会低于外键,而且由于数据库本身已经没有了控制机制,所以对于应用逻辑的错误或者绕开了应用逻辑的情况,是没有办法保证数据一致性的。 2.3处理数据库的物理模型 实际上,在建立数据库逻辑
11、模型的过程中,物理模型就也已经建立了。但是,在处理数据库的物理模型时,仍旧有一些方面要给与特殊的关注。 2.3.1 要特别关注逻辑模型到物理模型的映射关系 IDEF1X的实体名对应数据库的表名,属性名对应字段名,关系名对应约束名,外键名对应索引名。这些似乎全部是自动完成的。但是,如果对于Domain使用不当,有可能形成两者不一致的情况,这时,要在改了逻辑名之后,看一下物理名是否也正确。 另外,在逻辑模型中,数据类型是比较丰富的,对应到了物理模型,要看看到底是不是需要的数据类型。 还有一点要说明的是,即使在物理模型中,在图中显示字段的次序按照列(Column)和按照物理次序是不同的。如果编写程序
12、时,使用的是“Select *”之类的用法,想看到字段的物理次序,一定要在物理模型中将“Format”菜单中的“Display Level”选项设为“Physical Order”。 需要定义所使用的目标数据库涉及到的物理参数 使用ERWin的优点,就是最终能够做到产生的脚本能够实现完全等价的人工配置,换句话说,ERWin也能够成为DBA的工具。不同的数据库,对于建库脚本中需要的物理参数差异比较大,为了合理地定义参数,开发部门应该与系统管理部门协商,定义参数应该尽量按照继承的方式进行,便于统一协调和管理。 正确选择正向工程的选项 ERWin的正向工程,也就是根据物理模型联机建立数据库表或者生成
13、DDL脚本,有很多选项,这些选项的正确选择十分重要,如果选择不当,即使辛辛苦苦做出一个符合要求的模型,建立的数据库却可能是不对的。为此,笔者有如下几点经验: 对于正向工程可能的选项,决不能想当然,在更换了数据库,甚至升级了数据库的版本后,都应该认真地审查一下选项是否正确。 对于正向工程在生成时的选项必须认真斟酌,从生成的脚本中,判断每一个选项的作用。 ERWin可以生成的索引包括主键索引、替换键索引、非惟一索引和外键索引四类。一般来说,主键、次键都是需要的,而非惟一索引是根据业务需要加上去的,一般也会需要。外键索引则首先要看是否在物理模型中使用了外键,其次要看是否根据外键进行检索,再次还要看是
14、否外键的索引就是主键的索引。 ERWin在默认的情况下,是不按照用户定义的约束名来产生DDL脚本的,如果想按照用户定义的约束名产生DDL脚本,应该在正向工程的“Other Option”选项中,选中“Constraint Name”。 逆向工程的一种使用方法 逆向工程能够从一个现有生产库或者数据库的脚本中产生ERWin的物理和逻辑模型,但是,据笔者的体会,逆向工程产生的结果,一般无法判定各个实体之间的关系,也就是说,实际上是一个一个的表,视图也可以产生出来。 逆向工程的一个用途,就是在有十分严格的系统管理,往往不接受指定格式的数据库维护需求的情况下,当提交了更改需求后,可以向DBA请求其操作的
15、DDL脚本,据此生成模型,进行模型级的全面比较。由于比较的时候,可以指定比较的内容,所以可以找到很多手工难以发现的差错。 充分利用全面比较功能 对于数据库已经投产后,需要带着数据进行数据库升级的情况,使用全面比较是一种可行的方法。在全面比较时,既可以看到两个版本的全部差异,也可以实现两个版本中的一个向一个靠拢,或者两个版本的合并。需要注意的是,由于目前版本的ERWin还不能指定生成全面比较的DDL脚本与正向工程对应的选项,所以对于生成的DDL脚本,还是应该进行一定的手工验证的。 自数据库的设计开始,对于每一次数据库的更改,均记录相应的版本,然后使用全面比较确定差异,这样可以有效地减少出现错误的
16、概率。即使已经确定使用产生全部新表的方式重建数据库,也应进行全面比较,以确定是否改动了所要改动的,并且没有改动所不要改动的。 3使用Erwin3.1安装Erwin,由于支持很多种数据库,如图,所以要安装一个数据库,我选择的是Microsofte的SQL Server20003.2构思数据库假设我们要设计一个数据库有三个表。学生表: Student(Sno,Sname,Ssex,Sage,Sdept)Student 由学号(Sno),姓名(Sname),性别(Ssex),年龄(Sage),所在的院系()五个属性组成,其中的Sno是主键.课程表: Course(Cno,Cname,Cpno,Ccr
17、edit)Course 有课程号(Cno),课程名(Cname),选修课号(Cpno),学分(Ccredit)四个属性构成,其中Cno是主键学生选课表:SC(Sno,Cno,Grade)SC由学号(Sno),课程号(Cno),成绩(Grade)三个属性构成,其中主键(Sno,Cno)3.3新建一个模型点击File>New,选择Logical/Physical模型,在选择我们使用的数据库SQL Server,版本是2000.3.4使用Toolbar, Toolbox画出ER图3.5Identifying Relationship3.6切换模型 刚才是在逻辑模型下面,点击memu下的physical切换到物理模型下。3.7 ERWIN连接数据库 点击select Target Server ,选择sqlserver 20003.7.2连接SQL Server 2000,输入数据库服务器的名字,帐号,秘密点击Forward Engineer ,正向工程点击那个Click Preview。可以看到ERwin生成的sql代码,另
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年主管护师职称考试真题及答案解析试卷
- 2026年银行业专业人员中级职业资格考试(专业实务风险管理)模拟题库及答案南充
- 2026年投资管理专员笔试考试题库含答案
- 2026年全国房地产估价师考试(房地产估价原理与方法)历年参考题库含答案
- 2026年(智慧健康养老服务与管理)老年社会工作试题及答案
- 中国医药制造行业分析
- 年佛山市八年级地理生物会考考前冲刺卷(含实验探究、区域分析与答案详解)
- 2026年物流合作框架协议函(7篇范文)
- 关于加强年度供应商考核的通知函(3篇)
- 社区志愿人员培训指导书
- 《化学(医药卫生类)》高职全套教学课件
- 模板工程风险辨识及防范措施
- 神经生理实验设计
- 军团菌感染的诊断与治疗
- 变电站直流系统蓄电池更换改造
- 2023年鄂尔多斯市鄂托克旗招聘中小学教师考试笔试押题库
- 2022年湖北省普通高中学业水平合格性考试政治试题
- 第三篇船舶电气系统的组成
- 二年级数学无纸化监测试题
- 地理信息安全在线培训考试系统题库
- 盆底重建手术治疗新进展概要
评论
0/150
提交评论