初識資料庫管理系統

  • 2019 年 10 月 8 日
  • 筆記

目錄

Mysql數據簡單入門

資料庫管理系統 DBMS

  • 什麼是資料庫? 資料庫管理系統(英語:Database Management System,簡稱DBMS) 資料庫,簡而言之可視為電子化的文件櫃——存儲電子文件的處所,用戶可以對文件中的數據進行新增、 截取、更新、刪除等操作。所謂「資料庫」是以一定方式儲存在一起、能予多個用戶共享具有儘可能小的冗餘度與應用程式彼此獨立的數據集合.
  • 資料庫優點? 資料庫系統是用來管理數據的,建立的數理邏輯和集合操作基礎上的。 具有高效、可靠、完整、自同步等特性,是業務系統進行數據控制的最佳選擇。 資料庫系統一般提供高效的數據控制和數據檢索功能,採用SQL語言來進行數據操作。
  • 資料庫的優勢? 1.程式穩定性 :這樣任意一台服務所在的機器崩潰了都不會影響數據和另外的服務。  2.數據一致性 :所有的數據都存儲在一起,所有的程式操作的數據都是統一的,就不會出現數據不一致的現象  3.並發 :資料庫可以良好的支援並發,所有的程式操作資料庫都是通過網路,而資料庫本身支援並發的網路操作, 不需要我們自己寫socket.  4.效率 :使用資料庫對數據進行增刪改查的效率要高出我們自己處理文件很多.
  • 資料庫運行示意圖 #C/S架構的 操作數據文件的一個管理軟體 # 1.幫助我們解決並發問題 # 2.能夠幫助我們用更簡單更快速的方式完成數據的增刪改查 # 3.能夠給我們提供一些容錯、高可用的機制 # 4.許可權的認證
  • 專業名詞:
    • DBMS 資料庫管理系統 (英語:Database Management System)
    • 數據 — data
    • 文件夾 — 資料庫database 簡稱db
    • 資料庫管理員 — DBA

關係型資料庫

  • 最典型的數據結構是表,由二維表及其之間的聯繫所組成的一個數據組織
  • 優點:
    • 易於維護:都是使用表結構,格式一致;
    • 使用方便:SQL語言通用,可用於複雜查詢;
    • 複雜操作:支援SQL,可用於一個表以及多個表之間非常複雜的查詢。
  • 缺點:
    • 讀寫性能比較差,尤其是海量數據的高效率讀寫;
    • 固定的表結構,靈活度稍欠;
    • 高並發讀寫需求,傳統關係型資料庫來說,硬碟I/O是一個很大的瓶頸。

非關係型資料庫

  • 非關係型資料庫嚴格上不是一種資料庫,應該是一種數據結構化存儲方法的集合,可以是文檔或者鍵值對等。
  • 優點:
    • 格式靈活:存儲數據的格式可以是key,value形式、文檔形式、圖片形式等等,文檔形式、圖片形式等等,使用靈活, 應用場景廣泛,而關係型資料庫則只支援基礎類型。
    • 速度快:nosql可以使用硬碟或者隨機存儲器作為載體,而關係型資料庫只能使用硬碟;
    • 高擴展性;
    • 成本低:nosql資料庫部署簡單,基本都是開源軟體。
  • 缺點:
    • 不提供sql支援,學習和使用成本較高;
    • 無事務處理;
    • 數據結構相對複雜,複雜查詢方面稍欠。

目前主流的關係資料庫

  • 付費的商用資料庫:
    • Oracle,典型的高富帥;(收費,比較嚴謹,安全性高)(國企,事業單位,銀行,金融行業)
    • SQL Server,微軟自家產品,Windows訂製專款;
    • DB2,IBM的產品,聽起來挺高端;
    • Sybase,曾經跟微軟是好基友,後來關係破裂,現在家境慘淡。
  • 這些資料庫都是不開源而且付費的,最大的好處是花了錢出了問題可以找廠家解決,不過在Web的世界裡, 常常需要部署成千上萬的資料庫伺服器,當然不能把大把大把的銀子扔給廠家,所以,無論是Google、Facebook, 還是中國的BAT,無一例外都選擇了免費的開源資料庫:
  • MySQL
    • 大家都在用,一般錯不了;(開源的)(小公司,互聯網公司)(和Oracle是一家公司,甲骨文)
  • PostgreSQL
    • 學術氣息有點重,其實挺不錯,但知名度沒有MySQL高;
  • sqlite
    • 嵌入式資料庫,適合桌面和移動應用。
  • 作為開發工程師,選擇哪個免費資料庫呢?當然是MySQL。因為MySQL普及率最高,出了錯, 可以很容易找到解決方法。而且,圍繞MySQL有一大堆監控和運維的工具,安裝和使用很方便。

非關係型資料庫

  • redis
    • 它通常被稱為數據結構伺服器,因為值(value)可以是 字元串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等類型。
  • mongodb
    • 是一個介於關係資料庫和非關係資料庫之間的產品,是非關係資料庫當中功能最豐富,最像關係資料庫的。

作 者:郭楷豐