Mysql資料庫相關知識
阿新 • • 發佈:2022-04-16
資料庫相關知識
1、資料庫的簡單介紹
資料庫是一個按資料結構來儲存和管理資料的計算機軟體系統 。
資料管理技術發展的三個階段
- 人工管理階段(20世紀50年代中期以前)
-
檔案系統階段(20世紀50年代後期至60年代中期)
- 檔案系統的三個缺陷
- 資料冗餘性
- 資料的不一致性
- 資料聯絡弱
- 檔案系統的三個缺陷
- 資料庫階段(20世紀60年代後至今)
資料技術中的幾個名詞:
-
資料庫:Data Base ,簡稱DB
-
資料:Data
-
資料庫系統: Data Base System ,簡稱:DBS
-
資料庫系統管理: Database Management System ,簡稱DBMS
-
資料庫管理員: Database Administrator,簡稱DBA
-
資料庫技術:是一門研究資料庫構造、儲存、管理、和使用的一門軟體科學
2、'不好的關係模式'可能存在的問題?
- 資料冗餘
- 更新異常
- 插入異常
- 刪除異常
3、資料庫的設計方法
- 規範設計
- 計算機輔助設計
- 直觀設計法 又稱單步邏輯設計
4、使用儲存過程的優點?
- 提高執行速度
- 減少網路傳輸
- 可維護性高
- 增強安全性和擴充套件性
5、資料庫模型
-
概念資料模型
-
邏輯資料模型
-
物理資料模型
-
結構資料模型三要素:關係資料結構、資料關係操作、資料完整性約束
典型的結構資料模型:
- 層次模型
- 網狀模型
- 關係模型
6、資料庫的設計過程
- 需求分析
- 概念設計階段
- 邏輯設計階段
- 物理設計階段
- 資料庫的實施操作階段
- 資料的執行和維護階段
7、SQL語言的動詞
SQL功能 | 動詞 |
---|---|
資料查詢 | SELECT |
資料定義 | CREATE,DROP,ALTER |
資料操縱 | INSERT,UPDATE,DELETE |
資料控制 | GRANT,REVOKE |
8、資料庫的故障
- 事務故障
- 系統故障
- 介質故障
9、sql預設排序
AESC:降序,ASC:升序
ORDER BY 欄位1 DESC/ASC,欄位2 DESC/ASC SELECT commodity_name,cost_price FROM t_commodity ORDER BY cost_price ASC
10、資料庫系統的特點
- 資料整合
- 資料共享性高
- 資料冗餘小
- 資料一致性好
- 資料獨立性高
- 實施統一管理與控制
- 減少應用程式的開發與維護的工作量
11、關係資料庫對關係限定的具體要求
- 每一個屬性都是不可分割的
- 每一個關係僅僅有一個關係模式
- 每一個關係模式的屬性必須命名,屬性不可以重複
- 同一個關係中不可以出現候選碼或者候選鍵(主鍵)完全相同的元組
- 在關係中元組的順序(行序)無關緊要
- 在關係中屬性的順序(列序)無關緊要
12、資料定義語言的功能
對資料庫及資料庫中的各種物件進行建立、刪除、修改等操作
- 建立 create
- 刪除 alter
- 修改 drop
13、完整性約束的物件及其含義
作用物件可以是列、元組和表
- 列級約束,是指對列的型別、取值範圍、精度等的約束
- 元組約束,是指元組中的各個欄位之間的相互約束
- 表級約束,是指若干元組之間、關係之間的聯絡的約束
14、遊標
-
定義:在查詢結果的記錄集合中移動的指標
-
使用遊標的場景:若sql語句返回多個元組,則使用遊標
-
不使用的場景:
- 結果是一個元組的select語句
- insert、update、delete語句不適用遊標
-
遊標的使用過程
- 定義遊標 declare
- 開啟遊標 open
- 讀取資料 fetch
- 關閉遊標 close
- 刪除遊標 free
注:如果遊標被刪除(free)後,就不能在開啟(open)了
15、資料庫的完整性
- 定義:資料完整性是指資料的正確性、相容性和有效性
- 破壞資料完整性的操作:資料的新增、刪除、修改
- 完整性規則:
-
域完整性規則----列的約束
- 是指資料列必須滿足某種疼的資料約束,約束一個列的輸入的有效性。一般包含:是否允許為空、限制類型(資料型別)、取值範圍、預設值、是否唯一
-
實體完整性規則----行的約束
- 是指資料表中的所有的行唯一,實體完整性要求資料表的每一行都有一個唯一的識別符號,一般包括一列值唯一、或者多列值唯一
-
參照完整性規則----表的約束
- 是指資料表間資料的引用關係即參照關係,涉及兩個以及兩個以上表資料的一致性
-
域完整性規則----列的約束
16、資料庫的安全性
定義:是指保護資料庫,防止因使用者非法使用資料庫造成資料洩露、更改或破壞
- 安全性控制的一般方法:
- 使用者標識與鑑定
- 存取控制
- 定義檢視
- 審計
- 資料加密
17、事務
- 事務的概念:事務是由一系列操作序列構成的程式執行單元,這些操作要麼都做,要麼都不做,是一個不可分割的工作單位。
- 事務以 Begin transaction 開始 , 以 commit 或 rollback結束
- commit:表示提交,事務的正常結束
- rollback:表示非正常結束,撤銷已做的操作,回滾到事務開始的狀態
- 事務的性質(ACID原則)
-
原子性(Atomicity)
- 事務中包含的所有操作要麼都做,要麼都不做。原子性由恢復機制實現
-
一致性(Consistency)
- 事務的隔離執行必須保證資料庫的一致性。事務開始前,資料庫處於一致性狀態;事務結束後,資料庫必須處於抑制狀態。資料庫的一致性狀態由使用者來負責。
-
隔離性(Isolation)
- 系統必須保證事務不受其他併發執行事務的影響。對任何一對事務T1,T2,在T1看來,T2要麼在T1開始之前就已經結束,要麼在T1完成之後再開始執行。隔離性通過併發控制機制實現
-
永續性(Durability)
- 一個事務一旦提交之後,它就對資料的影響必須是永久的。系統發生故障也不能改變事務的永續性。永續性通過恢復機制來實現
-
原子性(Atomicity)
- 事務的排程
- 事務排程的概念:事務執行的順序稱為一個排程,表示事務的指令在系統中執行的時間順序
- 事務排程的型別
- 序列排程
- 並行排程 (在保證一致性的前提下可以最大限度的提高併發度)
18、資料的併發控制
-
併發操作產生資料不一致性的原因
-
資料丟失
- 兩個事務
T1
和T2
一起,讀入同一資料並修改,T2
提交的結果破壞了T1
提交的結果,導致T1
的修改丟失
- 兩個事務
-
不可重複讀
- 事務
T1
讀取了資料後,事務T2
對其進行了更新操作,就使得T1
無法再現前一次的讀取結果。具體分為三種情況:- 事務
T1
讀取某一資料後,事物T2
對其做了修改,當事務T1
再次讀取資料時,與前一次不同 - 事務
T1
按一定條件從資料庫獲取某些資料後,事務T2
對其進行了刪除操作,刪除了其中部分記錄,當T1
再以相同的條件讀取資料的時候,發現某些資料就神祕的消失了 - 事務
T1
按一定的條件從資料中讀取某些資料後,事務T2
對其插入了一些新的資料,導致事務T1
按相同的條件讀取資料時,發現多了一些記錄 - 注:(第二和第三條也稱幻讀現象)
- 事務
- 事務
-
讀髒資料
- 事務
T1
修改了某一資料,並將其寫回了磁碟,事務T2
讀取同一資料後,T1
由於某種原因被撤銷,這時T1
已修改過的資料恢復了原值,T2
讀到的資料就與資料庫中的資料不一致,則T2
讀到的資料為"髒"資料,即不準確的資料
- 事務
-
資料丟失
-
封鎖
- 封鎖的定義:一個事務對某個資料物件進行加鎖,取得對它的一定的控制,限制其他事務對該物件資料的使用
(併發控制的基本方法就是封鎖)
- 封鎖的型別
-
排它鎖(X鎖,eXclusive lock)
- 事務T對資料物件R加上X鎖,則其它事務對R的任何封鎖請求都不能成功,直到T釋放R的X鎖
-
共享鎖(S鎖,Share lock)
- 事務T對資料物件R加上S鎖,則其它事務對R的X請求不能成功,而對R的S請求可以成功
-
排它鎖(X鎖,eXclusive lock)
-
封鎖協議(封鎖的級別)
封鎖的級別又稱為一致性級別或隔離度。由各種鎖的型別預期封鎖的不同的封鎖級別
-
0級封鎖
- 封鎖的事務不重寫其它非0級封鎖事務的未提交的更新資料
-
1級封鎖
- 被封鎖的事務允許重寫未提交的更新資料。防止資料丟失修改的發生
-
2級封鎖
- 被封鎖事務即不重寫也不讀取未提交的更新資料,這除了1級封鎖的效果外還防止了讀取髒資料
-
3級封鎖
- 被封鎖的事務不讀未提交的更新資料,不寫任何未提交資料
-
0級封鎖
19、資料庫的恢復
資料庫可恢復性定義:系統能把資料從被破壞、不正確的狀態,恢復到最近的一個正確的狀態,從而保證資料庫的一致性。DBMS的這種能力稱為資料庫的可恢復性
恢復的基本原理是冗餘,即資料庫中任何一部分資料可以根據儲存在系統別的冗餘資料來重建
20、資料庫檢視的優點
- 集中分散資料
- 簡化查詢語句
- 重用SQL語句
- 保護資料安全
- 共享所需資料
- 更改資料格式
其他
- 客觀存在並且可以相互區別的"事務"稱為實體
- 活鎖問題,一種簡單的辦法先入先出