no-image

ハロプロ楽曲データベースの作り方5【カバー・アレンジ違いの楽曲への対応】

ハロプロ楽曲データベースシリーズ全記事見出し

カバー曲、アレンジ違い曲の存在

前回までの記事で紹介したデータベースの構造でも、十分に楽曲データベースとしては機能すると思います。事実、最初の2年間は前回ご紹介した構造で運用していました。

しかしデータ入力を進めていくうちに、ある課題にぶつかります。それは楽曲にはアレンジ違いの楽曲やカバー曲が存在し、それがデータの冗長性を生んでいるのです。どういうことか具体的に説明したいと思います。

カバー曲、アレンジ違い曲の存在

まずは以下の楽曲一覧表を御覧ください。

楽曲名アーティスト作詞作曲編曲
手を握って歩きたい後藤真希つんくつんく小西貴雄
手を握って歩きたいスマイレージつんくつんく大久保薫

手を握って歩きたいは後藤真希さんの3枚目のシングルの曲です。一方でスマイレージがプリーズ ミニスカ ポストウーマン!のカップリングでカバーとして出しています。

次に以下の楽曲一覧表を御覧ください。

楽曲名アーティスト作詞作曲編曲
LOVEマシーンモーニング娘。つんくつんくダンス☆マン
LOVEマシーン(updated)モーニング娘。つんくつんく平田祥一郎

LOVEマシーンはモーニング娘。の7枚目のシングルでありミリオンヒット曲で、編曲はダンス☆マンさんが担当しています。この曲はThe Best!〜Updated モーニング娘。〜というアルバムで、平田祥一郎さん編曲により、アレンジを変えて発表されています(アーティストは同じモーニング娘。ですが、メンバーはオリジナルとは異なっており、厳密にはカバーと言えますが、ここではわかりやすく解説する事を優先するため考えない事にします)。

この2つの表をじっくりと見ているとある事に気が付きます。それは、楽曲をカバーしてもアレンジ違いの曲が出ても、作詞家・作曲家は不変であるという事実です。

考えてみると、いわゆる名曲と呼ばれる曲ほど他のアーティストがカバーしたり、それと同時にアレンジが変わるものです(もちろんアレンジを変えずに、原曲の伴奏のまま歌い手だけ変わることもあります)。しかしどんなにカバーやアレンジ変更されても、歌詞と主たる旋律(メロディー)は変わらないものです。もしもカバーとしながらも歌詞や主たるメロディーが違っていたら、それはカバーではなくもはや別の曲といえるでしょう。

この事実から導かれるのは、どんなにカバーやアレンジ違いの曲が出たとしても、作詞・作曲は変わらないという事になりますし、当然それを行う作詞家・作曲家も変わりません。曲名に関しても、updatedのようなアレンジ違いである事を示す表記がつく事はありますが、原曲名だけは必ず表記されます。

先の2つの表に戻って考えてみると、手を握って歩きたいに関しては、曲名・作詞家・作曲家が同一であり、これらのデータは重複して冗長と言えます。LOVEマシーンに関しては、曲名こそupdatedと付け足されていますが、やはり作詞家・作曲家は同一でありデータの冗長が確認できるでしょう。

楽曲マスタテーブルと楽曲エディションテーブルに分割する

曲の核心部分とそれ以外とを分ける

ここまで検証してきた事実から、(かなり乱暴な言い方になりますが)曲名、作詞、作曲この3つの要素を曲の核心部分とし、編曲、アーティストを曲の周辺部分とすることが出来ます。そしてその様に定義するのならば、それらを同じ要素として同じテーブルに入れるべきでない事は明らかです。

これらを踏まえた上でテーブルを設計し直してみたいと思います。わかりやすさを優先するため、交差テーブルは用いずに解説します。

楽曲マスタテーブル
楽曲マスタID楽曲名作詞作曲
000006手を握って歩きたいつんくつんく
000007LOVEマシーンつんくつんく
楽曲エディションテーブル
楽曲エディションID楽曲マスタID楽曲種別エディション名アーティスト編曲
00000001000006原曲NULL後藤真希小西貴雄
00000002000006カバーNULLスマイレージ大久保薫
00000003000007原曲NULLモーニング娘。ダンス☆マン
00000004000007他エディションupdatedモーニング娘。平田祥一郎

データを登録する手順としては、まずは楽曲マスタテーブルに曲名、作詞家、作曲家の情報を入力し、その後楽曲エディションテーブルに原曲かそれ以外か、アーティストと編曲者を登録する事になります。楽曲エディションテーブルの楽曲マスタIDは外部キー制約が課されているので、先に楽曲マスタテーブルに曲を登録する必要があるためです。

このテーブルの構造ですと、例えば全くカバーされない原曲だけしか存在しない曲でも、必ず2つのテーブルに対する挿入作業が必要となりアプリケーション側のロジックは複雑になります。しかし、たとえどんなにカバーされようとも、作詞家・作曲家の情報は保持されたままカバー曲を登録出来ますので、高いデータの整合性が保てるでしょう。

気になる点として、楽曲エディションテーブルのエディション名には、「updated」や「MEMORIAL EDIT」のような名前がつかない場合NULLが挿入されるわけですが、こういった曲はハロプロにはかなり存在し、多くの行においてNULLが挿入される事になると思います。運用上は全く問題ないと思いますが、気になる方はテーブルを更に分割しても良いでしょう。

以上をふまえ、交差テーブルの使用も考慮に入れたER図を示したいと思います。

er2

だいぶ複雑なデータベースになってきました(汗)。気をつけておきたい部分をいくつか解説しておきたいと思います。

まず、マスタ権利者テーブルには作詞家・作曲家の情報しか入れません。ですので参照されるマスタ権利者種別テーブルには作詞家、作曲家とそのIDしか入りません。

マスタ権利者種別テーブル
マスタ権利者種別IDマスタ権利者種別名
01作詞
02作曲

一方でエディション権利者テーブルには作詞家・作曲家以外の情報を入れる事になります。

エディション権利者種別テーブル
マスタ権利者種別IDマスタ権利者種別名
01編曲
02日本語訳詞
03ストリングスアレンジ

また新たに追加されたテーブルとして、楽曲エディション種別テーブルがあります。楽曲エディションテーブルに曲を挿入する際に、その曲の種別を選択する事になります。

楽曲エディション種別テーブル
エディション種別IDエディション種別名
01原曲
02カバー
03アレンジ違い