为了把用户的数据要求清楚、准确地描述出来,系统分析员通常建立一个概念性的数据模型(也称为信息模型)。概念性数据模型是一种面向问题的数据模型,是按照用户的观点对数据建立的模型。它描述了从用户角度看到的数据,它反映了用户的现实环境, 而且与在软件系统中的实现方法无关。
数据模型中包含3种相互关联的信息:数据对象、数据对象的属性及数据对象彼此间相互连接的关系。
1 数据对象
数据对象是对软件必须理解的复合信息的抽象。所谓复合信息是指具有一系列不同性质或属性的事物,仅有单个值的事物(例如、宽度)不是数据对象。
数据对象可以是外部实体(例如,产生或使用信息的任何事物)、事物(例如,报表)、行为(例如,打电话)、事件(例如,响警报)、角色(例如,教师、学生)、单位(例如,会计科)、地点(例如,仓库)或结构(例如,文件)等。总之,可以由一组属性来定义的实体都可以被认为是数据对象。
数据对象彼此间是有关联的,例如,教师“教”课程,学生“学”课程,教或学的关系表示教师和课程或学生和课程之间的一种特定的连接。
数据对象只封装了数据而没有对施加于数据上的操作的引用,这是数据对象与面向对象范型中的“类"或“对象”的显著区別。
2 属性
属性定义了数据对象的性质。必须把一个或多个属性定义为“标识符”,也就是说,当人们希望找到数据对象的一个实例时,用标识符属性作为“关键字”(通常简称为“键”)。
应该根据对所要解决的问题的理解,来确定特定数据对象的一组合适的属性。例如, 为了开发机动车管理系统,描述汽车的属性应该是生产厂、品牌、型号、发动机号码、车体类型、颜色、车主姓名、住址、驾驶证号码、生产日期及购买日期等。但是, 为了开发设计汽车的CAD系统,用上述这些属性描述汽车就不合适了,其中车主姓名、住址、驾驶证号码、生产日期和购买日期等属性应该删去,而描述汽车技术指标的大量属性应该添加进来。
3 联系
客观世界中的事物彼此间往往是有联系的。例如,教师与课程间存在“教”这种联系, 而学生与课程间则存在“学"这种联系。
数据对象彼此之间相互连接的方式称为联系,也称为关系。联系可分为以下3种类型。
(1) 一对一联系(1:1)
例如, 一个部门有一个经理,而每个经理只在一个部门任职,则部门与经理的联系是一对一的。额
(2) 一对多联系(1:N)
例如, 某校教师与课程之间存在一对多的联系“教”,即每位教师可以教多门课程,但是每门课程只能由一位教师来教。
(3) 多对多联系(M:N)
例如,图表示学生与课程间的联系(“学”)是多对多的,即一个学生可以学多门课程,而每门课程可以有多个学生来学。
某校教学管理ER图
联系也可能有属性。例如,学生“学”某门课程所取得的成绩,既不是学生的属性也不是课程的属性。由于“成绩”既依赖于某名特定的学生又依赖于某门特定的课程,所以它是学生与课程之间的联系“学"的属性。
4 实体-联系图的符号
通常,使用实体-联系图(entity-relationship diagram)来建立数据模型。可以把实体-联系图简称为 ER图,相应地可把用ER图描绘的数据模型称为ER模型。
ER图中包含了实体(即数据对象)、关系和属性3种基本成分,通常用矩形框代表实体.用连接相关实体的菱形框表示关系,用椭圆形或圆角矩形表示实体(或关系)的属性,并用直线把实体(或关系)与其属性连接起来。例如,图是某学校教学管理的ER图。
人们通常就是用实体、联系和属性这3个概念来理解现实问题的, 因此, ER模型比较接近人的习惯思维方式。此外, ER模型使用简单的图形符号表达系统分析员对问题域的理解,不熟悉计算机技术的用户也能理解它, 因此, ER模型可以作为用户与分析员之间有效的交流工具。