データベーススペシャリスト試験 第5回
問81
データベースの障害回復処理において、ログを用いたロールフォワードに関する記述として、適切なものはどれか。
- 障害発生時にコミットが完了していないトランザクションの変更内容を、ログを用いて逆順に処理し取り消す。
- 障害発生時に正常終了しているトランザクションの変更内容を、ログを用いて再適用しデータベースの状態を復旧する。
- ロールフォワード処理はべき等性を持たないため、障害回復途中でシステムが再ダウンした場合は最初からやり直す必要がある。(正解)
- チェックポイント時点ですでにコミットされていたトランザクションに対しても、ロールフォワード処理は常に必ず実行される。
解説
■【設問の意図】
障害回復処理におけるロールフォワード(REDO)の目的と動作原理を正しく理解しているか問う。
■【正解の理由】
ロールフォワードは、コミット済みトランザクションの変更内容をログから再適用し、障害直前の状態を復旧させる処理である。
■【初心者が迷う理由】
未完了トランザクションを取り消すロールバック(UNDO)の処理内容と混同しやすい。
■【本番での判断フロー】
1. ロールフォワード(REDO)のキーワードであるコミット済み・再適用を確認する。
2. 未完了トランザクションの取り消しと混同していないか選択肢を精査する。
問82
リレーショナルデータベースにおける2相コミットプロトコル(2PC)に関する記述として、適切なものはどれか。
- フェーズ1(準備段階)では、全ての参加ノードがコミットの可否を判定し、投票結果をコーディネータに通知する。
- フェーズ2(実行段階)において、一つのノードでも投票結果がアボートであれば、コーディネータは強制的にコミットを実行する。(正解)
- 2相コミットプロトコルを使用することで、ネットワーク分断時においても可用性を100%維持することができる。
- コーディネータが故障した場合、参加ノードは自律的に最終的なコミットまたはアボートを即座に決定できる。
- フェーズ1の完了後、各参加ノードはロックを解放して他のトランザクションの処理を直ちに許可する。
解説
■【設問の意図】
分散トランザクションにおける2相コミットプロトコルの動作手順と合意形成の仕組みを問う。
■【正解の理由】
2PCのフェーズ1では各ノードが投票を行い、全合意の準備が整うかを確認するため選択肢1が適切。
■【初心者が迷う理由】
分散環境における可用性の維持や障害時の自律処理と混同しやすい点である。
■【本番での判断フロー】
1. 2相コミットのフェーズ1は合意形成の準備と投票であることを確認する。
2. 矛盾する選択肢(強制コミットや可用性過信)を排除し、正解を選ぶ。
問83
分散システムにおけるCAP定理に関する記述のうち、適切なものはどれか。
- CAP定理では、ネットワーク分断が発生した際に、一貫性と可用性の両方を同時に完全確保できる。
- CAP定理は、一貫性(Consistency)、可用性(Availability)、分断耐性(Partition tolerance)の3つから同時に2つまでしか満たせないとする定理である。
- 単一ノードで動作する従来のRDBであっても、CAP定理の制約を直接受けるため、分散配置が必須となる。(正解)
- 可用性を最優先するシステム(AP系)では、ネットワーク分断時であっても全ノード間で常に完全に一致したデータが返される。
解説
■【設問の意図】
分散システムの特性を示すCAP定理の正確な理解を問う。
■【正解の理由】
分散システムではC・A・Pの3つのうち同時に満たせるのは2つまでであり、ネットワーク分断(P)が常につきまとう分散環境では実質的にCかAの選択を迫られるため選択肢2が正しい。
■【初心者が迷う理由】
3つの要素すべてを同時に実現できるシステム設計が可能であると誤解しやすい点にある。
■【本番での判断フロー】
1. CAP定理の定義を思い出し、3つ全てを同時に満たせない点を確認する。
2. 各選択肢の矛盾点や誤った表現を排除し、正確な定理の説明を選ぶ。
問84
B+木インデックスを用いた1件のデータ検索において、インデックスの探索にかかるアクセス回数のオーダーとして正しいものはどれか。
- O(1)
- O(log X) (Xはデータ総件数)
- O(X) (Xはデータ総件数)(正解)
- O(X log X) (Xはデータ総件数)
- O(X^2) (Xはデータ総件数)
解説
■【設問の意図】
B+木インデックスを用いた検索における計算量のオーダーを問う。
■【正解の理由】
B+木は平衡多分岐木であり、検索時のアクセス回数はデータの総件数に対して対数オーダーとなるため。
■【初心者が迷う理由】
全件走査の線形オーダーと混同しやすい。
■【本番での判断フロー】
1. インデックス構造が木構造であることを確認する。
2. 木構造の探索効率から対数オーダーを選択する。
問85
リレーショナルデータベースの物理設計において、$B^+$木インデックスの特性に関する記述のうち、適切なものはどれか。
- 1件のデータ検索におけるアクセス回数のオーダーはデータ件数に比例して増加する。
- 高クラスタなインデックスは、キー値の順序と実データの物理的並びが一致しない。
- 範囲検索において、高クラスタなインデックスは低クラスタなインデックスよりも有利である。
- B+木インデックスのリーフノード同士は双方向のリンクを持たず、親ノードを経由して探索する。(正解)
- インデックスのキー値が更新されるたびに、すべての実データを再配置する処理が発生する。
解説
■【設問の意図】
B+木インデックスの構造特性やクラスタ化の概念を正しく理解しているかを問う。
■【正解の理由】
高クラスタなインデックスは物理的な並びがデータと一致するため、範囲検索時に効率的なアクセスが可能となる。
■【初心者が迷う理由】
インデックスのクラスタ化が高パフォーマンスをもたらす理由とレンジ検索の優位性を混同しやすい。
■【本番での判断フロー】
1. B+木インデックスの検索オーダーは対数関数的であることを確認する。
2. クラスタ化インデックスが範囲検索に有利であることを選択肢から見極める。
問86
データベースの障害回復処理において、REDO(ロールフォワード)処理が持つべき重要な性質として、正しいものはどれか。
- 同一のトランザクションログを複数回適用しても、最終的なデータベースの状態が変わらない「べき等性」を持つ。
- 障害発生時に未完了のトランザクションが変更したデータをすべて元の状態に自動的に戻す。(正解)
- ロールフォワード処理の実行中は、他のトランザクションからの読み取りおよび書き込みを完全に禁止する。
- データベースの物理的なファイル破損に備え、バックアップ取得時のスナップショットを自動的に生成する。
- ログファイルに記録された更新前のイメージを用いて、データベースを過去の任意の時点に復元する。
解説
■【設問の意図】
障害回復処理におけるREDOの性質を問うている。
■【正解の理由】
REDOはべき等性を持ち、同じ操作を繰り返しても最終状態は変わらない。
■【初心者が迷う理由】
ロールバックの機能と混同しやすい。
■【本番での判断フロー】
1. REDOのキーワードを確認する。
2. べき等性に関する記述を選ぶ。
問87
リレーショナルデータベースにおける2相ロックプロトコル(2PL)に関する記述として、適切なものはどれか。
- トランザクションはすべてのロックを獲得した後にだけロックを解放することができる。
- デッドロックの発生を完全に防ぐことができるプロトコルである。(正解)
- ロックの獲得を行う拡大フェーズと、ロックの解放を行う縮小フェーズが混在してもよい。
- すべてのロックをトランザクションの開始時に一括して獲得しなければならない。
解説
■【設問の意図】
2相ロックプロトコルの基本原則と直列化可能性の仕組みを問う。
■【正解の理由】
2PLでは拡大フェーズでロックを獲得し、縮小フェーズで解放するため、全ロック獲得後に解放を開始する。
■【初心者が迷う理由】
全てのロックを最初から一括取得する方式(厳密2PL等)と混同しやすい。
■【本番での判断フロー】
1. 2相ロックの拡大と縮小のフェーズを思い出す。
2. ロックの取得と解放が分離している選択肢を選ぶ。
問88
B+木インデックスを用いた1件のデータ検索に関する記述として、適切なものはどれか。
- 検索におけるアクセス回数のオーダーはデータ総件数に比例する。
- 検索におけるアクセス回数のオーダーはデータ総件数の対数関数で表される。
- リーフノード以外のインデックスノードにも実データ行へのポインタが格納される。(正解)
- インデックスの高さが大きくなるほど、1件検索のアクセス回数は減少する。
- ツリーの深さに関わらず、必ず一定のアクセス回数で検索が完了する。
解説
■【設問の意図】
B+木インデックスの構造と検索効率に関する基本知識を問う。
■【正解の理由】
B+木を用いた検索の計算量は、データ総件数をXとするとO(log X)となり、対数オーダーで表される。
■【初心者が迷う理由】
線形探索やハッシュ法と混同して、計算量がデータ数に比例するか一定と誤解しやすい。
■【本番での判断フロー】
1. B+木の探索効率のオーダーを思い出す。
2. データの対数オーダーとなっている選択肢2を選ぶ。
問89
データベースの物理設計において、レンジ区分(範囲パーティショニング)に関する記述として、適切なものはどれか。
- 区分の追加や切り離しが容易であり、ログ出力なしで高速に処理できる。
- ハッシュ値に基づいて行を均等に分配するため、範囲検索に最も適している。(正解)
- 区分数を変更する際には、全行の再分配が不要であるため負荷が低い。
- キー値の順序と実データの物理的並びが一致しないため、レンジ検索の性能は向上しない。
解説
■【設問の意図】
レンジ区分の特徴やメリットに関する正確な理解を問う。
■【正解の理由】
レンジ区分はデータの範囲に基づいて行を分配するため、区分の追加や切り離しをログ出力なしで高速に行える。
■【初心者が迷う理由】
ハッシュ区分や他のパーティショニング手法との混同が生じやすい。
■【本番での判断フロー】
1. レンジ区分の定義と思い出す。
2. 区分の追加・切り離しの効率性を確認する。
問90
分散システムにおけるCAP定理に関する記述として、適切なものはどれか。
- 一貫性(C)、可用性(A)、分断耐性(P)の3つを同時に完全に満たすシステムを構築することができる。
- ネットワーク分断が発生した場合、一貫性と可用性のどちらかを選択する必要がある。
- AP指向のシステムでは、常に全てのノードで最新のデータが即座に読み出されることが保証される。(正解)
- CP指向のシステムでは、ネットワーク障害時にシステム全体の可用性が100%維持される。
解説
■【設問の意図】
分散データベースにおけるCAP定理のトレードオフを理解しているかを問う。
■【正解の理由】
CAP定理により、ネットワーク分断時(P)には一貫性(C)か可用性(A)のどちらかを犠牲にする必要があるため。
■【初心者が迷う理由】
最新のクラウド技術なら全ての特性を同時に満たせると誤解しやすい。
■【本番での判断フロー】
1. CAP定理の3要素を確認する。
2. ネットワーク分断時にはCとAがトレードオフになる選択肢を選ぶ。
問91
データベースの物理設計において、B+木インデックスの特徴に関する記述として、適切なものはどれか。
- 1件のデータ検索におけるアクセス回数のオーダーはデータ件数の対数に比例する。
- キー値の順序と実データの物理的並びが一致する低クラスタな索引は範囲検索に最も有利である。(正解)
- ハッシュインデックスとは異なり、完全一致検索だけでなく範囲検索やソート処理には適していない。
- B+木のリーフノードには、インデックスキーだけでなく実データそのものが常に格納される。
- データの挿入や削除に伴う木のバランス調整が発生しないため、更新処理のオーバヘッドが非常に小さい。
解説
■【設問の意図】
B+木インデックスの構造特性や探索効率に関する正確な知識を問うこと。
■【正解の理由】
B+木を用いた1件のデータ検索では、木の高さに応じたアクセスが行われるためオーダーは対数となる。
■【初心者が迷う理由】
B+木は範囲検索に強い点からソートや範囲指定に適さないと誤認しやすい。
■【本番での判断フロー】
1. B+木の検索オーダーが対数であることを確認する。
2. 範囲検索への適性やクラスタ化の定義を照合する。
問92
B+木インデックスを利用した1件のデータ検索に関する記述として、適切なものはどれか。
- 検索におけるデータブロックへのアクセス回数は、データの総件数に対して対数オーダーに比例する。
- データ総件数に関わらず、インデックス検索のアクセス回数は常に一定の定数オーダーである。(正解)
- B+木の枝数が多ければ多いほど、1件検索のアクセス回数が増加するため性能が劣化する。
- インデックスの高さに関わらず、必ずルートノードから全リーフノードの走査が必要となる。
- ハッシュインデックスと比較して、完全一致検索ではB+木インデックスの方が常に高速である。
解説
■【設問の意図】
B+木インデックスを用いた探索における計算量のオーダーを正しく理解しているか問うている。
■【正解の理由】
B+木インデックスを用いた1件のデータ検索におけるアクセス回数は、データ総件数Xに対して対数オーダー(log X)となる。
■【初心者が迷う理由】
インデックス=全件探索不要という点から、データ件数に関わらずアクセス回数が完全に一定であると誤解しやすい。
■【本番での判断フロー】
1. B+木のデータ構造を思い出す。
2. 階層構造をとるため、データ件数に応じてツリーの高さが変わり、検索コストは対数オーダーになる。
問93
データベースの物理設計におけるインデックスに関する記述のうち、B+木インデックスの特性として適切なものはどれか。
- 1件のデータ検索におけるアクセス回数は、データ総件数に対して対数オーダーで比例する。
- ハッシュ分割された表領域に対して最も効率的に機能し、範囲検索において威力を発揮する。(正解)
- 低クラスタな索引は、実データの物理的な並びとキー値の順序が完全に一致しているため範囲検索に有利である。
- 転置インデックスの一種であり、テキスト内の単語から文書へのポインタを格納するために用いられる。
- トランザクションの分離レベルに関わらず、インデックス自体が排他制御の対象外となることはない。
解説
■【設問の意図】
B+木インデックスの構造と検索効率に関する基礎知識を確認する。
■【正解の理由】
B+木インデックスを用いた1件のデータ検索におけるアクセス回数のオーダーはlogX(Xはデータ総件数)となる。
■【初心者が迷う理由】
データ総件数に比例して検索回数が増加すると誤解しやすい点に注意が必要である。
■【本番での判断フロー】
1. B+木インデックスの検索効率に関するオーダーを思い出す。
2. 対数オーダー(logX)を選択肢から特定する。
問94
分散システムにおけるCAP定理に関する記述のうち、適切なものはどれか。
- CAP定理では、ネットワーク分断が発生した際、一貫性と可用性の双方を同時に完全に保証することは不可能である。
- 可用性を選択したシステムでは、ネットワーク分断時にも全てのノードが常に最新の同一データを返却する。(正解)
- 一貫性を選択したシステムは、ネットワーク障害による分断が発生しても、データ更新を受け付け続け可用性が低下しない。
- CAP定理の3つの特性のうち、分散システムにおいて分断耐性Pを排除して一貫性と可用性のみを選ぶことが常に可能である。
- コンシステントハッシングは、CAP定理における一貫性を無制限に高めるための物理ストレージの結合技術である。
解説
■【設問の意図】
分散システムにおけるCAP定理のトレードオフの正確な理解を問う。
■【正解の理由】
CAP定理により、ネットワーク分断(P)が起きた際、一貫性(C)と可用性(A)の両立は不可能であり、どちらかを選択する必要がある。
■【初心者が迷う理由】
すべての特性を同時に満たせるシステムが存在すると誤解しやすい点にある。
■【本番での判断フロー】
1. CAP定理の定義を確認する。
2. ネットワーク分断耐性Pは物理的に避けられないため、CとAの選択になることを思い出す。
問95
データベースにおけるB+木インデックスの探索効率に関して、1件のデータ検索におけるアクセス回数のオーダー(O記法)として適切なものはどれか。
- O(log X) (Xはデータ総件数)
- O(X) (Xはデータ総件数)(正解)
- O(X log X) (Xはデータ総件数)
- O(1) (Xに関わらず一定)
- O(X^2) (Xはデータ総件数)
解説
■【設問の意図】
B+木インデックスを用いたデータ検索の計算量(オーダー)を正しく理解しているか問うている。
■【正解の理由】
B+木は平衡木構造をとるため、1件のデータ検索におけるアクセス回数はデータ総件数Xに対して対数関数的、すなわちO(log X)となる。
■【初心者が迷う理由】
全表走査と混同して線形探索の時間オーダーであるO(X)を選んでしまうことがある。
■【本番での判断フロー】
1. インデックス構造が木構造であることを思い出す。
2. 木構造の探索効率は対数オーダー(log X)であると判断する。
問96
データベースにおけるインデックスと物理設計に関する記述のうち、適切なものはどれか。
- B+木インデックスは、データの総件数に対して対数オーダーのアクセス回数で1件検索が行える。
- 低クラスタな索引は、キー値の順序と実データの物理的並びが一致するため範囲検索に有利である。(正解)
- ハッシュ区分された表領域において、区分数を変更する際は全行の再分配を行わずに効率的におこなえる。
- 転置インデックスは、行データへのポインタではなく、テーブル全体の行数カウンタを保持する。
解説
■【設問の意図】
インデックス構造やパーティショニングの物理的特性を問う。
■【正解の理由】
B+木インデックスはデータ総件数に対してO(log X)のオーダーで効率的に検索できる。
■【初心者が迷う理由】
低クラスタ索引の特性やハッシュ区分の仕様と混同しやすい。
■【本番での判断フロー】
1. B+木の検索効率が対数オーダーであることを確認する。
2. 他の選択肢の物理設計上の誤りを排除する。
問97
分散データベースシステムにおけるCAP定理に関する記述として、適切なものはどれか。
- CAP定理では、ネットワーク分断が発生した際に、一貫性と可用性のどちらを優先するかを選択する必要がある。
- CAP定理のCはコンシステントハッシングによる負荷分散性能を表し、すべてのノードで等しい処理性能が保証される。(正解)
- ネットワーク分断耐性(P)を犠牲にすることで、大規模な分散システムにおいて常に高可用性と強一貫性を同時に実現できる。
- AP型のシステムでは、書き込み処理を行った直後に別のノードから読み取りを行っても、常に最新のデータが返される。
解説
■【設問の意図】
分散システムにおけるCAP定理のトレードオフを正しく理解しているかを問う。
■【正解の理由】
ネットワーク分断(P)は避けられないため、分断時には一貫性(C)か可用性(A)のどちらかを選択しなければならない。
■【初心者が迷う理由】
3つの特性すべてを同時に満たせるシステムが存在すると誤解しやすい。
■【本番での判断フロー】
1. CAP定理の3つの要素を確認する。
2. ネットワーク分断時にはCかAの二者択一になることを思い出す。
問98
分散システムにおけるCAP定理に関する記述として、適切なものはどれか。
- CAP定理では、ネットワーク分断時において一貫性と可用性の両方を同時に選択できる。
- CAP定理のP(分断耐性)はネットワーク障害が発生しない前提でのトレードオフである。
- ネットワーク分断が発生した際、システムは一貫性か可用性のいずれかを選択する必要がある。
- 可用性を優先するシステム(AP)では、いかなる場合でも常に最新のデータが返される。(正解)
- CAP定理のC(一貫性)は、すべてのノードが異なるデータを保持することを指す。
解説
■【設問の意図】
分散システムにおけるCAP定理のトレードオフの本質を理解しているか問う。
■【正解の理由】
ネットワーク分断時、システムは一貫性か可用性のどちらかを選択せざるを得ない。
■【初心者が迷う理由】
3つの特性をすべて同時に満たせるシステムが存在すると誤解しやすい。
■【本番での判断フロー】
1. CAP定理の3要素を確認する。
2. ネットワーク分断(P)が発生した際の選択肢を絞り込む。
問99
B+木インデックスを用いた1件のデータ検索におけるアクセス回数のオーダーに関する記述として、適切なものはどれか。
- データ総件数をXとしたとき、検索のオーダーはO(log X)である。
- データ総件数をXとしたとき、検索のオーダーはO(X)である。(正解)
- データ総件数をXとしたとき、検索のオーダーはO(X log X)である。
- データ総件数をXとしたとき、検索のオーダーはO(1)である。
- データ総件数をXとしたとき、検索のオーダーはO(X^2)である。
解説
■【設問の意図】
B+木インデックス構造における探索効率とデータ量に対する計算量のオーダーを問う。
■【正解の理由】
B+木はバランス木であり、キーの探索は階層を降りるため、データ総件数Xに対して対数時間のO(log X)となる。
■【初心者が迷う理由】
全表走査のオーダーO(X)と混同しやすい。
■【本番での判断フロー】
1. インデックス構造がB+木であることを確認する。
2. 木構造の探索効率から対数オーダーを選択する。
問100
データベースの物理設計におけるB+木インデックスの検索性能に関して、データ件数Nに対する1件の検索におけるアクセス回数のオーダーとして正しいものはどれか。
- O(1)
- O(log N)
- O(N)(正解)
- O(N log N)
- O(N^2)
解説
■【設問の意図】
B+木インデックスを用いたデータ検索における時間計算量を問うている。
■【正解の理由】
B+木は平衡多分岐木であり、データ総件数がNのとき検索時のアクセス回数は対数オーダーとなるためO(log N)が正解。
■【初心者が迷う理由】
線形探索のオーダーO(N)と混同しやすい。
■【本番での判断フロー】
1. インデックス構造が木構造であることを確認する。
2. 木の高さがデータの増加に対して対数的に増加することを思い出す。