:::
資料處理概要4033-003
九、當多筆交易(teansactions)同時執行,資料庫系統必須進行同步控制(concurrency control)的設計)? (一)在同步控制中,所謂的可序性(serializability),是什麼意思?試以二個交易 TA 和 TB 的執行為例來做說明。 (二)可序性(serializability)在實作層面,會遇到什麼問題(所以才有了同步控制協定(concurrency control protocol)的設計)? (三)二階段同步控制協定(two-phase concurrency control protocol)能確保多筆交易在同步執行時能具有可序性 (serializable),請說明這是什麼原因?

◎【擬答】:

(一) 若某預定計畫 S 與某一連續的預定計畫相等 (equivalence),則稱 S 為可可序性預定計畫。例如下圖中的兩個預定計 畫均為連續的預定計畫。 T 1 read_item(X) X=X+N write_item(X) read_item(Y) Y=Y-N write_item(Y) T 2 read_item(X) X=X-M write_item(X) 時間 T 1 read_item(X) X=X+N write_item(X) read_item(Y) Y=Y-N write_item(Y) T 2 read_item(X) X=X-M write_item(X) 時間 下圖的預定計畫不連續,但因與上面兩個預定計畫結果相等,故為可序性預定計畫。 T1 read_item(X) X=X+N write_item(X) read_item(Y) Y=Y-N write_item(Y) T2 read_item(X) X=X-M write_item(X) 時間

(二)在實作上,若要證明可序性,可用限制寫入假設與不限制寫入假設: 1.限制寫入假設的順序相等 (order equivalence with the constrainted write assumption):假若對於兩個預定計 畫所影響的所有資料項目,其所應用的交易動作 (operation) 順序相同,則稱兩個預定計畫是順序相等的。同時若 假設所有交易更新資料都只會根據原先讀到的舊資料,則此時只要考慮交易中的讀寫動作順序是否相同即可,此假 設就是限制寫入假設,有時稱讀先於寫假設 (read before write assumption)。例如下例就是一個符合限制寫入假 設的交易: read_item(X) ......... 包含將 X 轉換的運算 write_item(X) .......... 2.不限制寫入假設 (the unconstrainted write assumption):也就是假設所有交易更新資料可以根據原先讀到的兩 個以上舊資料,或完全不牽涉到其他舊資料,此假設就是不限制寫入假設。例如下兩例就是符合不限制寫入假設的 交易: read_item(X) read_item(Y) X=X+Y write_item(X) .......... X=20 write_item(X) .......... 在此假設下交易中的讀取動作的集合與寫入動作的集合是相互獨立的,因此較容易測試相等。 3.由於限制頗多,且後續也不一定可以找到保證可序的預定計畫,因此需要同步控制協定。

(三)兩階段鎖定 (Two phase locking, 2PL) 協定就是限制每個交易中所有的鎖定動作 (包括 read_lock 與 write_lock) 都 必須在解除鎖定 (unlock) 動作之前。此種交易可以被劃分成兩個階段: 1.擴展 (expanding) 或稱成長 (growing) 階段:在此階段中可以要求進行各種鎖定動作,但絕對不能進行解除鎖定 動作。 2.收縮 (shrinking) 階段:在此階段中只能解除各種鎖定,但絕對不能要求進行新的各種鎖定動作。 如果可以容許升級則上列協定不變,但若允許降級,因為降級只會產生在收縮階段,因此上列協定中增加在收縮階段 容許將原來 write_lock (X) 狀態降級為 read_lock (X) 狀態。 例如下例中的T1與T2就不符合2PL,因為T1中的unlock (Y) 與T2中的unlock (X) 都在其他要求鎖定動作之前。 T 1 read_lock(Y) read_item(Y) unlock(Y) write_lock(X) read_item(X) X=X-Y write_item(X) unlock(X) T 2 read_lock(X) read_item(X) unlock(X) write_lock(Y) read_item(Y) Y=Y-X write_item(Y) unlock(Y) 但是下例中的T3與T4就是將上例修改符合2PL。 T 3 read_lock(Y) read_item(Y) write_lock(X) unlock(Y) read_item(X) X=X-Y write_item(X) unlock(X) T 4 read_lock(X) read_item(X) write_lock(Y) unlock(X) read_item(Y) Y=Y-X write_item(Y) unlock(Y) 6

十、假設你身為某公司的資訊部門主管,被要求將臺北總公司及高雄工廠之區域網路連結成企業內部網路(Intranet),也 被賦予在臺北總公司區域網路規劃資訊安全防禦的任務,在臺北總公司的區域網路內有網頁伺服器(Web server)、應 用伺服器(Application server)、網域名稱伺服器(DNS server)、郵件伺服器(SMTP server)、企業資源規劃伺服器 (ERP server)及檔案傳輸協定伺服器(FTP server),而你所擁有的工具為數個防火牆(Firewall)、小型入侵偵測系 統(IDS)及虛擬私有網路閘道(VPN Gateway),你將如何規劃一套最符合成本效益且安全的網路架構來達成這個任務? (為了說明上的方便,你可以自行做一些數值的假設。) (一)請畫圖展示以上每個設備安置的位置並說明你的設計理念。 (二)針對防火牆請說明你的過濾規則。 (三)如果虛擬私有網路閘道你選擇使用 IPsec 規格,請描述你的 IP 設定。

◎【擬答】:

(一)設計如下圖,在台北總公司與高雄工廠間用虛擬私有網路閘道(VPN Gateway)透過 Internet 互連,可以在公共網路上 實現相當的安全性,其佈設採用 Tunnel mode,在兩端的內部區域網路外架設 VPN Gateway;此外,也將供外部使用的 SMTP server、DNS server、Web server 架在 DMZ 中,並搭配防火牆與 IDS 作初步的資安防護;內部使用的 Application server、ERP server、FTP sever 則架在 Intranet 上,搭配防火牆與 NIDS 進行較高程度的資安防護。 ERP server 防 火 牆 SMTP server Web server IDS DNS server VPN Gateway Application server Intranet FTP server IDS 台北總公司 防 火 牆 DMZ Internet 防 火 牆 VPN Gateway 區 域 網 路 高雄工廠

(二)DMZ 與 Internet 間防火牆僅能容許特定通訊協定與通訊 Port 存取 DMZ 內特定伺服器;其餘防火牆則採最嚴格的白名單 方式,僅接受特定使用者由特定 IP 位址存取特定伺服器。

(三)應用 IPsec 連線需要設定下列資訊: 1.既定 IPsec 路由器可由外界存取的 IP 位址 2.由 IPsec 路由器所伺服之 LAN/WAN 的網路位址範圍(例如 192.168.0.0/24 或 10.0.1.0/24) 3.從網路節點路由資料到網際網路之閘道器的 IP 位址 4.用來辨識 IPsec 連線以及與其他裝置或連線分別的一個獨特的名稱(例如 ipsec0) 5.一個固定的加密金鑰或使用 racoon 自動產生一個 6.使用來初始連線與在連線階段中交換加密金鑰的一個事先共享的認證金鑰