Question

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

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) := <rel-alg expression>. Try to give meaningful names
for R. (The textbook sometimes does this using the rho operator as
    rho(    R(a,b), <rel-alg expression> )


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) Also, write Datalog queries for 1, 2, 4, 6. Again, use
intermediate predicates in Datalog to make things clearer.
0 0
Add a comment Improve this question Transcribed image text
Answer #1

i)

.The queries in which there will not be any lose with the tuples when some other tuples get added it. This is said to be know

ii)

Consider the datalog queries for 1, 2, 4, 6 from the question. The following intermediate predicate queries in datalog are: :

[find ?drinker :where NOT[?! :LIKES/drinker=FREQUENT/drinker 4 It is same as first query since the serves table has not been

Add a comment
Know the answer?
Add Answer to:
Consider a database with the following schema. LIKES(drinker,beer); /* key: all columns */ FREQUENTS(drinker,pub); /* key:...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
  • Relational algebra pls. Appreciate it!(Queries are detailed) Consider the following relational database that stores information about...

    Relational algebra pls. Appreciate it!(Queries are detailed) Consider the following relational database that stores information about bars and customers: Drinker (name, address) Bar (name, address) Beer (name, brewer) Frequents (drinker, bar, times a week) Likes (drinker, beer) Serves (bar, beer, price) Write the following queries in relational algebra: (5 points) Find all drinkers who frequent only those bars that serve some beers they like. 5 points) Find all drinkers who frequent every bar that serves some beers they like (10...

  • Consider a database with the following schema. Return SQL code for the following queries.

    Consider a database with the following schema.BARS(name,license,city,phone,addr);BEERS(name,manf);DRINKERS(name,city,phone,addr);LIKES(drinker,beer); FREQUENTS(drinker,bar); SELLS(bar,beer,price); Return SQL code for the following queries.1.  Find all distinct drinkers whose phone numbers come from area code 917 and who like Budweiser or Bud (synonim!)2. What beers does Mike like?3. Which town has the most drinkers?4. What bars are frequented by drinkers from that town (3)?5. Provide all bars which serve beers that Mike likes6. Who likes the at least one same beer that Joe or Mike like?7.  All bars...

  • please answer 56789 CREATE TABLE ALLDRINKS(   /* All legal drinks */ DRINK       VARCHAR(30)   NOT NULL,  ...

    please answer 56789 CREATE TABLE ALLDRINKS(   /* All legal drinks */ DRINK       VARCHAR(30)   NOT NULL,   /* Drink name   */    CONSTRAINT DRINKNAME_PKEY PRIMARY KEY(DRINK) ); CREATE TABLE DRINKERS ( /* All drinkers */ DRINKER   VARCHAR(30)   NOT NULL,    CONSTRAINT DRINKERS_PKEY PRIMARY KEY (DRINKER)); CREATE TABLE LOCATED(   /* Pubs have locations */ PUB           VARCHAR(30)   NOT NULL,   /* Pub name   */ STREET       VARCHAR(30)   NOT NULL,   /* Street name   */ BLDG_NO       DECIMAL(4)   NOT NULL,   /* Building number   */...

ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT