IoTの格納先を考える(5)SQL Server Management Studioでテーブルの作成
■テーブルの検討(2)
●正規化したテーブル
今回は、次のようなテーブルを利用することにしました。当初、ブルーレイディスクの整理を考えていました。中身よりブルーレイディスクのメディアの整理のほうが念頭にあったので、メディアテーブルと名付けました。このメディアテーブルのメディアコードは、メディアに格納されたコンテンツに対応させています。
◆メディアテーブル
メディアコード(キー)、タイトル、作者、劇場コード、公演日、ソース
コンテンツごとに
ここで指定した作者は、アーティストテーブルにセットされているアーティストコードをセットしています。アーティストテーブルには歌手、指揮者、作曲家、役者などが登録されています。
◆出演者テーブル
「メディアコード、サブNo(キー)」、配役、アーティストコード、アーティスト名
◆アーティストテーブル
アーティストコード(キー)、アーティスト名、カテゴリ、性別
◆団体劇場テーブル
劇場コード(キー)、劇場・団体名
団体劇場テーブルには、歌劇場、劇団、交響曲団などの団体名などが登録されています。
◆記録媒体テーブル
「メディアコード、コピーNo(キー)」、媒体、媒体識別コード、保存場所識別1、保存場所識別2
メディアコードはコンテンツに対して割り当てられています。コピーすると同じものができるので、その管理をコピーNoで管理します。
●テーブルの作成、データ入力
テーブルの作成は、前回説明したMicrosoft SQL Server Management Studioを利用して行いました。
メディアテーブルの作成は、SQL Server Management Studioでテーブルの上位200行の編集を行う機能で作成、編集を行いました。
この機能を利用するためには次に示すように、オブジェクトエクスプローラで該当するテーブルを表示しマウスの右ボタンをクリックしリストを表示「上位200行の編集」を選択し、レコード追加編集を行います。
データの作成開始時ですから、200行のデータの入力が終わるまでにはレコードの追加編集を行うためのプログラムを作る予定です。
●SQLエディタ
SQL Server Management StudioでSQL文の作成実行を行うために、SQLエディタを開きます。
ツールバーの「新しいクエリ」をクリックすると、SQLエディタが開きます。次に示すのは、アーティストテーブルの内容を選択して表示するためのSQL文をSQLエディタで作成している途中です。テーブル名や配列名を途中まで入力すると、候補が表示され少し助かります。
アーティストテーブルから全列を選択するSQL文
select * from アーティストテーブル |
を実行した結果が、エディタのペインの下半分に表示されています。
Select で対象テーブルのどの列を選択するか指定します。* は全列を選択することを示します。並び順は、テーブル上の並び順になります。from アーティストテーブルで、対象のテーブルはアーティストテーブルであることが示されています。
ここでは、アーティストテーブルから無条件に全データ選択するので、何も条件は記述されていません。
●クエリデザイナーを利用する
SQLエディタのSQL文を入力する方法のほかに、次に示すクエリデザイナーを利用する方法があります。GUIの画面で要件を設定すると、デザイナーがSQL文を生成します。
SQLエディタのペインを選択し、ショートカットキー (Ctrl + Shift + Q)を押すか、ペインをマウスの右ボタンでクリックして表示されるメニューのリストから「エディタでクエリをデザイン」を選択すると、次に示すテーブルの選択の画面が表示されます。
ここでは、メディアテーブルのデータに、作者(アーティストコード)とアーティストテーブルから作者名、劇場コードと団体劇場テーブルから団体名を表示します。そのため、メディアテーブル、アーティストテーブル、団体劇場テーブルを選択し、デザイナーにこれらのテーブルを追加するために追加のボタンをクリックします。
デザイナーを使用して表示する列、テーブル間を結合する配列を指定できます。
◆選択する列
選択する列はチェックします。アスタリスクを選択すると全列が選択されます。
◆テーブルの結合
テーブルの結合は、結合する列を選択して結合先のテーブルの列にドラッグすることで行えます。
メディアテーブルの作者とアーティストテーブルのアーティストコードを結合し、メディアテーブルの劇場コードと団体劇場テーブルの団体コードを結合しています。生成されるSQL文は、デザイナーの下段のペインに表示されます。
OKボタンをクリックすると、SQLエディタにSQL文が生成されます。ツールバーの「実行」をクリックするとSQLエディタの下半分に選択された列が表示されます。
メディアテーブルには、コードしかなかった作者と劇場がそれぞれのテーブルから名称が取り出され表示されています。作者がnullのままのレコードは結合できなかったために選択されていません。
次回このSQL文をもとに引き続き検討を進めます。
(2017/4/12 V1.0)
<神崎康宏>