如何使用實體關係圖 (ERD) 設計關係數據庫?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用實體關係圖 (ERD) 設計關係數據庫?相关的知识,希望对你有一定的参考价值。
如何使用Entity Relationship Diagram (ERD) 設計關係數據庫 (Relational Database)?
數據庫已經成為我們日常生活中越來越不可或缺的一部分。我們處理數據的日常和無處不在 - 手機通訊錄,醫療記錄,後勤資料和交易記錄等,它們都存儲在數據庫中。這是很難想像的世界將是什麼樣子沒有數據庫。也許就沒有ATM,沒有信用卡,沒有地理信息系統和無機票預訂...
數據庫的歷史可以上溯到電子計算的初期。多年來,出現了一些數據庫類型的出現,如分層數據庫,關係數據庫,對象數據庫,XML數據庫等,他們在硬件要求,效率不同,數據的存儲,組織和訪問。
關係數據庫存儲在表中的集合數據。關係是交叉引用表之間定義。它存儲數據的方式,使用戶容易理解數據的結構和內容。開發人員可以使用結構化查詢語言(SQL)來查詢數據,並添加索引數據庫更快的查詢,使得關係型數據庫一段時間表現良好的數據量增加時也是如此。因此,儘管對象數據庫被質疑多年,關係型數據庫仍然是企業數據存儲到這個日期的最普遍的方式。甲骨文,微軟的SQL Server,MySQL的和PostgreSQL的 一些流行的關係數據庫管理系統。
如何關係數據庫 (Relational Database) 的工作原理
關係數據庫存儲數據表的集合。每個表貢獻了一組列,這是有值得和需要做出持續的表的屬性。的關係,在關係數據庫中的關鍵元件可表之間被添加到表示兩組數據是相互關聯的。
表 (Table)
關係數據庫由表(即實體),從中我們想尋求信息的集合。表由列,這是表的屬性,這是存儲和檢索的記錄行。
柱 (Column)
列是指一組表中的字段。列描述一個屬性,我們感興趣的是存儲為它所屬的表。
關係 (Relationship)
關係是兩個實體之間的連接。它以有意義的方式連接在一起的數據(表)。例如,知道交易的信息是不知道誰進行交易的客戶毫無意義。因此,我們將涉及客戶和交易表,以獲取有關交易的完整信息。
例如:學校
的實體關係圖(ERD)是關係數據庫的可視形式。人們使用ERDS建模和設計的關係數據庫。以下是描述了一個簡單的學校系統表的ERD。
學校和學生的實體(注:在ERD,術語“實體”經常被用來代替“表”,他們實際上是相同的)。在校表,有兩列 - 編號和名稱。id是主鍵(PK)列,它是用粗體和旁邊有一個關鍵符號。主鍵是能夠在一個表中唯一定義的記錄。換句話說,不能有兩個(或更多)的學校記錄共享相同的ID。學生,另一個表,有一個外鍵列,即SchoolId。這是在校表的主鍵ID的參考。請注意,外鍵不必是唯一的。多個學生記錄可以共享同一個學校編號。在真實的場景中,可以有多個學生在同一所學校就讀,因此具有相同的學生證。
學校和學生的實體之間,有一個連接器。我們稱之為關係。在這種情況下,它是一個一對多的關係。這意味著與主鍵(即學校)實體只包含一個零,一個或多個記錄中引用的實體(即學生)相關聯的記錄。我們可以這樣描述在日常語言中的關係:一所學校引入口很多學生。
用Entity Relationship Diagram (ERD) 設計關係數據庫 (Relational Database)
如果你要建立的數據庫由幾張桌子而已,你並不需要在所有的設計了。你可以簡單地使用數據庫管理系統提供的管理工具,或者運行一些SQL語句來獲取數據庫建立。然而,這決不會是在現實世界中的情況。
如果您計劃超過10表的數據庫,甚至多達數百個表,倒不如考慮之前建立它設計數據庫。下面是一些數據庫設計的好處:
- 它提供了一種方法讓你學習數據結構,以確保必要的表和關係也包括在內。此外,精心設計的數據庫,導致有效數據添加和檢索。
- 在設計過程中,您不僅可以了解數據結構,而且在目標系統可以更好。這有助於你的團隊來開發系統的其餘部分。
- 假設你最近開發的系統。三年後你的客戶端已經更新了業務計劃和戰略,並要求你升級現有的數據庫,以滿足新的需求。這將是規劃並通過查看數據庫,研究表定義執行變化的疼痛。數據庫設計總是給你的,你做了什麼清晰的畫面。
- 數據庫設計是不是只為你。它還允許你的客戶審查和對你的工作發表評論。這不會是可能的客戶有技術知識,了解數據庫是如何工作的。但高層次的視覺設計可以幫助他們,看看你的設計滿足他們的需要與否。
用Visual Paradigm繪製ERD
一個好的數據庫設計確實需要時間和精力來開發和受孕。一個有用的數據庫設計軟件可以幫助您減少時間和精力。 Visual Paradigm 為您提供不僅ERD的工具,但也是一套可視化建模功能,幫助您更方便快捷地表達自己的設計思路。今天支持市場最流行的關係數據庫管理系統。這裡是一個支持數據庫的列表:
|
|
在本節中,我們要設計一個關係型數據庫的公交線路管理系統,用ERD,在視覺範式。
首先,我們需要做出關於如何創建實體的決定。在這個過程中,你可能會發現很多考生。這裡有一些準則,以幫助您識別實體:
- 一個實體必須是一個名詞(例如事務處理)或名詞短語(例如PurchaseOrder的)
- 只接受有意義的系統名詞(“乘客”被取消資格,因為公交線路管理系統沒有記錄關於乘客的任何信息)
- 僅接受屬性來存儲名詞(“票價”被取消資格,因為它沒有任何意義的屬性來存儲。然而,“套餐”可能是一個潛在的實體“路線”的列)
最後,獲得了以下實體:
- 總線
- 時間表
- 路線
- 司機
- 停止(這是一個公共汽車站)
現在,讓我們開始設計過程。
- 創建通過選擇可視化範式一個新項目項目>新建工具欄上。在新建項目窗口中,將項目命名為 公交路線管理系統 ,然後點擊 創建空白項目 在底部。
- 要創建ERD,選擇圖>新建工具欄上。在新圖窗口中,選擇實體關係圖,然後單擊下一步。進入第一稿為圖名,然後單擊確定。
- 選擇實體從圖表工具欄。
- 點擊圖上創建一個實體。輸入總線為實體的名稱。請注意,我們通常使用單數命名的實體,無論實體可以有多少實例,在現實世界中。
- 按Enter鍵。這給你的第一個實體。
- 創建其他實體來創建這樣一個圖:
現在,我們可以指定實體列。識別實體類似,你需要仔細考慮你需要在每個實體存儲哪些列。不要為那些沒有價值的系統數據添加列。
- 在實體總線右鍵單擊選擇新列從彈出菜單中。
- 通過輸入添加一個主鍵列整數(10):+ vehicle_id並按輸入。A加字符用於指定主鍵列。如果你想添加一個非主鍵列,你並不需要它。(注:vehicle_id是列名。)
按Esc鍵停止創造新列。 - 列添加到其他實體:
實體 | 列 |
時間表 | + schedule_id:整數(10) 出發:日期 到來:日期 |
路線 | + ROUTE_ID:整數(10) 費用:浮子(10) |
停止 | + stop_id:整數(10) 名稱:VARCHAR(255) 末端為:斑點 |
司機 | + driver_id:整數(10) 名稱:VARCHAR(255) employ_date:日期 |
- 截至目前,該圖應該是這樣的:
- 讓我們涉及的實體。想想路線和日程安排的實體。路由有很多計劃和時間表必須是具體的路線下。因此,創建一個一對多的關係路線來安排。放置在鼠標指針路由實體。按下資源目錄對圖標,然後拖動進度實體。
- 在鬆開鼠標按鈕附表。然後,選擇一到多的關係在資源目錄。
當系統提示您定義外鍵映射,保持默認設置,然後單擊OK繼續。
在行程和時間表之間建立一個一對多的關係: - 時間表是由總線處理,總線可以在一整天中處理多個計劃。因此,創建一個從多到一個關係安排到總線。這一次,拖動資源目錄從實體圖標安排到總線,並選擇多到一- >實體從資源目錄創建一個連接。
截至目前,該圖應該是這樣的: - 現在到了公交車和司機。甲驅動器驅動總線和總線由一個驅動器驅動。創建一個從巴士司機一比一的關係。再次,確認使用默認設置創建外鍵。
- 對於路線和停止,路徑由許多公共汽車站,而一個公共汽車站是由許多路線共享。因此,有之間的許多一對多的關係。嘗試涉及路線並與一個多到多的關係停止,該關係被自動分割成兩個一對多的關係,具有鏈接的實體Route_Stop之間產生英寸 這是最後的ERD:
資源
以上是关于如何使用實體關係圖 (ERD) 設計關係數據庫?的主要内容,如果未能解决你的问题,请参考以下文章