記事

IoTの格納先を考える(3)音楽データを題材に

テーブルの検討

 SQL Server に格納されるデータベースはリレーショナル・データベースで、データベースにはテーブルと呼ばれる形でデータが格納されます。今回はそのテーブルの検討を行います。

今回のデータベースの対象は
 今回対象とするデータベースのデータは、WOWOWで放送され録画したメトロポリタン歌劇場のオペラの記録、NHKプレミアムシアターで放送され録画した各オペラ劇場の公演の記録です。この記録はDVD、ブルーレイ・ディスク、NAS、ブルーレイ・レコーダのハードディスク、TVに接続されたUSB-ディスクなどに保存されています。
 そのほかに、市販のオペラのディスク、CDのメディアもあります。ドキュメント、映画、舞台中継もあります。山の紹介などの紀行番組もあります。

同じタイトルでもキャスト、演出の違いで複数の記録がある
 同じ椿姫でもナタリー・デッセイとアンナ・ネトレプコの主演したものは別のもので、同じ演出、主演でもザルツブルク音楽祭(2005年)やメトロポリタン歌劇場のものがあり、別のものとして管理する必要があります。

どんな使い方をするのか

  • どのようなタイトルがあるか
  • どこにあるか
  • 作曲者
  • キャスト
  • 指揮者

などから検索することができるようにします。メディアの記録媒体が変わったときの対応も考慮します。

リレーショナル・データベースのテーブル
 リレーショナル・データベースを構成するテーブルは、横方向に並ぶ列と縦方向に並ぶ行の2次元のテーブルとなります。列の見出しにはその列の属性を示します。行はテーブルの対象となるものの記録(レコード)示します。

テーブルを考える
 まず、目的を達成するためにどのようなデータがあるかテーブルを作ってみます。テーブルは2次元のテーブルを考えます。

1 演目のタイトル
2 作曲者
3 講演団体(歌劇場)
4 キャスト
5 スタッフ
6 公演日(収録日)
7 記録メディア
8 保存場所
9 ソース
を実際にデータでテーブルとした一例を次に示します。


データを識別するためのキーとなるデータ

 1 演目のタイトル、2 作曲者、3 講演団体(歌劇場)、6 公演日(収録日)


以上で多くのオペラ作品は特定できます。しかしいくつかの例外としてダビング10で複数のコピーが存在する場合、それぞれのコピーを特定するサブコードが必要になります。また海外の歌劇場が引っ越し公演で国内の劇場で講演する場合、公演場所の劇場が識別のために必要になります。

キャスト、スタッフなど複数
 キャストは複数存在します。普通の票の場合はキャストの欄に複数のキャストを記入することもできますが、リレーショナル・データベースでは一つの欄に入る項目は一つしか設定できません。今回の場合、キャストの欄には役ごとに複数の歌手が必要になります。そのためキャストの列に複数の行に分けて書き込まれています。そのためタイトル、作曲者などが複数行に同じ記述が繰り返されることになります(上に表示したものと同じ)。 

 このテーブルを、

  • 上演データのデータ・テーブル
  • 出演者テーブルとスタッフ・テーブル

に分割しました。ここで、コピーIDも追加してありますが再検討が必要です。ペンディングして後で具体的な対応を考えます。


 

 出演者は上演データのデータ・テーブルの公演を示す主キーと配役をキーとして出演者を指定できるようにします。出演者は出演者名でなく出演者コードで出演者を指定しています。出演者名を使用すると同姓同名の場合区別できないためです。そのため、歌手(歌手、俳優)テーブルを別途用意する必要があります。


 同様にスタッフの属性とメディア・コードをキーにしてスタッフ、オーケストラ、合唱団のテーブルを用意しています。やはりここでも名称でなくコードを使用しています。

 出演者名、スタッフ名などの名称をコードから取り出すためのテーブルをアーティスト・テーブルとして用意します。

 具体的なデータベースを作成する前にもう少し検討を重ねるべきでしょうが、システムの変更は必ず生じます。システムのメインテナンスの確認のためにも変更があり得るとの前提で次に進みます。

Microsoft SQL Server Management Studioを起動する
 前回インストールしたMicrosoft SQL Server Management Studioを起動します。SQL Server ExpressをインストールしたPCのYASUM2でデータベースの作成の作業を行います。次に示す起動時のダイアログ・ボックスのメッセージに従い、Microsoft SQL Server Management StudioをインストールしたSQL Server Express、YASUM2¥SQLEXPRESSに接続します。


 オブジェクトエクスプローラのデータベースをマウスの右ボタンでクリックし、メニューのリストを次のように表示します。「新しいデータベース(N)」を選択します。


 次に示すように新しいデータベースを作成する画面が表示されます。今回は、データベース名(N)欄に「音楽映画TV所蔵データ」とデータベースのタイトルを入力しました。後はデフォルトのまま「OK」ボタンをクリックしました。



 オブジェクトエクスプローラのデータベースを展開すると「音楽映画TV所蔵データ」がデータベースに追加されているのが確認できます。新しく追加されたデータベース「音楽映画TV所蔵データ」を展開すると次のようになります。

 テーブルをマウスの右ボタンでクリックして、次に示すようにメニューのリストを表示します。


 リストのテーブルを選択すると、次に示すようなテーブルを作成するための画面が表示されます。テーブルの列名、データの型、NULLデータを許容するかを各列ごとに設定していきます。

 次回、具体的なテーブルの作成作業を行います。

(2017/2/24 V1.0)


<神崎康宏>

IoTの格納先を考える

(1) SQL Server Express

(2) ユーティリティのインストール

(3) 音楽データを題材に

(4) テーブルの検討

(5) SQL Server Management Studioでテーブルの作成

(6) Visual StudioでSQLSeverと連携

(7) Visual Studio 2017を利用

(8) メインテナンス・プログラムの作成