edited by
18,211 views
62 62 votes

Consider a relational table $r$ with sufficient number of records, having attributes $A_1, A_2, \dots ,A_n$ and let $1 \leq p \leq n$. Two queries $Q1$ and $Q2$ are given below.

  • $Q1: \pi_{A_1, \dots ,A_p} \left(\sigma_{A_p=c}\left(r\right)\right)$ where $c$ is a constant
  • $Q2: \pi_{A_1, \dots ,A_p} \left(\sigma_{c_1 \leq A_p \leq c_2}\left(r\right)\right)$ where $c_1$ and $c_2$ are constants.

The database can be configured to do ordered indexing on $A_p$ or hashing on $A_p$. Which of the following statements is TRUE?

  1. Ordered indexing will always outperform hashing for both queries
  2. Hashing will always outperform ordered indexing for both queries
  3. Hashing will outperform ordered indexing on $Q1$, but not on $Q2$
  4. Hashing will outperform ordered indexing on $Q2$, but not on $Q1$

6 Answers

Best answer
104 104 votes

(C) Hashing works well on the 'equal' queries, while ordered indexing works well better on range queries too. For ex consider B+ Tree, once you have searched a key in B+ tree , you can find range of values via the block pointers pointing to another block of values on the leaf node level.

edited by
6 6 votes

Hashing is generally better at retrieving records having a specified value of the key.

If range queries are common, ordered indices are to be preferred.

https://www.cse.iitb.ac.in/~sudarsha/db-book/slide-dir/ch12.pdf

5 5 votes

Typically, ordered indexing is used unless it is known in advance that range queries will be infrequent, in which case hashing is used like Q2:πA1,…,Ap(σc1≤Ap≤c2(r)) . Hash organizations are particularly useful for temporary files created during query processing, if lookups on a key value are required and no ranges queries will be performed like Q1:πA1,…,Ap(σAp=c(r)).

c is correct

1 1 vote

OPENING A DISCUSSION THREAD, please give your inputs.

Saying

Hashing works well on the 'equal' queries, while ordered indexing works well better on range queries too.

is acceptable if we know that the query is on the primary key. Isn’t it?

Because suppose if we have multiple rows with $A_{p=c}$, considering that $A_{p}$ is a non-key attribute then this is equivalent to ordering on a non-key attribute i.e. clustered indexing. Now if we have multiple rows with $A_{p=c}$ then it means that it is spread over multiple blocks of data, and in case of hashing this will lead to multiple block access.

Whereas clustered indexing on the non-key attribute $A_{p}$ will have O(log n) complexity. And i would argue in a similar fashion for the range query.

Now coming to this question, we don’t know whether $A_{p}$ is a key or non-key attribute. Therefore considering the worst-case scenario, indexing must be preferred for both the queries because of low average lookup-time.

@ sir, @ sir, @ sir,@  sir, @ , @  sir please comment if possible.

1 1 vote

Answer: (C)

Explanation: If record are accessed for a particular value from table, hashing will do better. If records are accessed in a range of values, ordered indexing will perform better. See this for more details.

Answer:
Position:
Show:

Related questions

74 74 votes
4 answers 4 answers
24.2k
24.2k views
go_editor asked Sep 29, 2014
24,172 views
On a non-pipelined sequential processor, a program segment, which is the part of the interrupt service routine, is given to transfer $500$ bytes from an I/O device to mem...
52 52 votes
2 answers 2 answers
19.5k
19.5k views
go_editor asked Sep 29, 2014
19,545 views
Database table by name $\text{Loan_Records}$ is given below.$$\begin{array}{|c|c|c|} \hline \textbf {Borrower} & \textbf {Bank_Manager} &\textbf {Loan_Amount} \\\hline \...
58 58 votes
6 answers 6 answers
19.9k
19.9k views
go_editor asked Sep 29, 2014
19,885 views
Consider a database table T containing two columns $\text{X}$ and $\text{Y}$ each of type $\text{integer}$. After the creation of the table, one record $\text{(X=1, Y=1)}...
91 91 votes
7 answers 7 answers
29.2k
29.2k views
go_editor asked Sep 29, 2014
29,180 views
Consider a relational table with a single record for each registered student with the following attributes:$\text {Registration_Num:}$ Unique registration number for each...