当前位置:   article > 正文

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

er模型

前言

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

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

  • 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端业务调研的问题》,经过调研后,我们可以输出以下利益相关者:

利益相关者

存在什么问题 / 对系统的期望

客服

1、系统上没有对客户下次跟进时间提醒;

2、不能清晰知道是哪个渠道过来的(抖音、小红书);

……

设计师

1、量房记录没在系统体现;

2、收款每次财务审核提交都很难查询记录;

……

……

……

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

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

在《流程图——产品⽂档和原型咋弄》有提到业务流程画法,其中我们还是用《一篇长文:总结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图图例。

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

•实体是长方形体现;

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

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

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

车辆调度ER图——出自processon.com

◆ UML画法

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

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

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

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

UML画ER图

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/530665
推荐阅读
相关标签
  

闽ICP备14008679号