數據庫基礎
五個基本的關系代數操作:並、差、笛卡爾積、選擇、投影
https://images2015.cnblogs.com/blog/711762/201609/711762-20160927102253766-615053468.png
完整性
- 實體完整性:要求每個關系(表)有且僅有一個主鍵,每一個主鍵值必須唯一,而且不允許為“空”(NULL)或重復。
主鍵
- 參照完整性:對於永久關系的相關表,在更新、插入或刪除記錄時,如果只改其一,就會影響數據的完整性。如刪除父表的某記錄后,子表的相應記錄未刪除,致使這些記錄稱為孤立記錄。對於更新、插入或刪除表間數據的完整性。
外鍵
- 自定義完整性
事務
1、什么是事務
事務是數據庫並發控制的基本單位,可以看作是一系列SQL語句的集合
事務必須要么全部執行成功,要么全部執行失敗(回滾)
比如從A轉賬到B 100元,A-100,B+100如果B執行失敗,A的操作不能憑空減少100,故進行回滾操作
2、事務的ACID四個特性:
-
事務的原子性(Atomicity)是指一個事務要么全部執行,要么不執行。也就是說一個事務不可能只執行了一半就停止了。比如你從銀行取錢,這個事務可以分成兩個步驟(1)存折減款,(2)拿到現金。不可能存折錢少了,而錢卻沒拿出來。這兩步必須同時完成,要么就都不完成。
-
事務的一致性(consistency)是指事務的運行並不改變數據庫中數據的一致性。例如,完整性約束了a+b=10,一個事務改變了a,那么b也應該隨之改變。
-
事務的獨立性(或隔離性Isolation:隔離性指的是事務間是相互獨立的,不會互相影響)是指兩個以上的事務不會出現交錯執行的狀態。因為這樣可能會導致數據不一致。
-
事務的持久性(Durability)是指事務運行成功以后,就系統的更新是永久的。不會無緣無故的回滾。
函數依賴
1、主碼:又稱為主鍵、主關鍵字,注意:主碼是個能夠唯一標識一條記錄的最小屬性集(是從候選碼里人為挑選的一條)
2、關鍵字:又稱為候選碼;
3、候選關鍵字:候選碼去掉主碼剩下的部分即為候選關鍵字;
4、碼=超鍵:唯一標識實體的屬性或屬性組合;
依賴基本
這里我選擇使用我理解的方式用盡可能通俗的方式解釋一下
完全函數依賴:碼A完全依賴碼B,則無論碼B中有多少個屬性,不能存在碼B拆除了一部分還能決定碼A的情況;
部分函數依賴:與完全函數依賴對應,就是碼A依賴碼B,把碼B拆吧拆吧還能攢出來一個決定碼A的小碼B;
傳遞函數依賴:就是碼A依賴碼B,碼C依賴碼A,
類似這種可以接起來的情況:
B—> A, A —>C
如果A不決定B,那么就滿足傳遞函數依賴(A決定B就變成直接依賴了)
關系范式基本概念
1NF:屬性不可拆分——所有關系數據庫中的關系都要滿足第一范式
2NF:在第一范式基礎上,
非主屬性完全依賴主鍵(主碼),即消除非主屬性部分函數依賴;
3NF:在第二范式基礎上,
非主屬性不存在傳遞依賴候選鍵;
BCNF:在第三范式基礎上,
主屬性也消除掉傳遞依賴,即所有屬性都不存在傳遞依賴;