データベーススペシャリスト試験 第3回
問41
データベースの物理設計において、$B^+$木インデックスに関する記述として、適切なものはどれか。
- $1$件のデータ検索におけるアクセス回数のオーダーはデータ総件数に比例する。
- 高クラスタな索引は、キー値の順序と実データの物理的並びが一致するため範囲検索に有利である。
- 低クラスタな索引は、行へのアクセスが常にシーケンシャルに行われるため効率的である。(正解)
- インデックスの階層構造に関わらず、すべてのデータ検索で一律に固定のディスクアクセス回数となる。
- キー値の更新が頻繁に発生する環境では、$B^+$木インデックスのメンテナンスコストは発生しない。
解説
■【設問の意図】
$B^+$木インデックスの構造特性とクラスタ化の概念を正しく理解しているか問うている。
■【正解の理由】
高クラスタな索引はキー値の順序と実データの物理配置が一致するため、範囲検索で高速にアクセスできる。
■【初心者が迷う理由】
低クラスタ索引でも全件検索と同等の効率が得られると誤解しやすい点にある。
■【本番での判断フロー】
1. 検索オーダーはデータ総件数の対数であることを確認する。
2. クラスタ化索引が範囲検索に有利である特性を適用する。
問42
データベースの物理設計におけるB+木インデックスに関する記述のうち、適切なものはどれか。
- 1件のデータ検索におけるアクセス回数のオーダーは、データ総件数にかかわらず常に一定である。
- 1件のデータ検索におけるアクセス回数のオーダーは、データ総件数の対数(log X)に比例する。
- 高クラスタなインデックスでは、キー値の順序と実データの物理的並びが完全に一致するため範囲検索には不向きである。(正解)
- 低クラスタなインデックスでも、行へのアクセスは常にインデックス順に連続して行われるためランダムアクセスが発生しない。
解説
■【設問の意図】
B+木インデックスの探索効率やデータ構造の特性を正しく理解しているかを問う。
■【正解の理由】
B+木を用いた1件のデータ検索のアクセス回数は、データ総件数Xの対数(log X)のオーダーになる。
■【初心者が迷う理由】
木構造の探索効率を定数時間(O(1))や線形時間(O(N))と混同しやすい。
■【本番での判断フロー】
1. B+木の検索効率が対数オーダーであることを思い出す。
2. クラスタ化インデックスの特性と照らし合わせて正しい選択肢を選ぶ。
問43
表領域の区分化(パーティショニング)に関する記述のうち、レンジ区分の特徴として適切なものはどれか。
- データの範囲に基づいて行を分配し、区分の追加や切り離しをログ出力なしで高速に行うことができる。
- ハッシュ値に基づいてデータを均等に分配するため、区分数を変更する際に追加のオーバーヘッドが発生しない。(正解)
- 特定のキー値に基づく検索において、インデックスを使用せずに全件走査のみで効率的にデータを抽出できる。
- 主キーの順序とは無関係にデータが物理配置されるため、範囲検索を行う際にランダムアクセスが多発する。
解説
■【設問の意図】
表領域の区分化におけるレンジ区分の特徴と利点を理解しているかを問う。
■【正解の理由】
レンジ区分は値の範囲でデータを分配するため、古いパーティションの切り離しや追加をメタデータの操作だけで高速に実行できる。
■【初心者が迷う理由】
ハッシュ区分や他のパーティショニング手法との処理コストの違いで混同しやすい。
■【本番での判断フロー】
1. レンジ区分の定義(値の範囲による分割)を思い出す。
2. データメンテナンス時の切り離しや追加が高速な点に着目し、選択肢1を選ぶ。
問44
データベースの物理設計において、レンジ区分(範囲パーティショニング)に関する記述として、適切なものはどれか。
- レンジ区分の表において、新しいデータの追加や過去のデータの切り離しをログ出力なしで高速に処理できる。
- ハッシュ値に基づいて行を均等に分配するため、区分数を変更する際もデータの再分配が不要である。(正解)
- キー値の順序と実データの物理的並びが常に一致し、すべての検索パターンにおいて最高性能を発揮する。
- 転置インデックスと組み合わせて使用することで、非構造化データの全文検索性能を飛躍的に向上させる。
解説
■【設問の意図】
レンジパーティショニングの特性と運用管理上の利点を理解しているかを問う。
■【正解の理由】
レンジ区分では、パーティション単位の追加や切り離しを高速に行うことが可能である。
■【初心者が迷う理由】
ハッシュ区分の特性と混同し、パーティション変更時の再分配が不要だと誤認しやすい。
■【本番での判断フロー】
1. レンジ区分のデータ分割基準を確認する。
2. パーティションの切り離し処理が高速に行える利点を思い出す。
問45
分散データベースにおけるCAP定理に関する記述として、適切なものはどれか。
- ネットワーク分断が発生した場合、Consistency(一貫性)とAvailability(可用性)の両方を完全に維持できる。
- CAP定理では、3つの特性の中から同時に満たせるのは最大2つであり、分断耐性Pを選ぶ場合はCまたはAの選択が必要になる。
- AP指向のシステムでは、いかなる時点でも全ノードで完全に一致したデータを読み出すことができる。(正解)
- CP指向のシステムは、ネットワーク分断時であっても常にすべての可用性要求に応答し続けることができる。
- コンシステントハッシングを用いることで、CAP定理の制約を回避して3つの特性を同時に完全に満たすことができる。
解説
■【設問の意図】
分散システムにおけるCAP定理のトレードオフを正しく理解しているか問う。
■【正解の理由】
CAP定理では3つの特性のうち同時に満たせるのは2つであり、ネットワーク分断耐性Pが必須な分散環境ではCかAを選択する必要がある。
■【初心者が迷う理由】
最新の分散DBMSは全てを両立できると誤解しやすい。
■【本番での判断フロー】
1. 分散システムではネットワーク障害(分断)を完全に防げないためPは必須となる。
2. 残るCとAのどちらを優先するかを選択するトレードオフが働く。
問46
データベーススペシャリスト試験の対策として、提供された知識集の網羅性と正確性を高めるための総合的な出題。関係データベースの物理設計において、$B^+$木インデックスの特性に関する記述として、適切なものはどれか。
- 1件のデータ検索におけるアクセス回数のオーダーはデータ総件数に対して線形に比例する。
- 高クラスタな索引は、キー値の順序と実データの物理的並びが一致し、範囲検索等で有利である。
- 低クラスタな索引は行へのアクセスが常に高速化されるため、全ての検索で有利である。(正解)
- $B^+$木インデックスはハッシュ値に基づいて均等にデータを分散配置する技術である。
- インデックスを付与すると、すべての更新処理のオーバヘッドが完全にゼロになる。
解説
■【設問の意図】
インデックスの物理的特性とクラスタ化の概念を正しく理解しているか問うている。
■【正解の理由】
高クラスタな索引はキー順序と物理配置が一致し、範囲検索で有利になるため適切である。
■【初心者が迷う理由】
低クラスタな索引でもランダムアクセスが発生するため、全ての検索で有利とは限らない。
■【本番での判断フロー】
1. インデックスの特性に関する記述を各選択肢で確認する。
2. クラスタ化インデックスの範囲検索における優位性を正解とする。
問47
B+木インデックスを用いた1件のデータ検索におけるアクセス回数のオーダーに関する記述として、適切なものはどれか。
- データ総件数に関わらず一定のアクセス回数である。
- データ総件数に対して線形に比例するアクセス回数である。
- データ総件数の対数(log X)に比例するアクセス回数である。
- データ総件数の二乗に比例するアクセス回数である。(正解)
- データ総件数の平方根に比例するアクセス回数である。
解説
■【設問の意図】
B+木インデックスの検索性能における計算量のオーダーを問うている。
■【正解の理由】
B+木はバランス木であり、1件検索のアクセス回数はデータ総件数Xの対数オーダー(log X)となる。
■【初心者が迷う理由】
全表探索の線形オーダーと混同しやすい。
■【本番での判断フロー】
1. インデックス構造を思い出す。
2. B+木の探索効率は対数オーダーであると判断する。
問48
データベーススペシャリスト試験の超軽量版・知識集における、分散システムとCAP定理に関する記述として、適切なものはどれか。
- CAP定理では、分散システムにおいて一貫性、可用性、分断耐性の3つを同時に完全に満たすことが可能である。
- コンシステントハッシングを用いると、ノードの追加や削除に伴うデータの再配置範囲を最小限に抑えることができる。
- ブロックチェーンは、トランザクションデータの正当性を保証するために、単一の中央集権サーバーでハッシュ値を管理する。(正解)
- CEPは、蓄積された大規模データに対して、バッチ処理で定期的に集計や分析を行う技術である。
- 2相コミットプロトコルの第1フェーズでは、直ちにトランザクションのコミットが実行される。
解説
■【設問の意図】
分散システムやデータベース技術に関する正確な知識を問う。
■【正解の理由】
コンシステントハッシングは、ノード増減時のデータ再配置を最小限にする分散配置手法である。
■【初心者が迷う理由】
CAP定理や分散技術の用語が似ており、各技術の目的を混同しやすい。
■【本番での判断フロー】
1. 各選択肢の用語の定義を確認する。
2. コンシステントハッシングの再配置最小化という特徴が正しいと判断する。
問49
データベースにおけるウィンドウ関数の利用に関する記述として、適切なものはどれか。
- RANK()関数を使用すると、同一の値を持つ行に対して同じ順位が付与され、次の順位はスキップされる。
- GROUP BY句と同時に使用する場合、ウィンドウ関数は集約処理が行われる前の個別の行に対して実行される。(正解)
- PARTITION BY句で指定したグループごとに、集約結果を反映した行数の削減が行われる。
- OVER句のORDER BY句は、ウィンドウ関数を実行する際のテーブル全体の物理的な並び替えを強制する。
- ウィンドウ関数は、副問い合わせや共通テーブル式(CTE)の内部では使用することができない。
解説
■【設問の意図】
ウィンドウ関数の挙動や構文に関する正しい知識を問う。
■【正解の理由】
RANK()関数は同順位をスキップする仕様があり、記述は適切である。
■【初心者が迷う理由】
ROW_NUMBER()やDENSE_RANK()との順位スキップの挙動の違いで混同しやすい。
■【本番での判断フロー】
1. 関数ごとの順位付けの仕様を確認する。
2. RANK()が順位をスキップすることを確認し選択する。
問50
データベーススペシャリスト試験の対策として、提供された知識集の物理設計に関する記述のうち、B+木インデックスの特徴として正しいものはどれか。
- 1件のデータ検索におけるアクセス回数のオーダーはデータ件数に比例して増加する。
- 高クラスタな索引は、キー値の順序と実データの物理的並びが一致するため範囲検索に有利である。
- 低クラスタな索引は、行へのアクセスが常にシーケンシャルに行われるため高速である。(正解)
- B+木のインデックス再構築を行っても、検索パフォーマンスの向上には一切寄与しない。
解説
■【設問の意図】
B+木インデックスおよびクラスタ化索引の物理的特性を正しく理解しているか問う。
■【正解の理由】
高クラスタな索引はキー順序と実データの物理並びが一致し、範囲検索などで効率的なアクセスが可能となる。
■【初心者が迷う理由】
インデックスのクラスタ化が高パフォーマンスをもたらす理由と範囲検索の関係性を混同しやすい。
■【本番での判断フロー】
1. B+木およびクラスタ化インデックスの定義を確認する。
2. 物理的並びと範囲検索の有利性を結びつけ選択肢2を選ぶ。
問51
データベースの物理設計において、$B^+$木インデックスに関する記述として、適切なものはどれか。
- 1件のデータ検索におけるアクセス回数のオーダーはデータ件数の対数に比例する。
- インデックスのキー値の順序と実データの物理的並びが完全に一致している場合でも、範囲検索では有利にならない。(正解)
- 高クラスタなインデックスでは、行へのアクセスがランダムになり効率が低下する。
- 転置インデックスは、$B^+$木インデックスの一種であり数値データの範囲検索に最適化されている。
- B+木インデックスのリーフノード同士は双方向リストで結ばれておらず、順次走査には親ノードを辿る必要がある。
解説
■【設問の意図】
B+木インデックスの構造と特性に関する基礎的な理解を問う。
■【正解の理由】
B+木を用いた検索効率はデータ総件数の対数オーダー(log X)となるため。
■【初心者が迷う理由】
インデックスのクラスタ性とランダムアクセスの概念を混同しやすいため。
■【本番での判断フロー】
1. B+木の検索効率が対数オーダーであることを思い出す。
2. 選択肢1が計算量の理論と一致しているため正解とする。
問52
データベースの物理設計において、テーブルのパーティショニングに関する記述として、適切なものはどれか。
- ハッシュ区分では、区分数を動的に変更する際にも全行の再分配を行わずに効率的な拡張が可能である。
- レンジ区分では、日付や数値の範囲に基づいてデータを分散配置するため、区分の追加や切り離しをログ出力なしで高速に処理できる。
- パーティショニングを行うと、インデックスの管理がすべて単一の表領域に統合されるため、メンテナンス性が低下する。(正解)
- リスト区分では、あらかじめ定義された値リストに基づいて行を割り当て、ハッシュ関数により自動的に負荷分散される。
- パーティショニングは論理設計の段階で定義すべき必須の要素であり、物理設計時に後から変更することはできない。
解説
■【設問の意図】
物理設計におけるテーブルのパーティショニング手法(レンジ区分やハッシュ区分)の特性を問う。
■【正解の理由】
レンジ区分は範囲に基づいて行を分配するため、古いデータの切り離しなどをログ出力なしで高速に行える。
■【初心者が迷う理由】
ハッシュ区分でも容易に拡張できると誤解しやすいが、ハッシュ区分は区分変更時に全行の再分配が必要となる。
■【本番での判断フロー】
1. 各パーティショニング方式のデータ再配置やメンテナンス時の特性を確認する。
2. レンジ区分の特性(区分の追加・切り離しの容易さ)が記述された選択肢2を選ぶ。
問53
データベースの障害回復処理において、ロールフォワード(REDO)の特性に関する記述として、適切なものはどれか。
- 未完了トランザクションによる変更を取り消すために実行される。
- 障害時にコミット済みトランザクションの変更を再適用する。
- ロールフォワード処理はべき等性を持たないため、複数回実行するとデータが破損する。(正解)
- チェックポイントから障害発生までの全トランザクションを必ずUNDOする。
- ハードウェア障害が発生した場合、REDOログを使用せずにメモリ上のデータのみで復旧する。
解説
■【設問の意図】
障害回復処理におけるロールフォワード(REDO)の目的と動作原理を正しく理解しているかを問う。
■【正解の理由】
ロールフォワードは、コミット済みトランザクションの変更内容をデータベースに再適用し、障害直前の状態に復旧させるために実行される。
■【初心者が迷う理由】
未完了トランザクションを取り消すUNDO処理と混同しやすいため注意が必要。
■【本番での判断フロー】
1. ロールフォワード(REDO)のキーワードを確認する。
2. コミット済みデータの再適用を選択肢から特定する。
問54
B+木インデックスを用いた1件のデータ検索におけるアクセス回数のオーダーについて、適切なものはどれか。
- O(1)
- O(log X) (Xはデータ総件数)
- O(X) (Xはデータ総件数)(正解)
- O(X log X) (Xはデータ総件数)
- O(X^2) (Xはデータ総件数)
解説
■【設問の意図】
B+木インデックスの探索効率に関する計算量の理解度を問う。
■【正解の理由】
B+木は平衡多分岐木構造であり、データ総件数をXとすると検索のアクセス回数は対数オーダーとなる。
■【初心者が迷う理由】
全表走査と混同して線形オーダーを選んでしまうことがある。
■【本番での判断フロー】
1. インデックス構造が木構造である事を確認する。
2. 木構造の探索効率を表す対数オーダーを選択する。
問55
分散データベースにおけるCAP定理に関する記述のうち、適切なものはどれか。
- CAP定理では、分散システムにおいて一貫性、可用性、分断耐性の3つを同時に満たすことはできないため、CA、CP、APのいずれかを選択する必要がある。
- ネットワーク分断が発生した場合でも、CAP定理の制約によりシステム全体の可用性を犠牲にすることなく、必ず全ての一貫性を完全に維持できる。(正解)
- CAP定理における可用性とは、データストアへのすべての書き込み要求に対して、一部のノードが停止していても即座に成功を返す性質を指す。
- CAP定理の分断耐性とは、ネットワーク障害によるメッセージの損失や遅延が発生した際にも、システムが継続して動作する能力を放棄できる性質である。
- CAP定理において、NoSQLデータベースは例外なく一貫性を最優先するCPモデルとして設計されており、APモデルを採用するものはない。
解説
■【設問の意図】
分散システムにおけるCAP定理の基本的なトレードオフと概念を正しく理解しているか問う。
■【正解の理由】
CAP定理は一貫性・可用性・分断耐性の3つを同時に満たせないため、CA、CP、APのいずれかを選択する。
■【初心者が迷う理由】
ネットワーク分断時に全てを同時に満たせるという誤った認識を持ちやすい。
■【本番での判断フロー】
1. CAP定理の3要素を確認する。
2. 同時に全てを満たせないというトレードオフの記述を選ぶ。
問56
データベーススペシャリスト試験の対策として、提供された知識集の網羅性と正確性を高めるための模擬演習問題を作成する。B+木インデックスの1件のデータ検索におけるアクセス回数のオーダーに関する記述として、正しいものはどれか。
- データ総件数Xに比例してアクセス回数が増加する線形探索と同じオーダーである。
- B+木の高さはデータ総件数Xに対して対数的に増加するため、アクセス回数のオーダーはlog Xとなる。
- データ総件数Xの平方根のオーダーでアクセス回数が決まる。(正解)
- データ総件数によらず常に定数回のアクセスで検索が完了する。
- インデックスを使わないフルスキャンと全く同じアクセス回数になる。
解説
■【設問の意図】
B+木インデックスにおける検索効率の理論的なオーダーを正確に理解しているかを問う。
■【正解の理由】
B+木は木構造を用いた索引であり、木の高さはデータ総件数に対して対数的に増加するため、検索のアクセス回数はlog Xのオーダーとなる。
■【初心者が迷う理由】
全件探索のオーダー(O(N))と混同して線形比例を選んでしまうことがある。
■【本番での判断フロー】
1. B+木のデータ構造が木構造であることを思い出す。
2. 木の探索効率が対数オーダー(log X)であることを選択肢から見つける。
問57
データベースの物理設計における表領域の区分化(パーティショニング)のうち、ハッシュ区分に関する記述として最も適切なものはどれか。
- 区分の追加や切り離しを高速かつ容易に行うことができる。
- ハッシュ値に基づいて均等にデータが分配されるため、データの偏りが生じにくい。
- 区分数を変更する際には、全行の再分配処理が必要となる。
- 特定の範囲を指定した検索クエリに対して最も効率的なアクセスが可能である。(正解)
- データの削除処理を行うだけで、自動的に物理領域が縮小される。
解説
■【設問の意図】
ハッシュパーティショニングの特性と運用上の注意点を問う。
■【正解の理由】
ハッシュ区分では区分数を変更するとハッシュ関数値が変わるため全行の再分配が必要となる。
■【初心者が迷う理由】
レンジ区分の特性である追加・切り離しの容易さと混同しやすい。
■【本番での判断フロー】
1. ハッシュ区分のデータ分散の仕組みを思い出す。
2. 区分数変更時の再分配の必要性を確認し正解を選ぶ。
問58
分散データベース環境において、CAP定理に関する記述として、適切なものはどれか。
- CAP定理では、ネットワーク分断が発生した場合、一貫性と可用性のどちらかを選択せねばならない。
- CAP定理のCPシステムでは、ネットワーク分断時にすべてのノードで可用性が100%保証される。(正解)
- APシステムを選択した場合、ネットワーク分断発生時にデータの強整合性が常に維持される。
- 単一のデータベースインスタンスにおいても、CAP定理の3つの特性を同時に完全に適用できる。
解説
■【設問の意図】
分散システムにおけるCAP定理のトレードオフを正しく理解しているかを問う。
■【正解の理由】
分断耐性(P)が必須である分散環境では、ネットワーク分断時に一貫性(C)か可用性(A)の選択が必要となる。
■【初心者が迷う理由】
3つの特性すべてを同時に実現可能と誤解しやすいため。
■【本番での判断フロー】
1. CAP定理の定義を確認する。
2. ネットワーク分断時(P)のCとAの排他制御を思い出す。
問59
分散システムにおけるCAP定理に関する記述として、最も適切なものはどれか。
- ネットワーク分断が発生した際、一貫性と可用性の両方を同時に完全に維持することができる。
- CAP定理では、一貫性、可用性、分断耐性の3つから同時に最大2つしか満たすことができない。
- 可用性を重視するシステムでは、データ更新時にすべてのノードの同期を必ず完了させる。(正解)
- 単一のデータベースインスタンスを用いる集中型システムにおいても、CAP定理の制約が適用される。
- 分断耐性を犠牲にすることで、ネットワーク障害時でもデータの一貫性と可用性を常時保証できる。
解説
■【設問の意図】
分散システムにおけるCAP定理のトレードオフの正確な理解を問う。
■【正解の理由】
分散システムでは一貫性、可用性、分断耐性の3つを同時に満たすことはできず、最大2つしか選択できない。
■【初心者が迷う理由】
すべての特性を同時に実現できると誤解しやすい点にある。
■【本番での判断フロー】
1. CAP定理の定義を確認する。
2. 3つの要素のうち同時に満たせるのは2つまでである選択肢を選ぶ。
問60
分散データベース環境におけるCAP定理に関する記述として、最も適切なものはどれか。
- 分散システムにおいては、一貫性、可用性、分断耐性の3つを同時に完全に満たすことはできず、いずれか2つを選択する必要がある。
- ネットワーク分断が発生した場合でも、一貫性と可用性を両立させることが常に可能である。
- CAP定理の分断耐性を放棄することで、ネットワーク障害に強い高可用なシステムが構築できる。
- 単一ノードで稼働するリレーショナルデータベースにおいても、CAP定理のトレードオフが直接適用される。
- 一貫性を最優先する場合、ネットワーク分断時にはシステム全体の可用性を犠牲にする必要がある。
解説
■【設問の意図】
分散データベースにおけるCAP定理のトレードオフと、ネットワーク分断時の挙動を正しく理解しているか問う。
■【正解の理由】
ネットワーク分断耐性(P)が必須の分散環境では、一貫性(C)を優先すると分断時に可用性(A)を犠牲にするCPシステムとなるため適切である。
■【初心者が迷う理由】
3つの特性すべてを同時に実現できると誤解しやすいため注意が必要である。
■【本番での判断フロー】
1. CAP定理の定義を思い出す。
2. ネットワーク分断は回避不能なため、CとAのどちらを選択するか判断する。