Multiplicity
So far we hae only talked about one-to-one relationships (Each lamp has one bulb, each bulb is in one lamp), but there may of course be different multiplicities.
Important
- Multiplicity
for an attribute or association defines "how many" of this attribute or association there are. Multiplicity is given with as mininum number, dots ( .. ), and maximum number.
Multiplicity only takes whole numbers, no negatives!
Examples: A car usually has 4..5 wheels, a class has 0..75 students.
Shortcuts:
if both numbers are the same, the .. and the second number can be omitted, e.g. a twin-lamp has 2 bulbs
if the upper limit is unlimited a * is used: A city has 1..* houses, a novel has 100..* words
0..* can be written as *
Common multiplicities:
0: A class has never any of this attribute (not really used)
0..1: A class has none or one of the specified (e.g. a lamp has a bulb or has none, a person has a job or has none)
*: Any arbitray number of attributes: A file has any number of bytes
1: Exactly one: The hominoid has exactly one position
1..*: At least one, but any number: A poem has at least one word, but can be infinitely long.
If multiplicity is ommited, it usually means 1 or 0..1.
On attributes, multiplicity is shown in square brackets after the attribute, e.g. [2], [*], [1..4]
On associations, the multiplicy is shown without square brackets on the class that is multiplied:
Practice: assume a modern timer that can detonate up to 8 bombs at a time. Show the classes for Timer and Bomb and their association. You may use the shortened notation for the classes.