专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 开发方法

怎样画E-R图,该如何处理

发布时间:2011-06-18 09:23:44 文章来源:www.iduyao.cn 采编人员:星星草
怎样画E-R图
软件工程中的E-R图怎样画呢?能举个例子吗?在画的过程中应该注意些什么呢?它和数据库的E-R图是不是一样呢?谢谢您的关注与解答!

------解决方案--------------------
以自底向上设计概念结构的方法为例,它通常分为两步:
第一步:首先要根据需求分析的结果(数据流图、数据字典等)对现实世界的数据进行抽象,
设计各个局部视图即分E-R图。
第二步:集成局部视图。
概念结构是对现实世界的一种抽象,一般有三种抽象:
⑴分类 ( is member of )
⑵聚集 ( is part of)
⑶概括 (is subset of )
设计分E-R图的步骤是:⑴选择局部应用
在需求分析阶段,通过对应用环境和要求进行详尽的调查分析,用多层数据流图和数据字典描述了整个系统。
设计分E-R图的第一步,就是要根据系统的具体情况,在多层的数据流图中选择一个适当层次的(经验很重要)数据流图,让这组图中每一部分对应一个局部应用,我们即可以以这一层次的数据流图为出发点,设计分E-R图。
一般而言,中层的数据流图能较好地反映系统中各局部应用的子系统组成,因此人们往往以中层数据流图作为设计分E-R图的依据
⑵逐一设计分E-R图
每个局部应用都对应了一组数据流图,局部应用涉及的数据都已经收集在数据字典中了。现在就是要将这些数据从数据字典中抽取出来,参照数据流图, <1> 标定局部应用中的实体, <2> 实体的属性、标识实体的码, <3> 确定实体之间的联系及其类型(1:1、1:n、m:n)。
<1> 标定局部应用中的实体
现实世界中一组具有某些共同特性和行为的对象就可以抽象为一个实体。对象和实体之间是 "is member of "的关系。例如在学校环境中,可以把张三、李四、王五等对象抽象为学生实体。
对象类型的组成成分可以抽象为实体的属性。组成成分与对象类型之间是 "is part of "的关系。例如学号、姓名、专业、年级等可以抽象为学生实体的属性。其中学号为标识学生实体的码。
<2> 实体的属性、标识实体的码
实际上实体与属性是相对而言的,很难有截然划分的界限。同一事物,在一种应用环境中作为 "属性 ",在另一种应用环境中就必须作为 "实体 "。一般说来,在给定的应用环境中:
⑴属性不能再具有需要描述的性质。即属性必须是不可分的数据项。
⑵属性不能与其他实体具有联系。联系只发生在实体之间。
<3> 确定实体之间的联系及其类型(1:1、 1:n、 m:n)。
根据需求分析,要考察实体之间是否存在联系,有无多余联系
(二)、 合并分E-R图,生成初步E-R图。
各分E-R图之间的冲突主要有三类:属性冲突、命名冲突和结构冲突。
1.属性冲突 (1) 属性域冲突,即属性值的类型、取值范围或取值集合不同。
例如:属性“零件号”有的定义为字符型,有的为数值型。
(2) 属性取值单位冲突。 例如:属性“重量”有的以克为单位,有的以公斤为单位。
2.命名冲突 (1) 同名异义。 不同意义对象相同名称。
(2) 异名同义(一义多名)。同意义对象不相同名称。“项目”和“课题”
3.结构冲突
(1) 同一对象在不同应用中具有不同的抽象。例如 "课程 "在某一局部应用中被当作实体,而在另一局部应用中则被当作属性。
(2) 同一实体在不同局部视图中所包含的属性不完全相同,或者属性的排列次序不完全相同。
(3) 实体之间的联系在不同局部视图中呈现不同的类型。
例如实体E1与E2在局部应用A中是多对多联系,而在局部应用B中是一对多联系;又如在局部应用X中E1与E2发生联系,而在局部应用Y中E1、E2、E3三者之间有联系。
解决方法是根据应用的语义对实体联系的类型进行综合或调整。
(三).修改与重构,生成基本E-R图
分E-R图经过合并生成的是初步E-R图。之所以称其为初步E-R图,是因为其中可能存在冗余的数据和冗余的实体间联系,即存在可由基本数据导出的数据和可由其他联系导出的联系。冗余数据和冗余联系容易破坏数据库的完整性,给数据库维护增加困难,因此得到初步E-R图后,还应当进一步检查E-R图中是否存在冗余,如果存在,应设法予以消除。修改、重构初步E-R图以消除冗余,主要采用分析方法。除此外,还可以用规范化理论来消除冗余。


友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

  • UML建模表示系统(框架)可扩展性解决思路

    UML建模表示系统(框架)可扩展性 求解:如何在UML中表示系统或者开发框架的可扩展性? ------解决方案-------------------- 你的问题...

  • 实体类应该有增删改查的Operation么?解决办法

    实体类应该有增删改查的Operation么? 我们正在设计一个系统,他们说实体类都要实现增删改查的方法。 理由是以面向对象开发为模式,那...

  • 需求说明书该不该写的很详细?解决方案

    需求说明书该不该写的很详细? 需求说明书一般都是这样写的: 6.3.2.3参数设置 设置系统运行需要的基本参数配置。 系统配置参数如...

  • UML书籍推荐解决办法

    UML书籍推荐 各位兄台: 我最近由于工作原因,需要进行如下工作: 1、用户需求到产品需求的转换,根据产品业务抽取业务模型,制...

  • 用labview模拟cpu解决思路

    用labview模拟cpu 我刚学习微型计算机原理,同时又接触了labview,看到微型计算机的基本原理结构,有了用labview模拟其工作原理的想法...

  • 软件接口标准有哪些?解决方法

    软件接口标准有哪些? 一般来说,接口遵循的标准应该不是指设计原则之类的吧?如,单一职责原则 - Single Responsibility Principle(SRP)...

  • 请问,找几本设计模式方面的经典书,大家推荐下

    请教,找几本设计模式方面的经典书,大家推荐下 请教,找几本设计模式方面的经典书,大家推荐下 ------解决方案-------------------- 偶...

  • 从数据流图导出模块结构图,该如何处理

    从数据流图导出模块结构图 本例是来自张海藩编著的《软件工程导论》第五版第5章P112中关于事务分析的映射方法。 数据流图如下 结...

  • C写的软件代码怎么实现

    C写的软件代码如何实现 应用软件的结构框架是。。。。。,谁能说下,我是菜鸟,特地来此请教 ------解决方案-------------------- 超...

  • 啊解决思路

    啊? 什么是云计算?学那个难不难? ------解决方案-------------------- 云计算的定义LZ自己百度吧,不管什么,只要自己想学,并下定决心...

热门推荐: