MySQL數據分析-(5)數據庫設計之ER模型


大家好,我是jacky,很高興跟大家分享本課時的內容,從本節課開始,就開始了我們第二章的學習,第一章我們拋出了若干問題,從第二章開始往后,都是解決問題的一個過程;
第一章的案例中,我們拿手機銷售公司舉例,我們看到了因為沒有構架數據共享體系,該公司的數據管理是混亂並且低效的,那么本章節,我們就來給這家公司構建一個數據庫體系吧;

(一)數據庫設計四步曲

數據庫設計是整個實際業務項目里最為核心的部分,如果說我們把項目中數據庫設計攻克了,那么通常來說,這個項目就成功了一半;如果在數據庫設計的環節出了問題,即使我們代碼寫的再牛,框架用的再熟,項目大概率都是要失敗的;
我們說,無論我們要設計的數據庫的大小和復雜程度如何,在進行數據庫設計時,都遵循着下面這四個步驟:

  • (1) 收集信息

  • (2) 標識實體

  • (3) 標識每個實體需要存儲的詳細信息

  • (4) 標識實體之間的關系

1.1 收集信息

在創建數據庫之前,我們要充分理解數據庫需要完成的任務和功能。簡單的說,就是需要了解數據庫需要存儲哪些信息和數據,要實現哪些功能;拿手機銷售公司為例,為了給大家講的深入淺入,jacky這里就給定這家公司一個任務和功能,就是將手機銷售給各個渠道商代理;

  • 我們說手機銷售給各個渠道商代理這個情景就是我們收集到的信息;

1.2 標識實體

我們說設計數據庫的第二個步驟就是標識實體;這里jacky解釋下實體的含義,實體可以使有形的事物,比如說人或產品;也可能是無形的事物,比如說金融交易、公司的部門等等。

  • 設計數據庫就要在我們的系統中標識出這些實體,那么給我們手機銷售給渠道商這個特定場景標識下實體;

    • 手機和渠道商
  • 這里jacky特別強調兩下:

    • 實體一般是名詞,一個實體只描述一件事情,不能重復出現含義相同的實體;

    • 數據庫中的每個不同的實體都擁有一個與其相對應的表,按照我們舉例的需求,在手機銷售管理的數據庫中,因為有手機和渠道商兩個實體,所以至少有手機表和渠道商表這兩張表,再深入的解釋,jacky下次課分享,本課時,大家先做一個了解;

1.3 標識每個實體需要存儲的詳細信息

在標識實體后,我們接下來就要標識每個實體存儲的詳細信息,也就是實體的屬性,這些屬性將組成表中的列;比如案例中手機的屬性有商品編碼、商品名稱、單價這3個屬性;渠道商有渠道商編碼和渠道商姓名2個屬性

1.4 標識實體之間的關系

關系數據庫有一項非常強大的功能,就是它能夠關聯數據庫中各個項目的相關信息,那么我們給定的手機銷售給渠道商這個任務中,把手機和渠道商關聯起來的就是銷售,大家說是不是;

(二)概要設計-繪制E-R圖

我們說每個行業都有各自不同的圖形化表達方式:機械行業需要機械制圖,建築行業需要施工圖,那么我們數據庫設計也需要圖形化的表達方式——E-R圖,我們也叫實體-關系圖,
拿手機銷售公司為例,數據庫設計就是要把現在公司的銷售管理現狀制作成模型,這樣才便於分析,這個分析中使用的模型就“E-R模型”

2.1 如何繪制

E-R圖以圖形的方式將數據庫的整個邏輯結構表示出來;E-R圖的組成包括以下幾個部分:

  • 矩形:表示實體集;

  • 橢圓:表示屬性;

  • 菱形:表示聯系集;

  • 直線:用來連接屬性和實體集,也用來連接實體集和聯系集

2.2 案例實操

我們看一下這張E-R圖,手機這個實體有三個屬性,分別是商品編碼,商品名稱和單價,渠道商這個實體有兩個屬性,分別是渠道商編碼和渠道商名稱;這個
手機和渠道商之間就是由手機賣給渠道商這件事聯系起來的,這時就可以把“銷售”作為關系來考慮了

@數據分析-jacky

  • 我們再來看這個E-R圖,,這個M與N是什么意思呢?就是M種品牌手機銷售給N個渠道商,這時我們也可以通過E-R模型分析出手機與渠道商之間存在着多對多的關系,我們給這種實體之間的對應個數一個更學術一點的名稱,就是“基數”;

上面就是本課時的分享,謝謝大家

(三)具體設計-三范式

2.1基礎鋪墊

2.1.1 第一范式(1NF)

  • 數據庫的列不可分割,如果有的列包含多種信息,可以把它抽取出來成為一個單獨的表;

2.1.2 第二范式(2NF)

  • 數據表中的每一行,都應該有唯一的標識,即每一行都應有主鍵區分

2.1.3 第三范式(3NF)

  • 數據表中的所有非關鍵字段,必須依賴於主鍵

2.2 三范式的核心邏輯

  • 數據庫的核心思想

    • 為了數據的存儲
  • 三范式的核心思想

    • 不要出現冗余數據(用最少的空間存儲最多的信息),第二范式是避免了冗余行的出現,第三范式是避免了冗余列的出現;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM