SQL
 Computer >> コンピューター >  >> プログラミング >> SQL

データベース設計入門:1対多(One-to-Many)の関係モデルとは

1対多の関係とは

リレーショナルデータベースでは、エンティティ間に「1対多(one-to-many)」の関係が非常によく現れます。以下のような例が典型的です。

  • 「クラス名簿」データベース:1人の教師は0個以上のクラスを担当できますが、1つのクラスは必ず1人の教師だけが担当します。
  • 「会社」データベース:1人のマネージャーは0人以上の社員を管理できますが、1人の社員は必ず1人のマネージャーにのみ管理されます。
  • 「商品販売」データベース:1人の顧客は多数の注文を行えますが、1つの注文は必ず特定の1人の顧客によって行われます。

このように、「1」側の1件のレコードが「多」側の複数のレコードと対応する関係を、1対多の関係と呼びます。

なぜ1つのテーブルでは表現できないのか

1対多の関係は、単一のテーブルだけではうまく表現できません。「クラス名簿」データベースを例に、その理由を見ていきましょう。

パターン1:教師側のテーブルから始める場合

まず、教師の情報(氏名、オフィス、電話番号、メールアドレスなど)を格納する「Teachers」テーブルを作成したとします。各教師が担当するクラスを保存するために、class1、class2、class3 といった列を追加する方法が考えられます。しかしこの方法では、すぐに問題が発生します。担当クラス数は教師ごとに異なるため、いくつの列を作ればよいか事前に決められないのです。

パターン2:クラス側のテーブルから始める場合

次に、クラスの情報を格納する「Classes」テーブルから始めるとしましょう。この場合は、担当教師の情報(氏名、オフィス、電話番号、メールアドレスなど)を追加の列として保存できます。ところが、1人の教師が複数のクラスを担当できるため、同じ教師のデータがClassesテーブルの多くの行に重複して保存されてしまいます。これはデータの冗長性を招き、更新漏れや不整合の原因となります。

正しい設計:2つのテーブルで1対多を実現する

1対多の関係を適切にサポートするには、2つのテーブルに分割して設計する必要があります。

  • Classes テーブル:クラスに関する情報を格納し、classID を主キー(primary key)とします。
  • Teachers テーブル:教師に関する情報を格納し、teacherID を主キーとします。

そのうえで、親テーブルとなるTeachers(「1」側)の主キー teacherID を、子テーブルとなるClasses(「多」側)に保存することで、1対多の関係を構築します。イメージは下図のとおりです。

データベース設計入門:1対多(One-to-Many)の関係モデルとは

外部キー(Foreign Key)の役割

子テーブルClasses内の teacherID 列は、外部キー(foreign key)と呼ばれます。外部キーとは、親テーブルの主キーを子テーブル側に置き、親テーブルを参照するために使用される列のことです。

この仕組みにより、「どのクラスをどの教師が担当しているか」という関連性を明確に保ちながら、データの重複を避けた柔軟な1対多の関係を実現できます。これはリレーショナルデータベース設計における最も基本的かつ重要なテクニックの一つです。

  1. ピボットテーブルのデータモデルで計算フィールド(メジャー)を作成する方法

    ピボットテーブルのデータモデルで計算フィールドを作成したいとお考えの方に向けて、この記事では具体的な手順を詳しく解説します。計算フィールドの基本概念から、実際の作成・削除・数式確認の方法まで、実例を交えてわかりやすくご紹介します。 計算フィールドとは? 計算フィールド(Calculated Field)は、ピボットテーブルやピボットグラフに組み込める重要な機能で、「メジャー(Measure)」とも呼ばれます。計算フィールドはDAX数式を使用して作成されるフィールドです。ピボットテーブルの作成後に、元のデータセットにはない追加の指標(例:ボーナス額や利益率など)を計算したい場合に、この計算フィ

  2. Excelでデータモデルを作成する3つの方法|リレーションシップ・Power Query・Power Pivot

    データモデルは、Excelでのデータ分析に欠かせない機能です。データモデルを活用すると、テーブルなどのデータをExcelのメモリ上に読み込み、共通の列を基準に複数のデータ同士を関連付けることができます。各テーブル間のつながり(関係性)こそが、「データモデル」という言葉が示す「モデル」の正体です。Excelにはデータモデルを作成するための方法が複数用意されており、本記事では3つの異なるアプローチをわかりやすく解説します。 Excelでデータモデルを作成する3つの便利な方法 本記事では、Excelでデータモデルを作成する3つの実用的な手法をご紹介します。まず「リレーションシップ」ダイアログを使う