Relational algebra problem

An illustration of Relational model concepts, ...

Image via Wikipedia

Have a relational database with the following tables

RESTAURANT(RT_ID, NAME, TYPE, LOCATION)
PROXIMITY(RT1_ID, RT2_ID, DISTANCE)
USER(U_ID, NAME, EMAIL)
REVIEW(U_ID, RT_ID, RT_DATE, RATING, COMMENT)

What’s the relational algebra for “name of any user who has never given Chez Brian a rating lower than 5″?

\Pi _{NAME} (USER) - \Pi _{NAME} ( \sigma _{RESTNAME='Chez\ Brian' \wedge RATING < 5}( \rho (RESTAURANT(NAME \rightarrow RESTNAME), RESTAURANT) \Join REVIEW) \Join USER)

Is this right?

About these ads

5 comments

  1. Pingback: Relational division again | cartesian product
  2. Pingback: Solving a relational query: part 1 | cartesian product
  3. Pingback: Solving a relational query: part 3 | cartesian product
  4. Pingback: Solving a relational query: part 5 | cartesian product
  5. Pingback: Distribution, commutation and association in database queries | cartesian product