• 沒有找到結果。

实体 - 联系图

N/A
N/A
Protected

Academic year: 2022

Share "实体 - 联系图"

Copied!
40
0
0

加載中.... (立即查看全文)

全文

(1)

实体 - 联系图

概念性数据模型是一种面向问题的数据模型,是按 照用户的观点对数据建立的模型。

它描述了从用户角度看到的数据,它反映了用户的 现实环境,而且与在软件系统中的实现方法无关。

(2)
(3)

数据模型中包含 3 种相互关联的信息:数据对象、

数据对象的属性及数据对象彼此间相互连接的关系

数据对象可以是外部实体 ( 例如,产生或使用信息 的任何事物 ) 、事物 ( 例如,报表 ) 、行为 ( 例如,

打电话 ) 、事件 ( 例如,响警报 ) 、角色 ( 例如,教 师、学生 ) 、单位 ( 例如,会计科 ) 、地点 ( 例如,

仓库 ) 或结构 ( 例如,文件 ) 等。总之,可以由一组 属性来定义的实体都可以被认为是数据对象。

(4)

数据对象彼此间是有关联的,例如,教师“教”课程

,学生“学”课程,教或学的关系表示教师和课程或 学生和课程之间的一种特定的连接。

数据对象只封装了数据而没有对施加于数据上的操 作的引用。

(5)

属性定义了数据对象的性质。必须把一个或多个属 性定义为“标识符”,也就是说,当我们希望找到数 据对象的一个实例时,用标识符属性作为“关键字”

( 通常简称为“键” ) 。

(6)

数据对象彼此之间相互连接的方式称为联系,

也称为关系。联系可分为以下 3 种类型:

(1) 一对一联系 (1 1)

例如,一个部门有一个经理,而每个经理只在 一个部门任职,则部门与经理的联系是一对一的。

(2) 一对多联系 (1 N)

例如,某校教师与课程之间存在一对多的联系

“教”,即每位教师可以教多门课程,但是每门课程 只能由一位教师来教。

(7)

(3)

多对多联系 (M N)

例如,学生与课程间的联系 (“ 学” ) 是 多对多的,即一个学生可以学多门课程,而 每门课程可以有多个学生来学。

(8)

联系也可能有属性。例如,学生“学”某门课程所取 得的成绩,既不是学生的属性也不是课程的属性。

由于“成绩”既依赖于某名特定的学生又依赖于某门 特定的课程,所以它是学生与课程之间的联系“学”

的属性。

(9)

某校教学管理 ER 图

(10)
(11)

某个工厂物资管理的概念模式,物资管理涉及 的实体有:

仓库(仓库号,面积,电话号码)

零件(零件号,名称,规格,单价,描述)

供应商(供应商号,姓名,地址,电话号码,帐 号)

项目(项目号,预算,开工日期)

职工(职工号,姓名,年龄,职称)

(12)

这些实体间的联系如下:

1 )一个仓库可以存放多种零件,一种零件可以存 放在多个仓库中

2 )一个仓库可以有多个职工当保管员,一个职工 只能在一个仓库工作

3 )职工之间具有领导与被领导关系,仓库主任领 导若干保管员

4 )供应商、项目和零件之间具有多对多关系

(13)
(14)

某网站建立一个网络论坛 (BBS) ,该论坛称 为“ VB.Net 高手汇集地”,其网址为

WWW.BBS.VBNET.COM

;该网站有专门管 理员进行管理,每个管理员有其账号、密码

、权限等;该论坛的 BBS 用户有自己的帐号

、密码、头像和基本信息;每个用户可以发 表自己的关于 VB.NET 的帖子,所有的帖子 都归管理员进行管理。

(15)
(16)

数据规范化

软件系统经常使用各种长期保存的信息,这些信息 通常以一定方式组织并存储在数据库或文件中,为 减少数据冗余,避免出现插入异常或删除异常,简 化修改数据的过程,通常需要把数据结构规范化。

(17)

通常用“范式 (normal forms)” 定义消除数据冗余的 程度。

范式级别越高,存储同样数据就需要分解成更多张 表,因此,“存储自身”的过程也就越复杂。

范式级别提高则需要访问的表增多,因此性能 ( 速 度 ) 将下降。从实用角度看来,在大多数场合选用 第三范式都比较恰当。

(18)

(1) 第一范式每个属性值都必须是原子值,即仅仅是 一个简单值而不含内部结构。

(2) 第二范式满足第一范式条件,而且每个非关键字 属性都由整个关键字决定 ( 而不是由关键字的一部 分来决定 ) 。

(3) 第三范式符合第二范式的条件,每个非关键字属 性都仅由关键字决定,而且一个非关键字属性不能 仅仅是对另一个非关键字属性的进一步描述 ( 即一 个非关键字属性值不依赖于另一个非关键字属性值 )

(19)
(20)
(21)
(22)

数据字典

数据字典是关于数据的信息的集合,也就是对数据 流图中包含的所有元素的定义的集合。

数据字典的作用是在软件分析和设计的过程中给人 提供关于数据的描述信息。

(23)

在数据词典的每一个词条中应包含以下信息:

① 名称:数据对象或控制项、数据存储或外部实体 的名字。

② 别名或编号。

③ 分类:数据对象?加工?数据流?数据文件?外 部实体?控制项 ( 事件∕状态 ) ?

④ 描述:描述内容或数据结构等。包括定义 ( 数据 类型,长度,结构等等 ) ,使用特点 ( 值的范围,

使用频率,使用方式——输入、输出、本地,条件 值等等 ) 。

⑤ 何处使用:使用该词条 ( 数据或控制项 ) 的加工。

(24)

数据元素的别名就是该元素的其他等价的名字,出现 别名主要有下述 3 个原因:

(1) 对于同样的数据,不同的用户使用了不同的名 字;

(2) 一个分析员在不同时期对同一个数据使用了不 同的名字;

(3) 两个分析员分别分析同一个数据流时,使用了 不同的名字。

虽然应该尽量减少出现别名,但是不可能完全消除 别名。

(25)
(26)
(27)

存折=户名+所号+帐号+开户日+性质+(印密)+ 1 { 存取行 }50

户名= 2{ 字母 }24

所号=“ 001”..“999” 注:储蓄所编码,规定三位数字

帐号=“ 00000001”..“99999999” 注:帐号规定由八位数 字组成

开户日=年+月+日

性质=“ 1”..“6” 注:“ 1” 表示普通户,“ 5” 表示工资户等

印密=“ 0” 注:印密在存折上不显示

存取行=日期+(摘要)+支出+存入+余额+操作+复核

日期=年+月+日

……

字母= [“a”..“z”|“A”..“Z”]

(28)

根据本章开头讲的结构化分析的第 3 条准则

,在需求分析过程中应该建立起软件系统的 行为模型。状态转换图 ( 简称为状态图 ) 通 过描绘系统的状态及引起系统状态转换的事 件,来表示系统的行为。此外,状态图还指 明了作为特定事件的结果系统将做哪些动作 ( 例如,处理数据 ) 。因此,状态图提供了 行为建模机制,可以满足第 3 条分析准则的 要求。

3.6 状态转换图

(29)

状态是任何可以被观察到的系统行为模式,

一个状态代表系统的一种行为模式。状态规 定了系统对事件的响应方式。系统对事件的 响应,既可以是做一个 ( 或一系列 ) 动作,

也可以是仅仅改变系统本身的状态,还可以 是既改变状态又做动作。

在状态图中定义的状态主要有:初态 ( 即初 始状态 ) 、终态 ( 即最终状态 ) 和中间状态。

在一张状态图中只能有一个初态,而终态则 可以有 0 至多个。

3.6.1 状态

(30)

状态图既可以表示系统循环运行过程,也可 以表示系统单程生命期。当描绘循环运行过 程时,通常并不关心循环是怎样启动的。当 描绘单程生命期时,需要标明初始状态 ( 系 统启动时进入初始状态 ) 和最终状态 ( 系统 运行结束时到达最终状态 ) 。

(31)

事件是在某个特定时刻发生的事情,它是对 引起系统做动作或 ( 和 ) 从一个状态转换到 另一个状态的外界事件的抽象。例如,内部 时钟表明某个规定的时间段已经过去,用户 移动或点击鼠标等都是事件。简而言之,事 件就是引起系统做动作或 ( 和 ) 转换状态的 控制信息。

3.6.2 事件

(32)

在状态图中,初态用实心圆表示,终态用一 对同心圆 ( 内圆为实心圆 ) 表示。

中间状态用圆角矩形表示,可以用两条水平 横线把它分成上、中、下 3 个部分。上面部 分为状态的名称,这部分是必须有的;中间 部分为状态变量的名字和值,这部分是可选 的;下面部分是活动表,这部分也是可选的

活动表的语法格式如下:

事件名 ( 参数表 )/ 动作表达式

3.6.3 符号

(33)

其中,“事件名”可以是任何事件的名称。在 活动表中经常使用下述 3 种标准事件:

entry , exit 和 do 。 entry 事件指定进入该状 态的动作, exit 事件指定退出该状态的动作

,而 do 事件则指定在该状态下的动作。需 要时可以为事件指定参数表。活动表中的动 作表达式描述应做的具体动作。

状态图中两个状态之间带箭头的连线称为状 态转换,箭头指明了转换方向。状态变迁通 常是由事件触发的,在这种情况下应在表示 状态转换的箭头线上标出触发转换的事件表 达式;如果在箭头线上未标明事件,则表示 在源状态的内部活动执行完之后自动触发转 换。

(34)

事件表达式的语法如下:

事件说明[守卫条件]/动作表达式 其中,

事件说明的语法为:事件名 ( 参数表 ) 。

守卫条件是一个布尔表达式。如果同时使用 事件说明和守卫条件,则当且仅当事件发生 且布尔表达式为真时,状态转换才发生。如 果只有守卫条件没有事件说明,则只要守卫 条件为真状态转换就发生。

动作表达式是一个过程表达式,当状态转换 开始时执行该表达式。

图 3.3 给出了状态图中使用的主要符号。

(35)

图 3.3 状态图中使用的主要符号

(36)

为了具体说明怎样用状态图建立系统的行为 模型,下面举一个例子。图 3.4 (见书 57 页)是人们非常熟悉的电话系统的状态图。

图中表明,没有人打电话时电话处于闲置状 态;有人拿起听筒则进入拨号音状态,到达 这个状态后,电话的行为是响起拨号音并计 时;这时如果拿起听筒的人改变主意不想打 了,他把听筒放下 ( 挂断 ) ,电话重又回到 闲置状态;如果拿起听筒很长时间不拨号 ( 超时 ) ,则进入超时状态;……。

3.6.4 例子

(37)
(38)

层次方框图用树形结构的一系列多层次的矩 形框描绘数据的层次结构。树形结构的顶层 是一个单独的矩形框,它代表完整的数据结 构,下面的各层矩形框代表这个数据的子集

,最底层的各个框代表组成这个数据的实际 数据元素 ( 不能再分割的元素 ) 。

例如,描绘一家计算机公司全部产品的数据 结构可以用图 3.5 中的层次方框图表示。

3.7 其他图形工具

3.7.1 层次方框图

(39)

图 3.5 层次方框图的一个例子

(40)

闲置 复印 do / 复印

缺纸 do / 警告

卡纸 do / 警告 复印命令

完成复印命

发生

卡纸故障

发现缺纸

装满纸

排除了卡纸故障

參考文獻

相關文件

在軟體的使用方面,使用 Simulink 來進行。Simulink 是一種分析與模擬動態

在專題中,我們建立兩套以景點為主的資訊系統,一套是運行在 Android AVD (Android Virtual Device) 模擬器上的資訊系統,另外是內嵌於 Facebook

《妞出嫁》是表现一位少女在出嫁的过程中所呈

笛卡儿企图通过坐标系给几何引进新方 法, 他的成就远远超出他的期望. 坐标系是数 学中的双刃剑, 使得几何的目的可以通过代 数达到, 反过来,

3.正弦函数y=Asin(ωx+φ)的图象之间的变换关系是学生最熟悉的一种伸缩变换.教 材从学生最熟悉的这一内容入手 ,分别比较了函数y=sin2x 和y=sinx 的图象之间的关

为此, 我们需要建立函 数的差商与函数的导数间的基本关系式, 这些关系式称为“微分学中值定理”...

在地图上查找上海到乌鲁木齐的铁路。 请根据地图上的比 例尺,估算一下 ,坐火车 从上海到乌鲁 木齐的位移和 经过的 路程

这一类系统无论是 在电路理论还是在自动控制理论的研究中 , 都占