The document discusses how to represent optionality in entity relationship diagrams (ERDs). It explains that ERDs typically show cardinality but not whether relationships are mandatory or optional. To denote optionality, a vertical line or hollow circle is placed next to the cardinality. Examples show mandatory relationships require a match, while optional relationships may have no match. The document also provides tips on determining optionality and how tools like Visio represent it.
2. ERD Optionality
When
we show relationships between
tables as well as the cardinality we also
need to show the optionality.
Depending on the data we are storing
there are several options to choose
from.
If using Visio to create a diagram, it
takes its initial value from the database
store.
3. ERD Optionality
The
cardinality shows what type of relation
ship, (One to One or One to Many etc)
But is does not state whether this is a
mandatory or optional relationship.
A
Mandatory relationship is where there must
be at least one matching record in each entity.
An Optional relationship is where there may
or may not be a matching record in each
entity.
4. ERD Optionality
The
relationship is shown with a
connecting line between the entities.
Entity A
Entity B
The
cardinality is shown by the use of
crows feet or lines.
Entity A
But
Entity B
is does not state whether this is a
mandatory or optional relationship?
6. ERD Optionality
A Mandatory relationship is shown with a
vertical line next to the cardinality. (Must
be at least one Entity A)
Entity A
An
Optional relationship is shown with a
hollow circle next to the cardinality
(There maybe 0 to many of Entity B
Entity B
7. ERD Optionality
There are several types. Consider the optionality of
the next few examples when combined with
cardinality.
Entity
At least one entity.
Entity
None or one entity.
Entity
One and only one entity.
Entity
May be none or one or
more than one entity.
8. ERD Optionality
Here
are some Mandatory examples..
Customer
One
Customer has made at least one order.
Customer
One
Order
Order
Order is for Only One Customer
9. ERD Optionality
Here
are some Optional examples..
Protected
Species
Reptile
One
Protected Species record may be for
none, one or many kept reptiles.
Protected
Species
One
Reptile
Reptile may or may not have a protected
species record.
10. ERD Optionality
Here
are some Mixed examples.
Category
Product
One
Category may have none, one or many
Products.
Category
One
Product
Product will have one and only one
Category.
11. ERD Optionality
Very rarely there is a optional mandatory relationship.
This is usually where there are several tables
concerned. This is a mutually exclusive relationship.
Bus
MOT
Minibus
A Bus will have one or more MOT records.
A Minibus will have one or more MOT records.
An MOT record MUST be for either a bus or a
minibus. It must be for at least One of the entities.
12. ERD Optionality
Scenario:
A
small hire car firm has several cars.
The company ensures that the cars they
buy have an initial service.
Each car is serviced regularly.
Records are kept of each car and each
service.
Car
Service
13. ERD Optionality
In
the scenario, there will always be at
least one service record for a car.
If a service has been recorded then it
must have a matching car record.
This
is a Mandatory relationship.
Will have at least one
Car
Service
Will have a matching car
14. Erd Optionality
We
add in the optionality.
Car
Service
One
Car has one or more Service records.
One Service record is for only one Car record.
The records might be held like this:
Car
Car
PK CarID
PK CarID
Make
Make
Model
Model
EngineCC
EngineCC
Service
Service
PK ServiceID
PK ServiceID
Date
Date
Garage
Garage
FK CarID
FK CarID
15. ERD Optionality
Look
at all of your relationships in turn.
Entity A
This
Entity B
is a ‘One to Many’ relationship.
Ask yourself, Does Entity A, HAVE to have an
Entity B?
If it does, then place a single vertical line next
to the crows feet of Entity B.
If it does not, then place a circle by the crows
feet of Entity B.
16. ERD Optionality
Entity
A DOES have to have at least 1 Entity B
Entity A
Entity
Entity B
A does NOT have to have an Entity B.
Entity A
Entity B
17. ERD Optionality
Lets
say you decided that it could be optional.
Now look at the reverse relationship.
Entity A
Ask
Entity B
yourself, Does Entity B, HAVE to have an
Entity A?
If it does, then place another vertical line next
to the cardinality of Entity A.
If it does not, then place a circle by Entity A.
18. ERD Optionality
Entity
B DOES have to have an Entity A
Entity A
Entity
Entity B
B does NOT have to have an Entity A.
Entity A
Entity B
19. Erd Optionality
Visio
will pick up the relationship types from
the database structure.
Customer
If
?
??
?
Order
it is not showing the optionality correctly, then
the issue is in the database relationships.
A One To Many relationship will give an optional
link as default.
You must set Referential Integrity to true and
correctly set the Join type.