
明天,我們將爲你深刻引見 ER 圖表。經由過程瀏覽本ERD指南,您將取得有關 ER 圖和數據庫設計的根本常識和技巧。你會學到甚麽是 ERD,為何要繪制 ERD,ERD 符號,若何繪制 ERD 等,和一堆 ERD 示例。
甚麽是實體關系圖(ERD)?
起首,甚麽是實體關系圖?
實體關系圖也被稱爲 ERD、ER 圖、實體聯系模子、實體聯系形式圖或 ER 模子,是一種用于數據庫設計的構造圖。一幅 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 實體的一個用例。
實體屬性
也稱爲列 (Row),意思是持有它的實體的屬性或特征。
一個屬性有一個描寫屬性的稱號和一個描寫屬性品種的類型,例如代表字符串的 varchar,整數的 int。當爲物理數據庫開辟繪制 ERD 時,得應用目的 RDBMS 支撐的類型,以確保設計和物理數據庫的分歧性。
上面的 ER 圖示例顯示了一個包括屬性的實體。
主鍵 (Primary Key)
主鍵又稱 PK,是一種特別的實體屬性,用于界定命據庫表中的記載的奇特性。一個表不克不及有兩筆(或更多)具有雷同的主鍵屬性值的記載,像是身份證實內的 ID 就是典範的例子,兩小我即便性名雷同,ID 是不會一樣,若身份證實是個表,那ID 就是主鍵了。上面的 ERD 示例顯示了具有主鍵屬性 “ID” 的實體 “Product”,和數據庫中表記載的預覽。第三個記載是有效的,由於 ID ‘PDT-0002’ 的值已被另外壹個記載應用。
外鍵 (Foreign Key)
外鍵又稱外來鍵和內部鍵,是對主鍵的援用,用于辨認實體之間的關系。請留意,有別于主鍵,外鍵不用是獨壹的,多個記載可以同享雷同的值。上面的 ER Diagram 示例顯示了一個包括一些列的實體,個中一個外鍵用于援用另外壹個實體。
關系
兩個實體之間的關系表現這兩個實體以某種方法互相聯系關系。例如,先生能夠加入課程。實體“先生”是以與“課程”相幹,而這關系則在 ER 圖中以銜接線表達著。
基數 (Cardinality)
基數界說了一個實與另外壹個實體的關系外面,某方能夠湧現次數。例如,一個團隊有很多球員,若把這關系出現于 ERD 時,團隊和球員之間是一對多的關系。
在 ER 圖中,基數表現爲銜接線真個烏鴉腳。三種罕見的重要關系是一對一,一對多和多對多。
一對一的基數的例子
一對一關系重要用于將實體分紅兩部門,簡練地將資訊出現,使讀者更輕易懂得。下圖顯示了一對一關系的示例。
一對多的基數的例子
一對多關系是指兩個實體 X 和 Y 之間的關系,個中 X 的一個實例可以鏈接到Y的很多實例,而 Y 的一個實例僅鏈接到 X 的一個實例。下圖顯示了一對多關系的一個例子。
多對多的基數的例子
多對多關系是指兩個實體 X 和 Y 之間的關系,個中 X 可以被鏈接到 Y 的很多實例,反之亦然。下圖顯示了一個多對多關系的例子。請留意,多對多關系在物理 ERD 中被分紅一對一對多的關系,你會鄙人一節中學到什麼是物理 ERD。
概念,邏輯和物理數據模子
ER 模子平日被繪制成最多三個籠統條理上:
固然 ER 模子的三個條理都包括有屬性和關系的實體,但它們的創立目標和目的受衆都分歧。
普通而言,營業剖析人員應用概念和邏輯模子來展現體系中存在的營業對象 (Business Object),而數據庫設計人員或數據庫工程師會爲概念和邏輯ER模子參加更具體的資訊,進而生成反應物理模子構造的物理數據模子,好爲創立數據庫作預備。下表列出了三種數據模子之間的差別。
概念模子 vs 邏輯模子 vs 數據模子:
ERD功效 | 概念 | 邏輯 | 物理 |
---|---|---|---|
實體(稱號) | 是 | 是 | 是 |
關系 | 是 | 是 | 是 |
列 | 是 | 是 | |
列的類型 | 隨便 | 是 | |
主鍵 | 是 | ||
外鍵 | 是 |
概念數據模子
概念性 ERD 表達了體系中該存在的營業對象和它們之間的關系。樹立概念模子,是爲了經由過程辨認所觸及的營業對象來出現體系的微觀圖象。概念數據模子界說了哪些實體存在,而非哪些表。例如,邏輯或物理數據模子中能夠存在“多對多”表,但在概念數據模子下,它們只會表現爲無基數的關系。
概念數據模子示例
留意:概念性 ERD 支撐應用泛化 (Generalization) 來表達兩個實體之間的“一種”關系,例如三角形是一種外形,這個用法就像UML中的泛化一樣。請留意只要概念 ERD 支撐泛化。
邏輯數據模子
邏輯 ERD 是概念 ERD 的具體版本,經由過程明白界說每壹個實體中的列並引入操作和事務虛體 (Transactional Entities)來讓概念模子豐碩起來。固然邏輯數據模子仍流于高條理的設計(非爲特定命據庫體系而繪畫),但假如會影響數據庫的設計,在繪制邏輯數據模子時依然可酌情調劑。
邏輯數據模子示例
物理數據模子
物理 ERD 是數據庫的現實設計藍圖。物理數據模子經由過程爲每列指定類型 (Type),長度 (Length),可爲空 (Nullable) 等來具體論述邏輯數據模子。因為物理 ERD 表達了若何在特定的 DBMS中結構和聯系關系數據,是以在設計時要斟酌到現實的數據庫體系的須要和局限,倒如確保 DBMS 支撐某列類型,並在定名實體和列中避用某些保存字 (Reserved Words)。
物理數據模子示例
若何繪制 ER 圖?
假如您發明繪制 ER 圖很難,請不要擔憂,在本節中我們將給你一些 ERD 提醒。測驗考試依照以下步調以懂得若何有用地繪制 ER 圖吧。
- 確保你清晰曉得繪制 ERD 的目標。您能否試圖出現觸及營業對象界說的全體體系架構?或許你正在開辟一個預備用于數據庫創立的 ER 模子?您必需清楚明了開辟 ER 圖的目標,方可以使用適合的模子條理(概念/邏輯和物理)來逢迎您所需 (請瀏覽概念,邏輯和物理數據模子部門懂得更具體信息)
- 確保你清晰模子的規模。懂得建榜樣圍可以避免在設計中包括冗余實體和關系。
- 畫出規模內的重要實體。
- 經由過程添加列來界說實體的屬性。
- 細心檢討 ERD 並檢討實體和列能否足以存儲體系的數據。假如不是,請斟酌添加其他實體和列。平日,您可以在此步調中肯定一些事務 (Transactional),操作 (Operational) 和事宜 (Event) 實體。
- 斟酌壹切實體之間的關系,將它們聯系起來,並寫上準確的基數(例如客戶和定單之間的一對多關系)。假如有任何實體沒有被銜接上,請不要擔憂,固然這不罕見,但它是正當的。
- 應用數據庫標準化技術 (Database Normalization)重構實體,以削減冗余數據和進步數據完全性。例如,“制作商”的資訊能夠最後存儲在“産品”實體下,透過標準化進程,您能夠會發“制作商”的記載賡續反復,您即可將其拆分爲零丁的“制作商”實體,並應用外鍵將“産品”和“制作商”銜接起來。
數據模子的例子
ERD 示例 – 片子租賃體系
ERD 示例 – 存款體系
ERD 示例 – 在線市肆
應用ERD和數據流圖(DFD)
在體系剖析和設計中,可以繪制數據流圖(DFD) 來展示體系流程中的信息流。在數據流圖中,有一個名爲數據貯存 (Data Store)的符號,它代表一個供給體系所需信息的數據庫表。
因為物理 ER 圖供給了現實數據庫的藍圖,是以這類 ERD 中的實體與 DFD 中的數據存儲分歧。您可以 ERD 作爲 DFD 的彌補,以表達信息的構造;或以 DFD 彌補 ERD,以顯示體系在運轉時若何應用數據。
應用ERD和BPMN營業流程圖(BPD)
在營業流程映照中 (Business Process Mapping),可以繪制 BPMN 營業流程圖 (BPD) 以展現營業任務流程。在營業流程圖中,有一個稱爲數據對象(Data Object)的符號,表現在流程輸出/輸入的數據。
因為概念和邏輯數據模子供給了體系內營業對象的高等視圖,是以此類 ERD 中的實體與 BPD 中的數據對象分歧。您可繪制 ERD 作爲 BPD 的彌補,以表現營業任務流程所需的數據對象的構造;或以 BPD 彌補 ERD,以顯示在全部營業流程中若何應用數據。
選擇一個ERD對象
制造 ERD 數據模子須要時光和精神,而一個有效的數據庫設計對象則能大大減省你消費的時光和精神。 Visual Paradigm 不只爲您供給 ERD 對象,還供給了一組可視化建模功效,助您更快、更輕松地繪制實體關系圖。它支撐現今市場上最風行的數據庫治理體系,是數據庫設計、數據庫生成和實體關系圖逆轉的好副手。
Visual Paradigm Modeler 支撐 ERD 設計對象,月費僅爲6 美元!我們建議你下載並測驗考試一下,你將取得 30 天收費試用。