0
22kviews
Explain Division Operator.
1 Answer
0
663views
  • As the name of this operation implies, it involves dividing one relation by another. - The division operator is used for queries which involve the ‘all’qualifier such as “Find the names of sailors who have reserved all boats”.
  • Let A have 2 fields, x and y; B have only field y:

    • A/B = $(\lt x \gt| \exists \lt x, y \gt \epsilon A \forall \lt y \gt \epsilon B)$
    • i.e., A/B contains all x tuples (sailors) such that for every y tuple (boat) in B, there is an xy tuple in A.
    • Or: If the set of y values (boats) associated with an x value (sailor) in A contains all y values in B, the x value is in A/B.
  • In general, x and y can be any lists of fields; y is the list of fields in B, and x y is the list of fields of A

  • The division operator is a bit tricky to explain, and perhaps best approached through examples as will be done here.

enter image description here

Figure 1 explains that when the division operation is performed, it will retrieve only those lecturer from relation R who has taken a subject “Prolog” from relation S.

enter image description here

Figure 2 explains that when the division operation is performed, it will retrieve only those lecturer from relation R who has taken a subject “Prolog” and “Database” from relation S. - Example:

enter image description here

  • Interpretation of the division operation A/B:
    • Divide the attributes of A into 2 sets: A1 and A2.
    • Divide the attributes of B into 2 sets: B2 and B3.
    • Where the sets A2 and B2 have the same attributes.
    • For each set of values in B2:
      • Search in A2 for the sets of rows (having the same A1 values) whose A2 values (taken together) form a set which is the same as the set of B2’s.
      • For all the set of rows in A which satisfy the above search, pick out their A1 values and put them in the answer.
Please log in to add an answer.