4000字细说ER模型基础概念•业务建模系列

ER模型基础概念

接下来几篇文章会围绕「业务建模」这个方向,展开总结一下。讲到业务建模就联想到ER模型,ER建模可以说是B端产品经理必要掌握的技能。

本文会从以下几个点进行基础指引:

· 什么是ER模型?

· ER模型有什么作用?

· ER图的核心部分是什么?

· 产品经理如何进行ER建模绘制ER图?

➊什么是ER模型?

ER模型,全称为实体联系模型、实体关系模型(全称:Entity-Relationship Model)由美籍华人计算机科学家陈品山发明,是概念数据模型的高层描述所使用的数据模型或模式图。

ER模型常用于信息系统设计中;比如它们在概念结构设计阶段用来描述信息需求和/或要存储在数据库中的信息的类型。但是数据建模技术可以用来描述特定论域(就是感兴趣的区域)的任何本体(就是对使用的术语和它们的联系的概述和分类)。

在基于数据库的信息系统设计的情况下,在后面的阶段(通常叫做逻辑设计),概念模型要映射到逻辑模型如关系模型上;它依次要在物理设计期间映射到物理模型上。注意,有时这两个阶段被一起称为“物理设计”。

在以前的文章中有简单的提过「概念模型」,其实就是ER建模的输出产物——实体联系模式图(ERD,全称:Entity Relationship  Diagram)。

汽车美容门店排位系统

产品经理接收到一个新的业务需求后,可以通过ERD进行梳理实体之间、实体与属性之间的关系,从中将整个业务抽象出共性与核心特征;当ERD给到我们的开发人员后,这些实体之间、实体属性之间的关系就演变成数据库的表与字段。有了ERD后对于整个系统的架构与后续扩展都有很大的好处,可以很好的理解与梳理业务。

➋ER模型有什么作用?

当我们理解了实际问题的需求之后,需要用一种方法来表示这种需求,ERD就是用来描述这种需求。

在梳理ERD的过程中,其实我们就是梳理业务,它在这个数据过程中起到的作用:

提升总结归纳的抽象能力:我们接收需求的时候,会有很多噪声需求,产品经理就需要从中提炼有意义的实体概念,实体属性,从而达到整个业务模式能在系统上运作起来。

提高沟通效率:当我们输出ERD后,与业务、开发、测试人员沟通时,能很好的表达出我们系统上的实体关系,这就是所谓的一图胜千言

提高建模合理性,避免掉坑:在ER建模过程中,提高建模的合理性能让系统运作更良好,避免后续业务变化导致系统又需推到重来的结果,影响业务发展。

➌ER图的核心部分是什么?

ER图分为实体属性关系三个核心部分:

· 实体是长方形体现

· 属性是椭圆形体现

· 关系是菱形体现

门店员工实体关系模型图

ⓐ 实体(Entity)

即数据模型中的数据对象,例如门店、员工、物品都可以作为一个数据对象,用长方体来表示,每个实体都有自己的实体成员(entity member)或者说实体对象(entity instance),例如员工实体里包括张三、李四等,实体成员(entity member)/ 实体实例(entity instance) 不需要出现在ER图中

ER的实体还会细分:弱实体、复合实体

◆ 弱实体:一个实体必须依赖于另一个实体存在,那么前者是弱实体,后者是强实体,弱实体必须依赖强实体存在,例如上图的门店实体和员工实体,员工依赖于门店实体而存在,因此门店是强实体,而员工是弱实体

弱实体和强实体的联系必然只有1:N或者1:1,这是由于弱实体完全依赖于强实体,强实体不存在,那么弱实体就不存在,所以弱实体是完全参与联系的,因此弱实体与联系之间的联系也是用的双线菱形

强弱实体关系模型

◆ 复合实体:复合实体也称联合实体桥接实体,常常用于实现两个或多个实体间的M:N联系,它由每个关联实体的主码组成,用长方体内加一个菱形来表示。

举个复合实体的例子,还是以汽车美容门店的案例,车主施工项目两个实体是M:N的关系,中间有施工订单这个实体联系,因此施工订单这个实体是一个复合实体,同时如果车主实体不存在,就没有施工订单实体的存在,因此对于车主实体来讲施工订单是弱实体,同理施工项目实体如果不存在,同样不存在施工订单实体,因此对施工项目实体而言施工订单是弱实体,具体如图:

车主施工单复合实体示例


我们如何找到业务中的实体?

首先我们要定义的实体,就是最终定义具体业务的关键核心点。而要在业务场景中找到有实际业务意义的实体,在找实体的过程中我们可以用以下思路:

㊀ 利益相关者法:思考业务本身有哪些利益相关者,这些利益相关者有需要我们解决什么问题

在B端业务中,经常会涉及到很多利益相关者,而我们可以将一部分利益相关者抽象出一部分实体。

比如,前段时间的文章《一篇长文:总结B端业务调研的问题》,经过调研后,我们可以输出以下利益相关者:


调查问卷

这样一系列调研下来后,我们可以初步的确认这些实体:员工(客服人员/设计师/财务人员)、客户、渠道、量房记录、收款记录

㊁ 业务流程法:这个方法可以从流程中抽象出实体,因为业务流程往往体现了实体与实体之间的交互过程。

在《流程图——产品⽂档和原型咋弄(二)》有提到业务流程画法,其中我们还是以前面调研的例子绘制一个简单的业务流程图:

SCRM客户留资实体关系模型图

ⓑ 属性(Attribute)

即数据对象所具有的属性,例如员工具有姓名、工号、职位等属性,用椭圆形表示,属性分为唯一属性( unique attribute)和非唯一属性,唯一属性指的是唯一可用来标识该实体实例或者成员的属性,用下划线表示,一般来讲实体都至少有一个唯一属性。

ER图的属性还细分为复合属性多值属性派生属性可选属性,同时还有用来表示联系的属性,称为联系属性

◆ 复合属性(composite attribute):复合属性是指具有多个属性的组合,例如「姓名」属性,它可以包含「姓氏」属性和「名字」属性,如下图:

复合属性

复合属性也有唯一属性,例如员工的「职位」属性,由于多个「职位」都有「职级」,所以单单「职位」属性是不唯一的,但是和「职级」组成的复合属性后则可以匹配成唯一属性。

◆ 多值属性(multivalued attribute):一个实体的某个属性可以有多个不同的取值,例如一辆车的「车型」属性,这辆车有多个「车型」,例如SUV、MPV等,这个「车型」就是多值属性, 用双线椭圆表示。

多值属性

◆ 派生属性(derivers attribute):是非永久性存于数据库的属性。派生属性的值可以从别的属性值或其他数据(如当前日期)派生出来,用虚线椭圆表示,如下图。

派生属性(门店的营销活动参与情况)

类似上图「门店的营销活动参与情况」中,「参与人数」就是一个派生属性,随着车主参加的活动变化,「参与人数」属性也会变化,一般来说派生属性不存在数据库中,而是通过相应的公式逻辑查询出来,比如:参与记录、活动下单等。而如果存放在数据库中,那么就需要隔一段时间就进行更新,否则会出现数据不对的情况。

◆ 可选属性(optional attribute):并不是所有的属性都必须有值,有些属性的可以没有值,这就是可选属性,在椭圆的文字后用(O)来表示,如下图的地址就是一个可选属性。

可选属性

◆ 联系属性:联系属性用于表示多个实体之间联系所具有的属性,一般来讲M:N的两个实体的联系具有联系属性,在1:1和1:M的实体联系中联系属性并不必要。

联系属性

比如上图的「门店」需要开展「营销活动」,那么需要有个「门店开展活动」属性将两个实体联系起来,而这个属性其实是需要「门店id」、「活动id」组合而成的「开展ID」,这里类似数据库中的「复合主键」。而这个「开展日期」、「开展成本」都是用于门店开展活动整体情况数据。

ⓒ 关系(Relationship)

用来表现数据对象与数据对象之间的联系,例如「门店」的实体和「员工」的实体之间有一定的联系,每个「门店」都有自己的「员工」,这就是一种关系,关系用菱形来表示。

ER图中关联关系有三种:

◆ 1对1(1:1):1对1关系是指对于实体集A与实体集B,A中的每一个实体至多与B中一个实体有关系;反之,在实体集B中的每个实体至多与实体集A中一个实体有关系。

◆ 1对多(1:N):1对多关系是指实体集A与实体集B中至少有N(N>0)个实体有关系;并且实体集B中每一个实体至多与实体集A中一个实体有关系。

◆ 多对多(M:N):多对多关系是指实体集A中的每一个实体与实体集B中至少有M(M>0)个实体有关系,并且实体集B中的每一个实体与实体集A中的至少N(N>0)个实体有关系。

对于这三种关联关系,其实上面的图例中都有体现出来。

➍产品经理如何进行ER建模绘制ER图?

前面提到ER图分为实体(长方形)、属性(椭圆形)、关系(菱形)三个核心部分,而对于之间的联系(直线表示),相关表示符号见下图:

来源「亿图图示」

其实这里从1976年3月陈品山博士发明ER图后,随着实体关系建模的发展,ER图的画法也出现了变化。比如上面是「亿图图示」这个软件提供的ER图图例。

陈氏符号,其实就是我们前面提到的案例:

实体是长方形体现;

属性是椭圆形体现,如果是唯一键值属性,就在内容文本中加下划线;

关系是菱形体现,菱形内注明实体之间的联系情况;

基数就是关系菱形两侧直线内标注关系类型;

出自processon.com

UML画法

使用UML画ER图,其实只是用UML的符号进行绘制而已,并没有什么特别之处。

实体:还是使用矩形表示。

属性:这个时候我们初期都可以先忽略属性,先把实体与实体之间的关系梳理清楚。

联系:直接使用直线,对比前面的中间有个菱形,这样可能会快捷一些。

UML画ER图

如果在考虑属性,那么就会到最开始的汽车美容门店排位系统的图。


◉ 拓展内容

本文章很多内容出自以下书籍(回复关键词「 ER模型」或「008」可获取):

• 陈品山博士发表的《The Entity-Relationship Model--Toward a Unified View of Data》

• 数据库领域的殿堂级作品《数据库系统概念》

• 亿图图示(https://www.edrawsoft.com/)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容