DP-900 問題

DP-900 リレーショナルデータ 問題集|8問

紙の注文票や表計算シートで顧客と注文を管理していると、同じ会社名を何度も書き写し、住所変更のたびに全部を直す羽目になります。この「重複」と「書き直しの手間」を設計で解くのがリレーショナルデータの発想です。Microsoft Azure Data Fundamentals(DP-900)「Azure上のリレーショナルデータ」の練習問題8問を通して、基本の考え方とAzureでの受け皿を一枚で結びつけていきましょう。

 

表・キー・正規化 — リレーショナルの基本をAzure製品に結ぶ

リレーショナルデータの用語とAzure製品を対応させて整理するイメージ

リレーショナルデータは、データをテーブル(表)に収め、1件を、項目をで表します。各行を一意に見分ける主キーと、別テーブルを参照する外部キーでテーブル同士をつなぎ、重複を取り除く設計が正規化です。顧客情報を1か所にまとめ、注文からはキーで参照すれば、住所変更は1行直すだけで済みます。「重複を持たず、キーでつなぐ」——これがこの分野の背骨です。

Azureでは、同じリレーショナルDBでもどこまで自分で運用するかで製品が分かれます。下の表で、マネージドの度合いと向く場面を対応させておきましょう。

Azure SQL 製品 マネージドの度合い 向いている場面
SQL Server on Azure VM IaaS。OS・SQL Serverまで自分で管理 既存のSQL Serverを構成そのままで移行したい
Azure SQL Managed Instance PaaS。ほぼ全機能を保ちつつ運用は委譲 SQL Serverの機能を維持しつつ運用を任せたい
Azure SQL Database PaaS。単一データベース単位で最小運用 新規のクラウド前提アプリで運用を最小化したい

 

あわせて、テーブルそのものではないデータベースオブジェクトも問われます。ビューは複数テーブルの問い合わせに名前を付けた仮想の表、インデックスは目的の行を速く探すための索引です。基本の用語・製品の使い分け・オブジェクトの役割をそれぞれ言葉にできる状態を目指して、8問に取り組んでみてください。つまずいた問題は、各問の解説からより詳しい記事にたどれます。

 

Q1. リレーショナルデータベースの「テーブル」の説明として、もっとも適切なものはどれですか?

回答

解説

正解は「B」です。

リレーショナルデータベースでは、データをテーブルという表形式で管理します。テーブルは行(レコード)列(フィールド)で構成され、たとえば顧客テーブルなら1人の顧客が1行、名前や住所などの項目が列にあたります。同じ種類のデータをそろった形で並べられるのが特徴です。

A は階層型データベース、C はキーバリュー型などの非リレーショナルな考え方、D はファイルそのものを保管する用途の説明で、いずれもリレーショナルのテーブルとは異なります。

データベースとは(詳しい解説)を見る

 

Q2. リレーショナルデータベースの「主キー(プライマリキー)」の役割として、もっとも適切なものはどれですか?

回答

解説

正解は「C」です。

主キー(プライマリキー)は、テーブル内の各行を一意に識別するための値です。たとえば顧客IDのように、ほかの行と重複しない値を割り当てることで、どの行のことかを正確に区別できます。正規化では、各行をこの主キーで識別することが基本になります。

A はキーとは無関係な見た目の話、B は検索を速くするインデックスの説明、D は別テーブルを参照する外部キー(フォーリンキー)の説明で、いずれも主キーそのものとは異なります。

SQLと正規化とは(詳しい解説)を見る

 

Q3. リレーショナルデータベースの「正規化」の目的として、もっとも適切なものはどれですか?

回答

解説

正解は「A」です。

正規化は、データの重複を減らし、整合性を保ちやすくするためのテーブル設計の考え方です。エンティティ(顧客・商品など)ごとにテーブルを分け、同じ情報を1か所だけに保つようにします。たとえば顧客の住所を1か所に保てば、住所変更も1行直すだけで済みます。

B は重複を増やす説明で正規化の狙いと逆、C はファイルの書き出し、D は暗号化の話で、いずれも正規化の目的とは異なります。

SQLと正規化とは(詳しい解説)を見る

 

Q4. Azure SQL 製品ファミリのうち「Azure SQL Database」の特徴として、もっとも適切なものはどれですか?

回答

解説

正解は「D」です。

Azure SQL Databaseは、Azure 上でホストされるリレーショナルなデータベースサービス(DBaaS)で、PaaSに分類されます。パッチ適用・バックアップ・高可用性などをAzureが受け持つフルマネージド型で、利用者はサーバーやOSの管理から解放され、データベースやアプリの開発に集中できます。

A と C は仮想マシン上で動く SQL Server on Azure VM(IaaS)の説明、B は非リレーショナルのサービスの説明で、いずれも Azure SQL Database とは異なります。

Azure SQL Databaseとは(詳しい解説)を見る

 

Q5. 「SQL Server on Azure VM(仮想マシン上の SQL Server)」が、ほかの Azure SQL の選択肢と比べて持つ特徴として、もっとも適切なものはどれですか?

回答

解説

正解は「A」です。

SQL Server on Azure VMIaaSに分類され、Azure の仮想マシン上で SQL Server を動かす形態です。OSやSQL Serverの更新タイミングを自分で決められ、OSレベルのアクセスも得られる反面、その管理責任も利用者側に残ります。オンプレミスとの互換性が高く、現状のまま移行(リフト&シフト)したい場合に向きます。

B は管理を任せられる PaaS(Azure SQL Database / Managed Instance)寄りの説明、C は非リレーショナルなストレージ、D は SaaS の説明で、いずれも SQL Server on Azure VM とは異なります。

SaaS・PaaS・IaaSとは(詳しい解説)を見る

 

Q6. オンプレミスの SQL Server を、できるだけ変更を少なくしてAzureへ移行したい場合に向く選択肢として、もっとも適切なものはどれですか?

回答

解説

正解は「C」です。

Azure SQL Managed InstancePaaSに分類され、SQL Server とほぼ同等の機能互換性を持つマネージドなインスタンスです。パッチ適用やバックアップはAzureが受け持ちつつ、オンプレミスの SQL Server をわずかな変更で移行しやすいため、多くの移行で適した選択肢になります。

A は非リレーショナルの Cosmos DB、B と D はリレーショナルデータベースではないストレージサービスで、いずれも SQL Server の移行先としての説明とは異なります。

Azure SQL Databaseとは(製品ファミリの違いも解説)を見る

 

Q7. リレーショナルデータベースの「ビュー」の説明として、もっとも適切なものはどれですか?

回答

解説

正解は「B」です。

ビューは、SELECT クエリの結果にもとづく仮想的なテーブルです。1つ以上のテーブルから必要な行や列を取り出して、1つのテーブルのように問い合わせられます。よく使う絞り込みや結合に名前を付けて再利用できるため、複雑なクエリを扱いやすくできます。

A はデータを複製する説明、C はインデックス、D はストアドプロシージャの説明で、いずれもビューとは異なります。

SQLと正規化とは(詳しい解説)を見る

 

Q8. リレーショナルデータベースの「インデックス」についての説明として、もっとも適切なものはどれですか?

回答

解説

正解は「D」です。

インデックスは、本の巻末索引のように、指定した列のデータを並べ替えて保持し、目的の行を素早く見つけられるようにする仕組みです。行数が多いテーブルでは検索性能を大きく高められます。一方で保存領域を使い、データの追加・更新・削除のたびに索引も保守するため、書き込み時の負荷は増えやすくなります。

A は主キー、B は外部キー、C はビューの説明で、いずれもインデックスとは異なります。

SQLと正規化とは(詳しい解説)を見る

 

試験全体の流れを俯瞰したい時は、Azure Data Fundamentals(DP-900) 試験全体概要 に戻れます。

学習の全体像と次に進む分野は、Azure Data Fundamentals(DP-900) 学習ロードマップ で確認できます。