The Gateway to Computer Science Excellence
First time here? Checkout the FAQ!
+27 votes

Let r and s be two relations over the relation schemes R and S respectively, and let A be an attribute in R.  The relational algebra expression $\sigma_{A=a}(r \bowtie s)$ is always equal to

  1. $\sigma_{A=a}(r)$
  2. $r$
  3. $\sigma_{A=a}(r) \bowtie s$
  4. None of the above
asked in Databases by Veteran (69k points)
retagged by | 980 views
here selection is based on constant value ,so its better to filter r first

,if selection is based on compaison of attributes it is better to first cartesian then apply condition
why this question tagged as difficult?

3 Answers

+22 votes
Best answer
ans is C.

C is just the better form of query, more execution friendly because requires less memory while joining. query, given in question takes more time and memory while joining.
answered by Boss (8.5k points)
selected by
thanks to early use of selection
If we consider answer C means, tables will be joined using column 'A'.There may be other similar columns in two tables.Suppose column 'B' is in both.

PLZ explain.
According to the equation in the question, we take a join of r and s and then select the rows where attribute A has the value a. In option C, we first apply the filter, i.e. select those rows from r where A attribute has value a and then apply join with s. Hence, C is optimised as the number of rows used in the join is less.
+7 votes
Answer is (C).

It is an efficient way to write the query to select first the tuples then cross with other relation.
answered by (153 points)
+4 votes
Answer is (C).

It is an efficient way to write the query.First apply selection condition to reduce the number of tuples then apply cross product.
answered by (153 points)

Quick search syntax
tags tag:apple
author user:martin
title title:apple
content content:apple
exclude -tag:apple
force match +apple
views views:100
score score:10
answers answers:2
is accepted isaccepted:true
is closed isclosed:true

34,170 questions
40,846 answers
39,703 users