データベースの基礎

トランザクションが持つべきACID特性のうち、「口座Aから引き落として口座Bに入金する振替の処理が、途中で障害が起きても、両方とも行われるか、まったく行われないかのどちらかになる」という性質はどれか。

  1. A一貫性(Consistency)
  2. B耐久性(Durability)
  3. C原子性(Atomicity)
答えと解説を見る

正解:C. 原子性(Atomicity)

ACID特性は、トランザクションが満たすべき4つの性質の頭文字をとったものです。原子性(Atomicity)は、トランザクションの中の処理がすべて実行されるか、まったく実行されないかのどちらかになる性質で、障害が起きたときは途中までの更新を取り消します。一貫性(Consistency)は、トランザクションの前後で、データが整合性の制約(残高が負にならない、外部キーの参照先があるなど)を満たし続ける性質です。独立性(Isolation、隔離性)は、同時に実行される複数のトランザクションが互いに干渉せず、1つずつ順に実行した場合と同じ結果になる性質です。耐久性(Durability、永続性)は、コミットしたトランザクションの結果が、その後に障害が起きても失われない性質です。設問の「全部か無か」の性質は原子性です。

  • A. 一貫性は、トランザクションの前後でデータが整合性の制約を満たし続ける性質です。
  • B. 耐久性は、コミットした結果が障害のあとも失われない性質です。
  • C. 正しい。すべて実行されるか、まったく実行されないかのどちらかになる性質が原子性です。
この分野を解く 分野ページへ

関連する計算ツール

データベースの基礎の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

データベースの基礎のほかの問題

  1. 在庫表のある商品の在庫数は10である。トランザクションT1は在庫数を読み出して3を引いた値を書き込み、T2は在庫数を読み出して5を引いた値を書き込む。ロックをかけずに、T1の読み出し、T2の読み出し、T1の書き込み、T2の書き込みの順に実行されたとき、最終的な在庫数はいくつになるか。
  2. トランザクションを同時に実行したときに起きる問題のうち、ダーティリードの説明として正しいものはどれか。
  3. トランザクションT1が SELECT COUNT(*) FROM 注文 WHERE 金額 >= 1000 を実行したところ8件だった。その直後に、T2が金額2000の注文の行をINSERTしてコミットした。T1が同じSELECT文をもう一度実行すると9件になった。この現象はどれか。
  4. SQLの標準規格が定める分離レベルのうち、READ COMMITTED で起こりうる現象の組み合わせとして正しいものはどれか。
  5. トランザクションT1が、ある行に共有ロックをかけて読み出している。この行に対して、T2が共有ロックを、T3が専有ロック(排他ロック)を要求した。T1がロックを解除するまでの間について、正しいものはどれか。