★複数のデータ実は前ページの「整理する情報を決定」のところで、データモデリングを終了しても良いのです。1枚のCDに複数の収録曲があった場合、前ページのようなテーブル構成では、1曲しか入力できません。・というふうにも出来ますが、いったい何曲分用意したらよいのでしょう?それに1曲しか収録されていないCDもたくさんあるのですから、そのときは無駄になってしまいます。これは、作曲家、ソリスト、合唱団、オーケストラ、指揮者にも言えることです。★複数のデータを分離する第一正規化では上記のように1枚のCDに、複数出てくる情報を抜き出します。抜き出した情報は、それぞれ1つのテーブルとします。すると以下のようなテーブルが新たにできます。収録曲の情報を登録するここで、「まてよ、作曲家の情報は収録曲と一対一で対応してるじゃないか」と気がついた方は鋭い。収録曲と作曲家の情報は、CDとレーベルの関係と同じです。この逆は成り立ちません。「収録曲の情報は作曲家と一対一で対応している」とは言えません。作曲家は、何曲も曲を書く可能性があるからです。「曲だって合作という可能性があるじゃないか」と気がついた方、やはり鋭い。いう何千(万?)曲に1つのようなデータまで、考慮するかどうかは、その人の真面目さ具合によります。私はそれほど真面目では無いので、そういうデータが万が一出てきた場合は、代表的な作曲家の作品とすることにします。このような話をしたかというと、収録曲と作曲家のような関係の情報は、第一正規化の段階では、取りあえず一つのテーブルにしておくのです。作曲家の情報を、収録曲の情報に加えてしまいます。(実は第二正規化で、結局分けることになるのですが、一緒にしておかないと第二正規化でやることが無くなるので・・・(^-^;))逆(作曲家テーブルに収録曲を入れること)は駄目ですよ。★分離後この様にテーブルを分離すると、例えばソリストテーブルには、名前だけではなく、生年月日の情報を持たせたいなとか、国籍の情報も持たせたいとか、プロフィールも入れたいとか、写真があればその画像も・・・などなど、いろいろとアイデアが湧いてきませんか?プロとしては、そういう情報も持ちたいのだったら、前の段階で決めておけよと言いたいところですが、個人でやることなんですから、自由で良いと思います。後々用途のないようなデータは含めない方が良いです。分離したテーブルにも、それぞれキーは必要です。迷ったら、CDテーブルのように番号という項目を加えて、キーにしてください。すると、下記のようなテーブルが出来ます。作曲家名ここで、収録曲テーブルに作曲家名という項目が出てきました。これは、作曲家テーブルにも出てくる情報です。このような場合、第一正規化の段階では、作曲家を収録曲に含めて、作曲家テーブルを削除してしまいます。作曲家没年月日もともとのCDテーブルは、どのようになるでしょうか。レーベルずいぶんと寂しくなりました・・・(笑)。