实体联系图

3.4 实体-联系图

    为了把用户的数据要求请楚、准确地描述出来,系统分析员通常建立一个概念性的数据模型(也称
为信息模型),概念性数据模型是一种面向问题的数据模型,是按照用户的观点对数据建立的模型,它描述了
从用户角度看到的数据,它反映了用户的现实环境,而且与在软件系统中的实现方法无关。
    数据模型中包含3种相互关联的信息:数据对象、数据对象的属性及数据对象彼此间相互连接的
关系。

3.4.1 数据对象
    数据对象是对软件必须理解的复合信息的抽象,所谓复合值息是指具有一系列不同性质或属性的
事物,仅有单个值的事物(例如,宽度)不是数据对象。
    数据对象可以是外部实体(例如,产生或使用信息的任何事物),事物(例如,报表),行为(例如,打
电话),事件(例如,响警报),角色(例如,数师、学生)、单位(例如,会计科),地点(例如,仓库)或结构(例如,
文件)等,总之,可以由一组图性来定义的实体都可以被认为是数据对象。
    数留对象此间是有关联的,例如,教师“教”课程,学生“学”课程,教或学的关系表师和课程或学
生和课程之间的一种特定的连接。
    数据对象只封装了数据而没有对施加于数据上的操作的引用,这是数据对象与面向对象范型中的
“类”成“对象“的显著区别。

3.4.2 属性
    属性定义了数据对象的性质。必须把一个或多个属性定义为“标识符”,也就是说,当人们希望找
到数据对象的一个实例时,用标识符属性作为“关键字”(通常简称为”键”)。
    应该根据对所要解决的问题的理解,来确定特定数据对象的一组合适的属性。例如为了开发机动
车管理系统,描述汽车的属性应该是生产厂商、品牌、型号、发动机号码、车体类型,颜色,车主姓名、住
址,驾驶证号码,生产日期及购买日等,但是,为了开发设计汽车的CAD系统,用上述这些属性描述汽车就不合
适了,其中车主姓名、住址、驾驶证号码、生产目期和购买日期等属性应该删去,而描述汽车技术指标的大
量属性应该添加。

3.4.3 联系
    客观世界中的事物被此间往柱是有联系的,例如,教师与课程间存在“教”这种联系,学生与课程
间则存在“学”这种联系数据对象此之间相互连接的方式称为联系,也称为关系,联系可分为以下3种类型

(1)一对一联系(1:1)
    例如,一个部门有一个经理,而每个经理只在一个部门任职,则部门与经理的联系是一对一的。
(2)一对多联系(1:N)
    例如,某校教师与课程之间存在一对多的联系“教”,即每位教师可以教多门课程,但每门课程只
能由一位教师来教
(3)多对多联系(M:N)
    学生与课程间的联系(“学”)是多对多的。即一个学生可以学多门课程,而每门课程可以有多
个学生来学。
    联系也可能有属性,例如,学生“学某门课程所取得的成绩,既不是学生的属性也不是课程的属性
。由于”成绩”既依赖于某名特定的学生又依赖某门特定的课程,所是它是学生与课程之间的联系“学”
的属性。

3.4.4 实体-联系图的符号
    通常,使用实体联系图( entity-relationship diagram)来建立数据,可以把实体联系图简称为ER
图,相应地可把用ER图描绘的数据模型称为ER模型。
    ER图中包含了实体(即数据对象),关系和属性3种基本成分,通常用距形框代表实体,用连接相关实
体的菱形框表示关系,用椭图形或图角矩型表示实体(关系)的属性,并用直线把实体(或关系)与其属性建接
起来。(这里有其它表示)
    人们通常就是用实体,联系和属性这3个概念来理解现实问能的,因比,ER模型比较接近人的习惯思
维方式。此外,ER模型使用简单的图形符号表达系统分析员对问题域的理解,不熟悉看计算机技术的用户也
能理解它,因此,ER模型可以作为用户与分析员之间有效的交流工具。

3.5 数据规范化
    软件系统经常使用各种长期保存的信息,这些信息通常以一定方式组织并存储在数据库或文件中,
为减少数据冗余,避免出现插入异常或删除异常,简化修改数据的过程,通常需要把数据结构规范化。
    通常用“范式( normal forms)”定义消除数据冗余的程度。第一范式(1NF)数据冗余程度最大。
第五范式(5NF)冗余程度最小。但是。第一,范式级别越高。存储同样数据就需要分解成更多张表,因此,
“存储自身”的过程也就越复杂,第二,随着范式级别的提高,数据的存储结构与基于问题域的结构间的匹
配程度也随之下降,因此,在需求变化时数据的稳定性较差,第三,范式级别提高则需要访问的表增多,因此
性能(速度)将下降。从实用角度看来,在大多数场合选用第三范式都比较恰当。
    通常按照属性间的依赖情况区分规范化的程度。属性间依赖情况满足不同程度要求的为不同范式
,满足最低要求的是第一范式,在第一范式中再进一步满足一些要求的为第二范式,其余依此类推。下面给
出第一、第二和第三范式的定义
(1)第一范式 每个属性值都必须是原子值,即仅仅是一个简单值而不含内部结构
(2)第二范式 满足第一范式条件,而且每个非关键字属性都由整个关键字决定(而不是由关键字的一部分来
决定)
(3)第三范式 符合第二范式的条件,每个非关键字属性都仅由关键字决定,面且一个非关键字属性不能仅仅
是对另一个非关键字属性的进一步描述(即一个非关键字属性值不依赖于另一个非关键字属性值)。
 

你可能感兴趣的:(软件工程,软件工程)