前言
接下來幾篇文章會圍繞「業務建模」這個方向,展開總結一下。講到業務建模就聯想到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)
都可以作為一個數據物件,用長方體來表示,每個實體都有自己的
門店、員工、物品
(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客戶留資實體關係模型圖
㊁ 業務流程法:
即資料物件所具有的屬性,例如員工具有姓名、工號、職位等屬性,用橢圓形表示,屬性分為
流程中抽象出實體
(unique attribute)和
實體與實體之間的互動過程
,唯一屬性指的是唯一可用來標識該實體例項或者成員的屬性,用
ⓑ 屬性(Attribute)
,一般來講實體都至少有一個唯一屬性。
ER圖的屬性還細分為
ⓑ 屬性(Attribute)
、
唯一屬性
和
非唯一屬性
、
下劃線表示
,同時還有用來表示聯絡的屬性,稱為
複合屬性
。
多值屬性
派生屬性
(composite attribute):複合屬性是指具有多個屬性的組合,例如「姓名」屬性,它可以包含「姓氏」屬性和「名字」屬性,如下圖:
複合屬性
複合屬性也有唯一屬性,例如員工的「
可選屬性
」屬性,由於多個「
聯絡屬性
」都有「
◆ 復
」,所以單單「
合屬性
」屬性是不唯一的,但是和「
職位
」組成的複合屬性後則可以匹配成唯一屬性。
職位
職級
(multivalued attribute):一個實體的某個屬性可以有多個不同的取值,例如一輛車的「
職位
」屬性,這輛車有多個「
職級
」,例如SUV、MPV等,這個「
◆
」就是多值屬性, 用
多值屬性
表示。
多值屬性
車型
車型
(derivers attribute):是
車型
存於資料庫的屬性。派生屬性的值可以從別的屬性值或其他資料(如當前日期)派生出來,用
雙線橢圓
表示,如下圖:
派生屬性(門店的營銷活動參與情況)
類似上圖「
◆
」中,「
派生屬性
」就是一個派生屬性,隨著車主參加的活動變化,「
非永久性
」屬性也會變化,一般來說
虛線橢圓
,而是透過相應的公式邏輯查詢出來,比如:參與記錄、活動下單等。而如果存放在資料庫中,那麼就需要隔一段時間就進行更新,否則會出現資料不對的情況。
門店的營銷活動參與情況
參與人數
(optional attribute):並不是所有的屬性都必須有值,有些屬性的可以沒有值,這就是可選屬性,在橢圓的文字後用
參與人數
來表示,如下圖的地址就是一個可選屬性。
可選屬性
派生屬性不存在資料庫中
◆
:聯絡屬性
可選屬性
,一般來講
(O)
的兩個實體的聯絡具有聯絡屬性,在1 : 1和1 : M的實體聯絡中聯絡屬性並不必要。
聯絡屬性
比如上圖的「
◆
」需要開展「
聯絡屬性
」,那麼需要有個「
用於表示多個實體之間聯絡所具有的屬性
」屬性將兩個實體聯絡起來,而這個屬性其實是需要「門店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)
(菱形)三個核心部分,而對於之間的
◆
(直線表示),相關表示符號見下圖:
其實這裡從1976年3月陳品山博士發明ER圖後,隨著實體關係建模的發展,ER圖的畫法也出現了變化。比如上面是「億圖圖示」這個軟體提供的ER圖圖例。
多對多(M:N)
➍ 產品經理如何進行ER建模繪製ER圖?
,其實就是我們前面提到的案例:
•實體是
實體
體現;
•屬性是
屬性
體現,如果是唯一鍵值屬性,就在內容文字中加下劃線;
•關係是
關係
體現,菱形內註明實體之間的聯絡情況;
•基數就是關係菱形兩側直線內標註關係型別;
車輛排程ER圖——出自processon。com
聯絡
使用UML畫ER圖,其實只是用UML的符號進行繪製而已,並沒有什麼特別之處。
◆
:還是使用矩形表示。
陳氏符號
:這個時候我們初期都可以先忽略屬性,先把實體與實體之間的關係梳理清楚。
長方形
:直接使用直線,對比前面的中間有個菱形,這樣可能會快捷一些。
UML畫ER圖
如果在考慮「
橢圓形
」,那麼就會到最開始的汽車美容門店排位系統的圖。
菱形
本文章很多內容出自以下書籍:
• 陳品山博士發表的《The Entity-Relationship Model——Toward a Unified View of Data》
• 資料庫領域的殿堂級作品《資料庫系統概念》
• 億圖圖示(https://www。edrawsoft。com/)
關注公號「強少來了」
回覆關鍵詞「 ER模型」或「008」可獲取