DP-900:Microsoft Azure Data Fundamentals Azure のリレーショナルデータ 問3
Azure のリレーショナルデータ/リレーショナルの概念複数の部署が売上データに対して同じ内容の集計処理(複数テーブルの結合とグループ化を伴う)をそれぞれ個別のSQL文として作成しており、担当者によって計算結果に差異が生じている。集計ロジックをデータベース側に1つにまとめ、呼び出し側から対象期間などの条件をパラメーターとして渡して実行できるようにしたい場合、作成すべきデータベースオブジェクトはどれか。
当サイトのオリジナル問題(DP-900:Microsoft Azure Data Fundamentalsの出題範囲「Azure のリレーショナルデータ」に対応。実際の試験問題ではありません)
- Aビュー
- Bインデックス
- Cトリガー
- Dストアドプロシージャ
正解:D
解説
データベースオブジェクトにはテーブルやビュー、インデックス、ストアドプロシージャなどがあり、それぞれ役割が異なります。ビューはSELECT文の結果を仮想的な表として参照する仕組み、インデックスは検索を高速化する仕組み、トリガーは特定のイベントをきっかけに自動実行される処理です。これに対してストアドプロシージャは複数のSQL文をまとめて保存し、呼び出し側からパラメーターを渡して実行できるため、本問のように複数の部署で異なっていた集計ロジックを1か所に一元化し、一貫した計算結果を得る用途に適しています。
選択肢ごとの解説
- A誤り。ビューは1つのSELECT文を名前付きで保存して仮想的な表として参照できるようにする仕組みですが、呼び出し時にパラメーターを渡して処理内容を分岐させることはできません。
- B誤り。インデックスは特定の列に対する検索を高速化するための仕組みであり、集計ロジックをまとめて実行する機能は持ちません。
- C誤り。トリガーはINSERTやUPDATEなど特定のイベントが発生したときに自動的に実行される処理であり、呼び出し側が任意のタイミングでパラメーターを渡して呼び出す用途には向きません。
- D正しい。ストアドプロシージャは一連のSQL処理をデータベース側にまとめて保存しておき、呼び出し側からパラメーターを渡して実行できるデータベースオブジェクトであるため、部署ごとに異なっていた集計ロジックを一元化できます。