テーブル同士の関係を定義する際に、1対1や1対多、多対多といった文言をよく耳にします。さらに多の部分を※Nと定義することもあって、あまりよくわかっていないので自分なりに調べてみました。
1対1とは
どちらか一方の※エンティティからもう一方のエンティティが特定できる状態のこと。
例
一人の大金持ちの生徒(1)しか担当しない住み込み専属個別指導の先生(1)の関係
1対多(1対N)とは
一方の側(N)からはもう一方のエンティティ(1)を特定できるが、もう一方のエンティティ(1)からはNを特定できない状態のこと。
例
私たちがイメージする一般的な教師(1)と生徒達(N)の関係
多(N)対多(N)とは
両方のエンティティからお互いに相手側のエンティティを特定できないこと。
例
複数の教師達(N)がかけもちで一つのクラスを担当する際の生徒(N)の関係
※ エンティティとはデータの集まり、実体のこと。テーブルそのものと考えるとわかりやすい。
※ 「N」や「M」は、具体的な頭文字ではなく、数学的・集合論的な背景から任意の数を表す記号として広く使われています。ER図やデータベース設計では、これらの記号を使って多対多の関係を表現し、システム内のエンティティの関係を抽象的に示しています。
コメント