Réécriture en requêtes équivalentes

Il est possible de réécrire les requêtes en utilisant les équivalences algébriques suivantes :

Commutativité et associativité de la jointure

  • E1 ⋈ E2 = E2 ⋈ E1,

  • (E1 ⋈ E2) ⋈ E3 = E1 ⋈ (E2 ⋈ E3).

Cascade de projections

  • πA1...AnB1...Bm (E)) = πA1...An (E)

Cascade de sélections

  • σF1F2(E)) = σF1^F2(E)

Commutation sélection et projection

  • Si F ne porte que sur A1...An, πA1...AnF (E)) = σFA1...An (E))

  • Si F porte aussi sur B1...Bm, πA1...AnF (E)) = πA1...AnFA1...An,B1...Bm (E)))

Commutation sélection et un opérateur binaire w : jointure, union, différence

  • σF1 (E1 w E2) = σF1 (E1) w σF1 (E2)

Commutation projection et union

πA1...An (E1 ∪ E2) = πA1...An (E1) ∪ πA1...An (E2)