retagged by
717 views
2 votes
2 votes

Let Depositor and Lender be relational schemas such that

Depositor = {a/c number, cname , balance, branch}  &  Lender ={loan_number ,cname, amount , branch}. 

Now, consider the following queries on the database:

Query $1$ : $( t \mid \exists D \in \text{ Depositor }( t.cname = D.cname ) \wedge \exists L \in Lender ( t.cname = L.cname ) ) $

Query $2$ : $( ( \pi \text{ cname Depositor }) \cap ( \pi \text{ cname  Lender }) ) $

Query $3$ : $\text{Select cname from Depositor d where exists ( select * from Lender } \mid \text{ where } \mid \cdot \text{cname = d.cname )}$ ;

 

Which of the following is a FALSE statement?

  1. Query 1 and Query 2 give same result.
  2. Query 2 and Query 3 give same result.
  3. Query 1 and Query 3 give same result.
  4. Query 1, Query 2 and Query 3 give different results.
retagged by

1 Answer

Best answer
3 votes
3 votes

I want to modify the question as Which of the following is a true statement ?

if Query 1 : ( t | ∃D ∈Depositor ( t.cname = D.cname ) ∧  ∃L ∈Lender ( t.cname = L.cname ) ) 

Query 2 : ( ( πcname Depositor )  ∩ ( πcname  Lender ) ) 

Query 3 : Select cname from Depositor d where exists ( select * from Lender l where l.cname = d.cname ) ;

then answer is all three are producing different results why because first query is returning whole tuple therefore first query results different from query2 and query3.

query2 doesn't produce duplicate values where as query3 produce duplicate values....

if Query 1 : ( t.name | ∃D ∈Depositor ( t.cname = D.cname ) ∧  ∃L ∈Lender ( t.cname = L.cname ) ) 

Query 2 : ( ( πcname Depositor )  ∩ ( πcname  Lender ) ) 

Query 3 : Select cname from Depositor d where exists ( select * from Lender l where l.cname = d.cname ) ;

then answer is all Query 2 is producing different results form Query 1 and Query 3  why because  query 2 doesn't produce duplicate values.

query 3 produce duplicate values obvisiouly and query 1 is produce duplicate values why because resulting tuple of TRC is checked with each tuple in the given relation therefore if a duplicate name present in the relation (in two different tuples of relation) it should be printed

selected by
Answer:

Related questions

1 votes
1 votes
1 answer
2