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

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 (52k points)
edited by | 1.8k views

3 Answers

+33 votes
Best answer

Answer is 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  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 Boss (41k points)
edited 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


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. 


(A) The query will be "Select X from Adj(X,Y) where Y='A'  "

here we are finding all nodes adjacent to A

–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 Boss (33.8k 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
what if the question is asking cycle of length of 100? Is it also constant?
–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 Loyal (8.1k points)
Can we compare like this ..i.e time complexity with relational algebra of constant length...?
What does a constant length query mean in this question ?

Related questions

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
49,535 questions
54,117 answers
71,028 users