數據庫絕對是軟件系統不可分割的一部分。在數據庫工程中充分利用ER關系圖,可以保證在數據庫創建、管理和維護中產生高質量的數據庫設計。ER模型還提供了一種通信手段。

今天我們將帶你了解所有你需要知道的關于ER圖解的知識。通過閱讀ERD指南,您將獲得關于ER圖和數據庫設計的基本知識和技能。你會學到ERD是什么,為什么,ERD符號,如何畫ERD,等等,以及一些ERD的例子。
什么是ER圖?
首先,什么是實體關系圖?
實體關系圖,又稱ERD、ER圖或ER模型,是一種用于數據庫設計的結構圖。ERD包含不同的符號和連接器,它們可視化兩個重要的信息:系統范圍內的主要實體,以及這些實體之間的相互關系。
這就是為什么它被稱為“實體”“關系”圖(ERD)!
當我們在ERD中談到實體時,我們通常指的是業務對象,例如人員/角色(例如學生)、有形的業務對象(例如產品)、無形的業務對象(例如日志)等。“關系”是關于這些實體如何在系統中相互關聯的。

在典型的ER設計中,您可以找到描述實體、實體屬性和相互關系的符號,如圓角矩形和連接器(具有不同的端點樣式)。
什么時候畫ER圖?
什么時候畫erd ?雖然ER模型主要用于在概念可視化和物理數據庫設計方面設計關系數據庫,但是在其他情況下,ER圖也可以提供幫助。下面是一些典型的用例。
數據庫設計
——根據變化的規模,直接在DBMS中更改數據庫結構可能有風險。為了避免破壞生產數據庫中的數據,仔細計劃更改是很重要的。ERD是一個有用的工具。通過繪制ER圖來可視化數據庫設計思想,您有機會識別錯誤和設計缺陷,并在數據庫中執行更改之前進行更正。
數據庫調試
——調試數據庫問題很有挑戰性,特別是當數據庫包含許多表時,需要編寫復雜的SQL來獲取所需的信息。通過使用ERD可視化數據庫模式,您可以全面了解整個數據庫模式。您可以輕松地定位實體、查看它們的屬性并確定它們與其他實體之間的關系。所有這些都允許您分析現有數據庫并更容易地發現數據庫問題。
數據庫創建和補丁
—Visual Paradigm是一個ERD工具,它支持一個數據庫生成工具,可以通過ER圖的方式自動創建和補丁數據庫。因此,有了這個ER圖工具,ER設計就不再是一個靜態的圖,而是反映物理數據庫結構的一面鏡子。
幫助收集需求
——通過繪制描述系統高級業務對象的概念性ERD來確定信息系統的需求。這樣的初始模型還可以演化為物理數據庫模型,以幫助創建關系數據庫,或幫助創建流程圖和數據流模式。
ERD符號指南
ER圖包含實體、屬性和關系。在這一節中,我們將詳細討論ERD符號。
實體
ERD實體是一個系統內可定義的事物或概念,例如人/角色(例如學生)、對象(例如發票)、概念(例如概要)或事件(例如交易)(注:在ERD中,術語“實體”經常被用來代替“表”,但它們是相同的)。在確定實體時,將它們視為名詞。在ER模型中,實體顯示為圓角矩形,其名稱位于頂部,其屬性列在實體形狀的主體中。下面的ERD示例顯示了一個ER實體的示例。

實體屬性
屬性也稱為列,是持有它的實體的屬性或特征。
屬性具有描述屬性的名稱和描述屬性類型的類型,如字符串的varchar和整數的int。在為物理數據庫開發繪制ERD時,務必確保使用目標RDBMS支持的類型。
下面的ER關系圖示例顯示了一個包含一些屬性的實體。

主鍵
主鍵是一種特殊的實體屬性,它惟一地定義了數據庫表中的一條記錄。換句話說,不能有兩個(或多個)記錄共享主鍵屬性的相同值。下面的ERD示例顯示了具有主鍵屬性“ID”的實體“Product”,以及數據庫中表記錄的預覽。第三條記錄無效,因為另一條記錄已經使用了ID 'PDT-0002'的值。

外鍵
外鍵也稱為FK,是對表中主鍵的引用。它用于標識實體之間的關系。注意,外鍵不一定是唯一的。多條記錄可以共享相同的值。下面的ER關系圖示例顯示了一個具有一些列的實體,其中外鍵用于引用另一個實體。

關系
兩個實體之間的關系表示這兩個實體以某種方式相互關聯。例如,一個學生可能注冊了一個課程。因此,實體學生與課程是相關的,而一種關系是連接他們之間的連接器。
基數
基數定義一個實體中可能出現的事件數,該實體與另一個實體中可能出現的事件數相關聯。例如,一個隊有很多隊員。當在ERD中出現時,實體團隊和玩家以一對多的關系相互連接。
在ER圖中,基數表示為連接器兩端的魚尾紋。三種常見的基本關系是一對一、一對多和多對多。
一對一的基數的例子
一對一關系主要用于將一個實體一分為二,以提供簡明的信息并使其更易于理解。下圖顯示了一對一關系的一個示例。

一對多的基數的例子
一對多關系是指兩個實體X和Y之間的關系,其中X的一個實例可能鏈接到Y的多個實例,而Y的一個實例只鏈接到X的一個實例。

多對多的基數的例子
多對多關系是指兩個實體X和Y之間的關系,其中X可以鏈接到Y的多個實例,反之亦然。下圖顯示了一個多對多關系的示例。注意,在物理ERD中,多對多關系被分割為一對一對多關系。在下一節中,您將了解什么是物理ERD。

概念、邏輯和物理數據模型
ER模型通常是在三個抽象層次上繪制的:
- 概念ERD /概念數據模型
- 邏輯ERD /邏輯數據模型
- 物理ERD /物理數據模型
雖然ER模型的所有三個級別都包含具有屬性和關系的實體,但是它們在創建的目的和目標受眾方面有所不同。
一般理解的三個數據模型是業務分析師使用概念模型和邏輯模型系統中的業務對象存在,而數據庫設計師或數據庫工程師闡述了概念和邏輯ER模型生成物理模型,提出了物理數據庫結構準備創建數據庫。下表顯示了三種數據模型之間的差異。
概念模型vs邏輯模型vs數據模型:
ERD featuresConceptualLogicalPhysicalEntity (Name)YesYesYesRelationshipYesYesYesColumns YesYesColumn's Types OptionalYesPrimary Key YesForeign Key Yes
概念數據模型
概念性的ERD對系統中應該存在的業務對象及其之間的關系進行建模。開發了一個概念模型,通過識別所涉及的業務對象來呈現系統的總體情況。它定義了哪些實體存在,而不是哪些表。例如,“多對多”表可能存在于邏輯或物理數據模型中,但在概念數據模型中,它們只是作為沒有基數的關系顯示。
概念數據模型示例

注意:概念性ERD支持在建模兩個實體之間的“一種”關系時使用泛化,例如,三角形是一種形狀。這種用法類似于UML中的泛化。注意,只有概念性的ERD支持泛化。
邏輯數據模型
邏輯ERD是概念ERD的詳細版本。通過顯式定義每個實體中的列并引入操作實體和事務實體,可以開發邏輯ER模型來豐富概念模型。雖然邏輯數據模型仍然獨立于將要創建數據庫的實際數據庫系統,但是如果它影響設計,您仍然可以考慮這一點。
邏輯數據模型示例

物理數據模型
物理ERD表示關系數據庫的實際設計藍圖。物理數據模型通過為每個列分配類型、長度、可空值等來詳細說明邏輯數據模型。由于物理ERD表示在特定DBMS中數據應該如何結構化和關聯,因此考慮實際數據庫系統的約定和限制是很重要的。確保DBMS支持列類型,并且在命名實體和列時不使用保留字。
物理數據模型示例

如何繪制ER圖?
如果你發現很難開始畫ER圖,不要擔心。在這一節中,我們將為您提供一些ERD技巧。嘗試按照下面的步驟來理解如何有效地繪制ER圖。
- 確定你清楚繪制ERD的目的。您是否試圖呈現涉及業務對象定義的整個系統體系結構?或者您正在開發一個為數據庫創建準備好的ER模型嗎?您必須清楚在適當的細節級別開發ER關系圖的目的(有關更多細節,請閱讀“概念、邏輯和物理數據模型”一節)
- 確保您清楚要建模的范圍。了解建模范圍可以防止在設計中包含冗余實體和關系。
- 繪制范圍中涉及的主要實體。
- 通過添加列來定義實體的屬性。
- 仔細檢查ERD,檢查實體和列是否足夠存儲系統的數據。如果沒有,則考慮添加其他實體和列。通常,您可以在此步驟中標識一些事務、操作和事件實體。
- 考慮所有實體之間的關系,并使用適當的基數(e。實體客戶和訂單之間的一對多關系)。不要擔心是否存在孤兒實體。雖然不常見,但卻是合法的。
- 應用數據庫規范化技術以減少數據冗余和提高數據完整性的方式重構實體。例如,制造商的詳細信息最初可能存儲在Product實體下。在規范化的過程中,您可能會發現詳細信息會重復記錄,然后您可以將其作為單獨的實體制造商進行拆分,并使用一個外鍵在產品和制造商之間進行鏈接。
數據模型的例子
ERD例子-電影租賃系統

ERD示例-貸款系統

ERD的例子-網上商店

將ERD與數據流圖(DFD)結合使用
在系統分析和設計中,可以繪制數據流圖來可視化系統過程中的信息流。在數據流圖中,有一個稱為數據存儲的符號,它表示一個數據庫表,該表提供系統所需的信息。

由于物理ER關系圖提供了實際數據庫的藍圖,所以ERD中的實體與DFD中的數據存儲保持一致。您可以通過表示系統內流動的信息結構來繪制ERD,作為對DFD的補充,或者相反,通過顯示系統在運行時將如何使用數據來繪制DFD,以補充ERD。

將ERD與BPMN業務流程圖(BPD)一起使用
在業務流程映射中,可以繪制BPMN業務流程圖(BPD)來可視化業務工作流。在業務流程圖中,有一個稱為數據對象的符號,它表示流程活動的數據輸入/輸出。

由于概念和邏輯數據模型提供了系統內業務對象的高級視圖,因此此類erd中的實體與BPD中的數據對象是一致的。您可以通過表示業務工作流所需的數據對象的結構來繪制ERD,作為對BPD的補充,或者相反,通過顯示如何在整個業務流程中使用數據來繪制BPD,以補充ERD。

選擇ERD工具
使用ERD開發數據模型需要時間和精力。一個有用的數據庫設計工具應該能夠減少您所花費的時間和精力。Visual Paradigm不僅為您提供了ERD工具,還提供了一組可視化建模功能,幫助您更快、更輕松地繪制圖形。它支持當今市場上大多數流行的關系數據庫管理系統,包括數據庫設計、數據庫生成和ERD反轉。

原文:https://www.visual-paradigm.com/guide/data-modeling/what-is-entity-relationship-diagram/
本文:http://jiagoushi.pro/node/856
討論:請加入知識星球【首席架構師圈】或者飛聊小組【首席架構師智庫】