概念模型是一种或多或少的形式化描述,描述的内容包括建立软件组件时,所用到的算法、架构、假设与底层约束。这通常是对实际的简化描述,包括一定程度的抽象,显式或隐式地按照头脑中的确切使用方式进行构建。对概念模型的验证包括确保所用的理论和假设是正确的;当考虑模型的特征时,确保所规划的用途是合理的。
定义
概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象。为了把现实世界中的具体事物抽象、组织为某一数据库管理系统支持的
数据模型,人们常常首先将现实世界抽象为信息世界,然后将信息世界转换为机器世界。也就是说,首先把现实世界中的客观对象抽象为某一种信息结构,这种信息结构并不依赖于具体的计算机系统,不是某一个数据库管理系统(DBMS)支持的数据模型,而是概念级的模型,称为概念模型。
简介
概念数据模型是面向用户、面向现实世界的数据模型,是与DBMS无关的。它主要用来描述一个单位的概念化结构。采用概念数据模型,
数据库设计人员可以在设计的开始阶段,把主要精力用于了解和描述现实世界上,而把涉及DBMS的一些技术性的问题推迟到设计阶段去考虑。
由于概念模型用于信息世界的建模型,是现实世界到信息世界的第一层抽象,是用户与数据库设计人员之间进行交流的语言,因此概念模型一方面应该具有较强的语义表达能力,能够方便、直接地表达应用中的各种
语义知识,另一方面它还应该简单、清晰、易于用户理解。由于概念模型在此次的迭代过程非常简单,所以本来计划PASS掉其中的具体分析,不过概念模型的确非常之重要,他是OOD的一个基石。除了
用例,应该说概念模型是
OO开发过程中另一个充满主观色彩的工件。
然而不同的人对同一个场景进行研究,可能提炼出来的概念模型都不一样,所以说这是颇受主观认识影响的一个过程。概念模型的质量对整个系统的影响至关紧要,因为,所谓的
面向对象,就是从这里开始。
一般来说,构建概念模型的过程与程序员的关系并不大。最适合进行这项活动的人,应该是那些有较深资历的领域专家,极端一点,甚至可以就是最为熟悉自身业务流程的客户代表。只要稍稍学习简单的建模知识,他们就可以胜任了。
构建模型
构建概念模型,需要从场景中提取各种“对系统目标有用”的概念。通常的方法是通过识别主要的领域词汇,或者通过已有的概念目录
检查表来查找。像“卧底”、“警察”、“黑社会”、“
情报”等等,都是《无间道》这部电影里的一些核心概念。很自然地,开始时会倾向于发展这样一个模型:(见图1)
这样看起来比较直观。“警察”和“黑帮成员”是两个较大的概念,下面分别有较小的两个子概念。像黄Sir和韩琛这样的角色,是可以很直接地归入到“正规警察”和“普通黑帮成员”的范围中去的,而陈永仁和刘健明都分别属于不同的卧底角色。但这样出现了一个问题,就是陈和刘都是同时具有警察、黑帮的双重身份(尽管一个在明,一个在暗)的人,他们都有可能同时拥有警察和黑帮的某些行为。比如陈永仁在拥有黑帮“劈友”,“收数”的行为时,也有可能执行警察“逮捕”,“救死扶伤”这样的责任,刘健明表面上是警察,暗中也有进行黑帮“洗钱”的行为。两个人的行为相似,但本质立场不同,怎样在模型中表达出这样的概念呢?
可以试试将“身份”和“行为”概念提取出来,于是建立下面这样的一个模型(见图2):
在这个模型中,每个人物可以机动地拥有1个以上的身份,多个行为。每个行为也可以与特定的身份挂钩。这样的话,对表达不同角色的复杂身份就可以比较灵活了。对陈、刘之间的本性问题,又引入“价值观”这样的概念描述。但可以看到,改变后的模型
复杂度提高了,尤其当人物的“行为”很多的时候,就可能会在其下面出现比较大的概念群了。
系统的灵活性和复杂度的矛盾,是在提炼概念模型时必须慎重思考的问题。
找出模型
最好是能够尽量充分地使用
细粒度的概念来描述模型,而避免粗略描述。
建模过程
1、运用概念目录列表或名词性短语找出问题领域中的候选概念;
2、绘制概念到概念模型图中;
3、为概念添加关联关系;
4、为概念添加属性。
模型设计
概念模型不依赖于具体的计算机系统,他是纯粹反映信息需求的概念结构。
建模是在
需求分析结果的基础上展开,常常要对数据进行抽象处理。常用的数据抽象方法是‘聚集’和‘概括’。
E-R方法是设计概念模型时常用的方法。用设计好的ER图再附以相应的说明书可作为阶段成果。
概念模型设计可分三步完成:
局部模型
① 确定局部概念模型的范围;
② 定义实体;
③ 定义联系;
④ 确定属性;
⑤ 逐一画出所有的局部ER图,并附以相应的说明文件。
全局模型
建立全局E-R图的步骤如下:
② 合并局部E-R图;
③ 消除不一致因素;
④ 优化全局E-R图;
⑤ 画出全局E-R图,并附以相应的说明文件。
模型评审
概念模型的评审分两部分进行:
第一部分是用户评审。
第二部分是开发人员评审。
应用
数据库技术是计算机领域发展最快的技术之一,数据库技术的发展是沿着数据模型为主线推进的。数据模型(Data Model)是对现实世界数据特征的抽象,用来描述数据、组织数据和对数据进行操作。只有通过数据模型才能把现实世界的具体事务转换到计算机数据世界之中,才能为计算机存储和处理,所以数据模型是数据库系统的核心和基础。
在数据库系统开发的不同阶段,使用不同的数据模型,如图3所示。按照数据库系统开发流程,分别为概念模型、逻辑模型和物理模型3种。概念模型也是信息模型,即把现实世界的客观对象抽象为某种信息结构。它是一种概念模型,是按照用户的观点对信息建模。逻辑模型和物理模型为机器世界中DBMS所支持的数据模型,它们是计算机中数据组织、存储和管理的基础。逻辑模型是面向DBMS软件开发的,主要用于DBMS的实现,关系数据库的模型是关系模型。概念模型到逻辑模型的转换由
数据库设计人员完成;物理模型是面向计算机系统的,主要用于选择逻辑模型数据与联系在计算机内部的表示方式和存取方法,物理模型的具体实现是DBMS的任务,即逻辑模型转换为物理模型由DBMS完成。