北川 博之著「データベースシステム(オーム社)」を参考に,データベースシステムの知識をまとめます。
実体関連モデル
概念設計・論理設計・物理設計でも述べた通り,概念設計には実体関連モデルが利用されます。実体関連モデルは1970年にChenによって提案されて以降,さまざまな拡張を経て広く普及しています。実体関連モデルでは,その名の通り実体と関連という二つの概念を用いて実世界をモデル化します。
実体と関連
実体とは,実世界をモデル化した際の認識単位のことを表します。具体的には,「学生」や「科目」はいずれも実体とみなすことができます。同一種類の実体の集まりは実体集合とよばれますが,実体と実体集合という用語は区別を意識せずに使われることもあります。実体のもつ性質は属性とよばれ,属性の取り得る値全体の集合をドメイン(定義域)と呼びます。具体的には,科目という実体の属性には「科目名」「単位数」などが挙げられ,単位数のドメインは「2もしくは4」のようになります
関連とは,二つ以上の実体同士の相互関係をモデル化したものを指します。実体と同様に,関連にも属性を持たせることができます。数学的に記述すると,下記のようになります。
実体集合$E_{1},\ldots,E_{n}$に対し,関連$R$は次のように定義される。
R\subseteq E_{1}\times\ldots\times E_{n}
\end{align}
イメージとしては,M対Nの実体同士の相互関係を仲介するオブジェクトのことを関連と呼びます。
実体関連図
実体を四角,関連を菱形,属性を楕円で表し,それらを実線で結んだ図を実体関連図と呼びます。属性の主キーには下線を付けます。実体集合のうち,自身の持つ属性の組み合わせによって主キーを構成できないものは弱実体集合と呼び,実体関連図では二重枠の四角で表されます。なお,弱実体集合以外の実体集合は強実体集合と呼ばれます。また,実線上には整合性制約を記述することができ,$(\min, \max)$という記法を用います。
例えば,上図で学生・履修間の$(1, N)$および科目・履修間の$(0,N)$により,学生・科目間が$M$対$N$対応であることが分かります。加えて,学生は必ず科目を履修し,学生に履修されない科目があることも分かります。同様に,科目と実習課題には$1$対$N$対応があることが分かります。ここで,図の順番で科目と実習課題を$N$対$1$対応と誤解するケースが散見されますので,注意してください。
コメント