數據庫的簡單建模

寫在前面:博主是一只經過實戰開發歷練後投身培訓事業的“小山豬”,暱稱取自動畫片《獅子王》中的“彭彭”,總是以樂觀、積極的心態對待周邊的事物。本人的技術路線從Java全棧工程師一路奔向大數據開發、數據挖掘領域,如今終有小成,願將昔日所獲與大家交流一二,希望對學習路上的你有所助益。同時,博主也想通過此次嘗試打造一個完善的技術圖書館,任何與文章技術點有關的異常、錯誤、注意事項均會在末尾列出,歡迎大家通過各種方式提供素材。

  • 對於文章中出現的任何錯誤請大家批評指出,一定及時修改。
  • 有任何想要討論和學習的問題可聯繫我:[email protected]
  • 發佈文章的風格因專欄而異,均自成體系,不足之處請大家指正。

數據庫的簡單建模

本文關鍵字:數據庫、建模、概念模型、邏輯模型、物理模型


使用數據庫時,通常是爲了支撐一個應用或一個業務場景,第一步需要做的就是要對數據庫的表結構進行設計。一個完善的設計方案包括:表名、列名、數據類型、備註信息、字符編碼、主鍵設計、表間關係、其他約束條件等。其中的難點在於如何使用數據表以及表間關係來描述出相應的功能場景,能夠應對以後的各種查詢需要,這對剛接觸數據庫的使用者來說是有些困難的,但是隻要認真思考,按照步驟來操作相信最後的結果不會差。

一、什麼是數據庫建模

數據庫建模簡單理解指的就是設計數據庫的過程,根據一個應用的描述,去構建出最優的數據庫模式(考慮數據的冗餘,數據查詢效率等因素),一般數據庫建模可以被劃分爲六個階段。

1. 需求分析階段

需求分析階段是最爲重要的一個階段,如果前期的需求分析的不明確,很可能導致數據庫擴展性差,甚至於無法支撐對應的功能邏輯。通常會在這一階段花費比較多的時間,最後產出需求文檔作爲成果物。

2. 概念結構設計階段

概念設計階段是以數據庫的角度去解讀需求的第一步,也是很關鍵的步驟,需要形成一個通用的(與具體DBMS無關)的概念模型,比較直觀的可以用E-R圖表示。

3. 邏輯結構設計階段

在邏輯結構設計階段需要對概念結構適當的具體化,將實體-關係的描述轉換爲某個DBMS的數據模型。可以進一步描述出表名、列名、數據類型(不需要太具體)、表間關係

4. 物理結構設計階段

物理結構的設計,要具體到某一個數據庫軟件、版本、表結構、主外鍵等,至此也就完成了數據庫設計階段,可以直接據此生成完整的SQL語句

5. 數據庫實施階段

數據庫實施階段指的是按照已有的設計方案,在一個具體的數據庫中進行實施:建庫、建表、插入測試數據等。

6. 數據庫運行和維護

數據庫運行和維護階段是一個長期的過程,隨着應用的使用,可能會產生一些變化,如:添加數據維度,數據長度不足,約束關係收緊等,這個時候我們要針對實際情況來對數據庫的結構來進行修改。

二、數據庫模型的分類

基於數據庫建模的各個階段,可以把建立出來的模型根據特點歸爲以下幾類。

1. 概念模型(CDM)

概念模型主要是基於客觀世界實際存在的事物或場景進行的描述,不涉及到具體的DBMS和實現步驟。表示概念模型最常用的形式是使用E-R(實體-關係)圖,包含以下三個要素:

  • 實體:矩形
  • 屬性:橢圓
  • 關係:菱形
    • 一對一:根據一個實例,只能找到一個對應實例(如:一個學生 -> 一個班級)
    • 一對多:根據一個實例,能夠找到多個對應實例(如:一個班級 -> 多個學生)
    • 多對多:根據一個實例,能夠找到多個對應實例,反過來亦然(如:一個學生 -> 選多門課,一門課 -> 被多人選)

敲黑板:由於在數據庫中直接表示兩個多對多實體的關係會產生數據冗餘,所以一般會有中間表的存在。

2. 邏輯模型(LDM)

邏輯模型指的是數據的邏輯結構,目的在於根據概念模型(E-R圖表)進一步分解和細化,可以窺見到表結構的雛形與表間關係(數據實例)。如果存在多對多關係,也必須在這一階段細化出中間表,在描述表間關係時,根據實際數據的可能情況可以劃分爲如下情況:

  • 刻畫一對一
    • 0或1個:找不到或只能找到一個
    • 唯一:有且只能找到一個
  • 刻畫一對多
    • 0或多個:找不到或能找到多個
    • 1或多個:能找到一個或多個
    • 多個:一定存在多個

敲黑板:以上只是根據業務分析和數據的預期情況確定出的表間關係,用於展現整體業務情況。

3. 物理模型(PDM)

物理模型是對真實數據庫的描述,要根據具體的數據庫生成具體的表、字段、數據類型、數據長度、主鍵、外鍵、索引、約束條件等。

敲黑板:可以直接使用Navicat或PowerDesigner工具根據生成的物理模型導出對應的SQL或直接實施到數據庫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章