如何使用實體關係圖 (ERD) 設計關係數據庫?

如何使用Entity Relationship Diagram (ERD) 設計關係數據庫 (Relational Database)?


數據庫已經成為我們日常生活中越來越不可或缺的一部分。我們處理數據的日常和無處不在 - 手機通訊錄,醫療記錄,後勤資料和交易記錄等,它們都存儲在數據庫中。這是很難想像的世界將是什麼樣子沒有數據庫。也許就沒有ATM,沒有信用卡,沒有地理信息系統和無機票預訂...

數據庫的歷史可以上溯到電子計算的初期。多年來,出現了一些數據庫類型的出現,如分層數據庫關係數據庫對象數據庫XML數據庫等,他們在硬件要求,效率不同,數據的存儲,組織和訪問。

關係數據庫存儲在表中的集合數據。關係是交叉引用表之間定義。它存儲數據的方式,使用戶容易理解數據的結構和內容。開發人員可以使用結構化查詢語言(SQL)來查詢數據,並添加索引數據庫更快的查詢,使得關係型數據庫一段時間表現良好的數據量增加時也是如此。因此,儘管對象數據庫被質疑多年,關係型數據庫仍然是企業數據存儲到這個日期的最普遍的方式。甲骨文微軟的SQL ServerMySQL的PostgreSQL的 一些流行的關係數據庫管理系統。

如何關係數據庫 (Relational Database) 的工作原理

樣的關係型數據庫

關係數據庫存儲數據表的集合。每個表貢獻了一組列,這是有值得和需要做出持續的表的屬性。的關係,在關係數據庫中的關鍵元件可表之間被添加到表示兩組數據是相互關聯的。

表 (Table)

關係數據庫由表(即實體),從中我們想尋求信息的集合。表由列,這是表的屬性,這是存儲和檢索的記錄行。

柱 (Column)

列是指一組表中的字段。列描述一個屬性,我們感興趣的是存儲為它所屬的表。

關係 (Relationship)

關係是兩個實體之間的連接。它以有意義的方式連接在一起的數據(表)。例如,知道交易的信息是不知道誰進行交易的客戶毫無意義。因此,我們將涉及客戶和交易表,以獲取有關交易的完整信息。

例如:學校

實體關係圖(ERD)是關係數據庫的可視形式。人們使用ERDS建模和設計的關係數據庫。以下是描述了一個簡單的學校系統表的ERD。


校訓

學校和學生的實體(注:在ERD,術語“實體”經常被用來代替“表”,他們實際上是相同的)。在校表,有兩列 - 編號和名稱。id是主鍵(PK)列,它是用粗體和旁邊有一個關鍵符號。主鍵是能夠在一個表中唯一定義的記錄。換句話說,不能有兩個(或更多)的學校記錄共享相同的ID。學生,另一個表,有一個外鍵列,即SchoolId。這是在校表的主鍵ID的參考。請注意,外鍵不必是唯一的。多個學生記錄可以共享同一個學校編號。在真實的場景中,可以有多個學生在同一所學校就讀,因此具有相同的學生證。

學校和學生的實體之間,有一個連接器。我們稱之為關係。在這種情況下,它是一個一對多的關係。這意味著與主鍵(即學校)實體只包含一個零,一個或多個記錄中引用的實體(即學生)相關聯的記錄。我們可以這樣描述在日常語言中的關係:一所學校引入口很多學生。

用Entity Relationship Diagram (ERD) 設計關係數據庫 (Relational Database)

如果你要建立的數據庫由幾張桌子而已,你並不需要在所有的設計了。你可以簡單地使用數據庫管理系統提供的管理工具,或者運行一些SQL語句來獲取數據庫建立。然而,這決不會是在現實世界中的情況。


創建學校分貝

如果您計劃超過10表的數據庫,甚至多達數百個表,倒不如考慮之前建立它設計數據庫。下面是一些數據庫設計的好處:

  1. 它提供了一種方法讓你學習數據結構,以確保必要的表和關係也包括在內。此外,精心設計的數據庫,導致有效數據添加和檢索。
  2. 在設計過程中,您不僅可以了解數據結構,而且在目標系統可以更好。這有助於你的團隊來開發系統的其餘部分。
  3. 假設你最近開發的系統。三年後你的客戶端已經更新了業務計劃和戰略,並要求你升級現有的數據庫,以滿足新的需求。這將是規劃並通過查看數據庫,研究表定義執行變化的疼痛。數據庫設計總是給你的,你做了什麼清晰的畫面。
  4. 數據庫設計是不是只為你。它還允許你的客戶審查和對你的工作發表評論。這不會是可能的客戶有技術知識,了解數據庫是如何工作的。但高層次的視覺設計可以幫助他們,看看你的設計滿足他們的需要與否。

用Visual Paradigm繪製ERD

一個好的數據庫設計確實需要時間和精力來開發和受孕。一個有用的數據庫設計軟件可以幫助您減少時間和精力。 Visual Paradigm 為您提供不僅ERD的工具,但也是一套可視化建模功能,幫助您更方便快捷地表達自己的設計思路。今天支持市場最流行的關係數據庫管理系統。這裡是一個支持數據庫的列表:

  1. 神諭
  2. MS SQL服務器
  3. MySQL的
  4. PostgreSQL的
  5. SYBASE
  6. HSQL
  7. 雲景/德比
  8. DB2
  1. 安格爾
  2. OpenEdge
  3. Informix的
  4. 火鳥
  5. FrontBase
  6. 高速緩存
  7. 磨損
  8. H2

在本節中,我們要設計一個關係型數據庫的公交線路管理系統,用ERD,在視覺範式。

首先,我們需要做出關於如何創建實體的決定。在這個過程中,你可能會發現很多考生。這裡有一些準則,以幫助您識別實體:

  1. 一個實體必須是一個名詞(例如事務處理)或名詞短語(例如PurchaseOrder的)
  2. 只接受有意義的系統名詞(“乘客”被取消資格,因為公交線路管理系統沒有記錄關於乘客的任何信息)
  3. 僅接受屬性來存儲名詞(“票價”被取消資格,因為它沒有任何意義的屬性來存儲。然而,“套餐”可能是一個潛在的實體“路線”的列)

最後,獲得了以下實體:

  1. 總線
  2. 時間表
  3. 路線
  4. 司機
  5. 停止(這是一個公共汽車站)

現在,讓我們開始設計過程。

  1. 創建通過選擇可視化範式一個新項目項目>新建工具欄上。新建項目窗口中,將項目命名為  公交路線管理系統  ,然後點擊  創建空白項目  在底部。
  2. 要創建ERD,選擇圖>新建工具欄上。新圖窗口中,選擇實體關係圖,然後單擊下一步進入第一稿為圖名,然後單擊確定
  3. 選擇實體從圖表工具欄。
    選擇實體
  4. 點擊圖上創建一個實體。輸入總線為實體的名稱。請注意,我們通常使用單數命名的實體,無論實體可以有多少實例,在現實世界中。
  5. Enter鍵這給你的第一個實體。
    總線創建
  6. 創建其他實體來創建這樣一個圖:
    實體創建

現在,我們可以指定實體列。識別實體類似,你需要仔細考慮你需要在每個實體存儲哪些列。不要為那些沒有價值的系統數據添加列。

  1. 在實體總線右鍵單擊選擇新列從彈出菜單中。
    新山口
  2. 通過輸入添加一個主鍵列整數(10):+ vehicle_id並按輸入A加字符用於指定主鍵列。如果你想添加一個非主鍵列,你並不需要它。(注:vehicle_id是列名。) 
    Esc鍵停止創造新列。 
    山口加
  3. 列添加到其他實體: 
    實體
    時間表+ schedule_id:整數(10) 
    出發:日期 
    到來:日期
    路線+ ROUTE_ID:整數(10) 
    費用:浮子(10)
    停止+ stop_id:整數(10) 
    名稱:VARCHAR(255) 
    末端為:斑點
    司機+ driver_id:整數(10) 
    名稱:VARCHAR(255) 
    employ_date:日期

    截至目前,該圖應該是這樣的: 
    更新的ERD
  4. 讓我們涉及的實體。想想路線日程安排的實體。路由有很多計劃和時間表必須是具體的路線下。因此,創建一個一對多的關係路線安排放置在鼠標指針路由實體。按下資源目錄對圖標,然後拖動進度實體。
    創建一對多
  5. 在鬆開鼠標按鈕附表然後,選擇一到多的關係在資源目錄。 
    選擇一對多資源類 
    當系統提示您定義外鍵映射,保持默認設置,然後單擊OK繼續。 
    關係規範 
    在行程和時間表之間建立一個一對多的關係: 
    相對創建
  6. 時間表是由總線處理,總線可以在一整天中處理多個計劃。因此,創建一個從多到一個關係安排總線這一次,拖動資源目錄從實體圖標安排總線,並選擇多到一- >實體從資源目錄創建一個連接。 
    有關日程安排巴士 
    截至目前,該圖應該是這樣的: 
    更新的ERD
  7. 現在到了公交車和司機。甲驅動器驅動總線和總線由一個驅動器驅動。創建一個從巴士司機一比一的關係。再次,確認使用默認設置創建外鍵。
    涉及公交車司機
  8. 對於路線和停止,路徑由許多公共汽車站,而一個公共汽車站是由許多路線共享。因此,有之間的許多一對多的關係。嘗試涉及路線並與一個多到多的關係停止,該關係被自動分割成兩個一對多的關係,具有鏈接的實體Route_Stop之間產生英寸 這是最後的ERD:
    最終結果


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值