0% found this document useful (0 votes)
271 views19 pages

ERD Optionality: OOD Inge Powell

The document discusses how to represent optionality in entity relationship diagrams (ERDs). Optionality indicates whether relationships between entities are mandatory or optional. In ERDs, optionality is shown through symbols placed next to the cardinality (lines or crows feet) that connect two entities. A vertical line indicates a mandatory relationship, while a hollow circle represents an optional relationship. The document provides examples of different types of optionality in relationships.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
271 views19 pages

ERD Optionality: OOD Inge Powell

The document discusses how to represent optionality in entity relationship diagrams (ERDs). Optionality indicates whether relationships between entities are mandatory or optional. In ERDs, optionality is shown through symbols placed next to the cardinality (lines or crows feet) that connect two entities. A vertical line indicates a mandatory relationship, while a hollow circle represents an optional relationship. The document provides examples of different types of optionality in relationships.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 19

ERD Optionality

OOD Inge Powell


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.
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.
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 Entity B

 Butis does not state whether this is a


mandatory or optional relationship?
ERD Optionality

 The optionality is shown inside the


cardinality.
Cardinality

Entity A Entity B

Optionality
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
ERD Optionality
 There are several types. Consider the optionality of
the next few examples when combined with
cardinality.

Entity Entity

At least one entity. One and only one entity.

Entity Entity

None or one entity. May be none or one or


more than one entity.
ERD Optionality
 Here are some Mandatory examples..

Customer Order

 One Customer has made at least one order.


Customer Order

 One Order is for Only One Customer


ERD Optionality
 Here are some Optional examples..
Protected
Reptile
Species

 One Protected Species record may be for


none, one or many kept reptiles.

Protected
Reptile
Species

 One Reptile may or may not have a protected


species record.
ERD Optionality
 Here are some Mixed examples.

Category Product

 One Category may have none, one or many


Products.

Category Product

 One Product will have one and only one


Category.
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.
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
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
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 Service
Service
PK
PKCarID
CarID PK
PKServiceID
ServiceID
Make
Make Date
Date
Model
Model Garage
Garage
EngineCC
EngineCC FK CarID
FK CarID
ERD Optionality
 Look at all of your relationships in turn.

Entity A Entity B

 This 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.
ERD Optionality

 Entity A DOES have to have at least 1 Entity B

Entity A Entity B

 Entity A does NOT have to have an Entity B.

Entity A Entity B
ERD Optionality
 Letssay you decided that it could be optional.
 Now look at the reverse relationship.

Entity A Entity B

 Ask 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.
ERD Optionality

 Entity B DOES have to have an Entity A

Entity A Entity B

 Entity B does NOT have to have an Entity A.

Entity A Entity B
Erd Optionality
 Visiowill pick up the relationship types from
the database structure.
???
?
Customer Order

 If 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.

You might also like