PlantUML中的实体关系图

概述

实体关系图(Entity Relationship Diagrams,ERD)是一种被广泛用于数据库建模的图。

1976年美籍华裔计算机科学家陈品山(Peter Chen)首次提出了Entity Relationship Modeling(实体关系建模)概念,并发明了陈氏表示法Peter Chen's Notation,因此ER模型也可以叫做Chen's Model(陈氏模型)。

E-R图的组成要素

  • 实体(entity):现实世界客观存在,并区别于其他对象的"事件"或"物体",在关系数据库中往往是一张表中的一条记录
  • 属性(attribute):每个实体的特征,对应实体所在表中的一个字段
    • 其中主键(key)对应的就是ID类型的字段,特征是不重复,而且随着数据记录的增加,自增
  • 关系(relationship):实体与实体也就是表与表之间的关系,有一对一(1:1)、一对多(1:m)和多对多(m:n)三种

绘制

定义实体

与类图中的形式一样,你可以用entity关键字,加上一个实体名称,然后带一对花括号,定义一个实体:

swift 复制代码
@startchen

entity Person {
}

@endchen

实体被现实为一个矩形加实体的名称:

为实体添加属性

entity的花括号体内,可以按行书写其属性:

swift 复制代码
@startchen

entity Person {
name
sex
age
}

@endchen

属性被显示为椭圆加名称:

你可以在属性名称后用:分隔指定属性的类型:

swift 复制代码
@startchen

entity Person {
name:String
sex:int
age:int
}

@endchen
设定主键

主键是实体的特殊属性,对应关系数据库表格中的ID字段,可以在属性的后面添加<<key>>将属性标记为主键:

swift 复制代码
@startchen

entity Person {
p_id:INTEGER <<key>>
name
sex
age
}


@endchen

定义关系

可以看到实体其实是一张关系数据表中拥有唯一ID的一条记录,但是关系数据表妙的一点是,每条记录的结构,就是表的结构。

关系表示的则是不同表之间,它们的记录之间可能存在的关系。

relationship关键字定义关系,然后用--分别连接两个实体和关系,并在短线中间加上用于描述数量关系的1nm或者(1,n)(0,1)等。

swift 复制代码
@startchen

entity Person {
p_id:INTEGER <<key>>
name:String
sex:int
age:int
}

entity Car {
c_id:INTEGER <<key>>
name:String
}

relationship Own{
}

Person -1- Own
Own -n- Car

@endchen

其实到这一步传统ER图最实用的部分已经都有了。PlantUML中有一些扩展的语法这里就不纳入了,因为对实际的数据库建模并没有太大的帮助。

总结

  • 可以看到,实体关系图按照图论,应该属于无向图,只有矩形、椭圆和菱形三种基本图形组成。
  • 另外我在B站看到有些视频中采用了另一种形式的ER图,看起来更简洁和现代
相关推荐
吴声子夜歌12 小时前
PlantUML——序列图
uml·plantuml·序列图
吴声子夜歌13 小时前
PlantUML——活动图
uml·plantuml·活动图
吴声子夜歌1 天前
PlantUML——类图(一)
uml
吴声子夜歌1 天前
PlantUML——类图(二)
uml·plantuml·类图
吴声子夜歌2 天前
PlantUML——对象图
uml·plantuml·对象图
吴声子夜歌2 天前
PlantUML——用例图
uml·plantuml
rolt4 天前
PlantUML描述《分析模式》第4章企业财务观察(1)
产品经理·架构师·uml·系统工程
KobeSacre5 天前
UML 学习
学习·uml
hssfscv7 天前
软件设计师2021上、下上午题错题解析+2022上、下下午题训练5道 练习真题训练16
笔记·设计模式·uml
_codemonster9 天前
UML静态图之构件图(也叫组件图)详解
uml