データの基礎比較
リレーショナルデータベースの「複合インデックス(Composite Index)」と「カバリングインデックス(Covering Index)」の説明として正しいのはどれか?
A.複合インデックスは複数列をキーとして持つインデックスで、先頭列から順にクエリで使用される場合に効果を発揮する。カバリングインデックスはクエリで必要な全列をインデックスに含め、テーブル本体へのアクセスを不要にする。← 正解
✓ 正解です。複合インデックスは複数列を組み合わせたキーを持ち、先頭列が検索条件に含まれる場合に有効です。カバリングインデックスはSELECT・WHERE・ORDER BYで参照される全列をインデックスに含め、テーブル本体(クラスタ化インデックスのリーフノード)へのルックアップを不要にしてI/Oを最小化します。
B.複合インデックスはテーブルの物理行順序を決定し、カバリングインデックスは論理的な結合に使用される。
✗ 物理行順序を決定するのはクラスタ化インデックスの特性です。複合インデックスやカバリングインデックスは非クラスタ化インデックスとして実装されることがほとんどです。
C.カバリングインデックスは主キーにのみ作成可能で、複合インデックスは外部キーにのみ作成できる。
✗ カバリングインデックスは主キーに限定されず、任意の列の組み合わせで作成できます。複合インデックスも主キー・外部キー以外の列に作成可能です。
D.複合インデックスとカバリングインデックスは同一の概念であり、列数が2以上のインデックスをどちらの名称で呼んでも差異はない。
✗ 両者は異なる概念です。複合インデックスは「複数列をキーとして使う」ことを指し、カバリングインデックスは「クエリ実行に必要な全列をインデックスに含める」最適化手法を指します。複合インデックスがカバリングインデックスを兼ねることはありますが、同一概念ではありません。
この問題のポイント
複合インデックスは複数列を組み合わせたキーを持ち、先頭列が検索条件に含まれる場合に有効です。カバリングインデックスはSELECT・WHERE・ORDER BYで参照される全列をインデックスに含め、テーブル本体(クラスタ化インデックスのリーフノード)へのルックアップを不要にしてI/Oを最小化します。
「データの基礎」の他の問題
ある製造工場がQC検査ラインで以下4種類のデータを収集しています。「半構造化データ」に分類されるのはどれか?ある銀行が2つのシステムを運用しています。①ATM出金処理(毎秒数千件・ACID保証必須・即時応答)と②全支店の月次収益…あるECサイトが「注文を受けた瞬間に在庫を引き当て、15秒以内に在庫不足アラートを送信する」要件を持っています。最も適し…データパイプラインの設計で「生データのままAzure Synapse Analyticsへロードし、Synapseの大規…ネット銀行が「A口座から1万円引き落とし」と「B口座に1万円入金」を同一トランザクション内で実行中にシステム障害が発生し…注文管理テーブルに「注文ID・顧客名・顧客住所・商品名・商品単価・数量」が1テーブルに入っており、同一顧客が別注文をする…
IT・クラウド の関連資格
AWS Certified Cloud Practitioner(CLF-C02)
AWSクラウドの入門資格。クラウドの概念・AWSのコアサービス・セキュリティ・料金モデルを問う。
AWS Certified Solutions Architect - Associate(SAA-C03)
AWSでのシステム設計能力を問うアソシエイト資格。高可用性・セキュリティ・コスト最適化の設計が中心。
AZ-900:Microsoft Azure Fundamentals
クラウドとAzureの基礎を問うMicrosoft認定資格。クラウドの概念、Azureの主要サービス、セキュリティ・コンプライアンス・料金を扱う。