Suggested Solution of ERD Advanced Practices
Suggested Solution of ERD Advanced Practices
This is Kit :)
@ COMP3278
Introduction to Database Management Systems
Let me share with you how I
create the ERD for the question,
and the process of thinking when I
am working on this question
2
Cinemas
Question 1
The system
should show a
list of Cinemas
3
tel
address
photo
Cinemas
name
4
tel
address
photo
Cinemas shows Movies
name
5
tel poster name day
address movieID month
openDate
year
photo
Cinemas shows Movies genre
name length
Poster SPIDER-MAN_NO_WAY_HOME_1.png
Movie name Spider-man: No Way Home
Genre Action / Adventure
Opening Date 2021-12-17
Length 148
6
tel poster name day
address movieID month
openDate
year
photo
Cinemas shows Movies genre
name length
has
houseID
Houses
Each Cinema has a number of Houses. The
houses in a cinema are numbered with a
houseID that is unique within a cinema.
7
tel poster name day
address movieID month
openDate
year
photo
Cinemas shows Movies genre
name length
has has
houseID
Show
Houses
records
showRecordID
price daytime
type
name length
has has
houseID
Show
Houses in
records
showRecordID
price daytime
type
name length
has has
houseID
Show
Houses in
records
floorPlan
showRecordID
price daytime
type
name length
has has
houseID
Show
Houses in
records
floorPlan
showRecordID
price daytime
has
type
Seats books
seatNumber
The system keeps track of the Bookings made by Customers.
row Those seats that are already booked will be marked as “X”. 12
col
tel poster name day
address movieID month
openDate
year
photo
Cinemas shows Movies genre
Customers
name length
customerID
has has
makes
houseID
Show
Houses in books Bookings
records
floorPlan
showRecordID bookingID
price daytime
has
type
Seats books
seatNumber
Now let’s transform the ERD to relational tables!
row col 13
Cinemas(name, photo, address, tel)
Foreign key: None
Customers(customerID)
Foreign key: None
We first create tables for the Entity sets.
For weak entity sets, we get the primary
Bookings(bookingID)
key of the identifying string entity set to
Foreign key: None
form their primary key.
14
tel poster name day
address movieID month
openDate
year
photo
Cinemas shows Movies genre
Customers
name length
customerID
has has
makes
houseID
Show
Houses in books Bookings
records
floorPlan
showRecordID bookingID
price daytime
has
type
Seats books
seatNumber
row col 15
Cinemas(name, photo, address, tel)
Foreign key: None
Seats books
seatNumber
row col 17
Cinemas(name, photo, address, tel)
Foreign key: None
Seats books
seatNumber
row col 19
Cinemas(name, photo, address, tel)
Foreign key: None
Customers(customerID)
Foreign key: None
Bookings(bookingID)
Foreign key: None
Seats books
seatNumber
row col 21
Cinemas(name, photo, address, tel)
Foreign key: None
Customers(customerID)
Foreign key: None
Bookings(bookingID)
Foreign key: None
Seats books
seatNumber
row col 23
Cinemas(name, photo, address, tel)
Foreign key: None
Seats books
seatNumber
row col 25
Cinemas(name, photo, address, tel)
Foreign key: None
Customers(customerID)
Foreign key: None
Bookings(bookingID, customerID)
Foreign key: customerID reference Customers(customerID)
Seats books
seatNumber
row col 27
Cinemas(name, photo, address, tel)
Foreign key: None
Customers(customerID)
Foreign key: None
Seats books
seatNumber
row col 29
Cinemas(name, photo, address, tel)
Foreign key: None
Customers(customerID)
Foreign key: None
Question 2
The system should
show a list of
Researcheres
31
researcherID
researcherName Researcher
ISA
industrial institutional
Researcher Researcher
researcherName Researcher
ISA
industrial institutional
Researcher Researcher
ISA
industrial institutional
Researcher Researcher
35
researcherID paperID
36
Each researcher is expert in one or
several research area(s).
Each paper is addressing one or
several research area(s).
areaName
Research
area
areaID
expertizes
addresses
in
researcherID paperID
researcherID paperID
has
Sub area Main area
areaName
Research focuses
Conference
area on
areaID
expertizes
addresses publishes
in
researcherID paperID
researcherID paperID
conference
has conferenceID
Name
Sub area Main area day
areaName
Research focuses
Conference date month
area on
areaID
year
expertizes
addresses publishes
in
researcherID paperID
42
conference
has conferenceID
Name
Sub area Main area day
areaName
Research focuses
Conference date month
area on
areaID
year
expertizes
addresses publishes
in
researcherID paperID
43
Table columns
1 Conference conferenceID, conferenceName, date.day, date.month, date.year
Foreign key: None
2 Paper conferenceID, paperID, paperTitle
Foreign key: conferenceID references Conference(conferenceID)
3 Researcher researcherID, researcherName
Foreign key: None
4 ResearchArea areaID, areaName
Foreign key: None
5 IndustrialResearcher researcherID, company
Foreign key: researcherID referencing Researcher(researcherID)
6 InstitutionalResearcher researcherID, researcherTitle, institution
Foreign key: researcherID referencing Researcher(researcherID)
44
conference
has conferenceID
Name
Sub area Main area day
areaName
Research focuses
Conference date month
area on
areaID
year
expertizes
addresses publishes
in
researcherID paperID
45
Table columns
1 Conference conferenceID, conferenceName, date.day, date.month, date.year
Foreign key: None
2 Paper conferenceID, paperID, paperTitle
Foreign key: conferenceID references Conference(conferenceID)
3 Researcher researcherID, researcherName
Foreign key: None
4 ResearchArea areaID, areaName
Foreign key: None
5 IndustrialResearcher researcherID, company
Foreign key: researcherID referencing Researcher(researcherID)
6 InstitutionalResearcher researcherID, researcherTitle, institution
Foreign key: researcherID referencing Researcher(researcherID)
7 ConferenceFocusOnResearchArea conferenceID, areaID
Foreign key: conferenceID references Conference(conferenceID)
areaID references ResearchArea(areaID)
46
conference
has conferenceID
Name
Sub area Main area day
areaName
Research focuses
Conference date month
area on
areaID
year
expertizes
addresses publishes
in
researcherID paperID
47
Table columns
1 Conference conferenceID, conferenceName, date.day, date.month, date.year
Foreign key: None
2 Paper conferenceID, paperID, paperTitle
Foreign key: conferenceID references Conference(conferenceID)
3 Researcher researcherID, researcherName
Foreign key: None
4 ResearchArea areaID, areaName
Foreign key: None
5 IndustrialResearcher researcherID, company
Foreign key: researcherID referencing Researcher(researcherID)
6 InstitutionalResearcher researcherID, researcherTitle, institution
Foreign key: researcherID referencing Researcher(researcherID)
7 ConferenceFocusOnResearchArea conferenceID, areaID
Foreign key: conferenceID references Conference(conferenceID)
areaID references ResearchArea(areaID)
8 PaperAddressResearchArea conferenceID, paperID, areaID
Foreign key: (conferenceID, paperID) references Paper(conferenceID,paperID)
areaID references ResearchArea(areaID)
48
conference
has conferenceID
Name
Sub area Main area day
areaName
Research focuses
Conference date month
area on
areaID
year
expertizes
addresses publishes
in
researcherID paperID
49
Table columns
1 Conference conferenceID, conferenceName, date.day, date.month, date.year
Foreign key: None
2 Paper conferenceID, paperID, paperTitle
Foreign key: conferenceID references Conference(conferenceID)
3 Researcher researcherID, researcherName
Foreign key: None
4 ResearchArea areaID, areaName
Foreign key: None
5 IndustrialResearcher researcherID, company
Foreign key: researcherID referencing Researcher(researcherID)
6 InstitutionalResearcher researcherID, researcherTitle, institution
Foreign key: researcherID referencing Researcher(researcherID)
7 ConferenceFocusOnResearchArea conferenceID, areaID
Foreign key: conferenceID references Conference(conferenceID)
areaID references ResearchArea(areaID)
8 PaperAddressResearchArea conferenceID, paperID, areaID
Foreign key: (conferenceID, paperID) references Paper(conferenceID,paperID)
areaID references ResearchArea(areaID)
9 ResearcherExpertizesInResearchArea researcherID, areaID
Foreign key: researcherID references Researcher(researcherID)
areaID references ResearchArea(areaID)
50
conference
has conferenceID
Name
Sub area Main area day
areaName
Research focuses
Conference date month
area on
areaID
year
expertizes
addresses publishes
in
researcherID paperID
51
Table columns
1 Conference conferenceID, conferenceName, date.day, date.month, date.year
Foreign key: None
2 Paper conferenceID, paperID, paperTitle
Foreign key: conferenceID references Conference(conferenceID)
3 Researcher researcherID, researcherName
Foreign key: None
4 ResearchArea areaID, areaName
Foreign key: None
5 IndustrialResearcher researcherID, company
Foreign key: researcherID referencing Researcher(researcherID)
6 InstitutionalResearcher researcherID, researcherTitle, institution
Foreign key: researcherID referencing Researcher(researcherID)
7 ConferenceFocusOnResearchArea conferenceID, areaID
Foreign key: conferenceID references Conference(conferenceID)
areaID references ResearchArea(areaID)
8 PaperAddressResearchArea conferenceID, paperID, areaID
Foreign key: (conferenceID, paperID) references Paper(conferenceID,paperID)
areaID references ResearchArea(areaID)
9 ResearcherExpertizesInResearchArea researcherID, areaID
Foreign key: researcherID references Researcher(researcherID)
areaID references ResearchArea(areaID)
10 ResearcherPublishesPaper researcherID, conferenceID, paperID
Foreign key: researcherID references Researcher(researcherID)
(conferenceID, paperID) references Paper(conferenceID,paperID)
52
conference
has conferenceID
Name
Sub area Main area day
areaName
Research focuses
Conference date month
area on
areaID
year
expertizes
addresses publishes
in
researcherID paperID
53
Table columns
1 Conference conferenceID, conferenceName, date.day, date.month, date.year
Foreign key: None
2 Paper conferenceID, paperID, paperTitle
Foreign key: conferenceID references Conference(conferenceID)
3 Researcher researcherID, researcherName
Foreign key: None
4 ResearchArea areaID, areaName
Foreign key: None
5 IndustrialResearcher researcherID, company
Foreign key: researcherID referencing Researcher(researcherID)
6 InstitutionalResearcher researcherID, researcherTitle, institution
Foreign key: researcherID referencing Researcher(researcherID)
7 ConferenceFocusOnResearchArea conferenceID, areaID
Foreign key: conferenceID references Conference(conferenceID)
areaID references ResearchArea(areaID)
8 PaperAddressResearchArea conferenceID, paperID, areaID
Foreign key: (conferenceID, paperID) references Paper(conferenceID,paperID)
areaID references ResearchArea(areaID)
9 ResearcherExpertizesInResearchArea researcherID, areaID
Foreign key: researcherID references Researcher(researcherID)
areaID references ResearchArea(areaID)
10 ResearcherPublishesPaper researcherID, conferenceID, paperID
Foreign key: researcherID references Researcher(researcherID)
(conferenceID, paperID) references Paper(conferenceID,paperID)
11 InstitutionalResearcherReviewsPaper researcherID, conferenceID, paperID, report
Foreign key: researcherID references InstitutionalResearcher(researcherID)
(conferenceID, paperID) references Paper(conferenceID,paperID)
54
conference
has conferenceID
Name
Sub area Main area day
areaName
Research focuses
Conference date month
area on
areaID
year
expertizes
addresses publishes
in
researcherID paperID
55
Table columns
12 MainAreaHasSubArea mainArea.areaID, subArea.areaID
Foreign key: mainArea.areaID references ResearchArea(areaID)
subArea.areaID references ResearchArea(areaID)
13 PaperCitesPaper referrer.conferenceID, referrer.paperID, referee.ConferenceID, referee.PaperID
Foreign key: (referrer.conferenceID, referrer.paperID) references Paper(conferenceID,paperID)
(referee.ConferenceID, referee.PaperID) references Paper(conferenceID,paperID)
56
userID name
balance
User
Question 3
userID name
balance
friend User
balance
friend User
transactionID
amount
date
make Transaction
balance
friend User
transactionID
amount
date
make Transaction
balance
transactionID
amount
date
balance
transactionID
amount
date
Each merchant can have zero or many location
MobileSpots.
make Transaction
Each MobileSpot consists of spotID and
location of the spot. MobileSpot
SpotID is unique within a merchant only. ISA disjoint
spotId
P2P transfer Payment
userID name merchantID name
balance
transactionID
amount
date
location
make Transaction
Each payment transaction must be made MobileSpot
to one mobile spot.
The system allows a new mobile spot to ISA disjoint
have no payment transactions made. spotId
P2P transfer Payment
paymentTo
userID name merchantID name
balance
transactionID
amount
date
Each P2P transaction must location
transfer to one user. make Transaction
The system allows a user to
have no P2P transactions MobileSpot
transferred to that user. ISA disjoint
spotId
transfer to P2P transfer Payment
paymentTo
userID name merchantID name
cardInfo
transactionID
amount
date
create location
make Transaction
envelopeId MobileSpot
ISA disjoint
Red envelope
spotId
transfer to P2P transfer Payment
amount
transactionID
amount
date
create location
make Transaction
envelopeId MobileSpot
ISA disjoint
Red envelope
spotId
transfer to P2P transfer Payment
amount
receivedThrough paymentTo
userID name merchantID name
cardInfo
transactionID
amount
date
create location
make Transaction
envelopeId MobileSpot
ISA disjoint
Red envelope
spotId
transfer to P2P transfer Payment
balance
receivedThrough paymentTo
End :)
Feel free to contact Kit ([email protected]) and our TAs if you need help.
68
We are always happy to answer your questions! :-)