Skip to the content.

最終更新日:2026年8月28日

まず結論

UMLの多重度は、あるクラスの1つのインスタンスに対して、反対側のクラスのインスタンスが何個対応するかを表します。

基本情報技術者試験では、まず次の4つを押さえます。

0..1 → 0個または1個
1    → 必ず1個
0..* → 0個以上
1..* → 1個以上

最も大切なのは、数字が書かれている側だけを見ないことです。

多重度は「反対側の1個から見て、こちら側が何個あるか」と読む。

直感的な説明

「顧客」と「注文」の関係を考えます。

顧客  1 ───── 0..*  注文

この図は、次の意味です。

1人の顧客
→ 注文は0件以上

1件の注文
→ 顧客は必ず1人

0..* が注文側に書いてあるからといって、単純に「注文が0個以上」と読むだけでは不十分です。

顧客1人から見た注文の個数として読む必要があります。

定義・仕組み

多重度(Multiplicity)は、UMLのクラス図などで関連の端に記述し、関連するインスタンス数の範囲を表します。

多重度 意味
0..1 0個または1個
1 必ず1個
0..* 0個以上
1..* 1個以上

0..1

0..1

対応するインスタンスがなくてもよく、存在する場合でも最大1個です。

たとえば、社員に「社用車」が割り当てられる関係なら、社員によっては社用車がなく、あっても1台だけ、という設計に使えます。

1

1

必ず1個対応します。

たとえば、1件の注文には必ず1人の顧客が対応する、といった関係です。

0..*

0..*

0個でもよく、個数に上限はありません。

顧客1人
→ 注文0件でもよい
→ 注文が複数件あってもよい

1..*

1..*

少なくとも1個は必要ですが、複数でも構いません。

従業員1人
→ 少なくとも1つの部署に所属
→ 複数部署への所属も可能

UMLそのものや各種UML図の役割を整理したい場合は、先にUMLとは?構造図・振る舞い図と代表的な図の見分け方を確認すると、多重度がクラス図のどこで使われるか理解しやすくなります。

また、クラスとインスタンスの違いがあいまいな場合は、クラスとインスタンスとは?を先に確認すると、この「1つのインスタンスから見る」という考え方がつかみやすくなります。

公式の出題範囲やシラバスは、IPA:基本情報技術者試験から確認できます。

科目Aでどう出る?

科目Aでは、クラス図と多重度が示され、そこから正しい関係を選ぶ問題として出題されます。

例えば、次の関係を考えます。

部署  1..* ───── 0..*  従業員

読み方は次のとおりです。

従業員1人から見た部署
→ 1つ以上

部署1つから見た従業員
→ 0人以上

したがって、次のように判断できます。

  • 従業員は少なくとも1つの部署に所属する
  • 従業員は複数部署に所属してもよい
  • 従業員が0人の部署も存在できる
  • 部署数と従業員数が一致する必要はない

試験中の読み方

多重度は、次の順番で読むと間違いにくくなります。

1. どちらのクラスを1個固定するか決める
2. 反対側の多重度を見る
3. 最小値を確認する
4. 最大値を確認する

たとえば、

社員  0..* ───── 1  会社

なら、

社員1人から見た会社
→ 必ず1社

会社1社から見た社員
→ 0人以上

と読みます。

どんな場面で使う?

多重度は、システムのデータ構造やオブジェクト同士の関係を設計するときに使います。

1対1を表す

1 ───── 1

双方が必ず1つずつ対応する関係です。

1対多を表す

1 ───── 0..*

一方の1個に対し、反対側が0個以上対応できます。

多対多を表す

0..* ───── 0..*

双方が複数対応できる関係です。

関係データベースのE-R図でも「1対多」「多対多」という考え方が出てきます。UMLとE-R図は同じものではありませんが、関係の個数を読む感覚は共通しています。データベース側の表現まで理解を広げたい場合は、E-R図とは?を読むとつながりが見えやすくなります。

よくある誤解・混同

数字が書いてあるクラス自身の個数だと思う

ここが最もよくある誤解です。

部署  1..* ───── 0..*  従業員

部署側の 1..* は、単に「部署が1個以上ある」という意味ではありません。

従業員1人から見て、部署が1個以上対応するという意味です。

0..* は必ず複数ある

違います。

0..* は「0個以上」なので、0個でも1個でも複数でも構いません。

0..* → 0, 1, 2, 3, ...

1..* は必ず複数ある

これも違います。

1..* は「1個以上」なので、1個だけでも成立します。

1..* → 1, 2, 3, ...

多重度から全体の総数まで分かる

分かりません。

多重度は、1つのインスタンスに対して何個対応するかを表すものです。

全従業員数と全部署数が一致するかどうか、といった全体の総数までは示していません。

UMLの多重度とE-R図は同じ

同じではありません。

UMLのクラス図はオブジェクト指向設計でクラス間の関係を表し、E-R図は主にデータベース設計でエンティティ間の関係を表します。

ただし、1対多・多対多など「対応する個数」を考える点は似ています。

まとめ(試験直前用)

  • UMLの多重度は、関連するインスタンス数の範囲を表す
  • 0..1 は0個または1個
  • 1 は必ず1個
  • 0..* は0個以上
  • 1..* は1個以上
  • 数字は「反対側の1インスタンスから見た個数」と読む
  • 0..* は0個でもよい
  • 1..* は1個でもよい
  • 多重度だけからクラス全体の総数までは分からない

試験では、次の一文を思い出してください。

数字のある側を見る前に、反対側を1個固定して読む。

© 2024-2026 stemtazoo. All rights reserved.