データベーススペシャリスト試験 第4回
問61
分散システムにおけるCAP定理に関する記述のうち、適切なものはどれか。
- CAP定理では、ネットワーク分断が発生した際に、一貫性と可用性の両方を完全に同時に維持できる。
- CPシステムでは、ネットワーク分断が発生した場合、整合性を優先するために一部のデータアクセスが利用不可になることがある。
- APシステムでは、ネットワーク分断が発生した場合でも、すべてのノード間で厳密なデータの一貫性が常に保証される。(正解)
- リレーショナルデータベースは、いかなる分散環境においても常にCAシステムとして動作する。
- CAP定理の「可用性」とは、データが改ざんされないことを指す。
解説
■【設問の意図】
分散システムにおけるCAP定理の特性とトレードオフの理解度を問う。
■【正解の理由】
CPシステムは分断耐性下で一貫性を優先するため、整合性を保てないノードの可用性を犠牲にする。
■【初心者が迷う理由】
すべての特性を同時に満たせるシステムが存在すると誤解しやすい点にある。
■【本番での判断フロー】
1. CAP定理の3つの要素(C, A, P)を確認する。
2. ネットワーク分断(P)が起きた際、CとAのどちらを選択するかで分類する。
問62
分散データベース環境において、CAP定理に関する記述のうち、適切なものはどれか。
- CAP定理では、一貫性、可用性、分断耐性の3つの特性すべてを同時に満たす分散システムを構築できる。
- ネットワーク分断が発生した場合、システムは一貫性と可用性の両方を完全に維持しつつ動作し続けることができる。
- ネットワーク分断耐性を重視する場合、一貫性と可用性のどちらかを犠牲にして選択する必要がある。
- 可用性と一貫性を優先するシステムでは、ネットワーク分断耐性を考慮する必要がない。(正解)
解説
■【設問の意図】
分散システムにおけるCAP定理のトレードオフを正しく理解しているか問う。
■【正解の理由】
CAP定理より、ネットワーク分断(P)が起きた際、一貫性(C)か可用性(A)のどちらかを選択する必要がある。
■【初心者が迷う理由】
すべての特性を同時に満たせるという誤った認識を持ちやすい点。
■【本番での判断フロー】
1. CAP定理の3要素を確認する。
2. 分断耐性が必須であるため、CとAの二者択一になることを思い出す。
問63
トランザクション管理における2相ロックプロトコル(2PL)に関する記述として、最も適切なものはどれか。
- トランザクションの実行途中で、ロックの獲得と解放を交互に何度も行うことでデッドロックを防止できる。
- 必要なすべてのロックを獲得した後の拡大フェーズと、ロックを解放していく縮小フェーズに分かれる。
- ロックの解放は、トランザクションが終了する直前ではなく、処理の途中で順次行う必要がある。(正解)
- 2相ロックプロトコルを適用しても、データベースの直列化可能性を保証することはできない。
解説
■【設問の意図】
2相ロックプロトコル(2PL)の基本動作と直列化可能性の保証に関する理解を問う。
■【正解の理由】
2PLはロックを獲得する拡大フェーズと、解放する縮小フェーズに分けることで直列化可能性を保証する。
■【初心者が迷う理由】
交互にロック操作を行うことでデッドロックを防げると誤解しやすい。
■【本番での判断フロー】
1. 2PLの名称にある2つのフェーズ(拡大と縮小)を確認する。
2. 直列化可能性が保証される特徴と合致する選択肢を選ぶ。
問64
データベーススペシャリスト試験における物理設計に関する記述のうち、適切なものはどれか。
- ハッシュ区分された表の区分数を変更する場合、全行の再分配が必要となるためオーバーヘッドが大きい。
- レンジ区分された表の区分を追加・切り離しする場合、すべてのデータの再配置が必要となる。(正解)
- B+木インデックスは、範囲検索において全表スキャンよりも必ず性能が低下する。
- 転置インデックスは、数値データの範囲比較検索を高速化するために最も適した構造である。
- 低クラスタなインデックスは、キー値の順序と実データの物理的並びが完全に一致している。
解説
■【設問の意図】
物理設計におけるパーティショニングやインデックスの特性に関する理解を問う。
■【正解の理由】
ハッシュ区分はハッシュ値で均等分散するため、区分数変更時は全行の再分配が必要である。
■【初心者が迷う理由】
パーティション操作は一律で容易に行えると誤解しやすい点にある。
■【本番での判断フロー】
1. パーティショニングの種類ごとの特性を思い出す。
2. ハッシュ区分は区分数変更時に再分配が必要であるため正しいと判断する。
問65
リレーショナルデータベースの正規化に関する記述のうち、ボイス・コッド正規形(BCNF)の定義として適切なものはどれか。
- すべての非主キー属性が候補キーに対して完全関数従属している。
- 第2正規形であり、非主キー属性間の推移的関数従属が存在しない。
- すべての関数従属X→Yにおいて、Xがスーパーキーである。
- すべての属性が単一値(原子値)をとり、繰り返しグループが存在しない。(正解)
- 外部キー制約がすべての参照関係において正しく定義されている。
解説
■【設問の意図】
関係データベースの正規化理論におけるボイス・コッド正規形(BCNF)の定義を問う。
■【正解の理由】
BCNFは、すべての関数従属X→Yにおいて決定因子Xがスーパーキーである関係を指す。
■【初心者が迷う理由】
第3正規形や第2正規形の定義と混同しやすい。
■【本番での判断フロー】
1. ボイス・コッド正規形のキーワード「決定因子がスーパーキー」を確認する。
2. 該当する選択肢3を選ぶ。
問66
データベースの物理設計において、レンジ区分(範囲パーティショニング)を採用する主な利点に関する記述として、適切なものはどれか。
- 区分の追加や切り離しが、ログ出力なしで高速に行えるため、履歴データの管理に適している。
- ハッシュ関数を用いてデータが均等に分散されるため、特定のパーティションへのアクセス集中を防げる。(正解)
- パーティション数を変更する際、既存の全行データに対して自動的な再分配が最小限の負荷で行われる。
- 結合処理において、異なる表間でのパーティション同士の対応付けが不要になり、すべての結合が高速化する。
- インデックスの構造がB+木からハッシュ構造に自動変換され、範囲検索のパフォーマンスが飛躍的に向上する。
解説
■【設問の意図】
表領域の区分化におけるレンジ区分の特性と利点を正確に理解しているかを問う。
■【正解の理由】
レンジ区分は範囲に基づいて行を分配するため、古いデータの追加や切り離しを高速かつ容易に行える。
■【初心者が迷う理由】
データ分散の均等性を高めるハッシュ区分の特性と混同しやすい。
■【本番での判断フロー】
1. レンジ区分の定義とデータ管理の仕組みを思い出す。
2. 「追加・切り離しが容易」というキーワードが含まれる選択肢を選択する。
問67
データベースの物理設計において、B+木インデックスの特徴に関する記述として、適切なものはどれか。
- インデックスを用いた1件のデータ検索におけるアクセス回数のオーダーはデータ総件数に対して線形に比例する。
- 高クラスタな索引では、キー値の順序と実データの物理的並びが一致するため、範囲検索等で有利になる。
- 低クラスタな索引では、行へのアクセスが常にシーケンシャルに行われるため、ランダムI/Oが発生しない。(正解)
- B+木のリーフノード同士はポインタで結ばれておらず、レンジスキャンを行う場合は毎回ルートから探索し直す。
- インデックスの階層構造の深さは、データ挿入や削除に関わらず常に一定であり、再構築が必要ない。
解説
■【設問の意図】
B+木インデックスの構造特性やクラスタ化の仕組みに関する正確な理解を問う。
■【正解の理由】
高クラスタな索引は物理的な並びがキー順と一致するため、範囲検索時に効率的なアクセスが可能となる。
■【初心者が迷う理由】
低クラスタな索引でも範囲検索が高速に行えると誤解しやすい。
■【本番での判断フロー】
1. B+木の検索オーダーやリーフノードの構造を確認する。
2. クラスタ化インデックスが範囲検索に与える影響を評価して正解を選択する。
問68
分散データベース環境において、CAP定理のトレードオフに関する記述として、適切なものはどれか。
- ネットワーク分断が発生した場合、すべてのシステムで一貫性と可用性を同時に維持し続けることができる。
- CPシステムでは、ネットワーク分断が発生した際に可用性を犠牲にしてデータの一貫性を優先する。
- APシステムでは、ネットワーク分断が発生した際にデータの一貫性を優先して古いデータを返すことを拒否する。(正解)
- CAP定理の3つの特性は、ネットワーク分断の有無に関わらず常にどれか1つを完全に放棄しなければならない。
- データベースの性能向上を目的として、一貫性と可用性を完全に両立させつつ分断耐性を排除できる。
解説
■【設問の意図】
分散システムにおけるCAP定理のトレードオフを正確に理解しているかを問う。
■【正解の理由】
CPシステムはネットワーク分断時に可用性を犠牲にし、データの一貫性を死守する設計をとる。
■【初心者が迷う理由】
すべての特性を同時に満たせるシステムが存在すると誤解しやすい。
■【本番での判断フロー】
1. CAP定理はネットワーク分断(P)が起きた際にCかAの選択を迫るものと認識する。
2. CPシステムは一貫性を優先するため、選択肢2が適切であると判断する。
問69
分散データベース環境において、CAP定理に関する記述として、適切なものはどれか。
- CAP定理では、データ整合性と可用性を常に両立できる。
- ネットワーク分断が発生した場合、整合性と可用性のどちらかを優先する必要がある。
- 可用性を完全に放棄すれば、ネットワーク分断耐性を失ってもシステムは稼働し続ける。(正解)
- 単一障害点を持たないシステムでは、CAPの3つの特性を同時に満たすことができる。
解説
■【設問の意図】
分散システムの限界を示すCAP定理のトレードオフを正しく理解しているか問う。
■【正解の理由】
分散システムではネットワーク分断が不可避であり、発生時は一貫性か可用性の選択が必須となる。
■【初心者が迷う理由】
最新のクラウド技術ですべての特性を同時に満たせるという誤解が生じやすい。
■【本番での判断フロー】
1. 分散システムにおけるCAPの3特性を確認する。
2. ネットワーク分断(P)が起きた際の排他選択(CまたはA)を選ぶ。
問70
データベースの物理設計におけるB+木インデックスの特徴に関する記述のうち、適切なものはどれか。
- 1件のデータ検索におけるアクセス回数のオーダーは、データ総件数に対して線形比例する。
- 高クラスタな索引は、キー値の順序と実データの物理的並びが一致するため範囲検索に有利である。
- 低クラスタな索引では、実データへのアクセスが全てシーケンシャルアクセスとなり効率的である。(正解)
- B+木インデックスの内部ノードには、実データへの直接的な物理アドレスが格納される。
解説
■【設問の意図】
B+木インデックスの構造特性とクラスタ化索引が検索性能に与える影響を問う。
■【正解の理由】
高クラスタな索引はキー順と物理配置が一致するため、範囲検索で効率的なアクセスが可能となる。
■【初心者が迷う理由】
低クラスタ索引でもランダムアクセスが発生することを忘れて効率的と誤認しやすい。
■【本番での判断フロー】
1. 検索オーダーが対数であることを確認する。
2. クラスタ化索引が範囲検索に有利である特徴を照合する。
問71
データベースの物理設計において、レンジ区分(範囲パーティショニング)を採用するメリットとして、最も適切なものはどれか。
- 区分の追加や切り離しを、ログ出力を伴わず高速に処理できる。
- ハッシュ値に基づいて均等に分配されるため、区分数の変更が容易である。(正解)
- キー値の順序と実データの物理的並びが不一致でも範囲検索が高速化する。
- すべての行が自動的に均等なサイズに再分配され、データ偏りがなくなる。
- トランザクションの分離レベルに関わらず、デッドロックが完全に回避される。
解説
■【設問の意図】
レンジパーティショニングの特性と運用上のメリットを問う。
■【正解の理由】
レンジ区分では範囲ごとのデータ管理ができるため、区分の追加や切り離しを高速に行える。
■【初心者が迷う理由】
ハッシュ区分と混同し、自動的な再分配やデータ均等化ができると誤解しやすい。
■【本番での判断フロー】
1. レンジ区分の定義と主な特徴を確認する。
2. データ管理単位での追加・切り離しの容易さが正解となる。
問72
リレーショナルデータベースにおけるボイス・コッド正規形(BCNF)に関する記述として、最も適切なものはどれか。
- すべての関数従属性X→Yにおいて、Xがスーパーキーである必要がある。
- 第3正規形を満たしていれば、関数従属性保存が常に成り立つ。(正解)
- 非主キー属性間の推移的関数従属が存在しない状態を指す。
- 候補キーの一部に部分関数従属する非主キー属性が存在しない状態である。
- すべての属性が原子値(単一値)をとる最も基本的な正規形である。
解説
■【設問の意図】
関係データベースの正規化理論におけるボイス・コッド正規形(BCNF)の定義を問うています。
■【正解の理由】
BCNFの定義は、すべての関数従属性X→Yにおいて、決定因子のXが必ずスーパーキーであることです。
■【初心者が迷う理由】
第3正規形や第2正規形の定義と混同しやすいため注意が必要です。
■【本番での判断フロー】
1. ボイス・コッド正規形のキーワード「決定因子がスーパーキー」を確認する。
2. 該当する選択肢1を選択する。
問73
データベーススペシャリスト試験における物理設計に関する記述のうち、適切なものはどれか。
- ハッシュ区分された表領域において、区分数を変更する際には全行の再分配が必要となる。
- B+木インデックスを用いた1件のデータ検索において、アクセス回数のオーダーはデータ総件数に比例する。(正解)
- 低クラスタなインデックスは、キー値の順序と実データの物理的並びが一致するため範囲検索に有利である。
- レンジ区分された表領域では、区分の追加や切り離しを行う際にログ出力が発生するため時間がかかる。
- 転置インデックスは、テキスト内の単語ではなく各文書のメタデータのみを格納する構造である。
解説
■【設問の意図】
物理設計におけるインデックスやパーティショニングの特性を正しく理解しているかを問う。
■【正解の理由】
ハッシュ区分はハッシュ値に基づいてデータを均等に分配するため、区分数を変更すると全行の再分配が発生する。
■【初心者が迷う理由】
パーティショニングの種類ごとのメンテナンス性や処理特性を混同しやすい。
■【本番での判断フロー】
1. 各選択肢の物理設計技術の定義を確認する。
2. ハッシュ区分の変更時に再分配が必要という記述が正しいことを判定する。
問74
分散システムにおけるCAP定理に関する記述のうち、適切なものはどれか。
- ネットワーク分断が発生した際、一貫性と可用性の双方を同時に完全に満たし続けることができる。
- CAP定理では、一貫性、可用性、分断耐性の3つの特性のうち、同時に満たせるのはいずれか2つまでである。
- 可用性を重視するシステムでは、データの一貫性をリアルタイムで完全に保証することが必須となる。(正解)
- 分断耐性を犠牲にすることで、ネットワーク障害時でも単一障害点のない高可用なシステムを実現できる。
解説
■【設問の意図】
分散データベースにおけるCAP定理のトレードオフの概念を正しく理解しているか問う。
■【正解の理由】
CAP定理では、Consistency、Availability、Partition toleranceのうち、同時に満たせるのは2つまでとされる。
■【初心者が迷う理由】
ネットワーク分断時にすべての特性を同時に維持できると誤解しやすい点にある。
■【本番での判断フロー】
1. CAP定理の定義を思い出す。
2. 3つのうち同時に満たせるのは2つまでの選択肢を選ぶ。
問75
データベースの物理設計において、レンジ区分(範囲パーティショニング)を採用するメリットとして最も適切なものはどれか。
- ハッシュ関数を用いた均等な行分配により、特定のパーティションへのアクセス集中を完全に防ぐことができる。
- パーティションキーの範囲に基づいてデータを分割するため、古いデータの削除やパーティションの追加・切り離しを高速に行うことができる。
- パーティション数を後から変更する際、全行の再分配処理が高速に行われ、システム停止時間を最小化できる。(正解)
- テーブル内のすべての検索クエリにおいて、インデックスを使用せずに全パーティションをスキャンする方が高速になる。
- 複数テーブル間の結合処理において、パーティション化されていないテーブルとの結合が自動的に最適化される。
解説
■【設問の意図】
レンジパーティショニングの特徴と運用上のメリットを問う。
■【正解の理由】
レンジ区分では範囲ごとに物理ファイルが分かれるため、不要になった古いデータの削除などをログ出力なしで高速に処理できる。
■【初心者が迷う理由】
ハッシュ区分と混同し、データ均等分散のメリットを選んでしまうことがある。
■【本番での判断フロー】
1. レンジ区分は日付などの範囲で分割するものと認識する。
2. 古いデータの切り離しなどが高速に行える利点に合致する選択肢を選ぶ。
問76
データベースの障害回復処理において、ロールフォワード(REDO)処理の特徴に関する記述として、最も適切なものはどれか。
- 未完了トランザクションの変更を取り消すために、ログの逆順で処理を行う。
- コミット済みトランザクションの変更を障害時点の状態まで再適用する。
- REDO処理は繰り返し実行するとデータベースの状態が変わり、べき等性は持たない。(正解)
- チェックポイント前に完了したトランザクションに対しても必ずREDO処理を行う。
- データベースの物理的な破損を防ぐために、インデックスのみを再構築する技術である。
解説
■【設問の意図】
障害回復におけるロールフォワード処理の正確な役割と定義を問うている。
■【正解の理由】
ロールフォワードはコミット済みトランザクションの変更を障害時点まで再適用する処理である。
■【初心者が迷う理由】
未完了トランザクションを取り消すロールバック(UNDO)処理と混同しやすい。
■【本番での判断フロー】
1. ロールフォワードは「再適用」であるためコミット済みデータが対象。
2. 選択肢2が定義と完全に一致する。
問77
2相ロックプロトコル (2PL) に関する記述として、適切なものはどれか。
- トランザクションの終了時にのみ、すべてのロックを一度に解放するプロトコルである。
- 必要なすべてのロックを獲得した後は、新たなロックの獲得を行わず、順次ロックを解放していくフェーズに移行する。
- デッドロックの発生を完全に防止することができるプロトコルである。(正解)
- ロックの獲得を行う拡大フェーズと、ロックの解放を行う縮小フェーズが混在していてもよい。
- データの読取り専用トランザクションには適用できない。
解説
■【設問の意図】
2相ロックプロトコルの定義と拡大・縮小フェーズの特性を正しく理解しているかを問う。
■【正解の理由】
2PLではロックの獲得のみを行う拡大フェーズの終了後、縮小フェーズに移行して順次ロックを解放する。
■【初心者が迷う理由】
ロックの解放をトランザクション終了時まで一切行わない厳密2PLと混同しやすい。
■【本番での判断フロー】
1. 2PLの基本は拡大フェーズと縮小フェーズの2つに分かれることを確認する。
2. 選択肢2の記述が拡大フェーズ後に縮小フェーズへ移行する挙動と一致するため正解とする。
問78
データベースの物理設計において、テーブルを複数のパーティションに分割する方法に関する記述のうち、適切なものはどれか。
- レンジ区分では、データの範囲に基づいて行が分配され、区分の追加や切り離しを高速に行うことができる。
- ハッシュ区分では、区分数を変更しても既存の全行を再分配する必要はなく、ハッシュ値の計算のみで対応できる。(正解)
- レンジ区分はハッシュ区分と比較して、データの偏りが自然に解消されやすく、均等な分散配置に向いている。
- パーティショニングの適用によって、結合処理やインデックスの検索性能がすべてのケースで必ず向上する。
- ハッシュ区分は特定の範囲に対する範囲検索クエリに対して、最も効率的なデータアクセスを実現できる。
解説
■【設問の意図】
データベースのパーティショニングにおける各方式の特徴と運用上の特性を問う。
■【正解の理由】
レンジ区分はデータの範囲で分割するため、履歴データ等の追加や不要データの切り離しを高速に処理できる。
■【初心者が迷う理由】
ハッシュ区分でも容易に区分数が変更できると誤解しやすい。
■【本番での判断フロー】
1. レンジ区分の特徴である範囲に基づく分配と運用上の利点を確認する。
2. ハッシュ区分の区分変更における再分配の必要性を考慮して正解を選ぶ。
問79
分散データベースシステムにおけるCAP定理に関する記述として、適切なものはどれか。
- ネットワーク分断が発生した場合、可用性と一貫性の両方を同時に完全に維持することができる。
- CAP定理では、一貫性(Consistency)、可用性(Availability)、分断耐性(Partition tolerance)の3つのうち、同時に満たせるのは2つまでである。
- APシステムでは、ネットワーク分断時にもデータの一貫性を最優先するため、システム全体の可用性が犠牲になる。(正解)
- CPシステムでは、書き込み要求に対して常に即座に応答を返すため、データの一貫性が一時的に失われることがある。
解説
■【設問の意図】
分散システムにおけるCAP定理の三つの特性のトレードオフを正確に理解しているかを問う。
■【正解の理由】
CAP定理により、分散システムではC、A、Pの全てを同時に満たすことはできず、選択できるのは2つまでとなる。
■【初心者が迷う理由】
技術の進歩ですべての特性を同時に完全に満たせるようになると誤解しやすい。
■【本番での判断フロー】
1. CAP定理の基本原則を確認する。
2. 「同時に満たせるのは2つまで」の記述を選ぶ。
問80
分散システムにおけるCAP定理に関する記述として、適切なものはどれか。
- ネットワーク分断が発生した場合、Consistency(一貫性)とAvailability(可用性)の両方を完全に維持できる。
- CAP定理では、Consistency(一貫性)、Availability(可用性)、Partition tolerance(分断耐性)の3つから同時に満たせる2つを選択する。
- APシステムでは、ネットワーク分断時にも全てのノードで常に最新のデータが一貫して読み取れる。(正解)
- CPシステムは、ネットワーク分断時に可用性を最優先し、古いデータを返すことを許容する。
- コンシステントハッシングを用いることで、CAP定理の制約を回避して3つの特性を同時に実現できる。
解説
■【設問の意図】
分散システムにおけるCAP定理の基本的なトレードオフの理解を問う。
■【正解の理由】
CAP定理ではC, A, Pの3つの特性のうち同時に満たせる2つを選択する必要があるため。
■【初心者が迷う理由】
システム設計で全ての望ましい特性を同時に実現できると誤解しやすいため。
■【本番での判断フロー】
1. CAP定理の3要素を思い出す。
2. 同時に満たせるのは2つまでである点を確認する。