Multiplicity vs Cardinality

53,250

Solution 1

The simplest explanation would be to say:

Multiplicity = Cardinality + Participation

Cardinality: Denotes the maximum number of possible relationship occurrences in which a certain entity can participate in (in simple terms: at most).

Participation: Denotes if all or only some entity occurrences participate in a relationship (in simple terms: at least).

Ex: enter image description here

Solution 2

Martin Fowler has talked about this subject on his website. Quoting :

When data modeling methods talk about relationships, they use the term cardinality to indicate how many entities may be linked together. So you might have a relationship between order and customer and say that the cardinality of the relationship is one-to-many. Or you might hear that the cardinality of customers for an order is 0-to-many.

UML avoids the term cardinality preferring to use multiplicity. Often people with a data modeling background are surprised at this since cardinality has been so widely used in data modeling circles.

The reason for the change is that the dictionary definition of cardinality is "the number of elements in a particular set or other grouping" (OED). According to this the data modeling usage is actually wrong. In the excellent UML Reference Manual, Rumbaugh defines multiplicity as "A specification of the range of allowable cardinality values - the size - that a set may assume". The UML uses multiplicity in various places, for a property (association or attribute) and also to show the multiplicity of parts in a composite structure. It's formally defined as a lower and upper bound. An association (the UML equivalent to a relationship in data modeling circles) has a multiplicity for each direction.

Source

Solution 3

Simply put: a multiplicity is made up of a lower and an upper cardinality. A cardinality is how many elements are in a set. Thus, a multiplicity tells you the minimum and maximum allowed members of the set. They are not synonymous.

Solution 4

Thank you for the question and answers above.

Really got confused with those terms this morning (coffee did not help).

Given the example below:

0-1 ---------- 1-*

Multiplicities:

First multiplicity, for the left entity: 0-1

Second multiplicity, for the right entity: 1-*

Cardinalities for the first multiplicity:

Lower cardinality: 0

Upper cardinality: 1

Cardinalities for the second multiplicity:

Lower cardinality: 1

Upper cardinality: *

Solution 5

The Multiplicity is the constraint on the collection of the association objects whereas the Cardinality is the count of the objects that are in collection.

The multiplicity is actually the constraint on cardinality.

Share:
53,250

Related videos on Youtube

Sam Shiles
Author by

Sam Shiles

Updated on July 09, 2022

Comments

  • Sam Shiles
    Sam Shiles almost 2 years

    When talking about data models and databases, the term Cardinality is often used to describe the number of allowed elements in a given set.

    UML often refers to the same property as Multiplicity.

    Is there any difference between these two terms or are they synonymous?

  • Geert Bellekens
    Geert Bellekens over 6 years
    This is almost (cardinatility is not the upper limit, it is the actual number of elements present in a collection) a correct answer, but it lacks a bit of content and references. See UML 2.5 § 7.5.3.2 Multiplicities
  • JATIN AHUJA
    JATIN AHUJA over 6 years
    Thank you sir ,I was a bit confused and now I corrected my answer :-)
  • agenis
    agenis over 4 years
    beware that this representation is for UML. For like Sql relation representations, we place the multiplicity tupple at the beginning of the arrow
  • Pablo Pazos
    Pablo Pazos almost 3 years
    @agenis you are referring to Entity-Relatioship Model, which is different from Object Oriented Model.
  • Bart Hofland
    Bart Hofland about 2 years
    @agenis . . . As far as I understand, the multiplicity is put at the end of an association (with regard to the navigation direction) in other visual diagramming methods as well. Wikipedia has a nice image that compares various notations.
  • qwerty_so
    qwerty_so about 2 years
    Fowler might be speaking of old UML versions. UML 2.5 p. 33 explains the term well enough.