為了讓還沒有概念的人可以理解資料庫的概念,本文會以Excel來類比資料庫,這只是為了讓新手可以快速想像出資料的模樣,但資料庫本身的功能比Excel還多很多喔。
概念介紹
資料庫管理系統
資料庫管理系統(Database Management System,DBMS)是一個軟體系統,用於建立、操作、管理和查詢資料庫。它提供了一個操作資料庫的介面,使得用戶可以方便地管理和操作資料庫中的數據。DBMS可以通過SQL語言來查詢和操作數據庫,同時也提供了資料庫的安全性、完整性和可靠性。用Excel來比喻,資料庫管理系統就像是Excel軟體(只是方便理解,細節差很多啦)。
資料庫
資料庫(Database)是一個可存儲、讀取和管理數據的集合。它是由一些有相關性的資料表組成的集合,這些資料可以通過一些結構化的方式新增、修改、查詢和刪除。
用Excel來比喻,資料庫就像是一個xlsx檔案。如果去翻資料庫管理系統的資料夾目錄也會看到,一個資料庫通常也會被DBMS儲存為一組檔案,建立多個資料庫就會有多組檔案。
其實MySQL和MariaDB安裝後就已經內建幾個資料庫了,他們用來記錄系統狀態、帳號與權限等重要資料。
資料表
資料表(Table)是資料庫中的一個概念,它是由一些相關的資料欄位(Column)和資料列(Row)組成的二維資料結構。
用Excel來比喻,資料表就像是xlsx檔案內的一個頁籤。
簡單來說「一個資料庫管理系統底下可以有多個資料庫,一個資料庫底下又可以有多個資料表」。例如我安裝了MariaDB,我可以在裡面建立兩個資料庫,然後底下又有好多資料表。
資料欄位
資料欄位(Column)是資料表裡面定義的欄位,它決定這個資料表可以儲存哪些資料,在建立資料表的時候就要決定好(但是之後可以修改)。
用Excel比喻就是我們通常會在A1、B1、C1寫上的編號、姓名Email之類的。
資料列
資料列(Row)是實際儲存的資料,在我們安裝了資料庫系統,建立了資料庫、資料表與資料欄位之後,終於可以放進去我們想要的資料了。
用Excel比喻就像是從A2開始到A100、B2開始到B100,以及更久之後的資料。
關於行列的補充
有些簡體中文的教學稱呼行與列的習慣與台灣不同,以前我還是學生在網路上查資料的時候偶爾會看到,然後越看越不懂。看久了才知道簡體中文使用者(可能中國或馬來西亞等地,不太確定)說的資料行是指Row的部分,資料列是指Column,終於破解謎團。
因此在教學中我會使用資料欄位稱呼Column,使用資料列稱呼Row,並且常常把中英文一起提及,希望避免不同翻譯產生的誤會。
管理系統伺服器端與客戶端
首先要有一個Server端與Client端的概念,Server端(伺服器端)是被動提供服務的一方,Client端(客戶端)是主動要求服務的一端。例如網站的伺服器是Server端,而上網的瀏覽器是Client端,或是連接伺服器存取資料的手機App也是一個客戶端。
資料庫管理系統也是分為Server端與Client端,例如安裝了MariaDB會看到裡面有兩種主要程式,分別是mariadbd
與mariadb
(如果安裝MySQL則會有mysqld與mysql)。前者mariadbd
字尾有一個d是Linux的習慣代表Daemon,也就是MariaDB的Server端(MariaDB Daemon),是最主要的部分。mariadb
是MariaDB的客戶端,當使用者需要操作資料庫的時候才會啟動mariadb,透過mariadb連上mariadbd來操作資料庫。
除了mariadb之外還有很多程式也可以作為客戶端連上資料庫,例如我們用PHP寫一個網頁,讓PHP連上資料庫讀取資料顯示在網頁上,讓我們寫出來的PHP操作PHP的資料庫驅動程式連上資料庫。C、C#、Java、JavaScript、PHP、Python等現代常見的程式語言都可以作為客戶的一方連上資料庫儲存與索取資料。