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
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…