資料知識地圖 · 3. 資料管線
ACID / Schema
一致性與欄位對齊
觀念教學
資料搬得快沒用,搬「對」才算數。ACID 管交易不出錯,Schema 對齊管欄位不雞同鴨講。
核心觀念
ACID 是資料庫交易(Transaction)的四大保證:原子性(Atomicity)——整筆交易全成功或全不做;一致性(Consistency)——交易前後資料都符合規則;隔離性(Isolation)——多筆交易同時執行互不干擾;持久性(Durability)——寫入成功就不因當機消失。Schema 對齊則是跨系統整合時,統一欄位命名、單位、時間格式,讓同一件事在不同表裡長得一樣。
白話理解
轉帳一千元:A 帳戶扣款與 B 帳戶入帳必須綁成同一筆交易——只扣不入就是事故,這是原子性的日常。Schema 的日常:業務系統的「營收」含稅、財務系統不含稅,月報對不起來;兩邊各自都沒錯,合起來全錯。
實務檢核
- 交易型系統(訂單、金流)必選支援 ACID 的資料庫
- 分散式架構常在一致性與可用性間取捨;純分析用途可接受最終一致性
- Schema 對齊三件套:命名(客戶編號欄叫什麼)、單位(元或千元、UTC 或台北時間)、格式(日期長相)
- 建資料字典(Data Dictionary),用對齊率追蹤跨表欄位的統一程度
- 上游 Schema 一改、下游全斷:變更要有通知機制與版本管理
🎯 口訣:全做或全不做、前後都合規、彼此不干擾、寫了就不丟——ACID 四字各管一關。
iPAS 考點
最常考四字母配對:「轉帳只成功一半」考原子性、「當機後資料仍在」考持久性、「兩人同時下單互不影響」考隔離性、「餘額不得為負的規則始終成立」考一致性。Schema 考向:跨部門報表兜不攏的根因——欄位語意與單位不一致,答案選「建立統一資料定義」。
應用場景
評估指標
iPAS 歷屆考題詳解(2 題)
先自行作答,再展開詳解。題目出處均為 iPAS AI 應用規劃師正式考題,著作權屬原主辦單位。
在資料庫的ACID 特性中,下列何者為「原子性(Atomicity)」的正確定義?
- A所有資料欄位必須為相同型別
- B每次交易需以批次方式執行
- C交易不可分割,需完全成功或完全失敗
- D系統會自動同步交易資料至所有節點
看正解與逐選項詳解
正解:C
正確答案:(C)
【正解解析】
原子性(Atomicity)指交易(Transaction)是不可分割的最小工作單位:交易內的所有操作必須全部成功提交,只要其中一步失敗,整筆交易即回復(Rollback)至交易前狀態,不允許「執行一半」的中間狀態存在。經典例子是轉帳:扣款與入帳必須同時生效或同時取消,不能只扣款而未入帳,故 (C) 正確。
【為何其他選項錯了?】
- (A):欄位型別是否一致屬於資料表結構(Schema)設計議題,不在 ACID 四項特性的範疇內。
- (B):批次執行是排程與效能策略;交易可以單筆執行,原子性的要求與是否批次無關。
- (D):自動同步交易資料至所有節點是分散式系統的複寫(Replication)機制,與可用性、持久性較相關,並非原子性的定義。
提示:ACID 四特性:原子性為全有或全無、一致性為規則不被破壞、隔離性為交易互不干擾、持久性為提交後永久保存。
某人工智慧團隊使用分散式資料庫(Distributed Database)儲存模型訓練資料,並在更新訓練樣本時啟用多節點交易。若其中一個節點在交易過程中發生錯誤,但系統仍確保整體資料不會出現部分更新、最終狀態維持一致,下列何者最能說明此現象?
- A系統透過原子性(Atomicity)確保交易必須全部成功或全部回復(Rollback)
- B系統透過一致性(Consistency)確保交易完成後資料符合完整性規則
- C系統透過隔離性(Isolation)避免多筆交易同時存取或修改相同資料
- D系統透過持久性(Durability)確保交易一旦提交,其結果將永久保留於資料庫中
看正解與逐選項詳解
正解:A
正確答案:(A)
【正解解析】
題幹關鍵句是「其中一個節點發生錯誤,但系統確保整體資料不會出現部分更新」。這正是原子性(Atomicity)的作用:交易是全有或全無的工作單位,任一步驟失敗,整筆交易回復(Rollback)至交易前狀態,不留下部分更新的中間結果。分散式交易協定(如兩階段提交)要保障的正是跨節點的原子性,故 (A) 正確。
【為何其他選項錯了?】
- (B):一致性(Consistency)描述交易前後資料皆滿足完整性規則(如餘額不得為負),是原子性等機制共同達成的結果狀態;題幹強調「不部分更新、全部回復」的機制本身,核心是原子性。
- (C):隔離性(Isolation)處理「多筆交易並行」時互不干擾的問題;題幹是單筆交易執行中出錯,沒有並行衝突情境。
- (D):持久性(Durability)保證「已提交」的交易結果永久保存;本題交易未成功提交而回復,不涉及持久性。
提示:失敗即全部回復、不留部分更新對應原子性;並行互不干擾對應隔離性;提交後不遺失對應持久性。