Part 1 Question 1.Β
Β
- Get each postβs pid and the creatorβs uid.
πππ π‘πΌππ (πππ, π’ππ): = π±πππ,π’ππ πππ π‘
- Get each storyβs pid and the creatorβs uid.
ππ‘πππ¦πΌππ (πππ, π’ππ): = Ξ π ππ,π’ππππ‘πππ¦
- Get the likerβs uid and the post creatorβs uid.
πππ π‘πππππ(πππππ, π’ππ) βΆ= Ξ πππππ,π’ππ (πΏππππ β πππ π‘πΌππ )
- Get the viewerβs uid and the story creatorβs uid.
ππ‘πππ¦ππππ€ππ(π£πππ€ππ, π’ππ): = Ξ π£πππ€ππππ,π’ππ (πππ€ β ππ‘πππ¦πΌππ )
Β
- Get all likers and viewersβ uid and the corresponding creatorsβ uid
ππππππππ’πππ(ππππππ€ππ, ππππππ€ππ): = Ξ π.πππππ,π.π’ππ(ππ.πππππ=π .π£πππ€ππππ (ππ πππ π‘πππππ Γ
ππ Β ππ‘πππ¦ππππ€ππ))
Β
- Get the uid of the likers and viewers who have liked or viewed a person they do not follow.
πππ‘πππ‘πβ(π’ππ) βΆ= Ξ ππππππ€ππΒ (ππππππππ’πππ β (Ξ ππππππ€ππ,ππππππ€ππ (ππππππππ’πππ β
πΉπππππ€π )))
Β
- Get the uid that matches Q1βs requirement.
πππ‘πβ(π’ππ) βΆ= Ξ π’ππ ππ ππ β πππ‘πππ‘πβ
Β
- Get the description information of the uids in Match.
Then the requested set can be expressed as follow:
π ππ π’ππ‘(π’π ππππππ, πππ πππππ‘πππ) βΆ= ππ’ππ,ππππ’π‘Β (πππ‘πβ β ππ ππ)
Β
Β
Question 2.
Β
- Get all the tags with their pids and dates.
πππ π‘πππ(πππ, π‘ππ, π€βππ): = Ξ πππ,π‘ππ,π€βππ(πππ π‘ β π»ππ βπ‘ππ)
Β
- Get tags with same tag names, same dates but different pids.
Then the requested set can be expressed as follow:
π ππ π’ππ‘(π‘ππ) βΆ= Ξ π1.π‘ππ(ππ1.π‘ππ=π2.π‘ππ β§ π1.π€βππ=π2.π€βππ β§ π1.πππβ π2.πππΒ (ππ1πππ π‘πππ β
ππ2 πππ π‘πππ))
Β
Β
Question 3.Β
Β
- Get the uid of all reciprocal users.
π πππππππππ(π’π ππ1, π’π ππ2).ππππππ€ππ,πΉ1.ππππππ€ππ
(ππΉ1.ππππππ€ππ=πΉ2.ππππππ€ππ.ππππππ€ππ=πΉ2.ππππππ€ππ.ππππππ€ππ<πΉ1.ππππππ€ππ(ππΉ1 πΉπππππ€π
πΉπππππ€π ))
- Get the first reciprocal userβs followers.
πΉπππππ€1 (π’π ππ1, π’π ππ2, ππππππ€ππ),π’π ππ2,ππππππ€ππ(ππ’π ππ1=ππππππ€ππ (ππππππππππ Γ πΉπππππ€π ))
Β
- Get the second reciprocal userβs followers.
πΉπππππ€2 (π’π ππ1, π’π ππ2, ππππππ€ππ),π’π ππ2,ππππππ€ππ(ππ’π ππ2=ππππππ€ππ (ππππππππππ Γ πΉπππππ€π ))
Β
- Get the uncommon followers (only follow user1 or only follow user2).
ππππππππ (π’π ππ1, π’π ππ2, ππππππ€ππ) (πππππππ€ ππππππ€2) β (πππππππ€ ππππππ€2)
Β
- Get the names and emails of these uncommon followers.
Then the requested set can be expressed as follow:
π ππ π’ππ‘ (π’π ππ1, π’π ππ2, ππππππ€ππ, ππππ, πππππ)
Ξ π’π ππ1,π’π ππ2,ππππππ€ππ,ππππ,πππππ(πππππππ€ππ(π’πππππππ Γ π’π ππ))
Β
Β
Question 4.
Cannot be expressed. This is possible by SQL but not the mere use of the operators listed above.
Β
Β
Question 5.Β
π ππππ(π’π ππ1, π’π ππ2): =
Ξ πΉ1.ππππππ€ππ,πΉ1.ππππππ€ππ(ππΉ1.ππππππ€ππ=πΉ2.ππππππ€ππ.ππππππ€ππ=πΉ2.ππππππ€ππ(ππΉ1 πΉπππππ€π Γ
ππΉ2 πΉπππππ€π ))
Β
π΄πππΏππππ ππ(πππππ, πππππ, πππ): = Ξ πΏππππ .πππππ,πππ π‘.π’ππ,πππ π‘.πππ(πππ π‘ Β πΏππππ )
Β
π πππΏππππ ππ(πππππ, πππππ, πππ): =
Ξ π΄πππΏππππ ππ.πππππ,π ππππ.π’π ππ2,πππππ΄πππΏππππ ππ.πππππ=π ππππ.π’π ππ1(π΄πππΏππππ ππ Γ π ππππ)
Β
πππ‘π πππΏπππππππ π‘(πππ π‘ππ, πππ): = Ξ π’ππ,ππππππ π‘ β Ξ π’π ππ2,ππππ πππΏππππ ππΒ πππ‘π΅πππ(π’π ππ1, π’π ππ2): =
Ξ π’π ππ1,π’π ππ2ππππ‘π πππΏπππππππ π‘.πππ π‘ππ=π ππππ.π’π πππππ‘π πππΏπππππππ π‘.πππ π‘ππ=π’π ππ2(πππ‘π πππΏπππππππ π‘ π ππππ)
Β
π΅ππππππππ‘πβππ (π’π ππ1, π’π ππ2): = π ππππ β πππ‘π΅πππ
Β
πΉπππππ€ππππ(ππππππ€ππ, ππππππ€ππ1, ππππππ€ππ2): = ππΉ1.ππππππ€ππ=πΉ2.ππππππ€ππ(ππΉ1πΉπππππ€ Γ
ππΉ2πΉπππππ€)
Then the requested set can be expressed as follow:
π ππ π’ππ‘ (π’π ππ):
= Ξ πΉ1.ππππππ€ππππΉπππππ€ππππ.ππππππ€ππ1=π΅ππππππππ‘πβππ.π’π πππΉπππππ€ππππ.ππππππ€ππ2=π΅ππππππππ‘πβππ.π’π ππ2(πΉπππππ€ππππ
Γ π΅ππππππππ‘πβππ)
Β
Β
Question 6.Β
πΉπππππ€πππππ π‘ πππππππ€ππ=π’ππ(πΉπππππ€π Γ πππ π‘)
Β
πππ‘πππ π‘π πππππ‘πΉπππππ€πππππ π‘ Γ ππ2πΉπππππ€πππππ π‘)
Β
πππ π‘π πππππ‘.ππππππ€ππ,π1.ππππππ€ππ,π1.π€βππ(ππ1πΉπππππ€πππππ π‘ Γ ππ2πΉπππππ€πππππ π‘ β
πππ‘πππ π‘π πππππ‘)
Β
Then the request set can be expressed as follow:
π ππ π’ππ‘(π’π ππ, ππππππ€ππ, πππππ, π‘πππ): =
Ξ ππππππ€ππ,ππππππ€ππ,πππππ,π€βππππππ π‘π πππππ‘.ππππππ€ππ=ππ ππ.π’ππ(πππ π‘π πππππ‘ Γ ππ ππ)
Β
Β
Question 7.
Cannot be expressed.
Β
Question 8.
Β
πππ‘πΏππ‘ππ π‘ (πΆππππππ‘ππ, πππ): =
Ξ πΆ2.πππππππ‘ππ,πΆ2.πππππΆ1.πππππππ‘ππ=πΆ2.πππππππ‘πππΆππππππ‘ Γ
ππΆ2πΆππππππ‘)
Β
πππ‘πΈππππππ π‘ (πΆππππππ‘ππ, πππ): =
Ξ πΆ2.πππππππ‘ππ,πΆ2.πππππΆ1.πππππππ‘ππ=πΆ2.πππππππ‘πππΆππππππ‘ Γ
ππΆ2πΆππππππ‘)
Β
πΏππ‘ππ π‘(π’ππ, πππ): = Ξ πππππππ‘ππ,ππππΆππππππ‘ β πππ‘πΏππ‘ππ π‘
Β
πΈππππππ π‘(π’ππ, πππ): = Ξ πππππππ‘ππ,ππππΆππππππ‘ β πππ‘πΈππππππ π‘
Then the requested set can be expressed as follow:
π ππ π’ππ‘(π’ππ, πππππππ π‘, πππ‘ππ π‘): = Ξ π’ππ,πΈππππππ π‘.πππ,πΏππ‘ππ π‘.πππ(πΈππππππ π‘ β πΏππ‘ππ π‘)
Β
Β
Β
Β
Β
Β
Β
Part 2
- πππ‘πππ¦.π€βππ<πππ€.π€βππ(ππ‘πππ¦ β πππ€) = β
- ππ1.π’ππ=π2.π’ππ βπ1.ππ’πππππ‘=βyesββ§ π2.ππ’πππππ‘=βπ¦ππ β(ππ1ππ‘πππ¦ β ππ2ππ‘πππ¦) = β
Β



