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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

er2

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

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

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

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

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

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

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

コメントを残す