UML

统一建模语言(Unified Modeling Language, UML)是一种描述软件系统结构的图形化语言。

类图

类图用于描述类之间的关系,类图中主要的关系包括:

聚集

带空心菱形的实心线,菱形指向整体

是整体与部分的关系,且部分可以离开整体而单独存在

范化

带三角箭头的实线,箭头指向基类

即继承关系,表示派生类扩展了基类的功能

依赖

带箭头的虚线, 指向被依赖者

被依赖事物变化导致依赖事物变化

实现

带三角箭头的虚线,箭头指向接口

实现与接口之间的关系

关联

一个类可以访问另一个类的成员,关联可以是双向的,也可以是单向的.

双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头指向被拥有者

用例图

扩展/包含关系

带箭头的虚线, 并标注 <> / <>

用例图的聚集,范化与依赖关系与类图相同

数据流图

数据流

带箭头的虚线

加工

空心圆圈,表示对数据流的处理

存储

少一条边的矩形,表示数据存储如数据表等

外部实体

实心矩形,表示软件系统外的实体,如工作人员等

ER图

实体关系图(Entity Relationship Diagram)用来描述实体及其关系。

常用于关系型数据库设计和建模。

实体, 属性与联系集

实体型(Entity)

具有相同属性的实体具有相同的特征和性质,比如数据表:

customer(customer_id, customer_name, customer_street, customer_city)

loan(loan_number, amount)

在E-R图中用矩形表示,矩形框内写明实体名

属性(Attribute)

实体所具有的某一特性,如数据表中的一列:

customer_id

在E-R图中用椭圆形表示,并用无向边将其与相应的实体连接起来

联系

反映实体之间的关系,如两个数据表之间的联系表:

borrower(customer_id, loan_number)

在E-R图中用菱形表示,菱形框内写明联系名

示例:

弱实体

一个实体的存在必须以另一实体的存在为前提。前者就称为“弱实体”,后者称为“强实体”

弱实体主键部分或整体依赖于强实体的主键。

弱实体用双线矩形框表示。与弱实体的联系用双线菱形框表示

弱实体参与联系时应该是“完全参与”,因此弱实体与联系间的联系也画成双线边

特殊化与范化

与UML中范化的含义相同

派生关系继承基关系的属性

UML与ER图的更多相关文章

  1. 毕业设计之感悟 —— UML 与 ER 图

    今天毕业设计答辩,虽然我第一个上场,但是不是特别紧张,因为整个系统都是我写的.我以为自己天衣无缝,能应付所有老师的所有问题.事实上,我被老师教育了一番. 老师说我,毕业论文中没有一个类.我一开始比较懵 ...

  2. 各种图(流程图,思维导图,UML,拓扑图,ER图)简介

    来源于:http://www.cnblogs.com/jiqing9006/p/3344221.html 流程图 1.定义:流程图是对过程.算法.流程的一种图像表示,在技术设计.交流及商业简报等领域有 ...

  3. 关于ER图和UML图之间的对比

    ER图与UML图 ER图:实体-联系图(Entity-Relation Diagram)用来建立数据模型,在数据库系统概论中属于概念设计阶段,ER图提供了表示实体(即数据对象).属性和联系的方法,用来 ...

  4. ER图与UML图

    ER图:实体-联系图(Entity-Relation Diagram)用来建立数据模型,在数据库系统概论中属于概念设计阶段,ER图提供了表示实体(即数据对象).属性和联系的方法,用来描述现实世界的概念 ...

  5. 【转】各种图(流程图,思维导图,UML,拓扑图,ER图)简介

    原文地址:各种图(流程图,思维导图,UML,拓扑图,ER图)简介 流程图 1.定义:流程图是对过程.算法.流程的一种图像表示,在技术设计.交流及商业简报等领域有广泛的应用. 2.案例 3.计算机语言只 ...

  6. powerdesign、navacat、ER图、uml、类图、时序图

    关于建表和生成实体以及ER图的简便方法 a:用navacat客户端生成简单的ER图,并生成建表sql,执行生成表. b:用powerdesign连接数据库,反向生成带有注释的ER图. c:用ideal ...

  7. 软件工程 #02# Entity Relationship Diagram VS. 用 UML 中的类图表示 E-R 图

    不同的老师叫我们画 E-R 图居然是不一样的,于是我仔细研究了一番.. 通常所说的 E-R 图(外文全称 Entity Relationship Diagram,简称 ERD)长这个样子: 而有时候它 ...

  8. uml类图和er图中主外键的表示区别

    在er图也就是数据库中,无论是mysql/oracle都是从表引用主表的pk作为外键. 而在uml类图表示法中,他们的顺序则刚好相反,从主对象导向到子对象,如下: 主体是资金借款方,征信信息和资金借款 ...

  9. 《GO Home Trash!》UML类图,ER图以及数据库设计

    <Go Home Trash!>UML类图 ER图以及数据库中数据表 分析: 这款软件经过我们前期的讨论以及需求分析,确定了用户,客服以及管理员三个实体.在设计UML类图时,对各个实体之间 ...

随机推荐

  1. C# volatile 关键字

    volatile 就像大家更熟悉的const一样,volatile是一个类型修饰符(type specifier).它是被设计用来修饰被不同线程访问和修改的变量.如果不加入volatile,基本上会导 ...

  2. 应用于电力电子变压器的双向DC_DC变换器综述(学习笔记)

    PET(Powerelectronictransformer):电力电子变压器 PET所具有的优点: (1)体积小.重量轻.无变压器油的污染: (2)具备功率因数调节能力,减小电网谐波污染: (3)能 ...

  3. CC2530学习路线-基础实验-串口通讯发送字符串(4 未完待续)

    目录 1. 前期预备知识 1.1 串口通讯电路图 1.2 实验相关寄存器 1.2 常用波特率设置 本章未完待续..... 原来写的文章已经丢失了,只能找到这一小部分,看什么时候有时间再补上. 1. 前 ...

  4. .net core获取appsettings CustomSettings

    private static string GetCustomSettings(string key) { var config = new ConfigurationBuilder() .AddIn ...

  5. Cordova - 彻底搞定安卓中的微信支付插件!

    Cordova:8.0.0 Android studio:3.2.1 cordova-plugin-adam-wechat : 3.0.6 你看到这个标题肯定会惊讶,一个Cordova的微信支付插件, ...

  6. 使用过Memcache缓存吗?如果使用过,能够简单描述下其工作原理吗?

    Memcache是把所有数据保存在内存中,采用hash表的方式,每条数据由key和value组成,每个key独一无二的.Memcache采用LRU算法逐渐把过期数据清除掉.

  7. jmeter-linux下运行

    1.2 在命令行下运行脚本 将1.1中的脚本保存,在编辑是随时可以保存,保存后是一个jmx格式的文件(如图),这个就是要在命令行下运行的脚本(作为参数运行).这个脚本文件可以不包含1.1中第四和第五步 ...

  8. android应用程序的混淆打包

    android应用程序的混淆打包 1 . 在工程文件project.properties中加入下proguard.config=proguard.cfg , 如下所示: target=android- ...

  9. Swinject 源码框架(三):Object Scopes

    Object Scopes 指定了生成的实例在系统中是如何被共享的. 如何指定 scope container.register(Animal.self) { _ in Cat() } .inObje ...

  10. tensorflow初次接触记录,我用python写的tensorflow第一个模型

    tensorflow初次接触记录,我用python写的tensorflow第一个模型 刚用python写的tensorflow机器学习代码,训练60000张手写文字图片,多层神经网络学习拟合17000 ...