## 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.