UML与ER图
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图的更多相关文章
- 毕业设计之感悟 —— UML 与 ER 图
今天毕业设计答辩,虽然我第一个上场,但是不是特别紧张,因为整个系统都是我写的.我以为自己天衣无缝,能应付所有老师的所有问题.事实上,我被老师教育了一番. 老师说我,毕业论文中没有一个类.我一开始比较懵 ...
- 各种图(流程图,思维导图,UML,拓扑图,ER图)简介
来源于:http://www.cnblogs.com/jiqing9006/p/3344221.html 流程图 1.定义:流程图是对过程.算法.流程的一种图像表示,在技术设计.交流及商业简报等领域有 ...
- 关于ER图和UML图之间的对比
ER图与UML图 ER图:实体-联系图(Entity-Relation Diagram)用来建立数据模型,在数据库系统概论中属于概念设计阶段,ER图提供了表示实体(即数据对象).属性和联系的方法,用来 ...
- ER图与UML图
ER图:实体-联系图(Entity-Relation Diagram)用来建立数据模型,在数据库系统概论中属于概念设计阶段,ER图提供了表示实体(即数据对象).属性和联系的方法,用来描述现实世界的概念 ...
- 【转】各种图(流程图,思维导图,UML,拓扑图,ER图)简介
原文地址:各种图(流程图,思维导图,UML,拓扑图,ER图)简介 流程图 1.定义:流程图是对过程.算法.流程的一种图像表示,在技术设计.交流及商业简报等领域有广泛的应用. 2.案例 3.计算机语言只 ...
- powerdesign、navacat、ER图、uml、类图、时序图
关于建表和生成实体以及ER图的简便方法 a:用navacat客户端生成简单的ER图,并生成建表sql,执行生成表. b:用powerdesign连接数据库,反向生成带有注释的ER图. c:用ideal ...
- 软件工程 #02# Entity Relationship Diagram VS. 用 UML 中的类图表示 E-R 图
不同的老师叫我们画 E-R 图居然是不一样的,于是我仔细研究了一番.. 通常所说的 E-R 图(外文全称 Entity Relationship Diagram,简称 ERD)长这个样子: 而有时候它 ...
- uml类图和er图中主外键的表示区别
在er图也就是数据库中,无论是mysql/oracle都是从表引用主表的pk作为外键. 而在uml类图表示法中,他们的顺序则刚好相反,从主对象导向到子对象,如下: 主体是资金借款方,征信信息和资金借款 ...
- 《GO Home Trash!》UML类图,ER图以及数据库设计
<Go Home Trash!>UML类图 ER图以及数据库中数据表 分析: 这款软件经过我们前期的讨论以及需求分析,确定了用户,客服以及管理员三个实体.在设计UML类图时,对各个实体之间 ...
随机推荐
- C# volatile 关键字
volatile 就像大家更熟悉的const一样,volatile是一个类型修饰符(type specifier).它是被设计用来修饰被不同线程访问和修改的变量.如果不加入volatile,基本上会导 ...
- 应用于电力电子变压器的双向DC_DC变换器综述(学习笔记)
PET(Powerelectronictransformer):电力电子变压器 PET所具有的优点: (1)体积小.重量轻.无变压器油的污染: (2)具备功率因数调节能力,减小电网谐波污染: (3)能 ...
- CC2530学习路线-基础实验-串口通讯发送字符串(4 未完待续)
目录 1. 前期预备知识 1.1 串口通讯电路图 1.2 实验相关寄存器 1.2 常用波特率设置 本章未完待续..... 原来写的文章已经丢失了,只能找到这一小部分,看什么时候有时间再补上. 1. 前 ...
- .net core获取appsettings CustomSettings
private static string GetCustomSettings(string key) { var config = new ConfigurationBuilder() .AddIn ...
- Cordova - 彻底搞定安卓中的微信支付插件!
Cordova:8.0.0 Android studio:3.2.1 cordova-plugin-adam-wechat : 3.0.6 你看到这个标题肯定会惊讶,一个Cordova的微信支付插件, ...
- 使用过Memcache缓存吗?如果使用过,能够简单描述下其工作原理吗?
Memcache是把所有数据保存在内存中,采用hash表的方式,每条数据由key和value组成,每个key独一无二的.Memcache采用LRU算法逐渐把过期数据清除掉.
- jmeter-linux下运行
1.2 在命令行下运行脚本 将1.1中的脚本保存,在编辑是随时可以保存,保存后是一个jmx格式的文件(如图),这个就是要在命令行下运行的脚本(作为参数运行).这个脚本文件可以不包含1.1中第四和第五步 ...
- android应用程序的混淆打包
android应用程序的混淆打包 1 . 在工程文件project.properties中加入下proguard.config=proguard.cfg , 如下所示: target=android- ...
- Swinject 源码框架(三):Object Scopes
Object Scopes 指定了生成的实例在系统中是如何被共享的. 如何指定 scope container.register(Animal.self) { _ in Cat() } .inObje ...
- tensorflow初次接触记录,我用python写的tensorflow第一个模型
tensorflow初次接触记录,我用python写的tensorflow第一个模型 刚用python写的tensorflow机器学习代码,训练60000张手写文字图片,多层神经网络学习拟合17000 ...