出題範囲
- 性能/可用性/バックアップ/リカバリ
- 正規化/トランザクション/同時実行制御
- SQL/クエリ最適化
- データベース設計(概念/論理/物理)
- セキュリティ/監査/ガバナンス
- データウェアハウス/BI
- 同時実行制御/分離レベル/MVCC/デッドロック
- SQL最適化/実行計画/索引/ヒント
- セキュリティ(RLS/マスキング/監査)
- DWH/ETL/スター・スノーフレーク
- 概念/論理/物理設計(正規化/BCNF)
- 可用性/レプリケーション/パーティション/DR
例題に挑戦
スキルサートのAIが生成した演習問題のサンプルです。アプリでは毎週新しい問題が追加されます。
例題1
データベースのパーティショニングに関する記述のうち、不適切なものはどれか。
- リストパーティショニングは、都道府県コードなどの不連続な値の集合に基づいてデータを分割する。
- コンポジットパーティショニングは、レンジとハッシュなど、複数の手法を組み合わせて階層的に分割する。
- レンジパーティショニングは、日付などの特定の値の範囲に基づいてデータを分割する。
- ハッシュパーティショニングは、ハッシュ関数を用いてデータを各パーティションに均等に分散させる。
- パーティショニングを行うと、インデックスの再構築時間は必ず長くなる。
解答と解説を見る
正解: パーティショニングを行うと、インデックスの再構築時間は必ず長くなる。
正解は『パーティショニングを行うと、インデックスの再構築時間は必ず長くなる。』です。パーティショニングは大規模なテーブルを物理的に分割して管理する技術です。インデックスをパーティションごとに作成する「ローカルインデックス」を適用すれば、特定のパーティションのみを対象に再構築を行うことができるため、テーブル全体のインデックスを一度に再構築するよりも運用上の所要時間を短縮できる場合があります。したがって、「必ず長くなる」という記述は誤りです。レンジ、ハッシュ、リストなどの手法は、データの特性や検索パターンに合わせて使い分けられます。適切に設計することで、管理の容易性だけでなく、メンテナンスの効率も向上します。
例題2
データベースのレプリケーション方式のうち、非同期レプリケーションの特徴として、適切なものはどれか。
- マスター障害時、スレーブには常に最新のデータが反映されていることが保証される。
- 更新処理のたびに全スレーブへの反映完了を待つため、データの不整合が起きない。
- ネットワーク遅延が発生しても、マスター側の応答性能は同期方式と同等まで低下する。
- 書き込み処理の負荷を全スレーブに分散させ、マスターの負荷を軽減できる。
- マスター側の更新処理は、スレーブ側の更新完了を待たずに終了する。
解答と解説を見る
正解: マスター側の更新処理は、スレーブ側の更新完了を待たずに終了する。
正解は『マスター側の更新処理は、スレーブ側の更新完了を待たずに終了する。』です。非同期レプリケーションは、マスターノードでデータの更新が完了した時点でクライアントに処理完了を返し、その後、バックグラウンド(裏側)でスレーブノードへデータを転送・反映する方式です。このため、マスターの応答性能(スループット)を高く保てるメリットがあり、ネットワーク遅延の影響も受けにくいです。その反面、マスター障害が発生した際、最新の更新内容がまだスレーブに届いていない「レプリケーション遅延」の状態にあると、データが一部消失するリスクがあります。これに対し、同期レプリケーションは全ノードの書き込み完了を確認してから応答するため、整合性は高まりますが性能は低下します。
重要用語
- インデックス (索引)
- データベースの検索性能を向上させるための仕組みです。本の索引のように、特定の列の値とそのデータが格納されている場所を対応付けて管理します。適切に設定することで、大量のデータから目的のレコードを高速に抽出できますが、データの更新(INSERTやUPDATE)時にはインデックス自体の更新負荷がかかるため、設定には参照頻度と更新頻度のバランスを考慮した慎重な検討が必要です。
- B-treeインデックス
- データベースで最も一般的に利用される木構造のインデックス形式です。ルートからリーフまで常に同じ深さを保つ「平衡木」の特性を持ち、データの挿入や削除が行われても検索効率が低下しにくいという利点があります。完全一致検索だけでなく、範囲検索(BETWEENや不等号など)にも効率的に対応できるため、多くのリレーショナルデータベースにおいて標準的な索引構造として採用されています。
- 実行計画 (エグゼキューションプラン)
- DBMSのオプティマイザが、SQLを実行する際に最も効率的だと判断した内部的な処理手順のことです。どのインデックスを使用するか、テーブルの結合順序はどうするかといった詳細が含まれます。性能劣化が発生した際、実行計画を確認することで、フルスキャンが行われていないかなどのボトルネックを特定し、インデックスの追加やSQLの書き換えといったチューニングの指針とすることができます。
- チェックポイント
- メモリ上の更新されたデータ(ダーティバッファ)をディスク上のデータファイルへ書き出す処理、またはその時点のことです。障害発生時のリカバリ時間を短縮するために定期的に行われます。チェックポイントが完了した時点まではデータがディスクに確実に反映されていることが保証されるため、システム障害からの回復時には、最後のチェックポイント以降のログのみを適用すればよくなり、効率的な復旧が可能です。
- ロールフォワード
- 媒体障害(ディスク故障など)が発生した際に、バックアップデータと更新履歴ログを用いてデータベースを復旧する操作です。バックアップ時点の状態にデータを戻した後、ログに残されたコミット済みのトランザクションを順に再実行(順方向への適用)することで、障害直前の最新状態までデータを復元します。データベーススペシャリスト試験では、システム復旧手順の基本として非常に重要な概念です。
- ロールバック
- トランザクションの処理途中でエラーやプログラムの異常終了が発生した際、そのトランザクションによる全ての変更を取り消し、処理開始前の状態に戻す操作です。これにより、データベースの整合性を保ち、不完全なデータが残るのを防ぎます。トランザクションの原子性(Atomicity)を実現するための仕組みであり、更新履歴ログに記録された「更新前情報」を使用して、逆方向に処理を巻き戻します。
- フルバックアップ
- ある時点におけるデータベース全体のデータを一括して複製・保存する手法です。全データが含まれるため、このバックアップ単体でリストアが可能であり、復旧手順がシンプルになるメリットがあります。一方で、データ量に比例してバックアップの実行時間や保存先のストレージ容量を多く消費するため、実務では週に一度などの頻度で実施し、日々の運用では差分や増分バックアップと組み合わせて行われるのが一般的です。
- 差分バックアップ
- 直近のフルバックアップ以降に変更・追加された全てのデータをバックアップする手法です。毎回のバックアップ量はフルバックアップより少なくなりますが、前回のフルバックアップからの経過時間に比例してバックアップ量は増加します。リストア時には「フルバックアップ」と「最新の差分バックアップ」の2つがあれば障害直前の状態(ログ適用前)まで復旧できるため、増分バックアップよりもリストア手順が簡潔です。
データベーススペシャリスト試験の対策はアプリで
AIが毎週生成する新作問題・ランクマッチ・週次ランキング・AI診断で「続けられる」資格学習を。無料で始められます。