×
データベース
多対多の関連をそのまま表現しようとすると、例えば学生テーブルの1つのセルの中に「英語、数学、理科」のように複数の授業IDをカンマ区切りで詰め込む(第1正規形違反)か、あるいは同じ学生の行を何行も重複して登録する(主キーの重複違反)という設計上の破綻が発生します。これを解決するために挿入する「中間テーブル(結合テーブル/連関エンティティ)」は、テーブルAの主キーとテーブルBの主キーを組み合わせた「複合主キー」を持ちます。この設計により、多対多の関係が「テーブルA(1)対 中間テーブル(多)」および「テーブルB(1)対 中間テーブル(多)」という、RDBが処理しやすいクリーンな構造に変換されます。また、中間テーブルには、単に2つのIDを結びつけるだけでなく、「履修登録日」や「成績」といった、その関連自体に紐づく追加の属性情報を持たせることも一般的です。

試験でのポイント