DBMS – ERダイアグラムからテーブルへの変換方法

ERダイアグラムとERデザインの問題については、前回の記事で学びました。この投稿では、ERダイアグラムをデータベーステーブルに変換する方法を説明します。

まず、シンプルなERダイアグラムをテーブルに変換します。最後に、複雑なERダイアグラムを取り上げ、それをテーブルのセットに変換します。

シンプルな属性を持つ強いエンティティセット

強いエンティティセットはテーブルとなり、エンティティセットの属性はテーブルの属性となります。エンティティセットの主キーはテーブルの主キーになります。

例を挙げましょう。ここでは、属性が名前、年齢、Emp_Id、給与のエンティティセットEmployeeがあります。このERダイアグラムをテーブルに変換すると、エンティティセットがテーブルになり、次のダイアグラムに示すように「Employee」というテーブルができます。エンティティセットの属性がテーブルの属性になります。

2. 複合属性を持つ強いエンティティセット

次に、複合属性を持つ強いエンティティセットをテーブルに変換する方法を見てみましょう。この場合も変換はかなり簡単です。エンティティセットはテーブルになり、複合属性の単純な属性はテーブルの属性になりますが、複合属性自体は変換中に無視されます。

例を挙げましょう。複合属性「Name」があり、この複合属性には2つの単純な属性「First_N」と「Last_N」があります。このERをテーブルに変換する際には、テーブルに複合属性自体ではなく、この複合属性の単純な属性を使用しました。

3. 多値属性を持つ強いエンティティセット

多値属性を持つエンティティセットは、関係モデルでは2つのテーブルが必要です。

この変換は、ダイアグラムを使用して理解しましょう。先ほど見た例と同じですが、新しい多値属性「Dept」を追加しました。従業員は複数の部署で働くことができるため、このDept属性は多値属性としてマークされています。多値属性がある場合、ERダイアグラムを表現するために複数のテーブルが必要です。このERを表現するために2つのテーブルを作成しました。

  1. リレーションシップセットをテーブルに変換

リレーションシップセットをテーブルに変換する際には、2つのエンティティセットの主要な属性がテーブルの属性になり、リレーションシップセットに属性があれば、それもテーブルの属性になります。

次の例では、2つのエンティティセット「Employee」と「Department」があります。これらのエンティティセットは、Worksリレーションシップセットを使用して相互に関連付けられています。このWorksリレーションシップセットをテーブルに変換するには、各エンティティセットの主要な属性(Emp_IdとDept_Id)とリレーションシップセットのすべての属性を取り、それらを1つのテーブルにまとめます。

Share

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です