古典音楽、 いわゆるクラシックの鑑賞(時には演奏を)趣味としている私の本業は、 コンピュータの運用である。 古典音楽の理解のためにも、古典音楽のデータベースを作りたいと思ってきた。
一から作るのも面倒なので、世の中にある古典音楽のデータベースはどういうものか調べてみた。 ちょっと調べただけでとても一つにまとめられないことがわかった。 苦悩している私に一撃を浴びせたのは、データベースモデリングの第一人者である佐藤正美氏の趣味が、 クラシック音楽鑑賞であることだった。つまり、私のような平凡な者がクラシック音楽のデータベースを作ったとしたら、 氏には不十分なものとしか思えないだろう。
私はここで考えた。まあ、何があろうとも、自分に役に立てばいい、と割り切ることにした。
私が知りたいのは、古典音楽のページであげた作曲者(エスペラントで verkisto 、以下同)が どんな作品(verko)を作っているのかということである。つまり、次のような E-R 図が描ける。
+-----+ +------+ | 作曲者 +------>+ 作品 | +-----+ +------+
ここで、作曲者の特定は問題ないが、作品の粒度はさまざまな議論がある。たとえば、ソナタ1曲はふつう複数の「楽章」からなっている。 この場合、作品1つとは、ソナタを指すのか、それとも楽章を指すのか。同様のことは「組曲」の概念にも言える。 この問題を克服すれば「フォーレは生涯でどれだけの作品を作ったか」ということは言える。
ここで大事なことは、作曲者や作品を区別するために、データベース固有の考え方がある。それは 名前そのものを扱うのではなく、名前を一意に区別する番号を用いる、ということだ。区別するための番号をキーという。 キーの名前の付け方は悩ましい。キー自身に意味を持たせる、あるいは連想させるようなキーにすることも多い。 私自身の考えは、
本当は、1 からではなく、0 からとしたい。数学の世界からすればこちらが常識である。 しかし、データベースの世界では異端である。システムを構築するフレームワークなどでは、ID は 1 から振られることが多いからだ。 ここで何をもって順番を決めるに苦慮する人がいるかもしれないが、今回は一意性を確保するためだけに使うので、 順番は意味をなさないと考えた。言い換えれば、どんな順序でもよいことにする。
作曲家のキーは上記1の原則を適用する。作曲家テーブルは次のように考えてみた。
verkiso_id | verkisto_nomo_ja |
---|---|
00000001 | ガブリエル・フォーレ |
00000002 | ドメニコ・スカルラッティ |
00000003 | アーロン・コープランド |
作品のキーは、上記 2 の原則を適用することも考えられる。作曲者ごとに作品番号が付与されていることがあるからだ。 しかし、今回は 1 の原則に従った。これは、作品番号の付与されていない作品も多いこと、 かりに付与されていたとしても完全に1曲1キーである対応の保証がないことが理由である。 さて、作品テーブルは次のようになるだろう。
verkiso_id | verkisto_nomo_ja | verko_id | verko_nomo_ja |
---|---|---|---|
00000001 | ガブリエル・フォーレ | 00000001 | 蝶と花 op.1-1 |
00000001 | ガブリエル・フォーレ | 00000002 | 五月 op.1-2 |
00000001 | ガブリエル・フォーレ | …… | …… |
00000001 | ガブリエル・フォーレ | 00000220 | ヴァイオリンとチェロ、ピアノのための三重奏曲 ニ短調 op.120 |
00000001 | ガブリエル・フォーレ | 00000221 | 弦楽四重奏曲 ホ短調 op.121 |
00000002 | ドメニコ・スカルラッティ | 00000001 | ソナタニ短調 K.1 |
00000002 | ドメニコ・スカルラッティ | …… | …… |
00000002 | ドメニコ・スカルラッティ | 00000600 | ソナタニ短調 K.555 |
00000002 | ドメニコ・スカルラッティ | 00001001 | 王位回復したオッタヴィーア |
00000002 | ドメニコ・スカルラッティ | …… | …… |
00000002 | ドメニコ・スカルラッティ | 00001999 | 私はため息の間に呼吸をする |
00000003 | アーロン・コープランド | 00000001 | メランコリー |
00000003 | アーロン・コープランド | 00000002 | 嫌う愛 |
00000003 | アーロン・コープランド | 00000003 | アントワープの後に |
00000003 | アーロン・コープランド | 00000004 | 楽興の時 |
00000003 | アーロン・コープランド | 00000005 | 3つの歌曲 |
00000003 | アーロン・コープランド | 00000006 | ワルツ・カプリス |
00000003 | アーロン・コープランド | …… | …… |
00000003 | アーロン・コープランド | 00000871 | 宣言 |
00000003 | アーロン・コープランド | 00000872 | 挽歌No.2:ベアトリス・カニンガムの思い出に |
ここでは名前のほうに、既に付与されている作品番号を埋め込んでいる。 これは1曲1キーを確保するための便宜上の措置である。