資料庫基礎

交易T1對某筆資料列加上共享鎖並正在讀取。T2對這筆資料列要求共享鎖,T3要求排他鎖。在T1解除鎖之前的期間,下列何者正確?

  1. AT2能立即取得鎖,但T3要等待
  2. BT2與T3都要等待
  3. CT2與T3都能立即取得鎖
查看答案與解析

正確答案:A. T2能立即取得鎖,但T3要等待

共享鎖是讀取資料時所加的鎖,其他交易也能對同一資料加上共享鎖同時讀取,但無法加上用於寫入的排他鎖。排他鎖是更新資料時所加的鎖,在持有期間,其他交易既不能加共享鎖也不能加排他鎖。在這個例子中,T1的共享鎖與T2的共享鎖相容,因此T2能立即取得鎖並讀取。T3的排他鎖與T1的共享鎖不相容,因此要等到T1解除鎖(T2也持有共享鎖時,還要等T2解除)。像這樣利用鎖防止同時執行之交易彼此干擾,稱為並行控制。

  • A. 正確。共享鎖彼此相容,排他鎖與共享鎖不相容。
  • B. 共享鎖彼此相容,因此T2不必等待。
  • C. 排他鎖與共享鎖不相容,因此T3要等待。
練習這個領域 前往領域頁面

相關計算工具

資料庫基礎的其他題目

  1. 關於交易的並行控制所使用的兩階段鎖定(2PL),下列敘述何者正確?
  2. 交易T1對資料列A加上排他鎖後要求資料列B的鎖,T2對資料列B加上排他鎖後要求資料列A的鎖,結果兩者都無法繼續。DBMS偵測到這個狀態時,一般的處理方式是下列何者?
  3. 許多DBMS在更新資料時,會把更新內容記錄在日誌中,並在寫入資料庫本體之前,先把日誌寫入非揮發性儲存裝置(WAL:預寫式日誌)。採用此方式的主要理由是下列何者?
  4. 有交易T1~T5,在發生故障前取了一次檢查點。T1在檢查點之前開始並提交。T2與T3在檢查點之前開始,T2在檢查點之後、故障之前提交,T3在故障時尚未提交。T4與T5在檢查點之後開始,T4在故障前提交,T5尚未提交。故障後的復原中,需要使用日誌進行前滾(Rollforward)的交易是下列何者?
  5. 在有100萬筆資料列的會員表格之會員編號欄位上建立了B+樹索引。一般可預期的效果與代價組合,下列何者正確?