一、數據、數據庫、數據庫管理系統和數據庫系統
1.數據(Data)
描述事物的符號記錄稱爲數據。
2.數據庫(DB)
存放數據的倉庫,長期存儲在計算機內的、有組織的、可共享的數據集合。
3.數據庫管理系統(DBMS)
位於用戶與操作系統間的一層數據管理軟件,主要功能包括數據定義功能、數據操縱功能、數據庫的運行管理和數據庫的建立和維護功能。
4.數據庫系統(DBS)
計算機系統中引入數據庫後的系統,一般由數據庫、數據庫管理系統、應用系統、數據庫管理員和用戶構成
二、數據庫系統特點
1.數據結構化
數據結構化是數據庫與文件系統的根本區別
2.數據的共享性高,冗餘度低,易擴充
3.數據的獨立性高
包括物理獨立性和數據的邏輯獨立性。物理獨立性指用戶的應用程序與存儲在磁盤上的數據庫中數據是相互獨立的;邏輯獨立性是指用戶的應用系統與數據庫的邏輯結構是相互獨立的。
4.數據由DBMS統一管理和控制
三、SQL語言
集數據查詢(Data Query)、數據操縱(Data Manipulation)、數據定義(Data Definition)和數據控制(Data Control)於一體。
SQL功能 | 動詞 | 語句類型 |
---|---|---|
數據查詢 | SELECT | DQL |
數據定義 | CREATE,DROP,ALTER | DDL |
數據操縱 | INSERT,UPDATE,DELETE | DML |
數據控制 | GRANT,REVOKE | DCL |
四、數據庫事務
四個特性(ACID)
原子性、一致性、隔離性和持續性。
原子性:事務中操作要麼都做,要麼都不做;
一致性:數據庫從一個一致性狀態到另一個一致性狀態;
隔離性:事務之間不能互相干擾;
持續性:一個事務一旦提交,它對數據庫中數據的改變應該是永久性的。
五、事務隔離級別
事務隔離級別 | 髒讀 | 不可重複讀 | 幻讀 |
---|---|---|---|
讀未提交(read-uncommitted) | 是 | 是 | 是 |
不可重複讀(read-committed) | 否 | 是 | 是 |
可重複讀(repeatable-read) | 否 | 否 | 是 |
串行化(serializable) | 否 | 否 | 否 |
MySQL的事務隔離級別是read-committed。
其實網上的概念寫的比較多,比較雜,看這個表也會讓人繞進去,直接通過每個事務隔離級別的名稱就可以明白各個級別的含義。
- 讀未提交指的是事務B可以讀到事務A沒有提交的數據;
- 不可重複讀的英文是read committed,讀到已經提交的數據;
- 可重複讀,即使B事務改變了數據的值,A事務依舊還是讀取到的原本的值;
- 串行化是最高的隔離級別,開啓A事務時會鎖住整張表,B無法對其進行操作。