🍖初識數據庫管理軟件

引入

咱們一般稱 Mysql 、Oracle、SQLite之類的爲數據庫, 其實本質上它們是一個個數據庫管理軟件python

一.數據庫管理軟件的由來

在學習Mysql以前, 咱們的數據想要永久保存,通常都是保存在硬盤中, 硬盤的單位就是文件, 毫無疑問, 一個文件僅僅只能存在於一臺機器上, 可是一個程序的全部組件不可能都在一臺機器上, 若是都在一臺機器上, 那麼就會產生許多問題, 下面將介紹會產生的問題以及數據庫管理軟件的解決方案mysql

1.程序全部組件都運行在一臺機器上的問題

  • 問題 : 運行程序機器的宕機表明着整個軟件的崩潰, 而且程序執行的效率依賴於承載它的硬件, 一臺機器的性能是有限的, 受限於目前的硬件水平, 一臺機器的性能垂直進行擴展是有極限的
  • 解決 : 咱們能夠經過水平擴展來加強咱們系統的總體性能,這就須要咱們將程序的各個組件分佈於多臺機器去執行

2.數據安全性問題

  • 問題 : 咱們經過將組件放置不一樣機器解決了上一個問題, 但需知各組件仍然是一個總體, 全部組件的數據仍是要共享的, 但每臺機器上的組件都只能操做本機的文件, 這就致使了數據必然不一致
  • 解決 : 將數據與應用程序分離, 將文件專門放在一臺機器上, 而後將多臺機器經過網絡去訪問這臺機器上的文件(用socket實現), 即共享這臺機器上的文件,共享則意味着競爭, 會發生數據不安全, 須要加鎖處理

3.實現併發

  • 基於問題 2 的解決咱們就須要寫出一個socket服務端來存放和管理數據庫文件, 而後再寫一個socket客戶端來訪問服務端存放的數據
  • 功能實現 : 遠程鏈接(支持併發)、打開文件、讀寫文件(而且加鎖)、關閉文件

4.數據庫管理軟件誕生

  • 針對上面產生的問題以及解決方案, 咱們在編寫任何程序以前, 都須要事先寫好基於網絡操做一臺主機上文件的程序 (socket服務端與客戶端程序)程序員

  • 因而有人將此類程序寫成一個專門的處理軟件,這就是mysql等數據庫管理軟件的由來redis

  • mysql解決的不只僅是數據共享的問題, 還有查詢效率, 安全性等一系列問題, 總之, 把程序員從數據管理中解脫出來, 專一於本身的程序邏輯的編寫sql

二.數據庫簡述

1.什麼是數據

數據(Data), 就是描述事物的符號, 它能夠是數字, 也能夠是文字、圖片、圖像、聲音、語言等, 數據由多種表現形式,它們均可以通過數字化後存入計算機, 在計算機中描述一個事物, 就須要抽取這一事物的典型特徵, 組成一條記錄, 就至關於文件裏的一行內容mongodb

派大星,man,22,1999,美國,IT,17屆,斯坦福   # 一條記錄
章魚哥,man,35,1986,美國,餐飲,10屆,斯坦福 # 一條記錄

單純的記錄沒有什麼意義, 必須給予說明, 因而咱們就能夠按逗號做爲分隔,依次定義各個字段的意思,至關於定義表的標題數據庫

name,sex,age,birth,addr,industry,entrance_time,school  # 字段
派大星,man,22,1999,美國,IT,17屆,斯坦福      # 一條記錄
章魚哥,man,35,1986,美國,餐飲,10屆,斯坦福    # 一條記錄

添加字段以後咱們就能知道每條記錄每一個逗號分隔開的都是表明什麼意思安全

2.什麼是數據庫

數據庫(DataBase)簡稱DB, 它是存放數據的倉庫, 只不過這個倉庫是在計算機存儲設備上, 並且數據是按必定的格式存放的, 過去人們將數據存放在文件櫃裏, 如今數據量龐大, 已經再也不適用, 數據庫是長期存放在計算機內、有組織、可共享的數據便可, 數據庫中的數據按必定的數據模型組織、描述和儲存, 具備較小的冗餘度、較高的數據獨立性和易擴展性, 並可爲各類用戶共享服務器

3.什麼是數據庫管理軟件

數據庫管理軟件(DataBase Management System)簡稱DBMS網絡

  • 在瞭解了DataDB的概念後, 如何科學地組織和存儲數據, 如何高效獲取和維護數據成了關鍵, 這就用到了一個系統軟件---->數據庫管理系統, 如MySQL、Oracle、SQLite、Access、MS SQL Server

  • mysql主要用於大型門戶, 例如搜狗、新浪等, 它主要的優點就是開放源代碼, 由於開放源代碼這個數據庫是免費的, 他如今是甲骨文公司的產品

  • oracle主要用於銀行、鐵路、飛機場等, 該數據庫功能強大, 軟件費用高, 也是甲骨文公司的產品

  • sql server是微軟公司的產品, 主要應用於大中型企業, 如聯想、方正等

三.數據庫的核心概念以及關係

1.數據 : 事物的狀態, 能夠將其概括總結出字段信息

2.記錄 : 多個字段的信息組成的一條記錄, 即文件中的一行內容

3.表 : 一個文件

4.數據庫 : 文件夾

5.數據庫管理軟件 : 即套接字程序, 例 : mysqld <---> mysql

6.數據庫服務器 : 運行mysqld(服務端)的一臺計算機

四.數據庫管理軟件分類

由上面的介紹咱們已經知道, 數據庫管理軟件的本質就是一個C/S套接字程序, 一個服務端套接字, 一個客戶端套接字, 而數據庫管理軟件不只僅只有一種, 他們也有兩種分類

1.關係型數據庫管理軟件

  • 簡單理解 : 須要有表結構
  • : sqllite,db2,oracle,access,sql server,MySQL (sql語句通用)

2.非關係型數據庫管理軟件

  • 簡單理解 : 經過key--value的形式存儲的, 沒有表結構
  • : mongodb,redis,memcache
相關文章
相關標籤/搜索