The Gateway to Computer Science Excellence
First time here? Checkout the FAQ!
x
+24 votes
1k views

Suppose the adjacency relation of vertices in a graph is represented in a table Adj (X,Y). Which of the following queries cannot be expressed by a relational algebra expression of constant length?

  1. List all vertices adjacent to a given vertex
  2. List all vertices which have self loops
  3. List all vertices which belong to cycles of less than three vertices
  4. List all vertices reachable from a given vertex
asked in Databases by Veteran (68.8k points)
edited by | 1k views

3 Answers

+26 votes
Best answer
Answer :- D

(A) :-> This is simple select query query.

(B) -> This is simple query we need to check X=Y in where clause.

(C) :->  Cycle < 3 . Means cycle of length 1 & 2. Cycle of length 1 is easy., Same as self loop. Cycle of length 2 is is also not too hard to compute. Though it'll be little complex, will need to do like (X,Y) & (Y, X ) both present & X != Y,. We can do this with constant RA query.

(D) :-> This is most hard part. Here we need to find closure of vertices. This willl need kind of loop. If the graph is like skewed tree, our query must loop for O(N) Times. We can't do with constant length query here.

Answer :-> D
answered by Veteran (48.6k points)
selected by
Cycle of length 2 can be found by cartesian product of Adj tables renamed as A and B and then applying the select condition -> A.x=B.y and A.y=B.x. We can simply find cycles of length n with given n in input. Here, the number of cartesian products is based on input n.

But while looking for the all vertices connected to a given vertex, the number of cartesian products of the table depends on the number of vertices in the graph (number of tuples at max) in the table, which is unknown.
What is meant by Relational Algebra expression of constant length?
Constant length means it has specific value and value cannot go upto infinite

Here we can think of adjacency matrix

(D) is telling in it's row, if A to B=1

B to C=1

C to D=1

D to E=1 etc etc ,

but , there can be many path like for path A to D

we can go A-B-D

or A-E-D

or, A-C-B-D

etc

So, cannot measure in constant length

C wouldn't have been expressed had there been $n$ instead of $3$. Similarly, D could also be expressed had the number of vertices been given. 

–4 votes
Answer: C

RA will face problem when we calculate length of self loops as the query will keep on executing on one tuple itself.
answered by Veteran (35.9k points)
Till length 3 cycles can be found using relational algebra. D should be the answer here.
D is answer
Thanks @Akash and @Arjun sir for clearification
–5 votes
ans is C.

we can find A,B,D in O(n) time.

but we cannot find C in O(n)
answered by Boss (8.5k points)
Can we compare like this ..i.e time complexity with relational algebra of constant length...?


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

32,619 questions
39,267 answers
109,736 comments
36,653 users