10 模式分解
-
分解
模式分解:將一個關系模式分解為多個子模式
模式分解就是模式規范化的工具,模式分解使用無損連接和保持函數依賴來衡量模式分解后是否導致原有模式中部分信息丟失。 -
無損連接
-
保持函數依賴
11、事務管理
事務的ACID性質:
(1)原子性(Atomicity):要么都做,要么都不做。
(2)一致性(Consistency):事務執行的結果必須從一個一致性狀態轉到另一個一致性狀態。中間狀態對外不可見。
(3)隔離性(Isolation):事務之間相互隔離,互不干擾。
(4)持久性(Durability):事務成功提交后,對數據庫的更新操作是永久有效的。
12、并發控制
- 并發操作就是在多用戶系統中,可能出現多個事務同時操作同一數據的情況。并發操作會導致3種數據不一致的問題:
- 丟失修改(丟失更新)
當兩個事務T和T,讀入同一數據做修改,并發執行時,T把T或T,把T,的修改結果覆蓋掉,造成了數據的丟失更新問題,導致數據不一致。 - 不可重復讀
事務7,讀取了數據R,事務T,讀取并更新了數據R。當事務T,再讀取數據R以進行核對時,得到的兩次讀取數據不一致。 - 讀臟數據
事務T,更新了數據R,事務T,讀取了更新后的數據R,事務T,由于某種原因被撤銷,進行了事務回滾,數據R恢復原值,事務T,讀取了臟數據。
造成以上3種數據不一致的主要原因是事務的并發操作破壞了事務的隔離性-
- 丟失修改(丟失更新)
- 并發控制類型:
- 排他鎖(X鎖):
事務T對數據A加X鎖:
(1)只允許事務T讀取、修改數據A;
(2)只有等該鎖解除之后,其他事務才能夠對數據A加任何鎖類型 - 共享鎖(S鎖):
解決了X鎖太嚴格,不允許其他事務并發讀的問題。事務T對數據A加S鎖,則:
(1)只允許事務T讀取數據A但不能夠修改:
(2)可允許其他事務對其加S鎖,但不允許加X鎖
- 排他鎖(X鎖):
13 數據庫備份與回復
- 數據庫的故障類型
①事務內部故障:如運算溢出、除零錯誤、并發事務發生死鎖等;
②)系統故障:也稱為軟故障,是指造成系統停運的事件,如CPU故障、OS故障、突然停電等③介質故障:也稱為硬故障,如磁盤損壞等;
④計算機病毒: - 數據庫的備份方法
數據庫的轉儲分為靜態轉儲和動態轉儲,海量轉儲、增量轉儲和差量轉儲,以及日志文件- 靜態轉儲:即冷備份,指在轉儲期間不允許對數據庫進行任何存取、修改操作。
優點是非常快速、容易歸檔(直接物理復制操作)。
缺點是只能提供到某一時間點上的恢復,不能做其他工作,不能按表或按用戶恢復。
- 動態轉儲:即熱備份,在轉儲期間允許對數據庫進行存取、修改操作,因此,轉儲和用戶事務可以并發執行。
優點是可在表空間或數據庫文件級備份,數據庫仍可使用,可達到秒級恢復。
缺點是不能出錯,否則后果嚴重,若熱備份不成功,所得結果幾乎全部無效。
- 靜態轉儲:即冷備份,指在轉儲期間不允許對數據庫進行任何存取、修改操作。
- 海量轉儲(完全轉儲):是指每次轉儲全部數據庫。
- 增量轉儲:是指每次只轉儲上次轉儲后更新過的數據,用于數據庫很大,事務處理頻繁的場景。
- 差量轉儲:是對最近一次數據庫完全備份以來發生的數據變化進行備份,優點是速度快,占用較小的時間和空間。
- 日志文件:在事務處理過程中,DBMS把事務開始、事務結束以及對數據庫的插入、刪除和修改的每一次操作寫入日志文件。一旦發生故障,DBMS的恢復子系統利用日志文件撤銷事務對數據庫的改變,回退到事務的初始狀態。
14 數據倉庫
數據倉庫與數據庫對比:
數據倉庫 | 數據庫 |
---|---|
面向主題 | 面向事務 |
數據結構是集成的,具有一致性 | 數據結構更為復雜 |
是靜態的歷史數據,只能定期添加、刷新 | 是動態變化的,業務發生,數據就更新 |
存儲歷史數據 | 存儲實時、在線數據 |
設計需要引入冗余 | 設計盡量避免冗余 |
15 分布式數據庫
- 分布式數據庫通常使用較小的計算機系統,每臺算機可以單獨放在一個地方,每臺計算機中都可能有DBMS的一份完整拷貝副本或部分拷貝副本,并具自己局部的數據庫,位于不同地點的許多計算機通過網絡互相連接,共同組成一個完整的、全局的邏輯上集中、物理上分布的大型數據庫
- 分布式數據庫的核心:
- 數據分片:突破中心化數據庫單機的容量限,將數據分散到多節點,以更靈活、高效的方式來處理數據。
分片方式包括:
①水平分片:按行進行數據被分割,數據分割為一個個數據組,分散到不同節點上;
②垂直分片:按列進行數據分割,一個數據表的模式被切割為多個子模式。 - 數據同步:由于數據庫理論傳統上是建立在單機數據庫基礎上,而引入分布式理論后,一致性原則被打破。因此引入數據庫同步技術來幫助數據庫回復一致性。
- 數據分片:突破中心化數據庫單機的容量限,將數據分散到多節點,以更靈活、高效的方式來處理數據。
- 分布式數據庫特點:高可擴展性、高并發性、高可用性。