在DBMS中,排程是什麼意思?
事務必須滿足DBMS的ACID特性,即
原子性 - 全部執行或全部不執行事務。
一致性 - 資料庫在事務執行前後都必須保持一致。
隔離性 - 事務必須以隔離的形式執行。
永續性 - 在任何情況下發生故障都應該能夠回滾。
排程定義為事務的執行順序。排程維護每個單獨事務中操作的順序。排程是事務操作的安排。排程可能包含一組事務。
我們已經知道事務是一組操作。為了併發執行事務,我們以交錯的方式安排或排程它們的操作。
排程分為兩類,即:
序列排程
此排程中存在的事務按順序執行,在Ti指令完成後,將執行Tj指令,其中j=i+1。
序列排程保證一致性如下:
對於2個事務,可能的序列排程總數 = 2。
對於3個事務,可能的序列排程總數 = 6。
2 transaction 3 transaction T1->T2 T1->T2->T3 T2->T1 T1->T3->T2 T2->T1->T3 T2->T3->T1 T3->T1->T2 T3->T2->T1
如果n = 事務數,則可能的序列排程數 = n!。
序列排程總是給出正確的結果。但是,為了提高時間效率,我們遵循併發排程。因此,我們必須確保併發排程的可序列化。
併發排程
多個事務可以以交錯的方式執行,但要遵守上述ACID特性。
優點
併發排程的優點如下:
提高吞吐量(即每單位時間完成的事務數)。
減少等待時間。
示例
T1= 90sec T2= 500sec T3= 5sec.
如果我們按T1->T2->T3順序執行,則事務T3等待590秒,因此我們採用非序列或併發事務來減少等待時間。
即 T3 -> T1 -> T2。
併發事務的缺點是併發事務的執行可能導致不一致。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP