技術之路

站在代碼以外看技術

甚麽是實體關系圖(ERD)?

數據庫是軟件體系中弗成或缺的一個構成部門,若能在數據庫工程中好好應用 ER 圖,便能讓您生成高質量的數據庫設計,用于數據庫創立,治理和保護,也爲人員間的交換供給了具意義的基本。《甚麽是實體關系圖(ERD)?》

明天,我們將爲你深刻引見 ER 圖表。經由過程瀏覽本ERD指南,您將取得有關 ER 圖和數據庫設計的根本常識和技巧。你會學到甚麽是 ERD,為何要繪制 ERD,ERD 符號,若何繪制 ERD 等,和一堆 ERD 示例。

甚麽是實體關系圖(ERD)?

起首,甚麽是實體關系圖?

實體關系圖也被稱爲 ERD、ER 圖、實體聯系模子、實體聯系形式圖或 ER 模子,是一種用于數據庫設計的構造圖。一幅 ERD 包括分歧的符號和銜接符,用于顯示兩個主要的資訊: 體系規模內的重要實體,和這些實體之間的互相關系

這也就是為何它被稱爲“實體”“關系”圖 (ERD)啊!

當我們議論 ERD 中的實體時,我們常常提到諸如人員/腳色(例如先生),無形貿易對象(例如産品),有形貿易對象(例如日記)等營業對象。“關系”則是這些實體在體系內的互相聯系關系。

《甚麽是實體關系圖(ERD)?》

在典範的 ER 設計中,可以找到諸如圓角矩形和 (Rounded rectangle) 銜接符(具有分歧款式的末尾)的符號來描寫實體,它們的屬性和互相關系。

什麽時候繪制ER圖?

那末,我們該在甚麽時刻繪制ER圖呢?固然ER模子大多是爲展現概念和設計物理數據庫而繪制的,但也有其余用處的,以下是一些典範的用例。

  • 數據庫設計 – 直接在數據庫更改數據庫構造會有風險, 爲防止損壞數據庫中的數據,我們得細心計劃一切變革。經由過程繪制 ER 圖來展現數據庫設計意念,您能輕松找失足誤和辨認設計缺點,並在履行數據庫更改之前作出修改。
  • 數據庫調試 – 調試數據庫成績常常具挑釁性,特殊是當數據庫包括很多表時,你我編寫龐雜的SQL來獲得所需的信息。經由過程 ERD 來展現數據庫構造,您可以周全地懂得全部數據庫的構造。您可以輕松找到實體,檢查其屬性並肯定與其余實體的關系,有助您更輕松地找出數據庫的成績。
  • 數據庫創立和修補 – 像 Visual Paradigm 如許的 ERD 軟件支撐數據庫生成對象,可以經由過程ER圖來主動生成和修補數據庫。應用這個 ER 圖對象,您的ER設計不再僅僅是一個靜態圖,而是一個真實反應物理數據庫構造的鏡像。
  • 贊助搜集需求 – 您可以經由過程繪制 ERD 來表達體系中的高等營業對象以用于肯定體系的需求。這類初始模子也能夠演變爲物理數據庫模子,用于創立關系數據庫,或爲創立流程圖和數據流模子供給無力的參考。

ERD 符號指南

ER 圖包括實體,屬性和關系。在本節中,我們將具體引見各 ERD 符號。

實體

ERD 實體是一個體系內可界說的事物或概念,如人/腳色(例如先生),對象(例如發票),概念(例如簡介)或事宜(例如生意業務)(注:在 ERD 中,術語“實體”平日用來取代“表”,但它們是一樣的)。在斟酌實體時,測驗考試把它們想成名詞。在 ER 模子中,實體顯示爲圓角矩形,其稱號位于上方,其屬性列在實體外形的主體中。上面的 ERD 示例顯示了 ER 實體的一個用例。

《甚麽是實體關系圖(ERD)?》

實體屬性

也稱爲列 (Row),意思是持有它的實體的屬性或特征

一個屬性有一個描寫屬性的稱號和一個描寫屬性品種的類型,例如代表字符串的 varchar,整數的 int。當爲物理數據庫開辟繪制 ERD 時,得應用目的 RDBMS 支撐的類型,以確保設計和物理數據庫的分歧性。

上面的 ER 圖示例顯示了一個包括屬性的實體。

《甚麽是實體關系圖(ERD)?》

主鍵 (Primary Key)

主鍵又稱 PK,是一種特別的實體屬性,用于界定命據庫表中的記載的奇特性。一個表不克不及有兩筆(或更多)具有雷同的主鍵屬性值的記載,像是身份證實內的 ID 就是典範的例子,兩小我即便性名雷同,ID 是不會一樣,若身份證實是個表,那ID 就是主鍵了。上面的 ERD 示例顯示了具有主鍵屬性 “ID” 的實體 “Product”,和數據庫中表記載的預覽。第三個記載是有效的,由於 ID ‘PDT-0002’ 的值已被另外壹個記載應用。

《甚麽是實體關系圖(ERD)?》

外鍵 (Foreign Key)

外鍵又稱外來鍵和內部鍵,是對主鍵的援用,用于辨認實體之間的關系。請留意,有別于主鍵,外鍵不用是獨壹的,多個記載可以同享雷同的值。上面的 ER Diagram 示例顯示了一個包括一些列的實體,個中一個外鍵用于援用另外壹個實體。

《甚麽是實體關系圖(ERD)?》

關系

兩個實體之間的關系表現這兩個實體以某種方法互相聯系關系。例如,先生能夠加入課程。實體“先生”是以與“課程”相幹,而這關系則在 ER 圖中以銜接線表達著。

基數 (Cardinality)

基數界說了一個實與另外壹個實體的關系外面,某方能夠湧現次數。例如,一個團隊有很多球員,若把這關系出現于 ERD 時,團隊和球員之間是一對多的關系。

在 ER 圖中,基數表現爲銜接線真個烏鴉腳。三種罕見的重要關系是一對一,一對多和多對多。

一對一的基數的例子

一對一關系重要用于將實體分紅兩部門,簡練地將資訊出現,使讀者更輕易懂得。下圖顯示了一對一關系的示例。

《甚麽是實體關系圖(ERD)?》

一對多的基數的例子

一對多關系是指兩個實體 X 和 Y 之間的關系,個中 X 的一個實例可以鏈接到Y的很多實例,而 Y 的一個實例僅鏈接到 X 的一個實例。下圖顯示了一對多關系的一個例子。

《甚麽是實體關系圖(ERD)?》

多對多的基數的例子

多對多關系是指兩個實體 X 和 Y 之間的關系,個中 X 可以被鏈接到 Y 的很多實例,反之亦然。下圖顯示了一個多對多關系的例子。請留意,多對多關系在物理 ERD 中被分紅一對一對多的關系,你會鄙人一節中學到什麼是物理 ERD。

《甚麽是實體關系圖(ERD)?》

概念,邏輯和物理數據模子

ER 模子平日被繪制成最多三個籠統條理上:

固然 ER 模子的三個條理都包括有屬性和關系的實體,但它們的創立目標和目的受衆都分歧。

普通而言,營業剖析人員應用概念和邏輯模子來展現體系中存在的營業對象 (Business Object),而數據庫設計人員或數據庫工程師會爲概念和邏輯ER模子參加更具體的資訊,進而生成反應物理模子構造的物理數據模子,好爲創立數據庫作預備。下表列出了三種數據模子之間的差別。

概念模子 vs 邏輯模子 vs 數據模子:

ERD功效 概念 邏輯 物理
實體(稱號)
關系
列的類型 隨便
主鍵
外鍵

概念數據模子

概念性 ERD 表達了體系中該存在的營業對象和它們之間的關系。樹立概念模子,是爲了經由過程辨認所觸及的營業對象來出現體系的微觀圖象。概念數據模子界說了哪些實體存在,而非哪些表。例如,邏輯或物理數據模子中能夠存在“多對多”表,但在概念數據模子下,它們只會表現爲無基數的關系。

概念數據模子示例

《甚麽是實體關系圖(ERD)?》

留意:概念性 ERD 支撐應用泛化 (Generalization) 來表達兩個實體之間的“一種”關系,例如三角形是一種外形,這個用法就像UML中的泛化一樣。請留意只要概念 ERD 支撐泛化。

邏輯數據模子

邏輯 ERD 是概念 ERD 的具體版本,經由過程明白界說每壹個實體中的列並引入操作和事務虛體 (Transactional Entities)來讓概念模子豐碩起來。固然邏輯數據模子仍流于高條理的設計(非爲特定命據庫體系而繪畫),但假如會影響數據庫的設計,在繪制邏輯數據模子時依然可酌情調劑。

邏輯數據模子示例

《甚麽是實體關系圖(ERD)?》

物理數據模子

物理 ERD 是數據庫的現實設計藍圖。物理數據模子經由過程爲每列指定類型 (Type),長度 (Length),可爲空 (Nullable) 等來具體論述邏輯數據模子。因為物理 ERD 表達了若何在特定的 DBMS中結構和聯系關系數據,是以在設計時要斟酌到現實的數據庫體系的須要和局限,倒如確保 DBMS 支撐某列類型,並在定名實體和列中避用某些保存字 (Reserved Words)。

物理數據模子示例

《甚麽是實體關系圖(ERD)?》

若何繪制 ER 圖?

假如您發明繪制 ER 圖很難,請不要擔憂,在本節中我們將給你一些 ERD 提醒。測驗考試依照以下步調以懂得若何有用地繪制 ER 圖吧。

  1. 確保你清晰曉得繪制 ERD 的目標。您能否試圖出現觸及營業對象界說的全體體系架構?或許你正在開辟一個預備用于數據庫創立的 ER 模子?您必需清楚明了開辟 ER 圖的目標,方可以使用適合的模子條理(概念/邏輯和物理)來逢迎您所需 (請瀏覽概念,邏輯和物理數據模子部門懂得更具體信息)
  2. 確保你清晰模子的規模。懂得建榜樣圍可以避免在設計中包括冗余實體和關系。
  3. 畫出規模內的重要實體。
  4. 經由過程添加列來界說實體的屬性。
  5. 細心檢討 ERD 並檢討實體和列能否足以存儲體系的數據。假如不是,請斟酌添加其他實體和列。平日,您可以在此步調中肯定一些事務 (Transactional),操作 (Operational) 和事宜 (Event) 實體。
  6. 斟酌壹切實體之間的關系,將它們聯系起來,並寫上準確的基數(例如客戶和定單之間的一對多關系)。假如有任何實體沒有被銜接上,請不要擔憂,固然這不罕見,但它是正當的。
  7. 應用數據庫標準化技術 (Database Normalization)重構實體,以削減冗余數據和進步數據完全性。例如,“制作商”的資訊能夠最後存儲在“産品”實體下,透過標準化進程,您能夠會發“制作商”的記載賡續反復,您即可將其拆分爲零丁的“制作商”實體,並應用外鍵將“産品”和“制作商”銜接起來。

數據模子的例子

ERD 示例 – 片子租賃體系

《甚麽是實體關系圖(ERD)?》

ERD 示例 – 存款體系

《甚麽是實體關系圖(ERD)?》

ERD 示例 – 在線市肆

《甚麽是實體關系圖(ERD)?》

應用ERD和數據流圖(DFD)

在體系剖析和設計中,可以繪制數據流圖(DFD) 來展示體系流程中的信息流。在數據流圖中,有一個名爲數據貯存 (Data Store)的符號,它代表一個供給體系所需信息的數據庫表。

《甚麽是實體關系圖(ERD)?》

因為物理 ER 圖供給了現實數據庫的藍圖,是以這類 ERD 中的實體與 DFD 中的數據存儲分歧。您可以 ERD 作爲 DFD 的彌補,以表達信息的構造;或以 DFD 彌補 ERD,以顯示體系在運轉時若何應用數據。

《甚麽是實體關系圖(ERD)?》

應用ERD和BPMN營業流程圖(BPD)

在營業流程映照中 (Business Process Mapping),可以繪制 BPMN 營業流程圖 (BPD) 以展現營業任務流程。在營業流程圖中,有一個稱爲數據對象(Data Object)的符號,表現在流程輸出/輸入的數據。

《甚麽是實體關系圖(ERD)?》

因為概念和邏輯數據模子供給了體系內營業對象的高等視圖,是以此類 ERD 中的實體與 BPD 中的數據對象分歧。您可繪制 ERD 作爲 BPD 的彌補,以表現營業任務流程所需的數據對象的構造;或以 BPD 彌補 ERD,以顯示在全部營業流程中若何應用數據。

《甚麽是實體關系圖(ERD)?》

選擇一個ERD對象

制造 ERD 數據模子須要時光和精神,而一個有效的數據庫設計對象則能大大減省你消費的時光和精神。 Visual Paradigm 不只爲您供給 ERD 對象,還供給了一組可視化建模功效,助您更快、更輕松地繪制實體關系圖。它支撐現今市場上最風行的數據庫治理體系,是數據庫設計、數據庫生成和實體關系圖逆轉的好副手。

《甚麽是實體關系圖(ERD)?》Visual Paradigm Modeler 支撐 ERD 設計對象,月費僅爲6 美元!我們建議你下載並測驗考試一下,你將取得 30 天收費試用。

點贊

揭櫫評論

電子郵件地址不會被公開。 必填項已用*標注