Question: Consider a database with the following schema. LIKES(drinker,beer); /* key: all columns */ FREQUENTS(drinker,pub); /* key: all columns */ SERVES(pub,beer,cost); /* key: (pub,beer) */ Write

Consider a database with the following schema. LIKES(drinker,beer); /* key: all columns */ FREQUENTS(drinker,pub); /* key: all columns */ SERVES(pub,beer,cost); /* key: (pub,beer) */ Write the following queries in relational algebra. You can use the math notation (greek letters sigma, pi, etc.) or the ASCii "linear" notation I used in class. In order to make things more clear, please use intermediate results defined with the assignment notation in the algebra: R(a,b) := . Try to give meaningful names for R. (The textbook sometimes does this using the rho operator as rho( R(a,b),  ) Consider the following queries: 1. Find pubs that serve some beer that Joe likes. 2. Find drinkers who frequent pubs where they can get a drink for less than $3 3. Find drinkers who like at least one expensive (over $8) beer that Joe likes. 4. Find drinkers who like some beers but do not frequent any pubs. 5. Find drinkers who frequent pubs that serve either Stella Artois or Molsons. 6. Find pubs that serve every beer that Joe likes. 7. Find all drinkers who frequent a pub that serves at least 2 beers they like, and one of them for at most $3. (i) Give the numbers of the non-monotone queries (and give an example of why you think they are non-monotone) (ii) Write relational algebra queries for all of the above (iii) Also, write Datalog queries for 1, 2, 4, 6. Again, use intermediate predicates in Datalog to make things clearer. 

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!