1. 程式人生 > >MySQL資料分析-(2)資料庫的底層邏輯

MySQL資料分析-(2)資料庫的底層邏輯

(一) 資料庫存在的邏輯

1.案例開篇-大部分公司對於資料和數字的管理都是低效率的

我們要學習資料庫,就必須要搞清楚資料庫是在什麼樣的情景下發明並流行的?學習新知識就要搞清楚每個知識點的來龍去脈,這樣才能在日後的工作中靈活運用。下面,我會拋磚引玉,以實際案例引導大家思考,資料庫存在的底層邏輯是什麼?
我們知道,一個公司要想正常運轉,一定是多部門協同工作的;以手機銷售公司舉例,當月銷售了1萬部手機,想想我們大部分公司是怎麼記錄儲存這些資料的?公司銷售部是一定要記錄這1萬筆的銷售資料的,財務部也要記賬,銷售了1萬部手機,物流部要記錄運送了這1萬部手機,運營部也要記錄著投入了這1萬部手機的推廣費用;

@資料分析-jacky

看了上面的例子,對於資料的管理與記錄方面,我們發現了什麼問題?

  • 問題1:資料重複

    • 目前,每個部門都管理著自己一方的資料。無論是銷售部還是物流部都有自己的對手機銷售的核算體系,財務部就更不必說了,這種狀況下,每個部門的資料記錄都是重複的,造成了企業的浪費,每個部門輸入記錄這些資料也要花費很多時間。某個部門的資料自然也不能用於其他部門。
  • 問題2:資料矛盾的出現

    • 如果開始手機的單價是2000元,當手機單價漲價到2200元的時候,公司就要通知各個部門手機的價格變動了,這準確的資訊傳遞的本身就是一件麻煩的事;如果,比如說物流部忘記了把價格調整,或者財務部錯誤的單價紀錄成了3000元,這樣的錯誤發生後,各個部門的資料就出會現不一致的情況。這樣系統的資訊與現實世界的實際情況就對應不起來了。
  • 問題3:難以應對新的變化

    • 由於資料是由各部門分別進行管理,如果一個新部門成立,就必須重新構建資料體系。

(二)資料庫的引入

1.資料庫是一個共享系統

針對上面的問題,我們有沒有什麼好辦法可以建立一個比現在更有效的資料系統?
上面的這些問題歸根結底都是由於各自管理資料造成的,為了更加高效的處理資料,僅僅單純的管理資料是不夠的。
那麼,怎麼做才能更好呢?我們需要對整個企業的資料進行一元化管理就可以了,這就是我們這門課的主題——“資料庫”。

  • 對資料庫進行一元化管理,共享資料。這樣,各部門都可以查詢並使用資料,從而建立一個高效有序的系統,這樣既能夠防止發生資料矛盾,又沒有重複的資料,可以很容易的引入新的系統。

2.滿足什麼條件的共享系統才能當資料庫用?

資料庫是一個數據共享系統,既然是共享系統,在設計資料庫的時候我們要注意迴避什麼問題嗎?

  • 首先,當很多人共享資料庫時,簡單的錄入、提取資料變得非常必要,我們必須使用任何人都能夠理解的方法處理資料庫;

  • 其次,我們必須要保證共享資料的絕對安全,比如薪酬資料就是隻能由一部分人閱讀的機密資料,銷售資料只能由銷售部的人更新

  • 然後,資料庫在由多人使用的時候,比如,銷售部和物流部想要同時更改手機的名稱,銷售部要把手機改成英語,物流部要把手機名稱變為中文。這時,我們的手機名稱會是怎麼樣呢?在多人使用的資料庫中,必須能很好的解決此問題。

  • 最後,我們要注意不能丟失資料,系統有可能卡住,硬碟有可能發生故障,這時資料就面臨著損壞的危險。因此,從這些故障中恢復資料的工作就變得非常重要了。

(三)MySQL的本質

1.資料庫管理系統是什麼?

  • 在說MySQL的本質是什麼之前,我們先來說說資料庫管理系統是什麼?

前面我們已經說過了資料庫存在的邏輯,再來說資料庫管理系統是什麼就非常清楚了;我們要引入資料庫,是不是一定得有一個操作軟體來操作資料庫?這個操作軟體就是資料庫管理系統—DBMS。

  • 資料庫管理系統DBMS,

    • 一句話解釋:DBMS就是一個軟體;
  • 為什麼要有DBMS這個軟體

    • 為了管理資料;

2.為什麼我們要選擇MySQL來學習

現在我們再來說MySQL的本質,前面我們說資料庫可以解決當前資料管理中的很多問題,那麼開發一套資料庫管理體系就有很多商機,是不是?比如微軟看到商機就開發了Sql Server,有的商家就開發了Oracle,還有比較小的sqlite,access,DB2等等,有很多這樣的軟體;

  • 對於茫茫多的資料管理軟體,我們該怎樣選擇呢?

    • Sql Server功能特別強大,但是收費,Oracle非常的穩定,也是收費的;對於一般公司來說,都想省錢,一般情況下,現在大家都在用的就是MySQL,社群版的MySQL是免費的,我們可以對它進行二次開發,進行調優,調成在企業環境下能用的;
  • 學了MySQL,其他的比如說Sql Server,Oracle等就不用再學了,因為都是大同小異的;

最後總結一下,MySQL的本質就是一個數據管理軟體,就是一個軟體,而已。我們要掌握的就是怎樣的應用它去解決實際問題,說白了,我們要學的也就是這麼簡單的一點東西而已,所以,跟著jacky,努力的學習吧!