1. 程式人生 > 其它 >MySQL,資料庫簡介

MySQL,資料庫簡介

什麼是MySQL?什麼是資料庫?

MySQL是什麼?

為什麼mysql作為開源資料庫這麼通用

為了讓你更好的理解mysql,你需要先理解 資料庫SQL 兩個概念。

目錄

什麼是資料庫?為什麼要使用資料庫?

我們在儲存資料都經歷的階段:

  1. 檔案操作階段>>>:用檔案充當資料庫 with open(python)
junjie|123|read
junjie&123&read
junjie*123*read

每個人資料格式都不同,程式之間無法相容

  1. 軟體開發目錄>>>儲存資料分類(資料夾)
db    資料儲存檔案

雖然儲存目錄相同,但是每個人資料格式都不相同,程式之間無法相容

  1. 使用資料庫的目的

使用資料庫的目的就是為了解決資料不相容的問題,基於網路使資料在某一個地方以相同的格式統一儲存,實現資料共享(完成資料之間的格式與儲存位置統一)

資料庫隨時隨地的存在,並且使用,簡單的說,資料庫就是收集資料的結構。資料涉及很多,例如一個產品屬於種類,並且有自己的資料標籤,這就是為什麼要用關係型資料。在關係資料庫,我們建模資料包括產品,品類,標籤等等,所有這些都用一個表格,包含行和列,就像Excel中的電子表格

一個表格與其他表格構成關係,一對一,或者一對多,因為我們要處理大量資料,所以需要定義資料庫,表格等,我們更一步的將資料變成資訊。

舉例比喻:

# 各自儲存各自的資料,彼此不共享
單機遊戲: 不需要連線網路就可以玩,在本機儲存資料,你的通關記錄,賬號密碼,都儲存在本機
    優點:不需要連結網路
    缺點:限制於在一臺計算機玩,如果你計算機壞掉了,在換一臺,那這些記錄都沒有。你註冊的賬號換一臺電腦登入也是沒有記錄的,還是初始化狀態。(其實單機好像不需要註冊賬號)
    
# 資料儲存全部統一在一個地方完成
聯機遊戲:不在本地儲存資料。所有人基於網路把自己的資料儲存到相同的位置,資料儲存的格式都相同,訪問的格式也相同,所以不管在那臺計算機上,登入賬號密碼就可以訪問到我們儲存在資料庫的資訊,這樣就實現了相容問題。

叢集的概念

如果資料庫機房內,伺服器遇到不可抗拒力量被銷燬了。這樣豈不是所有使用者資料全部丟失。所以有了叢集概念,多臺計算機從事相同的工作內容。

在資料儲存時會有多臺計算機備份儲存,如果一臺伺服器出現問題,可直接使用另一臺伺服器。

叢集一般由兩個或兩個以上的伺服器組建而成,每個伺服器被稱為一個叢集節點,叢集節點之間可以相互通訊。通訊方式有兩種,一種是基於RS232線的心跳監控,另一種是一塊單獨的網絡卡 來跑心跳。因而,叢集具有節點服務狀態監控功能,同時還必須具有服務實體擴充套件功能,可以靈活地增加和剔除某個服務實體。

叢集中,同樣的服務可以由多個服務實體提供。因此,當一個節點出現故障時,叢集的另一個節點,可以自動接管故障節點的資源,從而保證服務持久、不間斷地執行。因而叢集具有故障自動轉移功能。

一個集群系統必須擁有共享的資料儲存,因為叢集對外提供的服務是一致的,任何一個叢集節點執行一個應用時,應用的資料集中儲存在節點共享空間內,而每個節點的作業系統上僅執行應用的服務,同時儲存應用程式檔案。

資料庫的基本概念

名詞 描述
資料 事物的狀態
記錄 一組資料結構成一條記錄,相當於檔案中的一行內容,如1,tanke,male,18
檔案
資料夾
資料庫管理系統 管理資料的套接字軟體,CS架構
資料庫伺服器 執行有DBMS伺服器的計算機,該計算機對記憶體和硬體要求都很高

軟體開發架構

  • C/S架構:客戶端,服務端
  • B/S架構:瀏覽器,服務端

注:B/S架構的本質也是C/S架構

資料庫的分類

關係型資料庫

具有固定的表結構 ,並且表與表之間可以通過外來鍵建立關係。

關係型資料庫:指採用了關係模型來組織資料的資料庫。可以看作為excel表格的形式 :有固定的幾個欄位,下面是資料

缺點:效能沒有非關係性資料庫好 優點:資料統計有嚴謹性

關係型資料庫有哪些:

MySQL是資料庫管理系統,能夠幫助你管理關係型資料庫,並且是開源的,意味著這是免費的,如果必要,你可以修改原始碼。

MariaDB(和MySQL幾乎一致,但是開源免費)

Oracle(大多數銀行使用)

PostgreSQL(支援二次開發)
sqlserver
sqlite
db2 .....

非關係型資料庫

沒有固定的表結構,資料儲存採用k:v鍵值對的形式 {k:v} 非結構化的儲存。

非關係型資料庫有哪些:

常用的非關係型資料庫:

redis :大部分公司使用 (多用來作為快取)

mongoDB :適用於敏捷開發(應用在爬蟲和大資料領域)

memcache:(多用來作為快取)

關係型資料庫與非關係型資料庫語句

我們通常將操作關係型資料庫的語句稱為:SQL語句

我們通常將操作非關係型資料庫的語句稱為:NoSQL語句

有時候甚至使用NoSQL指代非關係型資料庫

關係型資料庫需要有表結構

非關係型資料庫是key-value儲存的,沒有表結構

SQL 一種資料庫語言

SQL- 是structured query language簡稱

SQL 是一種標準的資料庫語言。ANSI/SQL 有專門的標準。

SQL 包含以下3個功能:

  1. 資料建立語句,能夠幫助你定義資料庫和物件,例如表,檢視,觸發器,儲存過程;
  2. 資料操縱語言,能夠更新資料,查詢資料
  3. 資料控制語言,幫你管理資料許可權。

那麼什麼是SQL語句?

操作資料庫軟體的命令

那為什麼要SQL語句?

資料庫支援的語言非常多,為了避免識別問題,規定只要想要使用資料庫就統一使用SQL語句。

解決不同語言操作資料庫產生語言不相容情況,實現資料相容問題。

MySQL是什麼?

MySQL由 My 和 SQL組成

MySQL是資料庫管理系統,能夠幫助你管理關係型資料庫,並且是開源的,意味著這是免費的,如果必要,你可以修改原始碼。

儘管MySQL是開源軟體,你需要買社群版才能得到專項服務。

MySQL 對比Oracle和 SQL server 有非常大的優勢。.

  • MySQL 可以在幾乎所有平臺上運營UNIX, Linux, Windows,小到你可以安裝伺服器在自己的pc中,而且,可靠,可拓展,執行速度飛快。
  • 如果你開發web或者webapp,mysql 是明智的選擇,因為他擁有LAMP堆疊, 包含Linux, Apache, MySQL, 和 PHP。

資料庫可以指代的,即資料庫可代表為:

  1. 程式
  2. 資料庫管理軟體
  3. 存放資料的某個"資料夾"

補充:我們通常將操作關係型的資料庫的語句稱為SQL語句

通常將操作非關係型的資料庫語句稱為NoSQL語句、有時候甚至使用NoSQL指代非關係型資料庫