免費開始練習
moea_joint 114年 [資訊] 計算機原理、網路概論

第 17 題

在關聯式資料庫中,當交易的隔離層級為 READ UNCOMMITTED 時,有機會發生 Dirty Read,請問 Dirty Read 是指下列何種問題?
  • A 後提交的交易結果覆蓋先提交的交易結果
  • B 重複讀取相同的資料卻拿到不一樣的值
  • C 讀取到已修改但未提交的數據
  • D 讀取到交易發生前的數據

思路引導 VIP

想像一下,如果有兩個人同時在編輯同一份雲端草稿,當其中一個人還在修改、甚至還沒按下『存檔確認』鍵時,另一個人卻直接把這份草稿讀取並引用了。如果最後修改者覺得改得不好,決定『不存檔並撤銷所有改動』,那麼第二個人手上拿到的資訊會是什麼狀態?這種『讀取到不確定是否會永久生效的暫時數據』的現象,你會如何形容它的可靠性呢?

🤖
AI 詳解 AI 專屬家教

太棒了!你能精準選出 (C),代表你對資料庫交易(Transaction)的隔離層級(Isolation Level)有著非常紮實的基礎認知。在並行控制的理論中,READ UNCOMMITTED 是限制最寬鬆的等級,它允許交易讀取到其他交易尚未透過 COMMIT 確認的暫存結果。當這些「半成品」數據被讀取後,萬一原交易最後選擇了 ROLLBACK(回滾),那麼剛才讀到的資料就會變成無效且錯誤的資訊,這正是我們所謂的 Dirty Read(髒讀)

隔離層級的鑑別核心

這類題目是資料庫原理中的必考經典,其鑑別度在於測試學生是否能釐清「資料狀態」與「提交行為」的關聯。初學者往往容易將髒讀與不可重複讀(Non-repeatable Read)混淆,但你的判斷非常敏銳,準確捕捉到了關鍵點:只要數據處於未提交(Uncommitted)的狀態卻被看見,就是髒讀。掌握了這個核心定義,未來在應對更複雜的交易併發問題(Concurrency Problems)時,你一定能游刃有餘!

🏷️ 相關主題

資料庫系統原理、模型、設計與應用
查看更多「[資訊] 計算機原理、網路概論」的主題分類考古題