4000字細說ER模型基礎概念•業務建模系列

4000字細說ER模型基礎概念•業務建模系列

4000字細說ER模型基礎概念•業務建模系列

前言

接下來幾篇文章會圍繞「業務建模」這個方向,展開總結一下。講到業務建模就聯想到ER模型,ER建模可以說是B端產品經理必要掌握的技能。

本文會從以下幾個點進行基礎指引:

什麼是ER模型?

ER模型有什麼作用?

ER圖的核心部分是什麼?

產品經理如何進行ER建模繪製ER圖?

➊ 什麼是ER模型?

ER模型,全稱為實體聯絡模型、實體關係模型(全稱:Entity-Relationship Model)由美籍華人計算機科學家

陳品山

發明,是概念資料模型的高層描述所使用的資料模型或模式圖。

ER模型常用於資訊系統設計中,比如它們在

概念結構設計階段

用來

描述資訊需求和

/或要

儲存在資料庫中的資訊

的型別。但是資料建模技術可以用來描述特定論域(就是感興趣的區域)的任何本體(就是對使用的術語和它們的聯絡的概述和分類)。

在基於資料庫的資訊系統設計的情況下,在後面的階段(通常叫做

邏輯設計

),概念模型要對映到

邏輯模型

關係模型

上;它依次要在物理設計期間對映到物理模型上。注意,有時這兩個階段被一起稱為“物理設計”。

在以前的文章中有簡單的提過「

概念模型

」,其實就是ER建模的輸出產物——

實體聯絡模式圖

(ERD,全稱:Entity Relationship Diagram)。

4000字細說ER模型基礎概念•業務建模系列

汽車美容門店排位系統

產品經理接收到一個新的業務需求後,可以透過ERD進行梳理實體之間、實體與屬性之間的關係,從中將整個業務抽象出共性與核心特徵;

當ERD給到我們的開發人員後,這些實體之間、實體屬性之間的關係就演變成資料庫的表與欄位。有了ERD後對於整個系統的架構與後續擴充套件都有很大的好處,可以很好的理解與梳理業務。

➋ ER模型有什麼作用?

當我們理解了實際問題的需求之後,需要用一種方法來表示這種需求,ERD就是用來描述這種需求。

在梳理ERD的過程中,其實我們就是梳理業務,它在這個資料過程中起到的作用:

提升總結歸納的抽象能力

:我們接收需求的時候,會有很多噪聲需求,產品經理就需要從中提煉有意義的實體概念,實體屬性,從而達到整個業務模式能在系統上運作起來。

提高溝通效率

:當我們輸出ERD後,與業務、開發、測試人員溝通時,能很好的表達出我們系統上的實體關係,這就是所謂的

一圖勝千言

提高建模合理性,避免掉坑

:在ER建模過程中,提高建模的合理性能讓系統運作更良好,避免後續業務變化導致系統又需推到重來的結果,影響業務發展。

➌ ER圖的核心部分是什麼?

ER圖分為

實體、屬性、關係

三個核心部分:

實體

長方形

體現

屬性

橢圓形

體現

關係

菱形

體現

4000字細說ER模型基礎概念•業務建模系列

門店員工實體關係模型圖

ⓐ 實體(Entity)

即資料模型中的資料物件,例如

ⓐ 實體(Entity)

都可以作為一個數據物件,用長方體來表示,每個實體都有自己的

門店、員工、物品

(entity member)或者說

實體成員

(entity instance),例如員工實體裡包括張三、李四等,

實體物件

(entity member)

實體成員

(entity instance)

/ 實體例項

不需要出現在ER圖中

ER的實體還會細分:弱實體、複合實體

弱實體、複合實體

:一個實體必須依賴於另一個實體存在,那麼前者是

,後者是

弱實體

,弱實體必須依賴強實體存在,例如上圖的門店實體和員工實體,員工依賴於門店實體而存在,因此

弱實體

弱實體和強實體的聯絡必然只有

強實體

或者

門店是強實體,而員工是弱實體

,這是由於弱實體完全依賴於強實體,強實體不存在,那麼弱實體就不存在,所以弱實體是完全參與聯絡的,因此弱實體與聯絡之間的聯絡也是用的

1 : N

4000字細說ER模型基礎概念•業務建模系列

強弱實體關係模型

1 : 1

:複合實體也稱

雙線菱形

◆ 複合實體

,常常用於實現兩個或多個實體間的

聯合實體

聯絡,它由每個關聯實體的主碼組成,用長

橋接實體

來表示。

舉個複合實體的例子,還是以汽車美容門店的案例,

M : N

方體內加一個菱形

兩個實體是

車主

的關係,中間有

施工專案

這個實體聯絡,因此施工訂單這個實體是一個複合實體,同時如果車主實體不存在,就沒有施工訂單實體的存在,因此

M : N

,同理施工專案實體如果不存在,同樣不存在施工訂單實體,因此

施工訂單

,具體如圖:

4000字細說ER模型基礎概念•業務建模系列

車主施工單複合實體示例

對於車主實體來講施工訂單是弱實體

首先我們要定義的實體,就是最終定義具體業務的

對施工專案實體而言施工訂單是弱實體

。而要在業務場景中找到

我們如何找到業務中的實體?

的實體方法有很多。比如在找實體的過程中我們可以用以下方法:

我們如何找到業務中的實體?

:為什麼是「利益相關者法」而不是我們所說的使用者角色?因為使用者角色是以「人」作為緯度的。而

關鍵核心點

。所以我們思考業務本身有哪些

有實際業務意義

,這些利益相關者有需要我們

㊀ 利益相關者法

在B端業務中,經常會涉及到很多利益相關者,而我們可以將一部分利益相關者抽象出一部分實體。

比如,前段時間的文章《一篇長文:總結B端業務調研的問題》,經過調研後,我們可以輸出以下利益相關者:

「利益相關者法」,並不侷限在「人」

利益相關者

客服

1、系統上沒有對客戶下次跟進時間提醒;

2、不能清晰知道是哪個渠道過來的(抖音、小紅書);

……

設計師

1、量房記錄沒在系統體現;

2、收款每次財務稽核提交都很難查詢記錄;

……

……

……

這樣一系列調研下來後,我們可以初步的確認這些實體:

解決什麼問題

利益相關者

)、

存在什麼問題 / 對系統的期望

員工

客服人員/設計師/財務人員

客戶

渠道

這個方法可以從

量房記錄

,因為業務流程往往體現了

收款記錄

在《流程圖——產品⽂檔和原型咋弄》有提到業務流程畫法,其中我們還是用《一篇長文:總結B端業務調研的問題》的例子繪製一個簡單的業務流程圖:

4000字細說ER模型基礎概念•業務建模系列

SCRM客戶留資實體關係模型圖

㊁ 業務流程法:

即資料物件所具有的屬性,例如員工具有姓名、工號、職位等屬性,用橢圓形表示,屬性分為

流程中抽象出實體

(unique attribute)和

實體與實體之間的互動過程

,唯一屬性指的是唯一可用來標識該實體例項或者成員的屬性,用

ⓑ 屬性(Attribute)

,一般來講實體都至少有一個唯一屬性。

ER圖的屬性還細分為

ⓑ 屬性(Attribute)

唯一屬性

非唯一屬性

下劃線表示

,同時還有用來表示聯絡的屬性,稱為

複合屬性

多值屬性

派生屬性

(composite attribute):複合屬性是指具有多個屬性的組合,例如「姓名」屬性,它可以包含「姓氏」屬性和「名字」屬性,如下圖:

4000字細說ER模型基礎概念•業務建模系列

複合屬性

複合屬性也有唯一屬性,例如員工的「

可選屬性

」屬性,由於多個「

聯絡屬性

」都有「

◆ 復

」,所以單單「

合屬性

」屬性是不唯一的,但是和「

職位

」組成的複合屬性後則可以匹配成唯一屬性。

職位

職級

(multivalued attribute):一個實體的某個屬性可以有多個不同的取值,例如一輛車的「

職位

」屬性,這輛車有多個「

職級

」,例如SUV、MPV等,這個「

」就是多值屬性, 用

多值屬性

表示。

4000字細說ER模型基礎概念•業務建模系列

多值屬性

車型

車型

(derivers attribute):是

車型

存於資料庫的屬性。派生屬性的值可以從別的屬性值或其他資料(如當前日期)派生出來,用

雙線橢圓

表示,如下圖:

4000字細說ER模型基礎概念•業務建模系列

派生屬性(門店的營銷活動參與情況)

類似上圖「

」中,「

派生屬性

」就是一個派生屬性,隨著車主參加的活動變化,「

非永久性

」屬性也會變化,一般來說

虛線橢圓

,而是透過相應的公式邏輯查詢出來,比如:參與記錄、活動下單等。而如果存放在資料庫中,那麼就需要隔一段時間就進行更新,否則會出現資料不對的情況。

門店的營銷活動參與情況

參與人數

(optional attribute):並不是所有的屬性都必須有值,有些屬性的可以沒有值,這就是可選屬性,在橢圓的文字後用

參與人數

來表示,如下圖的地址就是一個可選屬性。

4000字細說ER模型基礎概念•業務建模系列

可選屬性

派生屬性不存在資料庫中

:聯絡屬性

可選屬性

,一般來講

(O)

的兩個實體的聯絡具有聯絡屬性,在1 : 1和1 : M的實體聯絡中聯絡屬性並不必要。

4000字細說ER模型基礎概念•業務建模系列

聯絡屬性

比如上圖的「

」需要開展「

聯絡屬性

」,那麼需要有個「

用於表示多個實體之間聯絡所具有的屬性

」屬性將兩個實體聯絡起來,而這個屬性其實是需要「門店id」、「活動id」組合而成的「

M : N

」,這裡類似資料庫中的「複合主鍵」。而這個「

門店

」、「

營銷活動

」都是用於門店開展活動整體情況資料。

門店開展活動

用來表現資料物件與資料物件之間的聯絡,例如「

開展ID

」的實體和「

開展日期

」的實體之間有一定的聯絡,每個「

開展成本

」都有自己的「

ⓒ 關係(Relationship)

」,這就是一種關係,關係用菱形來表示。

ⓒ 關係(Relationship)

門店

員工

:1對1關係是指對於實體集A與實體集B,A中的每一個實體至多與B中一個實體有關係;反之,在實體集B中的每個實體至多與實體集A中一個實體有關係。

門店

員工

:1對多關係是指實體集A與實體集B中至少有N(N>0)個實體有關係;並且實體集B中每一個實體至多與實體集A中一個實體有關係。

ER圖中關聯關係有三種:

ER圖中關聯關係有三種:

:多對多關係是指實體集A中的每一個實體與實體集B中至少有M(M>0)個實體有關係,並且實體集B中的每一個實體與實體集A中的至少N(N>0)個實體有關係。

對於這三種關聯關係,其實上面的圖例中都有體現出來。

前面提到ER圖分為

1對1(1:1)

(長方形)、

(橢圓形)、

1對多(1:N)

(菱形)三個核心部分,而對於之間的

(直線表示),相關表示符號見下圖:

4000字細說ER模型基礎概念•業務建模系列

其實這裡從1976年3月陳品山博士發明ER圖後,隨著實體關係建模的發展,ER圖的畫法也出現了變化。比如上面是「億圖圖示」這個軟體提供的ER圖圖例。

多對多(M:N)

➍ 產品經理如何進行ER建模繪製ER圖?

,其實就是我們前面提到的案例:

•實體是

實體

體現;

•屬性是

屬性

體現,如果是唯一鍵值屬性,就在內容文字中加下劃線;

•關係是

關係

體現,菱形內註明實體之間的聯絡情況;

•基數就是關係菱形兩側直線內標註關係型別;

4000字細說ER模型基礎概念•業務建模系列

車輛排程ER圖——出自processon。com

聯絡

使用UML畫ER圖,其實只是用UML的符號進行繪製而已,並沒有什麼特別之處。

:還是使用矩形表示。

陳氏符號

:這個時候我們初期都可以先忽略屬性,先把實體與實體之間的關係梳理清楚。

長方形

:直接使用直線,對比前面的中間有個菱形,這樣可能會快捷一些。

4000字細說ER模型基礎概念•業務建模系列

UML畫ER圖

如果在考慮「

橢圓形

」,那麼就會到最開始的汽車美容門店排位系統的圖。

菱形

本文章很多內容出自以下書籍:

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

• 資料庫領域的殿堂級作品《資料庫系統概念》

• 億圖圖示(https://www。edrawsoft。com/)

關注公號「強少來了」

回覆關鍵詞「 ER模型」或「008」可獲取

頂部