数据库程序员面试笔试通关宝典
上QQ阅读APP看书,第一时间看更新

3.2 数据库模型图

数据库模型描述了数据库中结构化和操纵数据的方法,而模型的结构部分规定了数据是如何被描述的(例如树、表等)。

3.2.1 E-R模式

构成E-R图的3个基本要素是实体、属性和联系。

1.实体

在客观上可以相互区分的事物就是实体,实体可以是具体的人和物,也可以是抽象的概念与联系,具有相同属性的实体具有相同的特征和性质。可以用实体名及其属性名集合来抽象和刻画同类实体。

2.属性

属性指实体所具有的某一特性,一个实体可由若干个属性来刻画。属性不能脱离实体,属性是相对实体而言的。在E-R图中属性用椭圆形表示,并用无向边将其与相应的实体连接起来。

3.联系

联系也称关系,信息世界中反映实体内部或实体之间的关联。实体内部的联系通常指组成实体的各属性之间的联系;实体之间的联系通常指不同实体集之间的联系。在E-R图中联系用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n)。

实体、属性和关系的表示及含义如表3-2所示。

表3-2 实体、属性和关系的表示及含义

画E-R图的步骤如下:

(1)确定所有的实体集合。

(2)选择实体集包含的属性。

(3)确定实体集之间的联系。

(4)确定实体集的关键字,用下画线在属性上标明关键字的属性组合。

(5)确定联系的类型,用无向边将表示联系的菱形框和实体集连接起来,并在无向边旁标注1或n来表示联系的类型。

用二维表的形式表示实体和实体间联系的数据模型即关系模式。

E-R图转换为关系模式的步骤如下:

(1)把每个实体都转化为关系模式R(U)形式。

(2)建立实体间联系的转换。

3.2.2 UML

1.UML概念模型

(1)概念模型可以被定义为模型,它由概念和它们之间的关系组成。

(2)UML描述的是实时系统,是非常重要的一个概念模型。

(3)UML概念模型包括UML构建模块、规则连接构建模块和UML公共机制三大模块。

2.UML面向对象

面向对象是软件开发常用的方法,面向对象的概念和应用已经超越了程序设计和软件开发。可以将UML描述为面向对象的分析和设计的继承者。

一个对象中包含了数据和控制数据的方法,其中数据表示对象的状态,类表示描述的对象,从而形成层次结构模型真实的世界系统。

对象是现实世界的实体,如抽象、封装、继承和多态等,都可以使用UML表示。因此,UML强大到足以代表所有的概念存在于面向对象的分析和设计之中。

UML图是面向对象概念的表示方法。

面向对象中的基本概念如下:

(1)对象:对象代表一个实体的基本构建模块。

(2)类:类是对象的蓝图。

(3)抽象:抽象代表现实世界中实体的行为。

(4)封装:封装是将数据绑定在一起,并隐藏它们外部世界的机制。

(5)继承:继承是从现有的机制中衍生出新的类。

(6)多态性:定义的机制以不同的形式存在。

3.UML核心

UML的核心是图,可以将这些图归类为结构图和行为图。

结构图是由静态图、类图、对象图等组成;行为图是由序列图、协作图等组成;一个系统的静态和动态特性是通过使用这些图的可视化而形成的。

1)UML类图

类图是使用面向对象、最流行的UML图。它描述了系统中的对象和它们的关系,能够让我们在编写代码以前对系统有一个全面的认识。

一个单独的类图描述系统一个具体方面,完整的类图表示整个系统。基本上,类图表示系统的静态视图。

类图是唯一可以直接映射到面向对象语言的UML图。因此,类图被广泛应用于开发者社区。

2)UML对象图

对象图是类图的一个实例。因此,对象图和类图的基本要素是类似的。对象图是由对象和链接构成。在一个特定的时刻,它将捕获该系统的实例。

对象图用于原型设计、逆向工程和实际场景的建模。

3)UML组件图

组件图是一种特殊的UML图,用来描述系统的静态实现视图。组件图包括物理组件,如档案、文件夹等。

组件图是用来从实施的角度分析问题,可以使用多个组件图来表示整个系统。正向和逆向工程技术的使用,可以通过执行文件的组件图来实现。

4)UML部署图

部署图表示节点和它们之间的关系。一个高效的部署图是应用软件开发的一个组成部分。

5)UML用例图

用例图是从用户角度描述系统功能,并指出各功能的操作者,用来捕捉系统的动态性质。

一个高层次的用例图用来捕捉系统的要求,因此它代表系统的功能和流向。

6)UML交互图

交互图,用于捕获系统的动态性质。

交互图包括序列图和协作图,其中序列图显示对象之间的动态合作关系,它强调对象之间的消息发送的顺序,同时显示对象之间的交互;协作图描述对象间的协作关系,协作图和序列图相似,显示对象间的动态合作关系。

7)UML状态图

状态图主要用于模拟系统的动态性质,即模拟对象的整个生命周期。

一个对象的状态被定义为对象所在的条件下特定的时间和对象。在对其他状态某些事件发生时,状态图还用于正向和反向工程。

状态图着重描述从一个状态到另一个状态的流程,主要有外部事件的参与。

8)UML活动图

活动图是UML动态模型的一种图形,一般用来描述相关的用例图,活动图是一种特殊的状态图。

准确的活动图定义:活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并活动。活动图是一种特殊的状态图,它对于系统的功能建模特别重要,强调对象间的控制流程。