购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.3.1 数据建模

数据模型包括数据对象、对象属性、对象间关系 3 种互相关联的信息。数据建模要回答与任何数据处理应用相关的一组特定问题,如系统处理哪些主要的数据对象,每个数据对象的组成如何,哪些属性描述了这些对象,这些对象当前位于何处,每个对象与其他对象有哪些关系,对象和变换它们的处理之间有哪些关系。

1.数据对象

数据对象是需要被目标系统所理解的复合信息的表示,所谓复合信息是具有若干不同特征或属性的信息。数据对象可以是外部实体(如显示器)、事物(如报表或显示)、角色(如教师或学生)、行为(如一个电话呼叫)或事件(如单击鼠标左键)、组织单位(如研究生院)、地点(如注册室)、结构(如文件)。

数据对象只封装了数据,没有包含作用于这些数据上的操作。这与面向对象开发方法中的类和对象不同。具有相同特征的数据对象组成的集合仍然称为数据对象,其中的某一个对象称为该数据对象的一个实例。

2.对象属性

属性定义了数据对象的特征。它可用来:

(1)为数据对象的实例命名。

(2)描述这个实例。

(3)建立对另一个数据对象的另一个实例的引用。

如学生数据对象的属性可以有学号、姓名、性别、出生年月、籍贯等。为了唯一地标识数据对象的某个实例,定义数据对象中的一个属性或几个属性为关键码(key),书写为Id,如在学生数据对象中用学号做关键码,它可唯一地标识一个学生数据对象中的实例。

3.对象间关系

各个数据对象的实例之间可以按多种不同的方式相连接。如数据对象“书”与“书店”有关联,可以用图 2.7(a)的符号简单表示。但考虑在待开发软件的上下文环境中“书”与“书店”的关系,可以定义一组对象—关系对来定义相应的连接,如“书店订购书”“书店陈列书”“书店储存书”“书店销售书”“书店返还书”,图2.7(b)给出了这些对象—关系对的图形表示。

图2.7 对象间关系

4.基数和参与性

数据对象、属性和关系是理解问题数据域的基础。但仅有这些信息是不够的,必须提供更进一步的有关数据对象关联的信息。例如,学生“张鹏”选修“软件工程”与“计算机网络”两门课程,学生与课程的实例通过“选修”关联起来。实例的关联有一对一(1∶1)、一对多(1∶ m )、多对多( n m ) 3种。这种实例的关联称为“基数”,基数表明了重复性。

例如,1名教师带班级中的30名同学,就是1∶ m 的关系;但也有1名教师带0名同学的情形。所以实例关联有“可选”或“必须”之分,用“〇”表示关系是可选的,用“|”表示关系必须出现 1 次,这表明了“参与性”关系,如图2.8所示。

图2.8 基数与参与性

5.实体—关系图

数据对象及其关系可用实体—关系图(ERD)表示。ERD最初是由Peter Chen为关系数据库提出来的,后来又经过了扩展。ERD的主要目的是表示数据对象及其关系,它包括数据对象、属性、关系等基本成分和各种类型符号。图2.9给出了学生选修课程的ERD及描述学生属性的数据对象表。

图2.9 简单的ERD和数据对象表

数据建模方法用来创建部分分析模型,但它也可以用于设计数据库并支持其他需求分析方法。

实体—关系图的建立步骤如下:

(1)在捕获需求的过程中,要求用户列出应用或业务过程涉及的所有事物。这些事物将来可能会演变为一系列输入/输出数据对象,以及生产和消费信息的外部实体。

(2)一次考虑一个对象。分析人员和用户共同确认这个对象与其他对象之间是否存在连接(在本阶段不命名)。

(3)当存在连接时,分析人员和用户应创建一个或多个对象—关系对。

(4)考察每个对象—关系对的基数和参与性。

(5)迭代执行步骤(2)~(4),直到所有对象—关系对定义完成。在这个过程中发生遗漏是很正常的,每次迭代总会增加新的对象和关系。

(6)定义每个实体的属性。

(7)规范化并复审实体—关系图。

(8)重复执行步骤(1)~(7),直到数据建模完成。 kLoE8CvUaoa9AjOMf9Nk95gPkWv/RaW9M2FoR3q5bDLTGX6LBGmEAN7SWVBSb3h+

点击中间区域
呼出菜单
上一章
目录
下一章
×