1 定義
關係型數據庫,是一種建立在關係模型(數學模型)上的數據庫。
至於關係模型,則是一種所謂建立在關係上的模型,其包含三個方面,分別爲:
- 數據結構:數據存儲的形式,二維表(行和列);
- 操作指令集合:所有的 SQL 語句;
- 完整性約束:表內數據約束(字段與字段)和表與表之間的約束(外鍵)。
2 設計
- 數據庫:從需要存儲的數據需求中分析,如果是一類數據(實體),則應該設計成二維表;
- 二維表:由表頭(字段名,用來規定數據的名稱)和數據(實際存儲的內容)部分組成。
在此處,需要特別注意:如果表中對應的某個字段值爲空,但是系統依然會爲其分配存儲空間,這也就是關係型數據庫比較浪費空間的原因啦!
3 關鍵字說明
- DB:Database,數據庫;
- DBMS:Database Management System,數據庫管理系統;
- DBS:Database System = DBMS + DB,數據庫系統;
- DBA:Database Administrator,數據庫管理員。
- 行\記錄:row\record,本質都是指表中的一行(一條記錄),行是從結構角度出發,記錄則是從數據角度出發。
- 列\字段:column\field,本質都是指表中的一列(一個字段),列是從結構角度出發,字段則是從數據角度出發。
4 SQL語句
SQL:Structured Query Language,結構化查詢語言(數據以查詢爲主,99% 都是在進行查詢操作)。
SQL 主要分爲三種:
- DDL:Data Definition Language,數據定義語言,用來維護存儲數據的結構(數據庫、表),代表指令爲create、drop和alter等。
- DML:Data Manipulation Language,數據操作語言,用來對數據進行操作(表中的內容)代表指令爲insert、delete和update等,不過在 DML 內部又單獨進行了一個分類,即 DQL(Data Query Language),數據查詢語言,代表指令爲select.
- DCL:Data Control Language,數據控制語言,主要是負責(用戶)權限管理,代表指令爲grant和revoke等。
SQL 是關係型數據庫的操作指令,是一種約束,但不強制,類似於 W3C,因此這意味着:不同的數據庫產品(如 Oracle 和 MySQL)內部可能會有一些細微的區別。
5 MySQL 數據庫
MySQL 數據庫是一種C\S結構的軟件,即分爲:客戶端和服務端。
若想訪問服務器,則必須通過客戶端;服務器應該一直運行,客戶端則在需要使用的時候運行。
交互方式
- 客戶端連接認證,即連接服務器,認證身份mysql.exe -hPup
- -h,主機地址,本地爲localhost,遠程爲IP地址
- -P,端口號,用來找軟件
- -u,用戶名
- -p,密碼
-
發送 SQL 指令;
-
服務器接受 SQL 指令,然後處理 SQL 指令並返回操作結果;
-
客戶端接受結果並顯示結果;
-
由於服務器併發限制,需要斷開連接(三種指令,分別爲:exit、quit和\q),釋放資源。
服務器對象
由於沒辦法完全瞭解服務器內部的結構,因此只能粗略的分析數據庫服務器的內部結構。
一般來說,將 MySQL 數據庫服務器的內部對象分爲四層,分別爲:數據管理系統(DBMS)–> 數據庫(DB)–> 表(Table)–> 字段(Filed).