E-R模型与UML简介

    技术2022-07-12  77

    什么是E-R模型?

    E-R模型(Entity-Relationship model)。描述实体信息之间关系的一种模型。例如高级概念模型(high-level conceptual model)。利用这种高级概念模型,可以建立很多逻辑模型,例如XML等等。ER模型是图形表示法,我们可以将其几乎通过算法转换为关系(表驱动)模型。

    E-R模型和UML关系?

    首先介绍ER 方法学的表示法。 目前,ER 建模中使用了数种表示法,包括陈氏 ER、Barker ER Information Engineering (IE)和 IDEF1X,其中大部分还包含关系表示法。

    对象角色建模(ORM)表示法也是 ER 方法学的一员。它能表达非常精确和完整的业务规则,并且可以用图形阐述约束条件。不幸的是,这种详细程度需要具有丰富细节的大量图表。与 ORM 相关的问题是我们是否需要 ER 模型级的表示法精确度。ORM 表示法还很复杂,并且与其他表示法完全不同,因而那些没有使用 ORM 的项目组成员很难理解它。

    UML 是一种表示法语言,最初用于软件设计,目前软件设计已经扩展到业务和数据库设计。UML 包括从分析到实施再到部署指定任何事项所必需的元素和图表。通过使用几种图表和数十种元素,UML 还能表达不同程度的系统抽象。这是一项非常独特的功能。但是,我们不需要知道 UML 的所有细节或者成功利用 UML 进行 ER 建模所需的所有视图和表示。

    UML 中的实体类型?

    类一般用矩形表示,该矩形最多可分为三个部分:

    第一部分包括类的原型和名称。原型指的是 UML 中为了强化共同特征而进一步进行的元素分类。比如,所有可能带有遗留原型的遗留类,可能将立即将遗留原型划分为不可修改的一类。虽然类本身是类型的一种表示,但是我们用原型<<实体>>来划分类型(<<…>>是用于指定原型的语法)。

    第二部分包含具有类型和可见性的属性。它还可以包含属性的其他细节,比如初始值和原型。第二部分在缩略图中可以省略。

    第三部分是为类的行为保留的。由于实体类型不需要行为,所以我们就略过该部分。

    根据抽象级别的不同,类可以用一个、两个或三个部分显式。

    实体是实体类型的一个实例。在 UML 中,对象是类的实例。这意味着实体本身与对象相对应。

    对象的表示来源于类的表示。最显著的区别在于对象的名称有下划线,并且只有一个或两个部分。

    第一个部分包含以冒号隔开的可选的原型、对象名称,以及派生类的名称,之间用冒号隔开。至少必须指定其中一个名称。第二部分包含相关属性以及它们的值。

    表示对象的最好的方法就是只使用一个部分,并将标识符 指定为对象的名称。 实体类型 Employees 和实体 553-32-2222 在 UML 中被显示为类和对象。

    UML 中的属性?

    实体的相关状态和信息被作为对象的属性存放。实体类型的属性对于其他实体类型必须是可见的或者公开的。在类规格说明书中属性是按照可见性、名称和类型指定的。属性的类型为分析类型。它在设计阶段可能发生变更。

    属性是在类的第二部分指定的。它们包含对于实体总是"+"(公开)的可见性规格说明书。名称与类型之间用冒号隔开。

    下图具有公开属性(社会安全号码、姓名、地址、出生日期、加入日期和职位)的实体类型 Employees。

    UML 中的关系类型?

    在 UML 中类之间的关系是为类型而非实例指定的。关系双方上的数字指定了基数:参与该关系的可能实例的数量。

    关系的名称是直接在关系行中指定的,用于标识该关系。它有助于读者理解存在这种关系的原因。如果没有为一个关系指定名称,那么角色名将用于帮助读者理解该关系。下图可以这样理解:Products 被 Employees 拥有或者 Employees 是 Products 的拥有者。该关系描述中单词的单复数通过基数确定。

    UML 中关系类型的属性?

    关系可以具有属性,这些属性显示在 UML 关联类中。关联类显示在一个矩形中,并且包含该关系的公共属性清单。关联类利用虚线与关系连接。不需要原型来解释类用法和为该类分类,因为附件已经对它做了定义。

    关联类中的属性是用可见性、名称和类型指定的。

    尽管看上去关联类、附件和关系是独立元素,但是它们实际上代表了同样的元素。关系和关联类的名称必须相关。 下图表明了关联类中指定了关系类型 Services 的属性。

    UML 中的简单约束条件?

    1.基数

    UML 定义了一种一致的方法来指定基数。它总是被关系双方上的数字指定。可能的定义包括用于一定数量(也可能是不限量的)实例的指定基数的单个数字,以及一对规定了基数的范围的以"…“隔开的数字。用于无限基数的符号是”",它可以单独使用标识可选的无限关系,也可以与另一个很低的值结合使用,来指定强制关系(如"1…")。基数的下限和上限值可以是任意正数或者"*",但是第一个数字必须小于或等于第二个数字。 下图表明实体类型 SoccerTeam 定义了与 11 到 18 个球员的实体类型 Player 的 plays 关系。

    2.依赖关系

    UML 可以分辨两种形式的实体类型间的依赖关系。聚合是需要依赖性实体类型的两个实体类型之间的一种依赖关系。UML 中聚合的语法是在聚合方用空心菱形表示。同一方还有一个值为 1 的强制基数,它可以省略。 例如每个结婚证实体类型都依赖于扮演新郎和新娘角色的两个人。

    Processed: 0.044, SQL: 10