Module4 Query Optimization
Module4 Query Optimization
Steps:
i) Initial query for relational algebra/SQL
ii) Moving SELECT operations down the tree
iii) Applying more restrictive SELECT operations first
iv) Replacing CARTESIAN PRODUCT with JOIN operations
v) Moving PROJECT operations down the tree
Schema:
supplier(sno, sname, address, city)
parts(pno, pname, color, weight)
supply(s_no, p_no, quantity)
π parts . pname
σ (supplier . sno=supply . s no )
×
no )
×
supplier
parts supply
iii) Applying more restrictive SELECT operations first
π parts . pname
σ ( parts . pno=supply . p no )
×
σ (supplier . sno=supply . s )
parts
no
supplier
( pno , p no )
( sno=s no )
parts
σ (city ¿ chenna i )
' ' supply
supplier
v) Moving PROJECT operations down the tree
π pname
( pno=p no )
( sno=s no )
π pno , pname
π sno πs parts
no , pno
σ (city ¿ chenna i )
' '
supply
supplier
Optimal RA:
π pname ¿ ¿ ¿
π s , p (supply)¿ ¿
no no
Schema:
supplier(sno, sname, address, city)
parts(pno, pname, color, weight)
supply(s_no, p_no, quantity)
Question 2: List the supplier name with his address who have
supplied more than 3 red color products of 2 kg weight
RA:
π supplier . sname ,supplier . address (σ ¿¿ (( parts . ¿ ¿ ¿ ¿ ' ℜd )˄¿ ( parts . weight=2 ) ˄¿ ( supply . quantity >3 ) ˄¿ ( supplier . sno=supply . s
'
i) Initial query for relational algebra/SQL
σ ((parts .¿ ¿¿¿ ' ℜd )˄ ( parts . weight=2 )˄ (supply .quantity >3) ˄ ¿ (supplier . sno=supply . s
'
) ˄ ( parts . pno=supply . pno ))
no
σ ( parts . pno=supply . p no
)
×
σ (supplier . sno=supply . s no )
×
parts
supplier σ (supply .quantity >3)
supply
iii) Applying more restrictive SELECT operations first
π supplier . sname ,supplier . address
σ (supplier . sno=supply . s no )
×
σ ( parts . pno=supply . p )
no
supplier
×
supply parts
sno=s no
pno= p no
supplier
supply parts
v) Moving PROJECT operations down the tree
π sname , address
( sno=s no )
supply parts
Optimal RA
π sname , address ¿ ¿ ¿
π pno (σ ((¿¿ ¿ ¿' ℜ d )˄ ( weight=2 )) ( parts))¿ ¿
'