簡書 MySQL學習專欄 正在持續(xù)更新中:)
CSDN MySQL學習專欄 正在持續(xù)更新中:)
數(shù)據(jù)庫DB 與 數(shù)據(jù)庫管理系統(tǒng)DBMS
數(shù)據(jù)庫,數(shù)據(jù)的倉庫,而平時說的數(shù)據(jù)庫是指數(shù)據(jù)庫管理系統(tǒng)(Database Management System),用于建立整吆、使用和維護數(shù)據(jù)庫决侈,簡稱DBMS铅协。你可以理解為 DBMS是類篷角,而具體的一個個倉庫DB是實例锹引。
DBMS 流行度(popularity)排名
那么我們應該選擇什么樣的數(shù)據(jù)庫呢卤橄?以圖為證绿满,我們看看權威數(shù)據(jù)庫排名網(wǎng)站 DB-engine 連續(xù)三年的流行度(popularity)排名情況:
2017.8 DB-engine DBMS 流行度(popularity)排名圖2018.11 DB-engine DBMS 流行度(popularity)排名圖
2020.1 DB-engine DBMS 流行度(popularity)排名圖
我們從連續(xù)三年,每次間隔大致一年取樣窟扑,可見MySQL的地位在國際上始終很高喇颁,另外漏健,MySQL作為較為傳統(tǒng)的關系型數(shù)據(jù)庫,自然也是我們?nèi)腴TDBMS橘霎,并且以后舉一反三一通百通蔫浆,學習其他DBMS的終南捷徑。簡而言之姐叁,學了絕對不虧瓦盛。
另外值得說明的是七冲,DB-engine的排名對國內(nèi)的市場參考價值還是有不小偏差佑刷。畢竟,網(wǎng)絡問題贿条,我們絕大部分人不能在國外的開發(fā)社區(qū)去學習处窥,發(fā)表文章等等嘱吗,詳細的可見這位博主的文章:你是否曾質(zhì)疑過DB-Engine的數(shù)據(jù)庫排名?
當然滔驾,這并不能阻止我們學習MySQL的步伐.jpg
數(shù)據(jù)庫種類很多谒麦,關系型與非關系型是基本的兩個大類。
關系型數(shù)據(jù)庫 RDBMS
關系型數(shù)據(jù)庫最為經(jīng)典的開源軟件就是我們要學習的MySQL哆致。SUN被甲骨文收購后绕德,MySQL 的原創(chuàng)人員有拉出另外一個分支,命名MariaDB 摊阀,該數(shù)據(jù)庫被維基百科耻蛇,F(xiàn)acebook 、Google 等技術巨頭使用胞此。
除此之外城丧,還有很多開源的關系型數(shù)據(jù)庫,比如經(jīng)典的文件數(shù)據(jù)庫SQLite和針對Web服務進行優(yōu)化的CUBRID 等豌鹤。
非關系型數(shù)據(jù)庫 NRDBMS
一般就稱為NoSQL更好:)
NoSQL 分類 | 代表性舉例 |
---|---|
鍵值存儲數(shù)據(jù)庫 | Redis |
列存儲數(shù)據(jù)庫 | HBase |
面向文檔數(shù)據(jù)庫 | MongoDB |
圖形數(shù)據(jù)庫 | Neo4J |
搜索引擎數(shù)據(jù)庫 | Elasticsearch |
如果想要更深入了解的朋友可以看 NoSQL 還是 SQL ?這一篇講清楚
SQL
結構化查詢語言(Structured Query Language) 簡稱 SQL枝缔,用于存取數(shù)據(jù)以及查詢布疙、更新和管理數(shù)據(jù)庫系統(tǒng)DBMS。意味著愿卸,SQL只是一個公共的標準語言灵临,不屬于各個DBMS的廠家,但是各個廠商的DBMS軟件都需要支持SQL趴荸。
所以儒溉,學會了SQL,各個DBMS发钝,無論是關系數(shù)據(jù)庫還是作為關系數(shù)據(jù)庫拓展的非關系數(shù)據(jù)庫都大體適用顿涣。
文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)
文件系統(tǒng)是操作系統(tǒng)(比如我們的windows)的子系統(tǒng)波闹,用于操作系統(tǒng)明確存儲設備或分區(qū)上的文件的方法和數(shù)據(jù)結構。
1涛碑、文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)的對比
管理對象不同
兩者最顯而易見的區(qū)別就是精堕,文件系統(tǒng)是以文件為載體記錄數(shù)據(jù)的,管理的也是記載著這些數(shù)據(jù)的文件蒲障,而非數(shù)據(jù)本身歹篓,文件的各種形式對應著不同的數(shù)據(jù)結構。(給一個文件重命名并不會造成文件內(nèi)記錄的數(shù)據(jù)發(fā)生改變)揉阎。
而數(shù)據(jù)庫系統(tǒng)管理的是數(shù)據(jù)本身庄撮,在數(shù)據(jù)庫內(nèi)的任何操作都會立刻影響到數(shù)據(jù)。
存儲數(shù)據(jù)方式不同
文件系統(tǒng)用文件將數(shù)據(jù)長期保存在外存上毙籽。(這里的文件可以有很多不同的形式洞斯,不同后綴的文件就相當于不同的數(shù)據(jù)結構)
數(shù)據(jù)庫系統(tǒng)用數(shù)據(jù)庫統(tǒng)一存儲數(shù)據(jù)。(有統(tǒng)一的數(shù)據(jù)結構)
程序與數(shù)據(jù)的關系不同:
文件系統(tǒng)中惧财,程序訪問數(shù)據(jù)是直接訪問的巡扇,對數(shù)據(jù)的查詢修改必須在程序內(nèi)完成,而這依賴于開發(fā)者對文件的邏輯及物理結構非常清楚垮衷。
數(shù)據(jù)庫系統(tǒng)中厅翔,數(shù)據(jù)不再僅服務于某個程序或用戶,而是以單位的形式共享出來搀突,統(tǒng)一由DBMS軟件管理刀闷。由于程序對數(shù)據(jù)的操作都是通過DBMS實現(xiàn)的,因此程序和數(shù)據(jù)徹底獨立開仰迁,可以在更高的抽象級別觀察和訪問數(shù)據(jù)甸昏。
2、數(shù)據(jù)庫系統(tǒng)的優(yōu)點:
無需了解實現(xiàn)細節(jié)
由于DBMS的存在徐许,用戶不再需要了解數(shù)據(jù)存儲和其他實現(xiàn)的細節(jié)施蜜,直接 通過DBMS就能獲取數(shù)據(jù),為數(shù)據(jù)的使用帶來極大便利雌隅。
并發(fā)訪問的能力
具有以數(shù)據(jù)為單位的共享性翻默,具有數(shù)據(jù)的并發(fā)訪問能力。DBMS保證了在并發(fā)訪問時數(shù)據(jù)的一致性恰起。
低時延訪問修械,典型例子就是線下支付系統(tǒng)的應用,支付規(guī)模巨大的時候检盼,數(shù)據(jù)庫系統(tǒng)的表現(xiàn)遠遠優(yōu)于文件系統(tǒng)肯污。
頻繁修改數(shù)據(jù)
能夠較為頻繁的對數(shù)據(jù)進行增刪改查CRUD,性能的消耗相比文件系統(tǒng)更。CRUD即增加(Create)蹦渣、讀取(Retrieve)哄芜、更新(Update)和刪除(Delete),小剂桥。
共享文件系統(tǒng) 與 C/S系統(tǒng)
有些DBMS采用基于共享文件系統(tǒng)的方式忠烛,如MS的access,但是現(xiàn)在更流行的是C/S(Client/Server 客戶端/服務端)系統(tǒng)的DBMS权逗,于是我們實際操作就需要在服務端編寫SQL程序美尸,以供客戶端使用。因而我們先得有一個服務端程序, 我們就在那上面開發(fā)斟薇。下圖是官網(wǎng)下載MySQL的截圖师坎,明顯可見“MySQL Community Server“字樣。
當然官方傳統(tǒng)開發(fā)采用命令行堪滨,實際上還可以采用GUI的配套軟件如SQLyog胯陋,其圖像界面能夠幫助我們更好地理解數(shù)據(jù)庫結構。下圖是自己學習時對SQLyog的截圖:
能夠清晰看到表的樣子袱箱,相比于命令行更加形象美觀遏乔。而且SQL代碼不會丟失。
我們該做什么
綜上所述发笔,SQL還是我們初學DBMS的切入點盟萨,當傳統(tǒng)的SQL學完,再學習SQL的拓展——NoSQL(not only SQL)了讨,非關系型數(shù)據(jù)庫的語言就會更加簡單捻激。
現(xiàn)在就讓我們開始學習傳統(tǒng)SQL經(jīng)典——MySQL。
下一站:[數(shù)據(jù)庫學習之MySQL (二)——MySQL的安裝及環(huán)境配置]