|
Optimizarea cererilor de date
Optimizarea cererilor de date
Se realizează în două etape:
1. exprimarea cererilor de date sub forma unor expresii algebrice relaţionale care au la bază echivalenţa dintre calculul relaţional şi algebra relaţională,
2. aplicarea unor transformări algebrice asupra expresiilor obţinute în etapa precedentă, în scopul obţinerii unor expresii echivalente cu cele iniţiale, dar care să fie executate mai eficient.
Prin deplasarea operaţiilor de selecţie cât mai la stânga expresiilor algebrice se reduce numărul de tupluri care trebuie manipulate în procesul de executare a cererii. Se pot menţiona următoarele strategii de optimizare a cererilor de date:
Deplasarea operaţiei de selecţie înaintea operaţiei de joncţiune – joncţiunea şi produsul cartezian acţionează ca generatori de tupluri. Prin selecţie se reduce dimensiunea relaţiilor la care se aplică aceşti generatori de tupluri. Se ţine seama că operaţia de joncţiune poate fi exprimată sub forma unui produs cartezian urmat de o selecţie, iar în cazul joncţiunii naturale printr-un produs cartezian urmat de de o selecţie şi de o proiecţie.
Deplasarea operaţiilor de proiecţie înaintea operaţiilor de joncţiune – se realizează prin folosirea proprietăţii de comutare a selecţiei cu produsul crtezian
Combinarea selecţiilor multiple – se realizează cu ajutorul relaţiei de compunere a selecţiilor.
Deplasarea operaţiilor de selecţie înaintea operaţiilor de proiecţie- realizată pe baza proprietăţii de comutare a selecţiei cu proiecţia. Eliminarea tuplurilor duplicate obţinute prin proiecţie se face prin ordonarea tuplurilor. Selecţia reduce numărul tuplurilor ce trebuiesc ordonate facilitând operaţia de proiecţie.