Você está na página 1de 29

CAPTULO 17

Otimizao
17.1 INTRODUO
A otimizao representa ao mesmo tempo m !esa"io e ma oportni!a!e para sistemas re#a$ionais % m !esa"io&
por'e a otimizao ( ma e)i*+n$ia em ta# sistema& se o sistema espera atin*ir m !esempen,o a$eit-.e#/ ma
oportni!a!e& por'e ( pre$isamente m !os pontos "ortes !a a0or!a*em re#a$iona# o "ato !e 'e as e)press1es
re#a$ionais esto em m n2.e# sem3nti$o s"i$ientemente a#to para 'e a otimizao se4a "a$t2.e#. Ao $ontr-rio& em m
sistema no re#a$iona#& em 'e re'isi1es !os s-rios so e)pressas em m n2.e# sem3nti$o mais 0ai)o& 'a#'er
5otimizao6 !e.e ser "eita mana#mente pe#o s-rio 75otimizao6 entre aspas& por'e em *era# o termo ( enten!i!o
$omo otimizao atom-ti$a8. 9m m ta# sistema& ( o s-rio& e no o sistema& 'em !e$i!e 'e opera1es !e 0ai)o
n2.e# sero ne$ess-rias e em 'a# se':+n$ia essas opera1es pre$isaro ser e)e$ta!as % e& se o s-rio tomar ma
!e$iso e'i.o$a!a % no ,a.er- na!a 'e o sistema possa "azer para me#,orar a sitao. Note tam0(m a imp#i$ao
!e 'e& em m ta# sistema& o s-rio em 'esto !e.e ter a#*ma e)peri+n$ia em pro*ramao/ esse "ato sozin,o
$o#o$a o sistema "ora !o a#$an$e !e mitas pessoas 'e !e otra "orma po!eriam se 0ene"i$iar !e#e.
A .anta*em !a otimizao atom-ti$a no est- apenas no "ato !e 'e os s-rios no pre$isam se preo$par $om o
me#,or mo!o !e "orm#ar sas $ons#tas 7isto (& $omo e)pressar re'isi1es !e mo!o a o0ter o me#,or !esempen,o !o
sistema8. O "ato ( 'e ,- ma rea# possi0i#i!a!e !e o otimiza!or na .er!a!e sair;se me#,or 'e o s-rio. <- .-rias
raz1es para isso& entre e#as as se*intes=
1. Um 0om otimiza!or % ta#.ez !e.amos en"atizar esse 50om6> % ter- ma *ran!e 'anti!a!e !e in"orma1es
!ispon2.eis para e#e& in"orma1es 'e em *era# os s-rios no t+m. 9spe$i"i$amente& ter- $ertas in"orma1es
estat2sti$as& $omo=
? O n@mero !e .a#ores em $a!a !om2nio.
? O n@mero ata# !e tp#as em $a!a .ari-.e# !e re#ao 0-si$a.
? O n@mero ata# !e .a#ores !istintos em $a!a atri0to !e $a!a .ari-.e# !e re#ao 0-si$a.
? O n@mero !e .ezes em 'e o$orre $a!a m !esses .a#ores !istintos em $a!a m !e tais atri0tos.
9 assim por !iante. 7To!as essas in"orma1es estaro *ar!a!as no $at-#o*o !o sistema % $ons#te a Aeo 17.B.8 9m
$onse':+n$ia !isso& o otimiza!or !e.e ser $apaz !e "azer ma a.a#iao mais pre$isa !a e"i$i+n$ia !e 'a#'er
estrat(*ia !a!a para a imp#ementao !e ma re'isio parti$#ar e& assim& ter maior pro0a0i#i!a!e !e es$o#,er a
imp#ementao mais e"i$iente.
C. A#(m !isso& se as estat2sti$as !o 0an$o !e !a!os m!arem $om o tempo& ento ma opo !i"erente !e estrat(*ia
po!eria tornar;se !ese4-.e#/ em otras pa#a.ras& ma reotimizao po!eria ser ne$ess-ria. 9m m sistema re#a$iona#& a
reotimizao ( tri.ia# % e#a en.o#.e simp#esmente m DEE
repro$essamento !a re'isio re#a$iona# ori*ina# pe#o otimiza!or !o sistema. 9m $ontraste& no $aso !e m
sistema no re#a$iona#& a reotimizao en.o#.e rees$re.er o pro*rama e pro.a.e#mente no ser- "eita !e mo!o a#*m.
F. O otimiza!or ( m pro*rama/ assim& por !e"inio& ( mito mais pa$iente 'e m s-rio ,mano t2pi$o. O otimiza!or
( mito $apaz !e $onsi!erar #itera#mente $entenas !e estrat(*ias !e imp#ementao !i"erentes para ma !a!a
re'isio& en'anto ( e)tremamente impro.-.e# 'e m s-rio se'er #e.asse em $onsi!erao mais !e tr+s o
'atro 7pe#o menos $om a#*ma pro"n!i!a!e8.
D. O otimiza!or po!e ser $onsi!era!o& em m $erto senti!o& $omo a in$orporao !os $on,e$imentos e ser.ios 5!os
me#,ores6 pro*rama!ores. 9m $onse':+n$ia !isso& e#e tem o e"eito !e tornar esses $on,e$imentos e ser.ios
!ispon2.eis para to!os % o 'e si*ni"i$a& natra#mente& 'e e#e torna !ispon2.e# m $on4nto !e re$rsos 'e !e otra
"orma seriam es$assos para ma amp#a "ai)a !e s-rios& !e m mo!o e"i$iente e e$onGmi$o.
T!o o 'e "oi !ito !e.e ser.ir $omo e.i!+n$ia para apoiar a a"irmao "eita no in2$io !esta seo !e 'e a
possi0i#i!a!e !e otimizao % isto (& o "ato !e 'e as re'isi1es re#a$ionais po!em ser otimiza!as % ( na .er!a!e
ma "ora !os sistemas re#a$ionais.
Portanto& a "ina#i!a!e *era# !o otimiza!or ( es$o#,er ma estrat(*ia e"i$iente para a.a#iar ma !a!a e)presso
re#a$iona#. Neste $ap2t#o& !es$re.emos a#*ns prin$2pios e t($ni$as "n!amentais en.o#.i!os no pro$esso !e
otimizao. Depois !e m e)emp#o intro!tHrio na Aeo 17.C& a Aeo 17.F o"ere$e ma .iso *era# !e $omo "n$ionam
os otimiza!ores& e a Aeo 17.D apro"n!a ento a !is$sso so0re m aspe$to mito importante !o pro$esso& o se4a&
a trans"ormao !e e)press1es 7tam0(m $on,e$i!a $omo rees$rita !e $ons#tas8. A Aeo 17.B !is$te rapi!amente a
'esto !e estat2sti$as !e 0an$os !e !a!os. 9m se*i!a& a Aeo 17.E !es$re.e ma a0or!a*em espe$2"i$a para a
otimizao& $,ama!a !e$omposio !e $ons#ta& $om a#*m !eta#,e. A Aeo 17.7 e)amina ento a 'esto !e $omo os
opera!ores re#a$ionais 7!e 4no e assim por !iante8 so !e "ato imp#ementa!os e $onsi!era rapi!amente o so !e
estat2sti$as& !is$ti!o na Aeo 17.B& a "im !e e"etar ma estimati.a !e $stos. Iina#mente& a Aeo 17.J apresenta
m resmo !o $ap2t#o inteiro.
Um @#timo $oment-rio intro!tHrio= ( $omm "azermos re"er+n$ia a esse tema espe$i"i$amente $omo otimizao !e
$ons#tas. Por(m& esse termo ( #i*eiramente en*ana!or& no senti!o !e 'e a e)presso a ser otimiza!a % a 5$ons#ta6
% po!e& ( $#aro& ter sr*i!o em a#*m otro $onte)to 'e no a interro*ao interati.a !o 0an$o !e !a!os/ em
parti$#ar& e#a po!e "azer parte !e ma operao !e ata#izao& em .ez !e ma $ons#ta em si. A#(m !isso& o prHprio
termo otimizao ( m tanto e)a*era!o& pois em *era# no ,- *arantia !e ser a estrat(*ia !e imp#ementao es$o#,i!a
rea#mente Htima em 'a#'er senti!o mensr-.e#/ !e "ato& e#a po!eria ser mas& em *era#& t!o o 'e se sa0e ( 'e a
estrat(*ia 5otimiza!a6 ( m aper"eioamento !a .erso ori*ina# no otimiza!a. 7Por(m& em $ertos $onte)tos 0astante
#imita!os& po!e ser poss2.e# a"irmar 'e a estrat(*ia es$o#,i!a ( !e "ato Htima em m $erto senti!o mito espe$2"i$o/
$ons#te a re"er+n$ia K17.F 1L.8
17.C UM 9N9MPLO INTRODUTORIO
Pamos $omear $om m e)emp#o simp#es % ma e#a0orao !e m e)emp#o 4- !is$ti!o rapi!amente no Cap2t#o E&
Aeo E.E % para !ar a#*ma i!(ia !a !r-sti$a me#,oria 'e po!e ser o0ti!a. A $ons#ta ( 5O0ter nomes !e
"orne$e!ores 'e "orne$em a pea PCQ. Uma "orm#ao a#*(0ri$a !essa $ons#ta (=
7 7 IP ROIN I 8 S<9R9 PT U PT 7 VPCQ 8 8 W INOM9
Pamos spor 'e o 0an$o !e !a!os $onten,a 1XX "orne$e!ores e 1X.XXX remessas& !as 'ais apenas BX so para a pea
PC. Para simp#i"i$ar& spon,a 'e as .ari-.eis !e re#a1es I e IP este4am am0as representa!as !iretamente no !is$o
$omo !ois ar'i.os armazena!os iso#a!os& $om m re*istro armazena!o por tp#a. 9nto& se o sistema apenas a.a#iasse
a e)presso 5!iretamente6 % isto (& sem 'a#'er otimizao % a se':+n$ia !e e.entos seria=
DE7
1. Iazer a 4no !e IP e I 7so0re IT8= esse passo en.o#.e a #eitra !as 1X.XXX remessas/ a #eitra !e $a!a m !os 1XX
"orne$e!ores 1X.XXX .ezes 7ma .ez para $a!a ma !as 1X.XXX remessas8/ a $onstro !e m res#ta!o interme!i-rio
$onsistin!o nas 1X.XXX tp#as reni!as/ e a *ra.ao !essas 1X.XXX tp#as reni!as pe#a 4no !e .o#ta no !is$o 7para
"ins !o e)emp#o& spomos 'e no ,- espao para esse res#ta!o interme!i-rio na memHria prin$ipa#8.
C. Restrin*ir o res#ta!o !o Passo 1 a apenas as tp#as para a pea PC= esse passo en.o#.e a #eitra !as
1X.XXX tp#as reni!as !e no.o na memHria& mas pro!z m res#ta!o 'e $onsiste apenas em BX tp#as& o 'e spomos
ser pe'eno o s"i$iente para ser manti!o na memHria prin$ipa#.
F. Pro4etar o res#ta!o !o Passo C so0re INOM9= esse passo pro!z o res#ta!o "ina# !ese4a!o 7no m-)imo BX tp#as&
'e po!em "i$ar na memHria prin$ipa#8.
O pro$e!imento a se*ir ( e'i.a#ente ao 'e a$a0amos !e !es$re.er& no senti!o !e pro!zir ne$essariamente o
mesmo res#ta!o "ina#& mas $om $erteza ( mito mais e"i$iente=
1. Restrin*ir a re#ao IP somente Ys tp#as para a pea PC= esse passo en.o#.e a #eitra !as 1X.XXX tp#as& mas pro!z
m res#ta!o $onten!o apenas BX tp#as& 'e spomos ser- manti!o na memHria prin$ipa#.
C. Iazer a 4no !o res#ta!o !o Passo 1 $om a re#ao I 7so0re IT8= esse passo en.o#.e a #eitra !os
1XX "orne$e!ores 7somente ma .ez& no ma .ez por remessa !e PC& ( $#aro8 e pro!z no.amente m res#ta!o !e BX
tp#as 7ain!a na memHria prin$ipa#8.
F. Pro4etar o res#ta!o !o Passo C so0re INOM9 7i*a# ao Passo F anterior8= o res#ta!o "ina# !ese4a!o 7BX tp#as no
m-)imo8 "i$a na memHria prin$ipa#.
O primeiro !esses !ois pro$e!imentos en.o#.e m tota# !e 1.XFX.XXX opera1es !e 9ZA !e tp#as& en'anto o se*n!o
en.o#.e apenas 1X.1XX. Portanto& ( $#aro 'e& se tomarmos 5n@mero !e opera1es !e 9ZA !e tp#as6 $omo nossa me!i!a
!e !esempen,o& o se*n!o pro$e!imento ser- m po$o mais !e 1XX .ezes me#,or 'e o primeiro. 7Na pr-ti$a& ( $#aro&
o 'e importa so as opera1es !e 9ZA !e p-*inas& no opera1es !e 9ZA !e tp#as& mas po!emos i*norar esse
re"inamento para os o04eti.os atais.8 [ $#aro tam0(m 'e *ostar2amos 'e a imp#ementao sasse o se*n!o
pro$e!imento& no o primeiro>
Assim& .emos 'e ma m!ana mito simp#es no a#*oritmo !e e)e$o % "azer ma restrio e !epois ma 4no& em
.ez !e ma 4no e !epois ma restrio % pro!zi ma me#,oria !r-sti$a no !esempen,o. 9 a me#,oria seria ain!a
mais !r-sti$a se as remessas "ossem in!e)a!as o res#tassem !o ,as,in* so0re PT % o n@mero !e tp#as !e
remessas #i!as no Passo 1 seria re!zi!o !e 1X.XXX para apenas BX& e o no.o pro$e!imento seria ento 'ase 7.XXX
.ezes me#,or 'e o ori*ina#. Do mesmo mo!o& se os "orne$e!ores tam0(m ti.essem m 2n!i$e o m ,as,in* so0re IT&
o n@mero !e tp#as #i!as no Passo C seria re!zi!o !e 1XX para BX& !e mo!o 'e o pro$e!imento seria a*ora mais !e
1X.XXX .ezes me#,or 'e o ori*ina#. Isso si*ni"i$a 'e& se a $ons#ta ori*ina# no otimiza!a #e.asse tr+s ,oras para ser
e)e$ta!a& a .erso "ina# seria e)e$ta!a em ma "rao !e apenas m se*n!o. 9 ( $#aro 'e mitos otros
aper"eioamentos so poss2.eis.
O e)emp#o anterior& em0ora 0astante simp#es& !e.e ser s"i$iente para !ar a#*ma i!(ia !o por 'e a otimizao (
ne$ess-ria. 9#e tam0(m !e.e !ar a#*ma i!(ia !o tipo !e aper"eioamento 'e seria poss2.e# na pr-ti$a. Na prH)ima
seo& apresentaremos ma .iso *era# !e ma a0or!a*em sistem-ti$a !o pro0#ema !e otimizao/ em parti$#ar&
mostraremos $omo o pro0#ema *era# po!e ser !i.i!i!o em ma s(rie !e s0pro0#emas mais o menos in!epen!entes.
9ssa .iso *era# "orne$e ma mo#!ra $on.eniente& !entro !a 'a# po!em ser e)p#i$a!as e $ompreen!i!as estrat(*ias e
t($ni$as !e otimizao $omo as 'e !is$tiremos em se1es s0se':entes.
17.F UMA PIAO \9RAL DO PROC9AAAM9NTO D9 CONAULTAA
I!enti"i$amos 'atro *ran!es est-*ios no pro$essamento !e $ons#tas& $omo a se*ir 7.er Ii*ra 17.18=
1. Mo#!ar a $ons#ta em a#*ma "orma interna.
DEJ
C. Con.erter para a "orma $anGni$a.
F. 9s$o#,er pro$e!imentos $an!i!atos !e 0ai)o n2.e#.
D. \erar p#anos !e $ons#tas e es$o#,er o mais e$onGmi$o.
A*ora .amos entrar nos !eta#,es !e $a!a m !esses 'atro est-*ios.
9st-*io 1= Mo#!ar a $ons#ta em a#*ma "orma interna
O primeiro est-*io en.o#.e a $on.erso !a $ons#ta ori*ina# em a#*ma representao interna mais a!e'a!a Y
manip#ao pe#a m-'ina& e#iminan!o assim $onsi!era1es pramente e)ternas 7tais $omo pe$#iari!a!es !a sinta)e
$on$reta !a #in*a*em !e $ons#ta em 'esto8 e pa.imentan!o o $amin,o para est-*ios s0se':entes !o pro$esso !e
otimizao. Nota= o pro$essamento !e .is1es % isto (& o pro$esso !e s0stitir re"er+n$ias a .is1es pe#as e)press1es
!e !e"inio !e .is1es ap#i$-.eis % tam0(m ( e)e$ta!o !rante esse est-*io.
A per*nta H0.ia (= em 'a# "orma#ismo se !e.e 0asear a representao interna] ^a#'er 'e se4a o "orma#ismo
es$o#,i!o& ( $#aro 'e e#e !e.e ser s"i$ientemente ri$o para representar to!as as poss2.eis $ons#tas na #in*a*em !e
$ons#ta e)terna. 9#e tam0(m !e.e ser to netro 'anto poss2.e#& no senti!o !e no pre4!i$ar 'ais'er es$o#,as
s0se':entes. A "orma interna tipi$amente es$o#,i!a ( a#*ma esp($ie !e -r.ore !e sinta)e a0strata o -r.ore !e
$ons#ta. Por e)emp#o& a Ii*ra 17.C mostra ma poss2.e# representao !a -r.ore !e $ons#ta para o e)emp#o !a Aeo
17.C 75O0ter nomes !e "orne$e!ores 'e "orne$em a pea PC68.
an-#ise sint-ti$a&
pro$essamento !e .is1es&
$on.erso
e)presso
!e -#*e0ra re#a$iona#
trans"ormao
!e e)press1es&
estimati.a !e $stos et$.
$H!i*o otimiza!o
e)e$o
II\URA 17.1 Piso *era# !o pro$essamento !e $ons#tas
DE_
Res#ta!o "ina#
A
PROR9CT so0re INOM9
`
R9ATRICT on!e PT U VPCQ
`
I ROIN so0re IT
II\URA 17.C 5O0ter nomes !e "orne$e!ores 'e "orne$em a pea PCQ 7-r.ore !e $ons#ta8
Por(m& para nossos o04eti.os& ( mais $on.eniente spor 'e a representao interna ( m !os "orma#ismos $om 'e 4-
temos "ami#iari!a!e= o se4a& a -#*e0ra re#a$iona# o o $-#$#o re#a$iona#. Uma -r.ore !e $ons#ta ta# $omo a !a Ii*ra
17.C po!e ser .ista apenas $omo ma representao a#ternati.a& $o!i"i$a!a& !e a#*ma e)presso em m !esses !ois
"orma#ismos. Para "i)ar as i!(ias& spomos a'i 'e o "orma#ismo ( espe$i"i$amente a -#*e0ra. Assim& .amos spor !e
a*ora em !iante 'e a representao interna !a $ons#ta !a Ii*ra 17.C ( pre$isamente a e)presso a#*(0ri$a
mostra!a antes=
77IP ROIN I8 S<9R9 PT U PT 7 PCQ 8 8 W INOM9
9st-*io C= Con.erter para a "orma $anGni$a
Nesse est-*io& o otimiza!or e)e$ta ma s(rie !e otimiza1es 'e 5so *aranti!amente 0oas6& 'ais'er 'e se4am os
.a#ores !e !a!os reais e os $amin,os !e a$esso "2si$o 'e e)istam no 0an$o !e !a!os armazena!o. O "ato ( 'e as
#in*a*ens re#a$ionais em *era# permitem 'e to!as as $ons#tas& e)$eto as mais simp#es& se4am e)pressas !e .-rios
mo!os !istintos& pe#o menos sper"i$ia#mente. Por e)emp#o& em A^L& mesmo ma $ons#ta simp#es $omo 5O0ter nomes
!e "orne$e!ores 'e "orne$em a pea PC6 po!e ser e)pressa #itera#mente em !ezenas !e maneiras !i"erentesa % sem
in$#ir .aria1es tri.iais $omo s0stitir a $on!io A U b pe#a $on!io b U A o a $on!io p AND ' por ' AND p. 9 o
!esempen,o !e ma $ons#ta rea#mente no !e.e !epen!er !o mo!o parti$#ar 'e o s-rio es$o#,e para es$re.+;#a.
O passo se*inte no pro$essamento !a $ons#ta ( ento $on.erter a representao interna em a#*ma "orma $anGni$a
e'i.a#ente 7.er a se*ir8& $om a "ina#i!a!e !e e#iminar tais !istin1es sper"i$iais e& o 'e ( mais importante&
en$ontrar ma representao mais e"i$iente 'e a ori*ina# em a#*m aspe$to.
Uma o0ser.ao a respeito !a 5"orma $anGni$a6= a noo !e "orma $anGni$a ( $entra# em mitos ramos !a matem-ti$a e
!is$ip#inas re#a$iona!as. 9#a po!e ser !e"ini!a !esta maneira= !a!o m $on4nto ^ !e o04etos 7!i*amos $ons#tas8 e
ma noo !e e'i.a#+n$ia entre esses o04etos 7!i*amos a noo !e 'e as $ons#tas '1 e 'C so e'i.a#entes se e
somente se e#as ne$essariamente pro!zem o mesmo res#ta!o8& !iz;se 'e o s0$on4nto C !e ( m $on4nto !e
"ormas $anGni$as para ^ so0 a !e"inio !e e'i.a#+n$ia !a!a& se e somente se to!o o04eto ' em ( e'i.a#ente a
e)atamente m o04eto $ em C. Diz;se 'e o o04eto $ ( a "orma $anGni$a para o o04eto '. To!as as proprie!a!es
5interessantes6 'e se ap#i$am a m o04eto ' tam0(m se ap#i$am Y sa "orma $anGni$a $= ( s"i$iente est!ar apenas o
pe'eno $on4nto C& no o *ran!e $on4nto ^& a "im !e !emonstrar ma .arie!a!e !e res#ta!os 5interessantes6.
Pamos retomar o "io !e nossa !is$sso= para trans"ormar a sa2!a !o 9st-*io 1 em a#*ma "orma e'i.a#ente por(m
mais e"i$iente& o otimiza!or "az so !e $ertas re*ras !e trans"ormao o #eis !e trans"ormao 0em !e"ini!as. A'i
est- m e)emp#o !essa re*ra= a e)presso=
7A ROIN b 8 S<9R9 restrio so0re A
a Por(m& !e.emos !esta$ar 'e a #in*a*em A^L ( e)$ep$iona#mente propensa a esse pro0#ema 7.e4a o 9)er$2$io 7.1C
no Cap2t#o 7& e tam0(m a re"er+n$ia KD.1J18. Otras #in*a*em 7por e)emp#o& a -#*e0ra o o $-#$#o8 no "orne$em
tantos mo!os !i"erentes !e !izer a mesma $oisa. 9ssa 5"#e)i0i#i!a!e6 !esne$ess-ria por parte !a A^L na rea#i!a!e
!i"i$#ta a .i!a para o D7X
imp#ementa!or& para no "a#ar !o s-rio& por'e torna mais !i"2$i# o tra0a#,o !o otimiza!or.
po!e ser trans"orma!a na e)presso e'i.a#ente& por(m mais e"i$iente=
7 A S<9R9 restrio so0re A 8 ROIN b
R- !is$timos rapi!amente essa trans"ormao no Cap2t#o E& Aeo E.E/ na .er!a!e& ( $#aro& 'e e#a "oi ma !as 'e
samos em nosso e)emp#o intro!tHrio na Aeo 17.C& e esse e)emp#o mostro $#aramente por'e essa trans"ormao
( !ese4-.e#. Mitas otras re*ras !e trans"ormao sero !is$ti!as na Aeo 17.D.
9st-*io F= 9s$o#,er pro$e!imentos $an!i!atos !e 0ai)o n2.e#
Ten!o $on.erti!o a representao interna !a $ons#ta em a#*ma "orma mais !ese4-.e# $anGni$a& o otimiza!or !e.e
a*ora !e$i!ir $omo e)e$tar a $ons#ta representa!a por essa "orma $on.erti!a. Nesse est-*io& entram em 4o*o
$onsi!era1es $omo a e)ist+n$ia !e 2n!i$es o otros $amin,os !e a$esso& !istri0io !e .a#ores !e !a!os&
a*rpamento "2si$o 7$#sterin*8 !e !a!os armazena!os et$. O0ser.e 'e no !emos ateno a esses assntos nos
9st-*ios 1 e C anteriores.
A estrat(*ia 0-si$a ( $onsi!erar 'e a e)presso !a $ons#ta espe$i"i$a ma s(rie !e opera1es !e 50ai)o n2.e#6
74no& restrio& tota#izao et$.8& $om $ertas inter!epen!+n$ias entre e#as. Um e)emp#o !e ta# inter!epen!+n$ia (
este= o $H!i*o para e)e$tar ma pro4eo em *era# e)i*ir- 'e sas tp#as !e entra!a este4am $#assi"i$a!as em ma
$erta se':+n$ia& a "im !e permitir a e)e$o !a e#iminao !e !p#i$atas& o 'e si*ni"i$a 'e a operao
ime!iatamente pre$e!ente na s(rie !e.e "orne$er sas tp#as !e sa2!a nessa mesma se':+n$ia.
A*ora& para $a!a operao !e 0ai)o n2.e# poss2.e# 7e pro.a.e#mente tam0(m para !i.ersas $om0ina1es $omns !e tais
opera1es8& o otimiza!or ter- Y sa !isposio m $on4nto !e pro$e!imentos !e imp#ementao pre!e"ini!os. Por
e)emp#o& ,a.er- m $on4nto !e pro$e!imentos para a imp#ementao !a operao !e restrio= m para o $aso em 'e
a restrio ( ma $on!io !e i*a#!a!e so0re ma $,a.e $an!i!ata& otro em 'e o atri0to !e restrio ( in!e)a!o&
otro em 'e e#e tem m ,as,in*& e assim por !iante. Os e)emp#os !esses pro$e!imentos so !a!os na Aeo 17.7
7.e4a tam0(m as re"er+n$ias
K17.J a 17.1DL8.
Ca!a pro$e!imento ter- tam0(m ma "Hrm#a !e $sto 7parametriza!a8 asso$ia!a a e#e& in!i$an!o
o $sto % norma#mente em termos !e opera1es !e 9ZA !e !is$o& em0ora a#*ns sistemas #e.em em $onta
a ti#izao !o pro$essa!or a#(m !e otros "atores % na e)e$o !o pro$e!imento. 9ssas "Hrm#as !e
Csto so sa!as no 9st-*io D 7.er a se*ir8. As re"er+n$ias K17.J a 17.1DL !is$tem e ana#isam as "Hrm#as !e $sto
para .-rios pro$e!imentos !e imp#ementao so0 ma .arie!a!e !e sposi1es !i"erentes.
Cons#te tam0(m a Aeo 17.7.
9m se*i!a& san!o in"ormao !o $at-#o*o 'anto ao esta!o ata# !o 0an$o !e !a!os 7e)ist+n$ia !e 2n!i$es&
$ar!ina#i!a!es atais& et$.8 e ti#izan!o tam0(m a in"ormao !e inter!epen!+n$ia men$iona!a antes& o otimiza!or
es$o#,er- m o mais pro$e!imentos $an!i!atos para imp#ementar $a!a ma !as opera1es !e 0ai)o n2.e# na e)presso
!a $ons#ta. 9sse pro$esso Ys .ezes ( $,ama!o se#eo !e $amin,o !e a$esso 7$ons#te as re"er+n$ias K17.FD e 17.FBL8.
Nota= na rea#i!a!e& as re"er+n$ias K17.FD e 17.FBL empre*am a e)presso se#eo !e $amin,o !e a$esso para $o0rir
tanto o 9st-*io F 'anto o 9st-*io D& $omo os !e"inimos a'i. De "ato& na pr-ti$a seria !i"2$i# "azer ma separao
n2ti!a entre os !ois= o 9st-*io F "#i !e maneira mais o menos ni"orme para o 9st-*io D.
9st-*io D= \erar p#anos !e $ons#tas e es$o#,er o mais e$onGmi$o
O est-*io "ina# no pro$esso !e otimizao en.o#.e a e#a0orao !e m $on4nto !e p#anos !e $ons#ta $an!i!atos&
se*i!a pe#a es$o#,a !o me#,or 7isto (& o mais e$onGmi$o8 !esses p#anos. Ca!a p#ano !e $ons#ta ( $onstr2!o
$om0inan!o;se m $on4nto !e pro$e!imentos !e imp#ementao $an!i!atos& m
pro$e!imento para $a!a ma !as opera1es !e 0ai)o n2.e# !a $ons#ta. Note 'e norma#mente ,a.er- D71
mitos p#anos poss2.eis % ta#.ez m n@mero em0araosamente *ran!e para 'a#'er $ons#ta !a!a. Na .er!a!e&
po!eria no ser ma 0oa i!(ia *erar to!os os p#anos poss2.eis na pr-ti$a pois& pe#as possi0i#i!a!es $om0inatHrias&
,a.er- m n@mero 0astante *ran!e !e#es e a tare"a !e es$o#,er o mais e$onGmi$o po!eria mito 0em se tornar e#a
prHpria e)$essi.amente !ispen!iosa/ a#*ma t($ni$a ,er2sti$a para manter o $on4nto *era!o !entro !e #imites
razo-.eis ( a#tamente !ese4-.e#& seno essen$ia# 7mas .e4a a re"er+n$ia K17.BBL8. 5Manter o $on4nto !entro !e
#imites6 ( o 'e sa#mente se $,ama re!zir o espao !e pes'isa& por'e po!e ser $onsi!era!o $omo a re!o !o
inter.a#o 75o espao68 !e possi0i#i!a!es a serem e)amina!as 75pes'isa!as68 pe#o otimiza!or a propor1es *eren$i-.eis.
A es$o#,a !o p#ano mais e$onGmi$o e)i*e natra#mente m m(to!o para atri0ir m $sto a 'a#'er p#ano !a!o. 9m
*era#& ( $#aro& o $sto !e 'a#'er p#ano ( a soma !os $stos !os pro$e!imentos in!i.i!ais 'e "ormam esse p#ano& !e
mo!o 'e t!o o 'e o otimiza!or !e.e "azer ( a.a#iar as "Hrm#as !e $stos para esses pro$e!imentos in!i.i!ais. O
pro0#ema ( 'e essas "Hrm#as !e $stos !epen!ero !o taman,o !a7s8 re#ao71es8 a ser7em8 pro$essa!a7s8/ $omo
to!as as $ons#tas& $om e)$eo !as mais simp#es& en.o#.em a *erao !e res#ta!os interme!i-rios !rante a
e)e$o& o otimiza!or ter- !e a.a#iar o taman,o !esses res#ta!os interme!i-rios& a "im !e a.a#iar as "Hrm#as.
In"e#izmente& esses taman,os ten!em a ser mito !epen!entes !os .a#ores e"eti.os !os !a!os. 9m $onse':+n$ia !isso&
a a.a#iao a$ra!a !os $stos po!e ser m pro0#ema !i"2$i#. As re"er+n$ias K17.F e 17.DL !is$tem a#*mas a0or!a*ens
para esse pro0#ema e o"ere$em re"er+n$ias para otras pes'isas na -rea.
17.D TRANAIORMAO D9 9NPR9AAc9A
Nesta seo& !es$re.emos a#*mas re*ras !e trans"ormao 'e po!eriam ser @teis no 9st-*io C !o pro$esso !e
otimizao. A pro!o !e e)emp#os para i#strar as re*ras e !e$i!ir e)atamente por 'e e#as po!em ser @teis "i$am
7em parte8 $omo e)er$2$ios.
Natra#mente& .o$+ !e.e enten!er 'e& !a!a ma e)presso parti$#ar a ser trans"orma!a& a ap#i$ao !e ma re*ra
po!e *erar ma e)presso pass2.e# !e trans"ormao !e a$or!o $om a#*ma otra re*ra. Por e)emp#o& ( impro.-.e# 'e
a $ons#ta ori*ina# ten,a si!o e)pressa !e mo!o a e)i*ir !as pro4e1es s$essi.as % .e4a a se*n!a re*ra na s0seo
5Restri1es e pro4e1es6& ime!iatamente a se*ir % mas ta# e)presso po!e sr*ir internamente $omo res#ta!o !a
ap#i$ao !e !etermina!as trans"orma1es. 7Um $aso importante ( "orne$i!o pe#o pro$essamento !e .is1es/ por
e)emp#o& $onsi!ere a $ons#ta 5O0ter to!as as $i!a!es na .iso P6& on!e a .iso P ( !e"ini!a $omo a pro4eo !e
"orne$e!ores so0re IT e CIDAD9.8 9m otras pa#a.ras& partin!o !a e)presso ori*ina#& o otimiza!or ap#i$ar-
repeti!as .ezes sas re*ras !e trans"ormao at( $,e*ar "ina#mente a ma e)presso 'e 4#*e % !e a$or!o $om
a#*m $on4nto em0ti!o !e ,er2sti$as % ser 5Htima6 para a $ons#ta em 'esto.
Restri1es e pro4e1es
Pamos $omear $om a#*mas trans"orma1es en.o#.en!o somente restri1es e pro4e1es.
1. Uma se':+n$ia !e restri1es so0re a mesma re#ao po!e ser trans"orma!a em ma @ni$a restrio 7$om AND8
so0re essa re#ao. Por e)emp#o& a e)presso
7 A S<9R9 restrio1 8 S<9R9 restrioC
( e'i.a#ente Y e)presso
A S<9R9 restrio1 AND restrioC
C. 9m ma se':+n$ia !e pro4e1es so0re a mesma re#ao& to!as % e)$eto a @#tima % po!em ser i*nora!as. Por
e)emp#o& a e)presso
7 A W atri0tos1 d 8 W atri0tosC d
( e'i.a#ente Y e)presso
D7C
7 A W atri0tos1 d 8 W atri0tosC d
Natra#mente& to!o atri0to men$iona!o em atri0tosC tam0(m !e.e ser men$iona!o em atri0tos1 para 'e a
e)presso ori*ina# "aa senti!o.
F. Uma restrio !e ma pro4eo po!e ser trans"orma!a em ma pro4eo !e ma restrio. Por e)emp#o& a e)presso
A W atri0tos d 8 S<9R9 restrio
( e'i.a#ente Y e)presso
A S<9R9 restrio 8 W atri0tos
O0ser.e 'e& em *era#& ( 0oa i!(ia e"etar restri1es antes !e pro4e1es& por'e o e"eito !a restrio ser- re!zir o
taman,o !a entra!a !a pro4eo e& portanto& !iminir a 'anti!a!e !e !a!os 'e ta#.ez pre$isassem ser $#assi"i$a!os
para "ins !e e#iminao !e !p#i$atas.
Distri0ti.i!a!e
A re*ra !e trans"ormao sa!a no e)emp#o !a Aeo 17.C 7trans"ormar ma 4no se*i!a !e ma restrio em ma
restrio se*i!a por ma 4no8 na .er!a!e ( m $aso parti$#ar !e ma #ei mais *era# $,ama!a #ei !istri0ti.a. 9m
*era#& o opera!or mon-!i$o ( !ito !istri0ti.o so0re o opera!or !i-!i$o O se e somente se
" 7AOb8 " 7A8 O" 7b8
para to!o A e b. Por e)emp#o& em aritm(ti$a $omm& a operao A^RT 7raiz 'a!ra!a8 ( !istri0ti.a so0re a
m#tip#i$ao& por'e
A^RT 7A ab 8 A^RT 7A8 a A^RT 7J8
para to!o A e b. Portanto& m otimiza!or !e e)presso aritm(ti$a sempre po!e s0stitir 'a#'er ma !essas
e)press1es aritm(ti$as pe#a otra& 'an!o esti.er "azen!o a trans"ormao !e e)press1es aritm(ti$as. Como m
$ontra;e)emp#o& A^RT no ( !istri0ti.a so0re a a!io& por'e a raiz 'a!ra!a !e A e b em *era# no ( i*a# Y soma
!as ra2zes 'a!ra!as !e A e !e b.
9m -#*e0ra re#a$iona#& o opera!or !e restrio ( !istri0ti.o so0re nio& interseo e !i"erena. 9#e tam0(m (
!istri0ti.o so0re 4no& !es!e 'e a $on!io !e restrio se4a em sa "orma mais $omp#e)a $onstit2!a !e !as
$on!i1es iso#a!as !e restrio& reni!as por AND& ma para $a!a m !os !ois operan!os !a 4no. No $aso !o
e)emp#o !a Aeo 17.C& essa e)i*+n$ia !e "ato "oi satis"eita % na .er!a!e& a $on!io era mito simp#es e se ap#i$a.a a
apenas m !os operan!os % e assim po!er2amos sar a #ei !istri0ti.a para s0stitir a e)presso por otra
e'i.a#ente e mais e"i$iente. O e"eito #2'i!o "oi 5ante$ipar a restrio6. Ante$ipar restri1es ( 'ase sempre ma 0oa
i!(ia& por'e ser.e para re!zir o n@mero !e tp#as a serem .arri!as na prH)ima operao !a se':+n$ia& e
pro.a.e#mente tam0(m re!z o n@mero !e tp#as na sa2!a !essa prH)ima operao.
A'i esto mais !ois $asos espe$2"i$os !a #ei !istri0ti.a& !essa .ez en.o#.en!o a pro4eo. Primeiro& o opera!or !e
pro4eo ( !istri0ti.o so0re nio e interseo 7mas no so0re !i"erena8=
7A UNION b 8 W C d A W C 1 UNION J W C d
7 A INT9RA9CT b 8 W C d A W C d INT9RA9CT b W C d
A'i& natra#mente& A e b !e.em ser !o mesmo tipo. Ae*n!o& a pro4eo tam0(m ( !istri0ti.a so0re a 4no % isto
(=
7A ROINb 8 W C d 7A W AC d 8 ROIN 7 b W bC d 8
D7F
% se e somente se=
? AC ( a nio 7a8 !os atri0tos $omns !e A e b e 708 !os atri0tos !e C 'e apare$em apenas em A.
? bC ( a nio 7a8 !os atri0tos $omns !e A e b e 708 !os atri0tos !e C 'e apare$em apenas em b.
9ssas #eis po!em ser sa!as para 5ante$ipar pro4e1es6& o 'e mais ma .ez $ostma ser ma 0oa i!(ia& por raz1es
seme#,antes Ys 'e "oram !a!as para restri1es.
Comtati.i!a!e e asso$iati.i!a!e
Otras !as #eis *erais importantes so as #eis !e $om tati.i!a!e e asso$iati.i!a!e. Primeiro& o opera!or !i-!i$o O (
!ito $omtati.o se e somente se
A O J b OA
para to!o A e b. Por e)emp#o& na aritm(ti$a $omm& a m#tip#i$ao e a a!io so $omtati.as& mas a !i.iso e a
s0trao no. Na -#*e0ra re#a$iona#& nio& interseo e 4no so to!as $omtati.as& mas !i"erena e !i.iso no.
Assim& por e)emp#o& se ma $ons#ta en.o#.e ma 4no !e !as re#a1es A e b& a #ei $omtati.a imp#i$a 'e no "az
!i"erena 'a# !entre A e b ( toma!a $omo re#ao 5e)terna6 e 'a# ( toma!a $omo 5interna6. O sistema ( portanto
#i.re para es$o#,er 7!i*amos8 a re#ao menor $omo a 5e)terna6 ao $a#$#ar a 4no 7$ons#te a Aeo 17.78.
^anto Y asso$iati.i!a!e= o opera!or !i-!i$o o ( !ito asso$iati.o se e somente se=
A X7bOC8fU7A XJ8X C
para to!o A& b& C. Por e)emp#o& na aritm(ti$a& m#tip#i$ao e a!io so asso$iati.as& mas !i.iso e s0trao no. Na
-#*e0ra re#a$iona#& nio& interseo e 4no so to!as opera1es asso$iati.as& mas no !i"erena e !i.iso. Assim& por
e)emp#o& se ma $ons#ta en.o#.e ma 4no !e tr+s re#a1es A& b e C& as #eis asso$iati.a e $omtati.a 4ntas imp#i$am
'e no "az !i"erena a or!em em 'e as re#a1es parti$ipam !a 4no. O sistema ( portanto #i.re para !e$i!ir 'a#
!as se':+n$ias poss2.eis ( mais e"i$iente.
I!empot+n$ia
Otra #ei *era# importante ( a #ei !e i!em pot+n$ia. O opera!or !i-!i$o O ( !ito i!empotente se e somente se
A O A A
para to!o A. Como seria !e esperar& a proprie!a!e !e i!empot+n$ia tam0(m po!e ser @ti# na trans"ormao !e
e)press1es. Na -#*e0ra re#a$iona#& nio& interseo e 4no so to!as i!empotentes& mas no !i"erena e !i.iso.
9)press1es $ompta$ionais es$a#ares
No so apenas as e)press1es re#a$ionais 'e esto s4eitas a #eis !e trans"ormao. Por e)emp#o& 4- in!i$amos 'e
$ertas trans"orma1es so .-#i!as para e)press1es aritm(ti$as. A'i est- m e)emp#o espe$2"i$o= a e)presso
A abeA a
po!e ser trans"orma!a em=
a 7J e C 8
*raas ao "ato !e 5a5 ser !istri0ti.o so0re 5e5. Um otimiza!or re#a$iona# pre$isa sa0er !essas trans"orma1es& por'e
en$ontrar- tais e)press1es no $onte)to !os opera!ores !e e)tenso e tota#izao.
A propHsito& o0ser.e 'e esse e)emp#o i#stra ma "orma #i*eiramente mais *era# !e !istri0ti.i!a!e. Antes& !e"inimos
!istri0ti.i!a!e em termos !e m opera!or mon-!i$o !istri0ti.o so0re m opera!or !i-!i$o/ por(m& neste otro $aso&
55 e 5e5 so am0os opera!ores!i-!i$os. De mo!o *era#& !izemos 'e o opera!or !i-!i$o ( !istri0ti.o so0re o opera!or
!i-!i$o O se e somente se=
A7bOC8 7Ab8O7AC8
para to!o A& b& C 7no e)emp#o aritm(ti$o anterior& $onsi!ere $omo 55 e O $omo 5e58.
9)press1es 0oo#eanas
Pamos e)aminar a*ora as e)press1es 0oo#eanas 7o e)press1es !e .a#or .er!a!e& o ain!a #H*i$as o $on!i$ionais8.
Apon,a 'e A e b se4am atri0tos !e !as re#a1es !istintas. 9nto a e)presso 0oo#eana
A g b AND b g F
( $#aramente e'i.a#ente a % e po!e portanto ser trans"orma!a em=
A g b AND b g F AND A g F
A e'i.a#+n$ia ( 0asea!a no "ato !e 'e o opera!or !e $omparao6g6 ( transiti.o. Note 'e essa trans"ormao
$ertamente mere$e ser "eita& por'e permite ao sistema e)e$tar ma restrio a!i$iona> 7so0re A8 antes !e "azer a
4no maior 'e e)i*i!a pe#a $omparao 5A g b6. Para repetir m !eta#,e 4- men$iona!o& e"etar restri1es
ante$ipa!as em *era# ( ma 0oa i!(ia/ "azer o sistema in"erir restri1es a!i$ionais 5ante$ipa!as6& $omo neste $aso&
tam0(m ( ma 0oa i!(ia. Nota= essa t($ni$a ( imp#ementa!a em .-rios pro!tos $omer$iais& in$#si.e 7por e)emp#o8
DbC % on!e e#a ( $,ama!a 5"e$,o transiti.o !e pre!i$a!o6 % e In*res.
A'i temos otro e)emp#o. A e)presso
AgbOR7CUDAND9hI8
po!e ser trans"orma!a em
7A gb OR CUD 8 AND 7A gJ OR 9hI8
*raas ao "ato !e 'e OR ( !istri0ti.o so0re AND. 9sse e)emp#o i#stra otra #ei *era#= 'a#'er e)presso 0oo#eana
po!e ser trans"orma!a em ma e)presso e'i.a#ente na'i#o 'e ( $,ama!o "orma norma# $on4nti.a 7CNI %
$on4n$ti.e norma# "orm8. Uma e)presso CNI ( ma e)presso !a "orma
C# AND CC AND ... AND Cn
on!e $a!a ma !as e)press1es C#& CC& ..& Cn (& por sa .ez& ma e)presso 0oo#eana 7$,ama!o m $on4n$tor8 'e no
en.o#.e nen,m opera!or AND. A .anta*em !a CNI ( 'e ma e)presso CNI ( .er!a!eira somente se to!o $on4ntor
( .er!a!eiro/ !e mo!o e'i.a#ente& e#a ( "a#sa se 'a#'er $on4n$tor ( "a#so. Como AND ( $omtati.a 7A AND b (
i*a# a b AND A8& o otimiza!or po!e a.a#iar os $on4n$tores in!i.i!ais em 'a#'er or!em 'e !ese4ar/ em parti$#ar&
po!e e"et-;#os na or!em !e !i"i$#!a!e $res$ente 7primeiro o mais "-$i#8. Lo*o 'e en$ontra m 'e ( "a#so& to!o o
pro$esso po!e parar. A#(m !isso& em m sistema !e pro$essamento para#e#o& ta#.ez at( mesmo se4a poss2.e# a.a#iar
to!os os $on4n$tores em para#e#o K17.BJ a 17.E1L. De no.o& #o*o 'e m $on4n$tor se torna "a#so& o pro$esso inteiro
po!e parar.
D7B
De$orre !esta s0seo e !a anterior 'e o otimiza!or pre$isa sa0er !e 'e mo!o proprie!a!es *erais $omo a
!istri0ti.i!a!e se ap#i$am no apenas a opera!ores re#a$ionais tais $omo 4no& mas tam0(m a opera!ores !e
$omparao& $omo 5g5& opera!ores #H*i$os $omo AND e OR& opera!ores aritm(ti$os $omo 5e5& e assim por !iante.
Trans"orma1es sem3nti$as
Consi!ere a se*inte e)presso=
7 IP ROIN I 8 W PT
A 4no a'i ( ma 4no !e $,a.e estran*eira para $,a.e $an!i!ata asso$ia!a/ e#a $om0ina ma $,a.e estran*eira
na re#ao IP $om ma $orrespon!ente $,a.e $an!i!ata na re#ao I. Ae*e;se 'e to!a tp#a !e IP parti$ipa !a
4no $om a#*ma tp#a !e I e& portanto& to!a tp#a !e IP $ontri0i $om m .a#or PT para o res#ta!o *era#. 9m
otras pa#a.ras& no ,- ne$essi!a!e !e "azer a 4no> % a e)presso po!e ser simp#i"i$a!a& tornan!o;se apenas
IP W PT d
No entanto& note 0em 'e essa trans"ormao ( .-#i!a somente !e.i!o Y sem3nti$a !a sitao. 9m *era#& $a!a m !os
operan!os em ma 4no in$#ir- a#*mas tp#as 'e no tero e'i.a#entes no otro operan!o 7e& portanto& a#*mas
tp#as 'e no $ontri0iro para o res#ta!o *era#8& e trans"orma1es $omo a 'e a$a0amos !e i#strar no sero
.-#i!as. Por(m& no $aso ata#& to!a tp#a !e IP tem ma $orrespon!ente em I& !e.i!o Y restrio !e inte*ri!a!e 7na
rea#i!a!e& ma restrio re"eren$ia#8 'e !iz 'e $a!a remessa !e.e ter m "orne$e!or& e assim a trans"ormao ser-
.-#i!a a"ina#.
Urna trans"ormao 'e ( .-#i!a somente por'e rna $erta restrio !e inte*ri!a!e est- em e"eito ( $,ama!a
trans"ormao sem3nti$a K17.C71 e a otimizao res#tante ( $,ama!a otimizao sem3nti$a. A otimizao sem3nti$a
po!e ser !e"ini!a $orno o pro$esso !e trans"ormar ma $ons#ta espe$i"i$a!a em otra $ons#ta& 'a#itati.amente
!i"erente& mas !a 'a# se *arante 'e pro!zir- o mesmo res#ta!o 'e a ori*ina# *raas ao "ato !e 'e os !a!os $om
$erteza satis"azem a ma !etermina!a restrio !e inte*ri!a!e.
[ importante enten!er 'e& em prin$2pio& a0so#tamente 'a#'er restrio !e inte*ri!a!e po!e ser sa!a na
otimizao sem3nti$a 7a t($ni$a no est- #imita!a a restri1es re"eren$iais $omo a !o e)emp#o8. Pamos spor a t2t#o
!e e)emp#o 'e o 0an$o !e !a!os !e "orne$e!ores e peas este4a s4eito Y restrio 5To!as as peas .erme#,as !e.em
estar armazena!as em Lon!res6 e $onsi!ere a $ons#ta=
O0ter "orne$e!ores 'e "orne$em somente peas .erme#,as e esto #o$a#iza!os na mesma $i!a!e em 'e se en$ontra
pe#o menos ma !as peas 'e e#es "orne$em.
9ssa ( ma $ons#ta 0astante $omp#e)a> Por(m& *raas Y restrio !e inte*ri!a!e& e#a po!e ser $on.erti!a para a
"orma mito mais simp#es=
O0ter "orne$e!ores !e Lon!res 'e "orne$em somente peas .erme#,as.
Nota= tanto 'anto sa0emos& po$os pro!tos $omer$iais atais ti#izam a otimizao sem3nti$a. Cont!o& em prin$2pio&
ta# otimizao po!eria propi$iar me#,orias !e !esempen,o mito si*ni"i$ati.as
% pro.a.e#mente me#,orias 0em maiores !o 'e a'e#as o0ti!as por 'a#'er !as t($ni$as !e otimizao mais
tra!i$ionais !e ,o4e. Para e)aminar ma !es$rio mais pro"n!a !a i!(ia !e otimizao sem3nti$a& $ons#te as
re"er+n$ias K17.1EL& K17.CJ a 17.FXL e 7espe$ia#mente8 K17.C7L.
O0ser.a1es "inais
Para en$errar esta seo& en"atizamos a import3n$ia "n!amenta# !a proprie!a!e !e "e$,amento re#a$iona# em t!o
'e esti.emos !is$tin!o. O "e$,amento si*ni"i$a 'e po!emos es$re.er e)press1es anin,a!as& o 'e por sa .ez
si*ni"i$a 'e ma @ni$a $ons#ta po!e ser representa!a por ma @ni$a e)presso&
D7E em .ez !e m pro$e!imento !e .-rias instr1es/ assim& no ( ne$ess-ria 'a#'er an-#ise !e "#)o. A#(m
!isso& essas e)press1es anin,a!as so !e"ini!as re$rsi.amente em termos !e s0e)press1es& o 'e permite ao
otimiza!or a!otar ma .arie!a!e !e t-ti$as !e a.a#iao !e 5!i.i!ir e $on'istar6 7$ons#te a Aeo 17.E. a se*ir8. 9&
natra#mente& as .-rias #eis *erais % !istri0ti.i!a!e& et$. % nem se'er $omeariam a "azer senti!o na as+n$ia !a
proprie!a!e !e "e$,amento.
17.B 9ATATATICAA D9 bANCOA D9 DADOA
Os 9st-*ios F e D !o pro$esso *era# !e otimizao& os est-*ios !e 5se#eo !e $amin,o !e a$esso6& "azem so !as
$,ama!as estat2sti$as !e 0an$os !e !a!os armazena!as no $at-#o*o 7$ons#te a Aeo 17.7 para o0ter mais !eta#,es
so0re $omo essas estat2sti$as so sa!as8. Para "ins !e i#strao& resmimos a se*ir 7$om po$os $oment-rios
a!i$ionais8 a#*mas !as prin$ipais estat2sti$as manti!as por !ois pro!tos $omer$iais& DbC e In*res. Primeiro& a'i
esto a#*mas !as prin$ipais estat2sti$as manti!as pe#o DbC=a
? Para $a!a ta0e#a 0-si$a=
? Car!ina#i!a!e.
? N@mero !e p-*inas o$pa!as por esta ta0e#a.
? Irao !o 5espao !e ta0e#a6 o$pa!o por esta ta0e#a.
? Para $a!a $o#na !e $a!a ta0e#a 0-si$a=
? N@mero !e .a#ores !istintos nesta $o#na.
? Ae*n!o .a#or mais a#to nesta $o#na.
? Ae*n!o .a#or mais 0ai)o nesta $o#na.
? Aomente para $o#nas in!e)a!as& os !ez .a#ores 'e o$orrem $om maior "re':+n$ia nesta $o#na e o n@mero !e .ezes
em 'e o$orrem.
? Para $a!a 2n!i$e=
? Uma in!i$ao 'anto a ser este m 52n!i$e !e a*rpamento6 7$#sterin* in!e)8 7isto (& m 2n!i$e sa!o para a*rpar
!a!os #o*i$amente re#a$iona!os em posi1es "isi$amente $ont2*as no !is$o8.
? Ae "or o $aso& a "rao !a ta0e#a in!e)a!a ain!a em se':+n$ia !e a*rpamento em $#ster.
? N@mero !e p-*inas !e "o#,as neste 2n!i$e.
? N@mero !e n2.eis neste 2n!i$e.
Nota= as estat2sti$as anteriores no so ata#iza!as to!a .ez 'e o 0an$o !e !a!os ( ata#iza!o& !e.i!o Y so0re$ar*a
'e ma ta# a0or!a*em a$arretaria. 9m .ez !isso& e#as so ata#iza!as se#eti.amente& por meio !e m ti#it-rio espe$ia#
!o sistema $,ama!o RUNATATA& e)e$ta!o a pe!i!o pe#o DbA 7por e)emp#o& apHs ma reor*anizao !o 0an$o !e
!a!os8. Uma o0ser.ao an-#o*a se ap#i$a Y maioria !os otros pro!tos $omer$iais 7em0ora no to!os8& in$#si.e em
parti$#ar o In*res 7.er a se*ir8& no 'a# o ti#it-rio ( $,ama!o OPTIMIi9Db.
A'i temos ento a#*mas !as prin$ipais estat2sti$as !o In*res. Nota= no In*res& m 2n!i$e ( $onsi!era!o $omo apenas
m tipo espe$ia# !e ta0e#a armazena!a/ assim& as estat2sti$as mostra!as a se*ir para ta0e#as 0-si$as e $o#nas
tam0(m po!em ser o0ti!as para 2n!i$es.
a Como so sistemas A^L& tanto DbC 'anto In*res empre*am os termos ta0e#a e $o#na em #*ar !e .ari-.e# !e
re#ao e atri0to/ assim& nesta seo& tam0(m o "aremos. A#(m !isso& o0ser.e 'e am0os os pro!tos pressp1em
e"eti.amente 'e ta0e#as
0-si$as so mapea!as !iretamente em ta0e#as armazena!as. D77
? Para $a!a ta0e#a 0-si$a=
? Car!ina#i!a!e.
? N@mero !e p-*inas prim-rias para esta ta0e#a.
? N@mero !e p-*inas !e o.er"#oj para esta ta0e#a.
? Para $a!a $o#na !e $a!a ta0e#a 0-si$a=
? N@mero !e .a#ores !istintos nesta $o#na.
? Pa#ores m-)imo& m2nimo e m(!io para esta $o#na.
? Pa#ores e"eti.os nesta $o#na e o n@mero !e .ezes em 'e e#es o$orrem.
17.E UMA 9ATRAT[\IA D9 DIPIDIR 9 CON^UIATAR
Como !issemos no "ina# !a Aeo 17.D& e)press1es re#a$ionais so !e"ini!as re$rsi.amente $iii termos !e
s0e)press1es& e esse "ato permite ao otimiza!or a!otar ma .arie!a!e !e estrat(*ias !e 5!i.i!ir e $on'istar6.
O0ser.e 'e tais estrat(*ias pro.a.e#mente sero atraentes em espe$ia# no $aso !e m am0iente !e pro$essamento
para#e#o % em parti$#ar& em m sistema !istri02!o % on!e !i"erentes partes !a $ons#ta po!em ser e)e$ta!as em
para#e#o em !i"erentes pro$essa!ores K17.BJ a 17.E1L. Nesta seo& e)aminamos ma !essas estrat(*ias& $,ama!a
!e$omposio !e $ons#ta& 'e "oi ti#iza!a pe#a primeira .ez pe#o protHtipo !o In*res K17.FE e 17.F71. Nota= otras
in"orma1es so0re otimizao no In*res 7mais espe$i"i$amente no pro!to $omer$ia#& 'e ( m tanto !i"erente !o
protHtipo nesse aspe$to8 po!em ser en$ontra!as em m arti*o !e kooi e Iranl"ort, na re"er+n$ia K17.CL. Cons#te
tam0(m a re"er+n$ia
K17.FJL.
A i!(ia 0-si$a 'e norteia a !e$omposio !e $ons#tas ( !esmem0rar ma $ons#ta 'e en.o#.e mitas .ari-.eis !e
inter.a#osa em ma se':+n$ia !e $ons#tas menores& en.o#.en!o 7em *era#8 ma o !as !essas .ari-.eis $a!a ma&
ti#izan!o !esmem0ramento e s0stitio !e t pia& a "im !e $onse*ir a !e$omposio !ese4a!a=
a Desmem0ramento ( o pro$esso !e remo.er m $omponente !a $ons#ta 'e tem apenas ma .ari-.e# em $omm $om o
restante !a $ons#ta.
a A0stitio !e tp#a ( o pro$esso !e s0stitir para ma !as .ari-.eis !a $ons#ta& ma tp#a !e $a!a .ez.
O !esmem0ramento ( sempre sa!o pre"eren$ia#mente Y s0stitio !e tp#a& !es!e 'e ,a4a es$o#,a 7.e4a o e)emp#o
a se*ir8. Por(m& e.enta#mente& a $ons#ta ter- si!o !e$omposta por meio !o !esmem0ramento em m $on4nto !e
$omponentes 'e no po!ero mais ser !e$ompostos $om o so !essa t($ni$a& e a s0stitio !e tp#a ter- !e entrar
em $ena.
Damos a'i m @ni$o e)emp#o 70asea!o em m e)emp#o !a re"er+n$ia K17.FEL8. A $ons#ta ( 5O0ter nomes !e
"orne$e!ores !e Lon!res 'e "orne$em a#*ma pea .erme#,a pesan!o menos !e CB #i0ras em ma 'anti!a!e maior
'e CXX6. A'i est- ma "orm#ao em ^U9L !essa $ons#ta 75$ons#ta ^O68=
^O= R9TRI9P9 7 I.INOM9 8 S<9R9 I.CIDAD9 U Lon!resQ
AND I.IT U IP.IT
AND IP.^D9 g CXX
AND IP.PT U P.PT
AND P.COR U 5Perme#,o6
AND P.P9AO h CB
As .ari-.eis !e inter.a#os 7imp#2$itas8 a'i so I& P e IP& $a!a 'a# .arian!o so0re a .ari-.e# !e re#ao 0-si$a $om o
mesmo nome.
D7J a Lem0re;se !e 'e a #in*a*em !e $ons#ta ^U9L !o In*res ( 0asea!a no $-#$#o.
A*ora& se e)aminarmos essa $ons#ta& .eremos ime!iatamente pe#o !ois @#timos termos !e $omparao 'e as @ni$as
peas em 'e estamos interessa!os so peas .erme#,as e 'e pesam menos !e CB #i0ras. Assim& po!emos !esmem0rar
a 5$ons#ta !e ma .ari-.e#6 7na .er!a!e& ma pro4eo !e ma restrio8 en.o#.en!o a .ari-.e# P=
D#= R9TRI9P9 INTO P 7 P.PT 8 S<9R9 P.COR U 5Perme#,o6
AND P.P9AO h CB
9ssa $ons#ta !e ma .ari-.e# po!e ser !esmem0ra!a por'e tem apenas ma .ari-.e#& o se4a& a prHpria P& em $omm
$om o restante !a $ons#ta. Como e#a se #i*a ao restante !a $ons#ta ori*ina# atra.(s !o atri0to PT 7no termo !e
$omparao IP.PT U P.PT8& o atri0to PT ( o 'e !e.e apare$er na 5prototp#a6 7$ons#te o Cap2t#o 78 na .erso
!esmem0ra!a/ isto (& a $ons#ta !esmem0ra!a !e.e re$perar e)atamente os n@meros !e pea !as peas .erme#,as
'e pesam menos 'e CB #i0ras. \ra.amos essa $ons#ta !esmem0ra!a $omo ma $ons#ta D# 'e o0t(m se res#ta!o
em ma .ari-.e# !e re#ao tempor-ria PQ 7o e"eito !a $#-s#a INTO ( "azer $om 'e ma no.a re#ao PQ& $om o @ni$o
atri0to PT& ser !e"ini!a atomati$amente para *ar!ar o res#ta!o !a e)e$o !e R9TRI9P98. Iina#mente&
s0stit2mos as re"er+n$ias a P na .erso re!zi!a !e ^O por re"er+n$ias a PQ. Pamos $,amar essa no.a .erso
re!zi!a !e $ons#ta ^i=
^i= R9TRI9P9 7 I.INOM9 8 S<9R9 I.CIDAD9 U 5Lon!res6
AND I.IT U IP.IT
AND IP.^D9 g CXX
AND IP.PT U
A*ora& .amos e)e$tar m pro$esso seme#,ante !e !esmem0ramento so0re a $ons#ta ^i& !esmem0ran!o a $ons#ta
!e ma .ari-.e# 'e en.o#.e a .ari-.e# IP $omo a $ons#ta DC e !ei)an!o ma .erso mo!i"i$a!a !e ^i 7$ons#ta ^C8=
DC= R9TRI9P9 INTO IPQ 7 IP.IT. IP.PT 8 S<9R9 IP.^D9 g CXX
^C= R9TRI9P9 7 I.INOM9 8 S<9R9 I.CIDAD9 U 5Lon!res6
AND I.IT U IPQ.IT
AND IPQ.PT U
9m se*i!a& !esmem0ramos a $ons#ta em ma .ari-.e# 'e en.o#.e I=
DF= R9TRI9P9 INTO IQ 7 I.IT& I.INOM9 8 S<9R9 I.CIDAD9 U 5Lon!res6
^F= R9TRI9P9 7 IQ.INOM9 8 S<9R9 IQ.IT U IPQ.IT
AND IPQ.PT U
Iina#mente& !esmem0ramos a $ons#ta !e !as .ari-.eis 'e en.o#.e IPQ e
XD= R9TRI9P9 INTO IPQ V 7 IPQ .IT 8 S<9R9 IPQ .PT U
^D= R9TRI9P9 C IQ .INOM9 8 S<9R9 IQ .IT U IPQ V .IT
Assim& a $ons#ta ori*ina# ^O "oi !e$omposta em tr+s $ons#tas !e ma .ari-.e# D#& DC e DF 7$a!a ma !as 'ais ( ma
pro4eo !e ma restrio8 e !as $ons#tas !e !as .ari-.eis DD e ^D 7$a!a ma !as 'ais ( ma pro4eo !e ma
4no8. A essa a#tra& po!emos representar a sitao por meio !a estrtra !e -r.ore mostra!a na Ii*ra 17.F. 9ssa
"i*ra !e.e ser #i!a assim=
? As $ons#tas D#& DC e DF tomam $omo entra!a as .ari-.eis !e re#a1es P& IP e I 7mais pre$isamente& as re#a1es 'e
so os .a#ores atais !as .ari-.eis !e re#a1es P& IP e I8& respe$ti.amente&
e pro!zem $omo sa2!a PQ& IPQ e IQ. D7_
Res#ta!o "ina#
m
IP
II\URA 17.F mr.ore !e !e$omposio para a $ons#ta ^O
? A $ons#ta DD toma ento PQ e IPQ $omo entra!a e pro!z a sa2!a a IP6.
? Iina#mente& a $ons#ta ^D toma IQ e IP6 $omo entra!a e pro!z $omo sa2!a o res#ta!o *era# pe!i!o.
O0ser.e a*ora 'e as $ons#tas D#& DC e DF so $omp#etamente in!epen!entes mas !as otras e po!em ser
pro$essa!as em 'a#'er or!em 7ta#.ez at( mesmo em para#e#o8. Note ain!a 'e as $ons#tas DF e DD po!em ser
pro$essa!as em 'a#'er or!em& ma .ez 'e as $ons#tas D# e DC ten,am si!o pro$essa!as. Por(m& as $ons#tas DD e
^D no po!em ser mais !e$ompostas e !e.em ser pro$essa!as por s0stitio !e tp#a 7o 'e na .er!a!e si*ni"i$a
simp#esmente "ora 0rta& pes'isa !e 2n!i$e o pes'isa !e ,as, % $ons#te a Aeo 17.78. Por e)emp#o& $onsi!ere a
$ons#ta ^D. Com nossa amostra !e !a!os sa#& o $on4nto !e n@meros !e "orne$e!ores no atri0to IP6.IT ser- o
$on4nto WI1&IC&IDd. Ca!a m !esses tr+s .a#ores ser- $o#o$a!o por sa .ez no #*ar !e IP6.IT. Portanto& ^D ser-
a.a#ia!a $omo se ti.esse si!o es$rita assim=
R9TRI9P9 7 IQ.INOM9 8 S<9R9 I .IT U
OR IQ.IT U
OR IQ.IT U
A re"er+n$ia K17.F EL "orne$e a#*oritmos para !i.i!ir a $ons#ta ori*ina# em $ons#tas $omponentes irre!t2.eis e
es$o#,er .ari-.eis para s0stitio !e tp#a. 9 nessa @#tima opo 'e resi!e *ran!e parte !a otimizao e"eti.a/ a
re"er+n$ia K17.F EL in$#i ,er2sti$as para "azer a.a#ia1es !e $stos 'e orientam a opo 7norma#mente % mas nem
sempre % o In*res es$o#,er- a re#ao $om a menor $ar!ina#i!a!e $omo a'e#a em 'e ser- "eita a s0stitio8. Os
prin$ipais o04eti.os !o pro$esso !e otimizao $omo m to!o !e.em ser e.itar a ne$essi!a!e !e e#a0orar pro!tos
$artesianos e manter o n@mero !e tp#as a serem .arri!as em m m2nimo para $a!a est-*io.
A re"er+n$ia K17.F EL no !is$te a otimizao !e $ons#tas !e ma .ari-.e#. Por(m& as in"orma1es re#ati.as a esse
n2.e# !e otimizao so !a!as no !o$mento !e a.a#iao !o In*res K7.11L. basi$amente& e#e ( seme#,ante Y "no
an-#o*a em otros sistemas& en.o#.en!o o so !e in"orma1es estat2sti$as manti!as no $at-#o*o e a opo !e m
!etermina!o $amin,o !e a$esso 7por e)emp#o& m ,as,in* o 2n!i$e8 para .arrer os !a!os armazena!os.
A re"er+n$ia K17.F7L apresenta a#*ma e.i!+n$ia e)perimenta# % me!i1es !e m $on4nto !e re"er+n$ia !e $ons#tas
% 'e s*ere 'e as t($ni$as !e otimizao !es$ritas so 0asi$amente $orretas e na pr-ti$a 0astante e"i$azes. A'i
esto a#*mas $on$#s1es espe$2"i$as !esse arti*o=
1. Desmem0rar ( a me#,or ao ini$ia#.
C. Ae "or pre$iso "azer primeiro a s0stitio !e tp#a& ento a me#,or opo !e .ari-.e# para s0stitio ser- ma
.ari-.e# !e 4no.
A
I ^D i% IP
m
DF
m A
I D#
m
p
m
% DD i% IP m
DC
DJX
F. Uma .ez ap#i$a!a a s0stitio !e tp#a a ma .ari-.e# em ma $ons#ta !e !as .ari-.eis& ( ma e)$e#ente t-ti$a
$onstrir m 2n!i$e o ap#i$ar ,as,in* 5!rante a e)e$o6 7se ne$ess-rio8 so0re o atri0to !e 4no na otra
re#ao. Na .er!a!e& o In*res ap#i$a $om "re':+n$ia essa t-ti$a.
17.7 IMPL9M9NTAO D9 OP9RADOR9A R9LACIONAIA
Pamos apresentar a*ora ma 0re.e !es$rio !e a#*ns m(to!os !iretos para imp#ementao !e $ertos opera!ores
re#a$ionais& em parti$#ar o !e 4no. Nossa prin$ipa# razo para in$#ir esse materia# ( simp#esmente remo.er
'a#'er poss2.e# ar !e mist(rio 'e ain!a este4a ron!an!o o pro$esso !e otimizao. Os m(to!os 'e !is$tiremos
$orrespon!em ao 'e $,amamos 5pro$e!imentos !e imp#ementao !e 0ai)o n2.e#6 na Aeo 17.F. Nota= a#*mas
t($ni$as !e imp#ementao mito mais so"isti$a!as sero !es$ritas nas anota1es !e a#*mas !as re"er+n$ias no "ina#
!o $ap2t#o.
Para simp#i"i$ar& .amos spor 'e tp#as e re#a1es este4am armazena!as "isi$amente $omo tais. Os opera!ores 'e
$onsi!eramos so os !e pro4eo& 4no e tota#izao % on!e empre*amos o termo 5tota#izao6 para in$#ir am0os os
$asos a se*ir=
1. Tota#izao por nen,m atri0to.
C. Tota#izao por pe#o menos m atri0to.
O Caso 1 ( !ireto. basi$amente& e#e en.o#.e a .arre!ra !a re#ao inteira so0re a 'a# a tota#izao !e.e ser "eita %
e)$eto pe#o "ato !e 'e& se o atri0to a ser a*re*a!o 7por e)emp#o& pe#o $-#$#o !a m(!ia8 esti.er in!e)a!o& ta#.ez
se4a poss2.e# $a#$#ar o res#ta!o !iretamente a partir !o 2n!i$e& sem ter !e o0ter a$esso Y prHpria re#ao K17.FBL.
Por e)emp#o& a e)presso=
AIRMMARIi9 IP ADD AP\ 7 ^D9 8 AA A^
po!e ser a.a#ia!a .arren!o;se o 2n!i$e ^D9 7spon!o 'e e)ista ta# 2n!i$e8 sem to$ar em a0so#to na re#ao IP. Uma
o0ser.ao seme#,ante se ap#i$ar- se AP\ "or s0stit2!a por COUNT o AUM 7para COUNT& 'a#'er 2n!i$e ser.ir-8.
^anto a MAN e MIN& o res#ta!o po!e ser en$ontra!o por meio !e m @ni$o a$esso Y @#tima entra!a !e 2n!i$e 7para
MAN8 o Y primeira 7no $aso !e MIN8& spon!o;se ain!a 'e e)ista m 2n!i$e para o atri0to em 'esto.
No restante !esta seo& $onsi!eraremos 5tota#izao6 $omo si*ni"i$an!o espe$i"i$amente o Caso C. A'i est- m
e)emp#o !o Caso C=
AUMMARIi9 IP P9R P W PT d ADD AUM 7 ^D9 8 AA ^D9TOTAL
Do ponto !e .ista !o s-rio& ( $#aro 'e pro4eo& 4no e tota#izao !o Caso C so mito !i"erentes mas !a otras.
Por(m& !o ponto !e .ista !a imp#ementao& e#as *ar!am $ertas seme#,anas por'e em $a!a $aso o sistema pre$isa
a*rpar tp#as $om 0ase em .a#ores $omns !e atri0tos espe$i"i$a!os. No $aso !a pro4eo& esse a*rpamento
permite ao sistema e#iminar !p#i$atas/ no $aso !e 4no& permite #o$a#izar tp#as $oin$i!entes/ e no $aso !e
tota#izao permite $omptar os .a#ores a*re*a!os in!i.i!ais 7isto (& por *rpo8. <- .-rias t($ni$as para se rea#izar
ta# a*rpamento=
1. Iora 0rta.
C. Pes'isa !e 2n!i$e.
F. Pes'isa !e ,as,.
D. Inter$a#ao 7Mer*e8.
B. <as,.
E. Com0ina1es !os itens anteriores.
As Ii*ras 17.D a 17.J !o pro$e!imentos em pse!o$H!i*o para o $aso espe$2"i$o !a 4no 7pro4eo e tota#izao
"i$aro $omo e)er$2$ios8. A notao sa!a nessas "i*ras ( a se*inte= primeiro& R e A
so as re#a1es a so"reram 4no& e C ( se atri0to $omm 7possi.e#mente $omposto8. Pamos spor 'e DJ1
se4a poss2.e# o0ter a$esso Ys tp#as !e R e !e A ma !e $a!a .ez em a#*ma se':+n$ia& e .amos !enotar essas tp#as&
nessa se':+n$ia& por RK1L& RKCR& ...& RKm4 e AK1L& AKC1& ...& AKn4& respe$ti.amente. Usamos a e)presso RKi# a AK44 para
!enotar a tp#a !e 4no "orma!a pe#as tp#as RKi4 e AK44. Iina#mente& .amos nos re"erir aR $omo a re#ao e)terna e
a A $omo a re#ao interna 7por'e e#as $ontro#am o #oop e)terno e o ioop interno& respe$ti.amente8.
Iora brta
Iora 0rta ( o 'e se po!eria $,amar !e $aso 5norma#6& em 'e $a!a $om0inao poss2.e# !e tp#as ( inspe$iona!a
7isto (& $a!a tp#a !e R ( e)amina!a em $on4no $om $a!a tp#a !e A& $omo in!i$a a Ii*ra 17.D8. Nota= $om
"re':+n$ia& "ora 0rta ( $,ama!a !e 5ioops anin,a!os6 7reste! #oops8& mas esse nome ( en*ana!or por'e #oops
anin,a!os esto na .er!a!e en.o#.i!os $om to!os os a#*oritmos.
!o i =U 1 to m / Z ioop e)terno Z
!o 4 =U 1 to n / Za ioop interno Z
i" RKiL.C AK4L.C t,en
a!! 4oine! tp#e RKiL a
A9iL to res#t
en!
en! /
II\URA 17.D Iora 0rta
Pamos e)aminar os $stos asso$ia!os $om a a0or!a*em !e "ora 0rta. Nota= no $aso& .amos #imitar nossa ateno
apenas aos $stos !e 9ZA& em0ora otros $stos 7por e)emp#o& $stos !e CPU8 tam0(m possam ser importantes na
pr-ti$a.
Primeiro& a a0or!a*em $#aramente e)i*e m tota# !e m e 7m a n8 opera1es !e #eitra !e tp#as/ mas& e 'anto Y
*ra.ao !e tp#as] % isto (& 'a# ( a $ar!ina#i!a!e !o res#ta!o !a 4no] 7O n@mero !e *ra.a1es !e tp#as ser-
i*a# a essa $ar!ina#i!a!e se o res#ta!o ti.er !e ser *ra.a!o !e .o#ta no !is$o.8
? No importante $aso parti$#ar !e 4no mitos para m 7em espe$ia#& ma 4no !e $,a.e estran*eira para $,a.e
$an!i!ata asso$ia!a8& a $ar!ina#i!a!e !o res#ta!o ( $#aramente i*a# Y $ar!ina#i!a!e % o se4a& m o n % !e 'a#'er
!as re#a1es entre R e A 'e represente o #a!o !a $,a.e estran*eira !a 4no.
? A*ora& $onsi!ere o $aso mais *era# !e 4no mitos para mitos. Ae4a !CR o n@mero !e .a#ores !istintos !o atri0to
!e 4no C na re#ao R& e se4a !CA !e"ini!o !e mo!o an-#o*o. Ae assmirmos !istri0i1es ni"ormes !e .a#ores 7!e
mo!o 'e 'a#'er .a#or !a!o !e C na re#ao R ten,a a mesma pro0a0i#i!a!e !e o$orrer 'e 'a#'er otro8& ento
para ma !a!a tp#a !e R ,a.er- nI!CA tp#as !e A $om o mesmo .a#or para C 'e essa tp#a/ portanto& o n@mero tota#
!e tp#as na 4no 7isto (& a $ar!ina#i!a!e !o res#ta!o8 ser- 7m a n8I!CA. O& se $omearmos por $onsi!erar ma
!a!a tp#a !e A em .ez !e ma tp#a !e R& o n@mero tota# ser- 7n a m8I!CR/ os !ois .a#ores sero !i"erentes se !CR ...
!CA& isto (& se e)istirem .a#ores !e C 'e o$orram em R mas no em A o .i$e;.ersa& $aso em 'e se sar- o .a#or mais
0ai)o.
Na pr-ti$a& $omo !issemos na Aeo 17.C& ( $#aro 'e o 'e importa so as opera1es !e 9ZA !e p-*inas& no 9ZA !e
tp#as. Apon,amos& portanto& 'e as tp#as !e R e !e A este4am armazena!as pR para
ma p-*ina e pA para ma p-*ina& respe$ti.amente 7!e mo!o 'e as !as re#a1es o$pem mIpR p-*inas
e nIpA p-*inas& respe$ti.amente. 9nto& ( "-$i# .er 'e o pro$e!imento !a Ii*ra 17.D en.o#.er- 7mIpR8
e 7m a n8IpA #eitras !e p-*inas. O& se tro$armos os pap(is !e R e A 7tornan!o A a re#ao e)terna e R a
interna8& o n@mero !e #eitras !e p-*inas ser- 7nIpA8 e 7n a m8IpR.
DJC
Za spon,a ta0e#a ,as, < so0re A.C a&
!o i = 1 to m / Z #oop e)terno aZ
l =U ,as, 7RKiR.C8
Z se4am , tp#as AK1L& ...& AK,L armazena!as em <7l8 a1
!o 4 =U 1 to , / Z #oop e)terno Z
i" AK4L.C U RKiL.C t,en
a!! 4oine! tp#e R7iL a AW4R to res#t
en! /
en! /
II\URA 17.E Pes'isa !e ,as,
Inter$a#ao 7Mer*e8
A t($ni$a !e inter$a#ao pressp1e 'e am0as as re#a1es R e A esto "isi$amente armazena!as em se':+n$ia por
.a#ores !o atri0to !e 4no C. Ae isso !e "ato a$onte$e& as !as re#a1es po!em ser .arri!as em se':+n$ia "2si$a& as
!as .arre!ras po!em ser sin$roniza!as e to!a a 4no po!e ser "eita em ma @ni$a passa*em so0re os !a!os 7pe#o
menos& essa a"irmao ( .er!a!eira se a 4no ( !e m para mitos/ e#a po!e no ser .er!a!eira no $aso !e mitos
para mitos8. 9ssa t($ni$a ( in!is$ti.e#mente Htima& por'e o a$esso a $a!a p-*ina o$orre apenas ma .ez 7.er Ii*ra
17.78. 9m otras pa#a.ras& o n@mero !e #eitras !e p-*inas ( somente 7mZpR8 e 7nZpA8. Ae*e;se 'e=
? O a*rpamento "2si$o em $#ster !e !a!os #o*i$amente re#a$iona!os ( m !os "atores !e !esempen,o mais $r2ti$os/
o se4a& ( a#tamente !ese4-.e# 'e os !a!os este4am a*rpa!os em $#ster !e mo!o a "azer $orrespon!erem as
4n1es 'e se4am mais importantes para a empresa K17._1.
? Na as+n$ia !e ta# a*rpamento em $#ster& "re':entemente ( ma 0oa i!(ia or!enar 7sort8 ma o am0as as re#a1es
!rante a e)e$o& e !epois e"etar ma 4no !e inter$a#ao 7mer*e #oin8 !e 'a#'er "orma 7( $#aro 'e o e"eito
!e ta# or!enao ( e)atamente pro!zir o a*rpamento em $#ster !ese4a!o !e mo!o !in3mi$o8. C,amamos essa
t($ni$a 7!e "orma 0astante #H*i$a8 !e or!enarZinter$a#ar 7sortZmer*e8 K17.1XL.
A re"er+n$ia K17.FBL $ont(m mais !eta#,es.
Za spon,a 'e R e A este4am $#assi"i$a!os so0re o atri0to C / Z
Z em se*i!a o $H!i*o sp1e 'e a 4no ( !e mitos para mitos/ Z
Z o $aso mais simp#es !e mitos para m "i$a $omo e)er$2$io a1
r = 1 /
s = 1 /
!o j,i#e r f m m an! s f n / Za #oop e)terno Z
. = RKrL.C
!o 4 =U A 0n 1 j,i#e AW*4.C h . /
en! /
B = 4 /
!o 4 =U s 0n 1 j,i#e A"*L.C U P / Z #oop interno prin$ipa# aZ
!o i =U r 0n 1 j,i#e RKiL.C U .
a!! 4oine! tp#e R7iL a A9iL to res#t
en! /
en! /
B i /
!o i =U r 0n 1 j,i#e RKiL.C U . /
en! /
r =U 1 /
en!
DJD II\URA 17.7 Inter$a#ao 7$aso !e mitos para mitos8
<as,
Como a t($ni$a !e inter$a#ao 'e a$a0amos !e !is$tir& a t($ni$a !e ,as, e)i*e apenas ma passa*em so0re $a!a
ma !as re#a1es 7.er Ii*ra 17.J8. A primeira passa*em $onstrHi ma ta0e#a ,as, para a re#ao A so0re .a#ores !o
atri0to !e 4no A.C/ as entra!as nessa ta0e#a $ont+m o .a#or !e atri0to !e 4no % e possi.e#mente tam0(m
.a#ores !e otros atri0tos % e m ponteiro para a tp#a $orrespon!ente no !is$o. A se*n!a passa*em ento .arre a
re#ao R e ap#i$a a mesma "no ,as, ao atri0to !e 4no R.C. ^an!o ma tp#a !e R $o#i!e na ta0e#a ,as, $om
ma o mais tp#as !e A& o a#*oritmo .eri"i$a se os .a#ores !e R.C e A.C so !e "ato i*ais e& se "orem& *era a7s8
tp#a7s8 !e 4no apropria!a7s8. A *ran!e .anta*em !essa t($ni$a so0re a !e inter$a#ao ( 'e as re#a1es R e A no
pre$isam ser armazena!as em a#*ma or!em parti$#ar e& portanto& no ( ne$ess-ria nen,ma or!enao.
II\URA 17.J <as,
Como no $aso !a t($ni$a !e pes'isa !e ,as,& a !eri.ao !e estimati.as !e $stos para essa a0or!a*em tam0(m "i$a
$omo e)er$2$io.
17.J R9AUMO
Comeamos a"irman!o 'e a otimizao representa ao mesmo tempo m !esa"io e ma oportni!a!e para sistemas
re#a$ionais. Na .er!a!e& a possi0i#i!a!e !e otimizao ( ma "ora !e tais sistemas& por .-rias raz1es/ m sistema
re#a$iona# $om m 0om otimiza!or po!eria mito 0em ter !esempen,o sperior ao !e m sistema no re#a$iona#. Nosso
e)emp#o intro!tHrio "orne$e ma noo !os tipos !e aper"eioamentos 'e po!eriam ser a#$ana!os 7m "ator !e
mais !e 1X.XXX para 1 nesse $aso parti$#ar8.
Os 'atro *ran!es est-*ios !e otimizao so=
? Mo#!ar a $ons#ta em a#*ma "orma interna 7em *era#& ma -r.ore !e $ons#ta o -r.ore !e sinta)e a0strata& mas tais
representa1es po!em ser $onsi!era!as simp#esmente $omo ma "orma interna#iza!a !a -#*e0ra re#a$iona# o !o
$-#$#o re#a$iona#8.
? Con.erter para a "orma $anGni$a& san!o .-rias #eis !e trans"ormao.
? 9s$o#,er pro$e!imentos !e 0ai)o n2.e# $an!i!atos para a imp#ementao !e .-rios opera!ores na representao
$anGni$a !a $ons#ta.
? \erar p#anos !e $ons#ta e es$o#,er o mais e$onGmi$o& san!o "Hrm#as !e $sto e $on,e$imento !e estat2sti$as !o
0an$o !e !a!os.
9m se*i!a& !is$timos as #eis *erais !istri0ti.a& $omtati.a e asso$iati.a e a .ia0i#i!a!e !e sa ap#i$ao a
opera!ores re#a$ionais tais $omo 4no 7e tam0(m a .ia0i#i!a!e !e sa ap#i$ao a opera!ores aritm(ti$os& #H*i$os e
!e $omparao8& e men$ionamos tam0(m otra #ei *era# $,ama!a i!empot+n$ia. Tam0(m !is$timos a#*mas
trans"orma1es espe$2"i$as para os opera!ores !e restrio e pro4eo. Depois& intro!zimos a importante i!(ia !e
trans"orma1es sem3nti$as % isto (& trans"orma1es 0asea!as no $on,e$imento pe#o sistema !e restri1es !e
inte*ri!a!e.
DJB
Z monta ta0e#a ,as, < so0re A.C Z
!o
en!
4 = 1 to n
l =U ,as, 7AK4L.C8
a!! AK4L to ,as, ta0#e
/
entrn <KlL /
Z a*ora e)e$ta pes'isa !e ,as, so0re R Z II
A t2t#o !e i#strao& es0oamos a#*mas !as estat2sti$as manti!as peios pro!tos DbC e In*res. Depois&
!es$re.emos ma estrat(*ia !e 5!i.i!ir e $on'istar6 $,ama!a !e !e$omposio !e $ons#ta& 'e "oi intro!zi!a $om o
protHtipo !o In*res& men$ionan!o 'e tais estrat(*ias po!eriam ser mito atraentes em m am0iente !e
pro$essamento para#e#o o !istri02!o.
Iina#mente& e)aminamos $ertas t($ni$as !e imp#ementao para a#*ns opera!ores re#a$ionais& espe$ia#mente 4no.
Apresentamos a#*oritmos em pse!o$H!i*o para $in$o t($ni$as !e 4no % "ora 0rta& pes'isa !e 2n!i$e& pes'isa
!e ,as,& inter$a#ao 7in$#si.e or!enarZinter$a#ar8 e ,as, % e ain!a $onsi!eramos rapi!amente os $stos asso$ia!os a
tais t($ni$as.
Como $on$#so& !e.emos men$ionar 'e mitos !os pro!tos !e ,o4e in"e#izmente in$#em $ertos ini0i!ores !e
otimizao& !os 'ais os s-rios !e.em pe#o menos estar $ientes 7em0ora po$o se possa "azer em re#ao a e#es& na
maioria !os $asos8. Um ini0i!or !e otimizao ( ma $ara$ter2sti$a !o sistema em 'esto 'e impe!e o otimiza!or !e
"azer m tra0a#,o to 0om 'anto po!eria 7isto (& na as+n$ia !essa $ara$ter2sti$a8. Os ini0i!ores em 'esto in$#em
#in,as !p#i$a!as 7$ons#te a re"er+n$ia KB.EL8& #H*i$a tri.a#ora!a 7$ons#te o Cap2t#o 1J8 e a imp#ementao !e A^L !a
#H*i$a tri.a#ora!a 7$ons#te as re"er+n$ias K1J.EL e K1J.1XL8.
9N9RCCIOA
17.1 A#*ns !os pares !e e)press1es a se*ir so0re o 0an$o !e !a!os !e "orne$e!ores& peas e pro4etos so
e'i.a#entes e otros no. ^ais pares so !e "ato e'i.a#entes]
ai. I ROIN 7 7 P ROIN R 8 S<9R9 CIDAD9 U Lon!resQ
aC. 7 P S<9R9 CIDAD9 U VLon!resQ 8 ROIN 7 R ROIN I
0i. 7 I MINUA 7 7 I ROIN IPR 8 S<9R9 PT U PT 7 VPCQ
IT& INOM9& ATATUA& CIDAD9 d 8 W IT& CIDAD9
0C. I W IT& CIDAD9 d MINUA
I W IT& CIDAD9 d ROIN
IPR S<9R9 pT U PT 7 VPCQ 8 8 8 W IT& CIDAD9 d
$#. 7 I W CIDAD9 d MINUA P W CIDAD9 d 8 MINUA R W CIDAD9
$C. 7 I W CIDAD9 d MINUA R W CIDAD9
MINUA 7 P W CIDAD9 d MINUA R W CIDAD9
!i. 7 R W CIDAD9 d INT9RA9CT P W CIDAD9 1 8 UNION 7 I W CIDAD9
!C. R W CIDAD9 d INT9RA9CT 7 I W CIDAD9 d UNION P W CIDAD9
ei. 7 7 IPR S<9R9 IT U IT 7 VIiQ 8 8
UNION 7 IPR S<9R9 PT U PT 7 VP1Q 8 8
INT9RA9CT
7 7 IPR S<9R9 RT U RT 7 VRiQ 8 8
UNION 7 IPR S<9R9 IT U IT 7 VIiQ 8 8 8
eC. 7 IPR S<9R9 IT U IT 7 VIiQ 8 8 UNION
7 7 IPR S<9R9 PT U PT 7 VP1Q 8 8 INT9RA9CT
7 IPR S<9R9 RT U RT 7 VRiQ 8 8 8
"i. 7 I S<9R9 CIDAD9 U VLon!resQ 8 UNION 7 I S<9R9 ATATUA g 1X
"C. I S<9R9 CIDAD9 U VLon!resQ AND ATATUA g 1X
*i. 7 I W IT d INT9RA9CT 7 IPR S<9R9 RT U RT 7 VRiQ 8 8 W IT d 8
UNION 7 I S<9R9 CIDAD9 U VLon!resQ 8 W IT
*C. I W IT d INT9RA9CT 7 7 IPR S<9R9 RT U RT 7 VRiQ 8 8 W IT d
UNION 7 I S<9R9 CIDAD9 U VLon!resQ 8 W IT d
,i. 7 IPR S<9R9 RT U RT 7 VR#Q 8 8 W IT
MINUA C IPR S<9R9 PTUPT C VP1Q 8 8 W IT d
DJE
,C. 7 7 IPR S<9R9 RT RT 7 VRiQ
MINUA 7 IPR S<9R9 PT U PT 7 VP1Q 8 8 8 W IT
ii. I ROIN 7 P W CIDAD9 d MINUA R W CIDAD9
iC. 7 I ROIN P W CIDAD9 d 8 MINUA 7 I ROIN R W CIDAD9
17.C Mostre 'e 4no& nio e interseo so $omtati.as& e !i"erena no.
17.F Mostre 'e 4no& nio e interseo so asso$iati.as e !i"erena no (.
17.D Mostre 'e=
a. A nio ( !istri0ti.a so0re a interseo.
0. A interseo ( !istri0ti.a so0re a nio.
17.B Mostre 'e para to!o A e to!o b=
a. A UNION 7A INT9RA9CT b8 A
0. A INT9RA9CT 7A UNION J8 A
Nota= essas !as #eis $,amam;se #eis !$ a0soro. Como as #eis !e i!empot+n$ia& $omtati.a et$.& e#as tam0(m po!em
ser @teis para "ins !e otimizao.
17.E Mostre 'e=
a. A restrio ( in$on!i$iona#mente !istri0ti.a so0re nio& interseo e !i"erena& e $on!i$iona#mente !istri0ti.a
so0re 4no.
0. A pro4eo ( in$on!i$iona#mente !istri0ti.a so0re nio e interseo& ( $on!i$iona#mente !istri0ti.a so0re 4no&
e no ( !istri0ti.a so0re !i"erena.
9nn$ie as $on!i1es re#e.antes nos $asos $on!i$ionais.
17.7 9sten!a as re*ras !e trans"ormao !a Aeo 17.D para #e.arem em $onta 9NT9ND e AUMMARIi9.
17.J Po$+ po!e en$ontrar a#*ma re*ra !e trans"ormao @ti# para a operao !e !i.iso re#a$iona#]
17._ Iornea m $on4nto apropria!o !e re*ras !e trans"ormao para e)press1es $on!i$ionais en.o#.en!o AND& OR e
NOT. Um e)emp#o !e ta# re*ra seria 5$omtati.i!a!e !e AND6 % isto (& A AND b ( o mesmo 'e b AND A.
17.1X 9sten!a sa resposta ao e)er$2$io pre$e!ente para in$#ir e)press1es 0oo#eanas en.o#.en!o os 'anti"i$a!ores
9NIATA e IORALL. Um e)emp#o !e ta# re*ra seria a re*ra !a!a no Cap2t#o 7 7Aeo 7.C8& 'e permite 'e ma
e)presso en.o#.en!o IORALL se4a $on.erti!a em ma otra en.o#.en!o 9NIATA ne*a!o.
17.11 A'i est- ma #ista !e restri1es !e inte*ri!a!e para o 0an$o !e !a!os !e "orne$e!ores& peas e pro4etos 7e)
tra2! !os e)er$2$ios !o Cap2t#o J8=
? As @ni$as $i!a!es .-#i!as so Lon!res& Paris& Roma& Atenas& Os#o& 9sto$o#mo& Ma!ri e Amster!.
? Dois pro4etos nn$a po!em estar #o$a#iza!os na mesma $i!a!e.
? No m-)imo m "orne$e!or po!e estar #o$a#iza!o em Atenas em 'a#'er instante.
? Nen,ma remessa po!e ter ma 'anti!a!e maior 'e o !o0ro !a m(!ia !e to!as essas 'anti!a!es.
? O "orne$e!or !e stats mais a#to no po!e estar #o$a#iza!o na mesma $i!a!e 'e o "orne$e!or !e stats mais 0ai)o.
? To!o pro4eto !e.e estar #o$a#iza!o em ma $i!a!e em 'e ,a4a pe#o menos m "orne$e!or !esse pro4eto.
? De.e e)istir pe#o menos ma pea .erme#,a.
? O stats m(!io !e "orne$e!ores !e.e ser maior 'e 1J.
? To!o "orne$e!or !e Lon!res !e.e "orne$er a pea PC.
? Pe#o menos ma pea .erme#,a !e.e pesar menos 'e BX #i0ras.
? Iorne$e!ores em Lon!res !e.em "orne$er mais esp($ies !i"erentes !e peas 'e "orne$e!ores em Paris.
? Iorne$e!ores em Lon!res !e.em "orne$er mais peas no tota# 'e "orne$e!ores em Paris.
DJ7
4
9 a'i esto a#*ns e)emp#os !e $ons#tas so0re esse 0an$o !e !a!os=
a. O0ter "orne$e!ores 'e no "orne$em a pea PC.
0. O0ter "orne$e!ores 'e no "orne$em a 'a#'er pro4eto na mesma $i!a!e 'e o "orne$e!or.
$. O0ter "orne$e!ores tais 'e nen,m "orne$e!or "ornea menos esp($ies !e peas.
!. O0ter "orne$e!ores !e Os#o 'e "orneam pe#o menos !as peas !i"erentes !e Paris a pe#o menos !ois pro4etos
!istintos !e 9sto$o#mo.
e. O0ter pares !e "orne$e!ores $o#o$a!os 'e "orne$em pares !e peas $o#o$a!as.
". O0ter pares !e "orne$e!ores $o#o$a!os 'e "orneam a pares !e pro4etos $o#o$a!os.
*. O0ter peas "orne$i!as a pe#o menos m pro4eto apenas por "orne$e!ores 'e no esto na mesma $i!a!e 'e esse
pro4eto.
,. O0ter "orne$e!ores tais 'e nen,m "orne$e!or "ornea mais esp($ies !e peas.
Use as restri1es !e inte*ri!a!e para trans"ormar essas $ons#tas em "ormas mais simp#es 7mas ain!a em #in*a*em
natra#/ .o$+ no ser- so#i$ita!o a rea#izar esse e)er$2$io "orma#mente8.
17.1C In.esti*e 'a#'er A\bD 'e este4a !ispon2.e# para .o$+. 9sse sistema e)e$ta 'ais'er trans"orma1es !e
e)press1es] 7nem to!os o "azem8. 9m ta# $aso& 'ais trans"orma1es e#e e)e$ta] 9#e e)e$ta a#*ma trans"ormao
sem3nti$a]
17.1F Tente a se*inte e)peri+n$ia= tome ma $ons#ta simp#es& !i*amos& 5O0ter nomes !e "orne$e!ores 'e "orne$em
a pea PC6 e enn$ie essa $ons#ta em tantas "ormas !i"erentes 'antas .o$+ p!er ima*inar em 'a#'er #in*a*em !e
$ons#ta 'e este4a !ispon2.e# 7pro.a.e#mente A^L8. Crie e preen$,a m 0an$o !e !a!os !e teste $on.eniente& e)e$te
as !i"erentes .ers1es !a $ons#ta e mea os tempos !e e)e$o. Ae esses tempos .ariarem !e mo!o si*ni"i$ati.o&
.o$+ ter- a e.i!+n$ia emp2ri$a !e 'e o otimiza!or no est- "azen!o m tra0a#,o mito 0om !e trans"ormao !e
e)press1es. Repita a e)peri+n$ia $om .-rias $ons#tas !i"erentes. Ae poss2.e#& repita;a tam0(m $om .-rios A\bDs
!i"erentes.
Nota= natra#mente& to!as as .ers1es !i"erentes !a $ons#ta !e.em "orne$er o mesmo res#ta!o. Ae no& ( pro.-.e#
'e .o$+ ten,a $ometi!o a#*m en*ano % o po!e ser m 0* !o otimiza!or/ se "or& a.ise ao se "orne$e!or>
17.1D In.esti*e 'a#'er A\bD !ispon2.e# para .o$+. 9sse sistema mant(m estat2sti$as !o 0an$o !e !a!os] 7nem
to!os o "azem8. 9m $aso a"irmati.o& 'ais so e#as] Como so ata#iza!as] ; !inami$amente& o atra.(s !e a#*m
ti#it-rio] Nesse @#timo $aso& $omo se $,ama o ti#it-rio] Com 'e "re':+n$ia e#e ( e)e$ta!o] ^a# o n2.e# !e
se#eti.i!a!e !o ti#it-rio& em termos !e estat2sti$as espe$2"i$as 'e e#e po!e ata#izar em 'a#'er e)e$o
!etermina!a]
17.1B Pimos na Aeo 17.B 'e entre as estat2sti$as !e 0an$os !e !a!os manti!as pe#o DbC esto o se*n!o maior
.a#or e o se*n!o menor .a#or para $a!a $o#na !e $a!a ta0e#a 0-si$a. Por 'e o se*n!o maior e o se*n!o menor& .o$+
sa0eria !izer]
17.1E Di.ersos pro!tos $omer$iais permitem ao s-rio "orne$er s*est1es ao otimiza!or. Por e)emp#o& em DbC& a
espe$i"i$ao OPTIMIi9 IOR n ROSA em ma !e$#arao !e $rsor !e A^L si*ni"i$a 'e o s-rio no espera
re$perar mais !e n #in,as por meio !o $rsor em 'esto 7isto (& e)e$tar I9TC< so0re esse $rsor no mais 'e n
.ezes8. As .ezes& essa espe$i"i$ao po!e "azer o otimiza!or es$o#,er m $amin,o !e a$esso 'e se4a mais e"i$iente&
pe#o menos para o $aso em 'e o s-rio no e)e$ta !e "ato a operao I9TC< mais !e n .ezes. Po$+ $onsi!era essas
s*est1es ma 0oa i!(ia. Rsti"i'e sa resposta.
17.17 9#a0ore m $on4nto !e pro$e!imentos !e imp#ementao para opera1es !e restrio e pro4eo 7se*n!o as
#in,as !os pro$e!imentos es0oa!os para 4no na Aeo 17.78. Deri.e m $on4nto apropria!o !e "Hrm#as !e $sto
para tais pro$e!imentos. Apon,a 'e opera1es !e 9ZA !e p-*inas so as @ni$as 'anti!a!es !e interesse& isto (& no
tente in$#ir $stos !e CPU o otros em sas "Hrm#as. 9nn$ie e 4sti"i'e 'ais'er otras ,ipHteses 'e "izer.
R9I9RoNCIAA 9 bIbLIO\RAIIA
O $ampo !a otimizao ( enorme e $res$e ain!a mais o tempo to!o 7na .er!a!e& e#e est- se tornan!o mais impor; DJJ
tante !o 'e nn$a& *raas ao interesse $res$ente em sistemas !e apoio Y !e$iso % $ons#te o Cap2t#o C18. Para to
marmos apenas m e)emp#o& mais !e BXp !os arti*os apresenta!os em $a!a ma !as $on"er+n$ias anais ACM
AI\MOD nos @#timos anos esta.am re#a$iona!os !e a#*m mo!o $om a otimizao. A #ista a se*ir representa ma
se#eo re#ati.amente pe'ena !a .asta #iteratra so0re esse assnto. \rosso mo!o& e#a se !i.i!e em *rpos& !a
se*inte "orma=
? As re"er+n$ias K17.1 a 17.71 "orne$em ma intro!o ao o ma .iso *era# !o pro0#ema *era# !e otimizao.
? As re"er+n$ias K17.J a 17.17L esto re#a$iona!as $om a imp#ementao e"i$iente !e opera1es re#a$ionais in!i.i!ais&
tais $omo 4no o tota#izao.
? As re"er+n$ias K17.1J a 17.FFL !es$re.em ma .arie!a!e !e t($ni$as 0asea!as em trans"ormao !e e)press1es
$omo !is$timos na Aeo 17.D/ em parti$#ar& as re"er+n$ias K17.C7 a 17.FXL $onsi!eram trans"orma1es sem3nti$as.
? As re"er+n$ias K17.FD a 17.DBL !is$tem as t($ni$as sa!as nos pro!tos Anstem R& DbC e In*res& 0em $omo o
pro0#ema *era# !e otimizar $ons#tas en.o#.en!o s0$ons#tas anin,a!as no esti#o !e A^L.
? As re"er+n$ias K17.DE a 17.E 1L tratam m $on4nto .aria!o !e t($ni$as& arti"2$ios& i!(ias para pes'isa "tra e
assim por !iante. 9m parti$#ar& as re"er+n$ias K17.BJ a 17.E 1L $onsi!eram o impa$to !o pro$essamento para#e#o so0re
a 'esto !a otimizao.
Nota= as p0#i$a1es so0re otimizao em sistemas !istri02!os "oram !e#i0era!amente e)$#2!as. Cons#te o Cap2t#o
CX.
17.1 Son kim& Da.i! B. Reiner e Don A. batorn 7e!itores8= ^ern Pro$essin* in Data0ase Anstems. No.a qorl.
N.q.= Aprin*er Per#a* 71_JB8.
9sse #i.ro ( ma anto#o*ia !e arti*os so0re o tHpi$o *era# !e pro$essamento !e $ons#tas 7no apenas so0re otimizao
espe$i"i$amente8. 9#e $onsiste em m arti*o intro!tHrio !e pes'isa !e Rarle& ko$, e A$,mi!t 7seme#,ante mas no
i!+nti$o Y re"er+n$ia K17.FL8& se*i!o por *rpos !e arti*os 'e !is$tem o pro$essamento !e $ons#tas em !i.ersos
$onte)tos= 0an$o !e !a!os !istri02!o& sistemas ,etero*+neos& ata#izao !e .is1es 7a re"er+n$ia K_.11L ( o @ni$o
arti*o nessa seo8& ap#i$a1es no tra!i$ionais 7por e)emp#o& CADZCAM8& otimizao !e .-rias instr1es 7$ons#te a
re"er+n$ia K17.D_18& m-'inas !e 0an$os !e !a!os e pro4eto !e 0an$os !e !a!os "2si$os.
17.C I999. Data0ase 9n*ineerin* B& N@mero F= Ape$ia# Isse on ^ern Optimization 7setem0ro !e 1_JC8.
Cont(m 1F arti*os $rtos 7tanto !e am0ientes a$a!+mi$os 'anto $omer$iais8 so0re .-rios aspe$tos !a otimizao !e
$ons#tas.
17.F Matt,iasRarle e R:r*en ko$,= 5^ern Optimization in Data0ase Anstems6&ACM Comp. Ar.= 1E& N@mero
C 74n,o !e 1_JD8.
Um e)$e#ente ttoria#. O arti*o "orne$e ma estrtra *era# para a.a#iao !e $ons#tas& mito seme#,ante ao !a
Aeo 17.F !este $apit#o& mas 0asea!o no $-#$#o re#a$iona#& e no na -#*e0ra. 9#e !is$te em se*i!a m *ran!e
n@mero !e t($ni$as !e otimizao !entro !esse 'a!ro= trans"orma1es sint-ti$as e sem3nti$as& imp#ementao !e
operao !e 0ai)o n2.e# e a#*oritmos para *erao !e p#anos !e $ons#tas e es$o#,a entre e#es. 9 "orne$i!o m $on4nto
e)tenso !e re*ras !e trans"ormao sint-ti$a para e)press1es !e $-#$#o. Tam0(m in$#i ma #on*a 0i0#io*ra"ia 7no
anota!a8/ $ont!o& o0ser.e 'e o n@mero !e arti*os so0re o assnto p0#i$a!os !es!e 1_JD ( pe#o menos ma or!em !e
*ran!eza maior 'e o n@mero anterior a essa (po$a 7$ons#te a re"er+n$ia K17.DL8.
O arti*o tam0(m !is$te rapi!amente otras 'est1es $orre#atas= a otimizao !e #in*a*ens !e $ons#ta !e a#to n2.e#
7isto (& #in*a*ens mais po!erosas 'e a -#*e0ra o o $-#$#o8& otimizao em m am0iente !e 0an$o !e !a!os
!istri02!o e o pape# !as m-'inas !e 0an$os !e !a!os $om re#ao Y otimizao.
17.D \1tz \rae"e= 5^ern 9.a#ation Te$,ni'es "or Lar*e Data0ases6&ACM Comp. Ar.. CB& N@mero C 74n,o !e
1__F8.
Otro e)$e#ente ttoria# 7mais re$ente8& $om ma e)tensa 0i0#io*ra"ia. Citan!o o resmo= 59sta pes'isa o"ere$e ma
0ase para o pro4eto e a imp#ementao !e re$rsos !e e)e$o !e $ons#tas ... 9#a !es$re.e ma amp#a s(rie !e
t($ni$as pr-ti$as !e a.a#iao !e $ons#tas ... in$#in!o a e)e$o iterati.a !e p#anos $omp#e)os !e a.a#iao !e
$ons#tas& a !a#i!a!e !e a#*oritmos !e $orrespon!+n$ia !e $on4ntos 0asea!os em $#assi"i$ao e ,as,& e opera!ores
espe$iais para !om2nios !e ap#i$a1es emer*entes !e 0an$os !e
!a!os6. Re$omen!a!o. DJ_
17.B Iranl P. Pa#ermo= 5A Data base Aear$, Pro0#em6& em R#is T. To 7e!itor8 In"ormation Anstems= COINA IP.
No.a qorl& N.q.= P#enm Press 71_7D8.
Um !os primeiros arti*os so0re otimizao. Partin!o !e ma e)presso ar0itr-ria !o $-#$#o re#a$iona#& o arti*o ti#iza
primeiro o a#*oritmo !e re!o !e Co!! para re!zir essa e)presso a ma e)presso a#*(0ri$a e'i.a#ente 7$ons#te
o Cap2t#o 78 e& em se*i!a& intro!z ma s(rie !e aper"eioamentos nesse a#*oritmo& entre os 'ais os se*intes=
? Nen,ma tp#a ( retorna!a mais !e ma .ez.
? Pa#ores !esne$ess-rios so !es$arta!os !e ma tp#a #o*o 'e essa tp#a ( retorna!a % 5.a#ores !esne$ess-rios6 so
.a#ores !e atri0tos no re"eren$ia!os na $ons#ta o .a#ores sa!os ni$amente para "ins !e restrio. 9sse pro$esso
( e'i.a#ente a pro4etar a re#ao so0re os atri0tos 5ne$ess-rios6& e portanto no somente re!z o espao ne$ess-rio
para $a!a tp#a& mas tam0(m o n@mero !e tp#as 'e ( pre$isam ser $onser.ar 7em *era#8.
? O m(to!o sa!o para $onstrir a re#ao res#tante se 0aseia em m prin$ipio !e $res$imento m2nimo& !e mo!o 'e o
res#ta!o ten!e a $res$er #entamente. 9ssa t($ni$a tem o e"eito !e re!zir tanto o n@mero !e $ompara1es en.o#.i!as
'anto a 'anti!a!e !e armazenamento interme!i-rio ne$ess-ria.
? Uma t($ni$a e"i$iente ( empre*a!a na $onstro !e 4n1es& en.o#.en!o 7a8 a "atorao !in3mi$a !e .a#ores sa!os
em termos !e 4no 7$omo I.IT U IP.IT8 em semi4n1es& as 'ais so e"eti.amente ma esp($ie !e 2n!i$e
se$n!-rio !inami$amente $onstr2!o 7as semi4n1es !e Pa#ermo no so i*ais Ys semi4n1es !o Cap2t#o E !este
#i.ro8 e 708 o so !e ma representao interna !e $a!a 4no $,ama!a 4no in!ireta 7'e "az so !e IDs !e tp#as
internas para i!enti"i$ar as tp#as 'e parti$ipam !a 4no. 9ssas t($ni$as so pro4eta!as para re!zir a 'anti!a!e
!e .arre!ras ne$ess-rias na $onstro !a 4no& asse*ran!o para $a!a termo !a 4no 'e as tp#as em 'esto
esto #o*i$amente or!ena!as so0re os .a#ores !os atri0tos !a 4no. 9#as tam0(m permitem a !eterminao
!in3mi$a !e ma 5me#,or6 se':+n$ia na 'a# o$orrer- o a$esso Ys re#a1es e)i*i!as.
17.E Rim \ran 7e!itor8= T,e ben$,marl <an!0ool "or Data0ase an! Transa$tion Pro$essin* Anstems 7C e!io8. Aan
Iran$is$o. Ca#i".= Mor*an ka"mann 71__F8.
O TPC 7Transa$tion Pro$essin* Con$i#8 ( m $orpo in!epen!ente 'e pro!zi .-rios testes !e re"er+n$ia !e mer$a!o
nos @#timos anos& e esse #i.ro in$#i in"orma1es !eta#,a!as so0re esses testes !e re"er+n$ia em parti$#ar 70em $omo
so0re .-rios otros8. O TPC;A ( m teste !e re"er+n$ia !estina!o a me!iro !esempen,o !e OLTP 7on#ine transa$tion
pro$essin*8. O TPC;b ( ma .erso !o TPC;A 'e me!e o !esempen,o !o A\bD e !o sistema opera$iona# s04a$ente&
i*noran!o $onsi!era1es re#a$iona!as $om a $omni$ao !e s-rios e otras seme#,antes. O TPC;C "oi mo#!a!o so0re
m sistema !e entra!a !e pe!i!os 7e& na .er!a!e& spero por amp#a mar*em o TPC;A8. O TPC;D me!e o !esempen,o
!e apoio Y !e$iso/ e#e en.o#.e m $on4nto !e 17 $ons#tas !e A^L 0astante $omp#i$a!as 7e (& portanto& o @ni$o !os
'atro 'e se $on$entra na 'a#i!a!e !o otimiza!or $omo ta#8.
Nota= os "orne$e!ores $on$orrem $ontinamente $om os otros so0re o !esempen,o em testes !e re"er+n$ia !e TPC.
Cont!o& !e.emos a!.ert2;#o !e 'e .o$+ !e.e ter $ate#a ao interpretar peas p0#i$it-rias so0re esse assnto/ os
"orne$e!ores po!em empre*ar 7e empre*am8 to!os os tipos !e arti"2$ios e t($ni$as para e#e.ar ao m-)imo ses
n@meros nos testes !e TPC. Ci!a!o& #eitor.
17.7 Dina bitton& Da.i! R. DeSitt. e Caro#nn Tr0n"i##= 5ben$,marlin* Data0ase Anstems= A Anstemati$ Approa$,6&
Pro$. _t, Int. Con". on Pern Lar*e Data bases& I#orena& It-#ia 7ot0roZno.em0ro !e 1_JF8.
O primeiro arti*o a !es$re.er o 'e a*ora se $,ama 5o teste !e re"er+n$ia !e Sis$onsin6 7por ter si!o !esen.o#.i!o
pe#os atores !o arti*o na Uni.ersi!a!e !e Sis$onsin8. O teste !e re"er+n$ia !e"ine m $on4nto !e re#a1es $om
.a#ores !e atri0tos pre$isamente espe$i"i$a!os& e !epois me!e o !esempen,o !e $ertas opera1es a#*(0ri$as
pre$isamente espe$i"i$a!as so0re essas re#a1es 7por e)emp#o& .-rias pro4e1es& en.o#.en!o !i"erentes *ras !e
!p#i$ao nos atri0tos so0re os 'ais so toma!as as pro4e1es8. 9#e representa assim m teste sistem-ti$o !a
e"i$i+n$ia !o otimiza!or so0re essas opera1es "n!amentais. Cons#te tam0(m a re"er+n$ia K17.E1.
17.J bin* qao= 5Optimization o" ^ern 9.a#ation A#*orit,ms6& ACM TODA D& N@mero C 74n,o !e 1_7_8.
Desen.o#.e m mo!e#o *era# !e pro$essamento !e $ons#tas 'e in$#i mitos a#*oritmos $on,e$i!os $omo $asos
parti$#ares. O mo!e#o in$#i o se*inte $on4nto !e opera1es !e 0ai)o n2.e#& 4nto $om m $on4nto asso$ia!o !e
"Hrm#as !e $stos=
D_X
? In!e)ao por restrio.
? Interseo.
? Parre!ra se':en$ia>.
? Ii#tro !e restrio.
? Or!enao.
? Pro4eo.
? In!e)ao por 4no.
? A$esso a re*istro.
? Parre!ra !e #inl.
? Ii#tro !e 4no.
a Con$atenao.
Um !etermina!o a#*oritmo !e pro$essamento !e $ons#ta& e)presso em termos !essas opera1es !e 0ai)o n2.e#& po!e
ser a.a#ia!o !e a$or!o $om "Hrm#as !e $stos. O arti*o i!enti"i$a .-rias $#asses !e a#*oritmos !e pro$essamento !e
$ons#tas e atri0i ma "Hrm#a !e $sto a $a!a $#asse. O pro0#ema !e otimizao !e $ons#tas se torna ento o
pro0#ema !e reso#.er m simp#es $on4nto !e e'a1es !e $stos para en$ontrar m $sto m2nimo& e !epois se#e$ionar
a $#asse !e a#*oritmos 'e $orrespon!e ao $sto m2nimo.
17._ M. S. b#as*en e k. P. 9sjaran= Atora*e an! A$$ess in Re#ationa# Data0asesQ& IbM Ans. R. 1E& N@mero D 71_778.
P-rias t($ni$as para #i!ar $om $ons#tas en.o#.en!o opera1es !e restrio& pro4eo e 4no so $ompara!as $om
0ase no se $sto em 9ZA !e !is$o. As t($ni$as em 'esto so 0asi$amente a'e#as imp#ementa!as no Anstem R
K17.FDL.
17.1X T. <. Merrett= 5S,n AortZMer*e \i.es t,e best Imp#ementation o" t,e Natra# Roin6& ACM AI\MOD Re$or!
1F& N@mero C 74aneiro !e 1_JF8.
Apresenta ar*mentos intiti.os em apoio Y posio !e$#ara!a no t2t#o. O ar*mento ( essen$ia#mente 'e=
a. A prHpria operao !e 4no ser- mais e"i$iente se as !as re#a1es esti.erem am0as or!ena!as so0re .a#ores !o
atri0to !e 4no 7por'e nesse $aso& $omo .imos na Aeo 17.7& a inter$a#ao ser- a t($ni$a H0.ia e $a!a p-*ina !e
!a!os ser- a$essa!a e)atamente ma .ez& o 'e ( e.i!entemente Htimo8.
0. O $sto !e or!enar as re#a1es na se':+n$ia !ese4a!a& em m-'ina s"i$ientemente *ran!e& pro.a.e#mente ser-
menor 'e o $sto !e 'a#'er es'ema para $ontornar o "ato !e no estarem or!ena!as.
Por(m& o ator re$on,e$e 'e po!eriam e)istir e)$e1es Y sa posio m tanto e)trema!a. Por e)emp#o& ma !as
re#a1es po!eria ser s"i$ientemente pe'ena 7por e)emp#o& po!eria ser o res#ta!o !e ma operao !e restrio
anterior8 para 'e o a$esso !ireto Y otra re#ao atra.(s !e m 2n!i$e o ta0e#a ,as, p!esse ser mais e"i$iente 'e
or!en-;#a. As re"er+n$ias K17.11 a 17.1F1 a se*ir !o otros e)emp#os !e $asos em 'e or!enarZinter$a#ar
pro.a.e#mente no ( a me#,or t($ni$a na pr-ti$a.
17.11 \io.anni Maria Aa$$o= 5Ira*mentation= A Te$,ni'e "or 9""i$ient ^ern Pro$essin*6& ACM TODA 11& N@mero C
74n,o !e 1_JE8.
Apresenta m m(to!o !e r!i.i!ir e $on'istar6 para e"etar 4n1es pe#a 'e0ra re$rsi.a !as re#a1es a serem
4nta!as em s0$on4ntos !e tp#as 75"ra*mentos68 e e)e$o !e ma s(rie !e .arre!ras se':en$iais so0re esses
s0$on4ntos. Ao $ontr-rio !e or!enarZinter$a#ar 7sortZmer*e8& essa t($ni$a no e)i*e 'e as re#a1es se4am primeiro
or!ena!as. O arti*o mostra 'e a t($ni$a !e "ra*mentao sempre "n$iona me#,or 'e or!enarZinter$a#ar no $aso em
'e or!enarZinter$a#ar e)i*e 'e as !as re#a1es se4am or!ena!as antes/ tam0(m "n$iona me#,or& sa#mente& no
$aso em 'e or!enarZinter$a#ar e)i*e apenas 'e ma re#ao 7a maior8 se4a or!ena!a antes. O ator !iz 'e a t($ni$a
tam0(m po!e ser ap#i$a!a a otras opera1es& $omo interseo e !i"erena.
17.1C Leonar! D. A,apiro= 5Roin Pro$essin* in Data0ase Anstems jit, Lar*e Main Memories6& ACM TODA 11& N@mero F
7setem0ro !e 1_JE8.
D_1
Apresenta tr+s no.os a#*oritmos !e 4no por ,as,& m !os 'ais ( 5espe$ia#mente e"i$iente 'an!o a memHria
prin$ipa# !ispon2.e# ( ma "rao si*ni"i$ati.a !o taman,o !e ma !as re#a1es a serem 4nta!as6. Os a#*oritmos
"n$ionam pe#o parti$ionamento !as re#a1es em s0$on4ntos !e tp#as 'e po!em ser pro$essa!os na memHria
prin$ipa#. O ator a"irma 'e m(to!os 0asea!os em ,as, esto !estina!os a ser a t($ni$a pre"eri!a& !a!a a ta)a em
'e esto !iminin!o os $stos !e memHria prin$ipa#.
17.1F M. Ne*ri e \. Pe#a*atti= 5Distri0ti.e Roin= A Nej A#*orit,m "or Roinin* Re#ations6& ACM TODA 1E. N@mero D
7!ezem0ro !e 1__18.
Otro m(to!o para 4no !e r!i.i!ir e $on'istar6. 5KO m(to!o# se 0aseia na i!(ia !e 'e ... no ( ne$ess-rio or!enar
$omp#etamente as !as re#a1es ... 9 s"i$iente 'e a $#assi"i$ao !e ma !e#as se4a $omp#eta e a !a otra se4a
par$ia#& e.itan!o assim parte !o tra0a#,o !e $#assi"i$ao.6 A $#assi"i$ao par$ia# !esmem0ra a re#ao a"eta!a em
ma se':+n$ia !e parti1es no or!ena!as P1& PC& ...& Pn 7m po$o $omo o m(to!o !e Aa$$o K17.11L& e)$eto pe#o "ato !e
'e Aa$$o sa ,as, em #*ar !e or!enao8& $om a proprie!a!e !e'e MAN 7Pi8 hMIN 7P7i e 188 para to!o i 71&C& ..& n;18.
O arti*o a"irma 'e esse m(to!o "n$iona me#,or 'e or!enarZinter$a#ar.
17.1D \ota \rae"e e Ri$,ar! L. Co#e= rIast A#*orit,ms "or Uni.ersa# ^anti"i$ation in Lar*e Data0ases6& ACM TODA
CX& N@mero C 74n,o !e 1__B8.
O 'anti"i$a!or ni.ersa# 7IORALL8 no tem sporte !ireto em A^L e& portanto& tam0(m no ( a!miti!o por A\bDs
atais& ain!a 'e se4a e)tremamente importante na "orm#ao !e ma amp#a $#asse !e pes'isas. 9sse arti*o !es$re.e
e $ompara 5tr+s a#*oritmos $on,e$i!os $om m a#*oritmo proposto re$entemente para !i.iso re#a$iona#& K'e (L o
opera!or !a -#*e0ra 'e in$orpora a 'anti"i$ao ni.ersa#6& e mostra 'e o no.o a#*oritmo "n$iona to r-pi!o 'anto
a 7semi8 4no !e ,as, e .a#ia a 'anti"i$ao e)isten$ia# so0re as mesmas re#a1es6 7m po$o re"orm#a!o8. Os
atores $,e*am Y $on$#so& entre otras& !e 'e IORAIL !e.e ter sporte !ireto na #in*a*em !o s-rio& por'e a
maioria !os otimiza!ores rno re$on,e$e as "orm#a1es 0astante in!iretas !ispon2.eis em A^L6.
17.1B Dina bitton e Da.i! R. DeSitt= 5Dp#i$ate Re$or! 9#imination in Kar*e Data Ii#es6. ACM TODA J& N@mero C
74n,o !e 1_JF8.
A t($ni$a tra!i$iona# para e#iminao !e !p#i$atas ( simp#esmente or!enar os re*istros e !epois e"etar ma
.arre!ra se':en$ia#. O arti*o prop1e ma a0or!a*em a#ternati.a 'e tem $ara$ter2sti$as !e !esempen,o
si*ni"i$ati.amente me#,ores se o ar'i.o ( *ran!e.
17.1E Da.i! Aimmen& 9*ene A,elita e Timot,n Ma#lems= rIn!amenta# Te$,ni'es "or Or!er Optimization6& Pro$.
1__E ACM AI\MOD Int. Con". on Mana*ement o" Data& Montrea#& Cana!- 74n,o !e 1__E8.
Apresenta t($ni$as para otimizar o e.itar or!ena1es. As t($ni$as& 0asea!as em parte no tra0a#,o !e Darjen K1X.EL&
"oram imp#ementa!as em DbC.
17.17 \rmeet Ain*, Manl& Ari!,ar Ra4a*opa#an e br$e \. Lin!san= 5Appro)imate Me!ians an! Ot,er ^anti#es in
One Pass an! jit, Limite! Memorn6& Pro$. 1__J ACM AI\MOD Int. Con". on Mana*ement o" Data& Aeatt#e& Sas,.
74n,o !e 1__J8.
17.1J Ranies Mi#es Amit, e P,i#ip qen;Tan* C,an*= rOptimizin* t,e Per"orman$e o" a Re#ationa# A#*e0ra Data0ase
Inter"a$e6& CACM 1J. N@mero 1X 7ot0ro !e 1_7B8.
Des$re.e o a#*oritmo sa!o em rAmart ^ern Inter"a$e "or a Re#ationa# A#*e0ra6 7A^IRIRAL8. As t($ni$as ti#iza!as
in$#em=
? Trans"ormar a e)presso a#*(0ri$a ori*ina# e ma se':+n$ia !e opera1es e':i.a#ente por(m mais e"i$iente& !e
a$or!o $om as #in,as in!i$a!as na Aeo 17.D.
? Atri0ir opera1es !istintas na e)presso trans"orma!a a pro$essos !istintos e e)p#orar a $on$orr+n$ia e o
en$a!eamento entre e#as.
? Coor!enar as or!ens !e or!enao !as re#a1es tempor-rias 'e passam entre esses pro$essos.
? 9)p#orar 2n!i$es e tentar #o$a#izar re"er+n$ias !e p-*inas.
9sse arti*o "oi m !os primeiros a !is$tir trans"orma1es !e e)press1es.
17.1_ P. A. P. <a#t= 5Optimization o" a Ain*#e Re#ationa# 9)pression in a Re#ationa# Data base Anstem6& IbMR. RsD CX&
N@mero F 7maio !e 1_7E8.
D&C
9sse arti*o !es$re.e a#*mas t($ni$as !e otimizao sa!as no sistema PRTP KE._L. O PRTP& $omo o A^UIRAL 117.1J1&
$omea por trans"ormar a e)presso a#*(0ri$a !a!a para a#*ma "orma mais e"i$iente& antes !e $a#$#-;#a. Um aspe$to
!o PRTP ( 'e o sistema no a.a#ia atomati$amente $a!a e)presso #o*o 'e a re$e0e= em .ez !isso& a!ia a a.a#iao
e"eti.a at( o @#timo momento poss2.e# 7.e4a a !es$rio !a "orm#ao !e $ons#ta !e m passo !e $a!a .ez no Cap2t#o
E. Aeo E.E8. Assim& a 5@ni$a e)presso re#a$iona#6 !o t2t#o !o arti*o po!eria na .er!a!e representar to!a ma
se':+n$ia !e opera1es !o s-rio. As otimiza1es !es$ritas #em0ram as !e A^UIRAL& mas .o mais #on*e em a#*ns
pontos/ entre e#as esto as se*intes 7em or!em !e ap#i$ao8=
? Restri1es so e)e$ta!as o mais $e!o poss2.e#.
? Ae':+n$ias !e pro4e1es so $om0ina!as em ma @ni$a pro4eo.
? Opera1es re!n!antes so e#imina!as.
? 9)press1es en.o#.en!o re#a1es .azias e $on!i1es tri.iais so simp#i"i$a!as.
? A0e)press1es $omns so "atora!as.
O arti*o termina $om a#*ns res#ta!os e)perimentais e a#*mas s*est1es para mais in.esti*ao.
17.CX Matt,iasRarle eR:r*en ko$,= 5Ran*e Nestin*= A Iast Met,o! to 9.a#ate ^anti"ie! ^eries6& Pro$. 1_JF ACM
AI\MOD Int. Con". on Mana*ement o" Data& Aan Rose& Ca#i". 7maio !e 1_JF8.
De"ine ma .ariao !o $-#$#o re#a$iona# 'e permite 'e se4am ap#i$a!as a#*mas re*ras a!i$ionais 7e @teis8 !e
trans"ormao sint-ti$a e apresenta a#*oritmos para a.a#iar e)press1es !esse $-#$#o. 7Na .er!a!e& a .erso !o
$-#$#o !es$rita ( 0em prH)ima !o $-#$#o !e tp#as !es$rito no Cap2t#o 7.8 O arti*o !es$re.e a otimizao !e ma
!etermina!a $#asse !e e)press1es !o $-#$#o re.isa!o& $,ama!as !e 5e)press1es anin,a!as per"eitas6. Ao "orne$i!os
m(to!os para $on.erter $ons#tas aparentemente $omp#e)as % em parti$#ar& $ertas $ons#tas en.o#.en!o IORALI. %
em e)press1es per"eitas. Os atores mostram 'e m *ran!e s0$on4nto !as $ons#tas 'e sr*em na pr-ti$a
$orrespon!e a e)press1es per"eitas.
17.C 1 Ara4it C,a!,ri e knseol A,im= 5In$#!in* \rop;bn in ^ern Optimization6& Pro$. COt, Int. Con". on Pern
Lar*e Data bases& Aantia*o& C,i#e 7setem0ro !e 1__D8.
17.CC A. Malino$,i& M. Tezla& <. kitalami e A. A!a$,i= 5T,e Optimization Atrate*n "or ^ern 9.a#ation in
RDbIP16& Pro$. 7t, Int. Con". on Pern Lar*e Data bases& Cannes& Irana 7setem0ro !e 1_J18.
O RDbZP1 "oi o protHtipo pre!e$essor !o pro!to I4its AIM RDb 7'e ( m sistema A^L8. 9sse arti*o !es$re.e as
t($ni$as !e otimizao sa!as nesse protHtipo e $ompara;as rapi!amente $om as t($ni$as sa!as nos protHtipos !o
In*res e !o Anstem R. Uma t($ni$a em parti$#ar pare$e no.a= o so !e .a#ores MAN e MIN o0ti!os !inami$amente
para in!zir restri1es a!i$ionais. 9ssa t($ni$a tem o e"eito !e simp#i"i$ar o pro$esso !e es$o#,er ma or!em !e
4no e me#,ora o !esempen,o !as prHprias n1es. Como e)emp#o simp#es !o @#timo ponto& spon,a 'e "orne$e!ores
e peas !e.am ser asso$ia!os so0re $i!a!es. Primeiro& os "orne$e!ores se4am or!ena!os so0re CIDAD9. Drante a
or!enao& os .a#ores m-)imo e m2nimo& !i*amos ALTO e bAINO& !e I.CIDAD9 so !etermina!os. 9nto a restrio=
LOS f P.CIDAD9 AND P.CIDAD9 f 111E11
po!e ser sa!a para se re!zir o n@mero !e peas 'e !e.em ser inspe$iona!as na e#a0orao !a 4no.
17.CF <ami! Pira,es,& Rosep, M. <e##erstein e Sa'ar <asan= 5I.)tensi0#e R#e base! ^ern Rejrite Optimization in
Atar0rst6& Pro$. 1__C ACM AI\MOD Int. Con". on Mana*ement o" Data& Aan Die*o& Ca#i". 74n,o !e 1__C8.
Como o0ser.amos na Aeo 17.1& a 5rees$rita !e $ons#ta6 ( otro nome para i!enti"i$ar a trans"ormao !e
e)press1es. Os atores a"irmam 'e os pro!tos $omer$iais& !e mo!o m tanto srpreen!ente& po$o "azem 'anto a
tais trans"orma1es 7pe#o menos em 1__C8. Ae4a $omo "or& o arti*o !es$re.e o me$anismo !e trans"ormao !e
e)press1es !o protHtipo IbM Atar0rst 7$ons#te as re"er+n$ias K17.BXL& KCB.1D1& KCB.17L& e ain!a KCB.C1 e CB.CCL.
Us-rios $on.enientemente 'a#i"i$a!os po!em a$res$entar no.as re*ras !e trans"ormao ao sistema a 'a#'er
momento 7!ai o termo 5e)tens2.e#6 no t2t#o !o arti*o8.
17.CD In!erpa# Ain*, Mmi$l& A,e#!on R. Iinle#stein& <ami! Pira,es, e Ra*, Ramalris,nan= 5Ma*i$ is Re#e.ant6& Pro$.
1__X ACM AI\MOD Int. Con". on Mana*ement o" Data& At#anti$ Citn& N.R. 7maio !e 1__X8.
D_F
O termo po$o "e#iz 5m-*i$o6 se re"ere a ma t($ni$a !e otimizao !esen.o#.i!a ori*inamente para ser sa!a em
$ons#tas % em espe$ia# $ons#tas en.o#.en!o re$rso % e)pressas na #in*a*em !e 50an$o !e !a!os #H*i$o6 Data#o*
7.e4a o Ap+n!i$e C8. 9sse arti*o esten!e a a0or!a*em a sistemas re#a$ionais $on.en$ionais& a"irman!o $om 0ase em
me!i!as e)perimentais 'e e#a "re':entemente ( mais e"i$iente 'e as t($ni$as tra!i$ionais !e otimizao 7note 'e
no ( ne$ess-rio 'e a $ons#ta se4a re$rsi.a para 'e o m(to!o se4a ap#i$-.e#8. A i!(ia 0-si$a ( !e$ompor a $ons#ta
!a!a em $ons#tas menores 'e !e"inem m $on4nto !e 5re#a1es a)i#iares6 7seme#,ante ao 'e o$orre na a0or!a*em
!e !e$omposio !e $ons#tas !is$ti!a na Aeo 17.E8& !e ta# mo!o 'e essas re#a1es a)i#iares possam ser sa!as
para "i#trar t; pias 'e se4am irre#e.antes para o pro0#ema em $asa. O e)emp#o se*inte ( 0asea!o em m otro
apresenta!o noarti*o. A $ons#ta ori*ina# (=
R =U 9N.9N^M9 S<9R9 9N.ROJ U 9s$ritr-rio AND 9N.AAL
AP\ 7 9q S<9R9 9q.D9PTT U 9N.D9PTT& AAL 8 /
75O0ter nomes !e es$ritr-rios $4o sa#-rio ( maior 'e a m(!ia para o !epartamento68. Ae esta $ons#ta "or
e)e$ta!a 5!iretamente6& isto (& mais o menos $omo est- es$rita& o sistema .arrer- a re#ao !e empre*a!os tp#a
por tp#a& e ento $a#$#ar- .-rias .ezes o sa#-rio m(!io para 'a#'er !epartamento 'e empre*e mais !e m
es$ritr-rio. Desse mo!o& m otimiza!or tra!i$iona# po!eria !esmem0rar a $ons#ta nas !as $ons#tas menores a
se*ir=
Ti = 7 9N.D9PTOT&
AP\ 7 9q S<9R9 9q.D9PTOT U 9N.D9PTOT& AAL 8 AA AAAL
TC =U 9MP.9NOM9 S<9R9 9MP.ROb U V9s$ritr-rio AND
9NIATA Ti 7 9MP.D9PTOT U T1.D9PTOT AND
9MP.AALmRIO g T1.AAAL 8 /
A*ora& nen,ma m(!ia !e !epartamento ser- $a#$#a!a mais !e ma .ez& mas a#*mas m(!ias irre#e.antes sero
$a#$#a!as % espe$i"i$amente& a'e#as !e !epartamentos 'e no empre*am es$ritr-rios.
A a0or!a*em 5ma*i$a6 e.ita tanto o $-#$#o repeti!o !a primeira a0or!a*em 'anto os $-#$#os irre#e.antes !a
se*n!a& ao $sto !e *erar re#a1es 5a)i#iares6 a mais=
Z primeira re#ao a)i#iar= nome& !epartamento e sa#-rio aZ
Z para es$ritr-rios a1
Ti =U 7 9MP.9NOM9& 9MP.D9PTOT& 9MP.AAL 8
S<9R9 9MP.ROb U 9s$ritr-rio
Za se*n!a re#ao a)i#iar= !epartamentos 'e t+m es$ritr-rios Z
TC =U T1.D9PTOT /
Z ter$eira re#ao a)i#iar= !epartamentos 'e t+m es$ritr-rios aZ
Z e sa#-rios m(!ios $orrespon!entes a1
TF = 7 TC.D9PTOT&
AP\ 7 9MP S<9R9 9MP.D9PTT U TC.D9PTT& AAL 8
AA AAAL 8 /
Za re#ao res#tante aZ
R = T1.9NOM9 S<9R9 9NIATA TF 1 T1.D9PTOT U TF.D9PTOT AND
Ti.AAL g TF.AAAL 8 /
A 5m-*i$a6 $onsiste em !eterminar e)atamente 'ais re#a1es a)i#iares so ne$ess-rias.
Cons#te as re"er+n$ias K17.CB e 17.CEL ime!iatamente se*intes& e tam0(m a seo 5Re"er+n$ias e 0i0#io*ra"ia6 !o
Cap2t#o CF& 'e $ont(m re"er+n$ias a!i$ionais Y 5m-*i$a6.
17.CB In!erpa# Ain*, Mmi$l e <ami! Pira,es,= 5Impiementation o" Ma*i$ in Atar0rst6& Pro$. 1__D ACM AI\MOD
Int. Con". on Mana*ement o" Data& Minneapo#is& Minn. 7maio !e 1__D8.
17.CE In!erpa# Ain*, Mmi$l& A,e#!on R. Iinle#stein& <ami! Pira,es, e Ra*, Ramalris,nan= 5Ma*i$ Con!itions6& ACM
TODA C1& N@mero 1 7maro !e 1__E8.
17.C7 Ronat,an R. kin*= 5^UIAT= A Anstem "or Aemanti$ ^ern Optimization in Re#ationa# Data0ases6& Pro$. 7t, Int.
Con". on Pern Lar*e Data bases& Cannes& Irana 7setem0ro !e 1_J18.
O arti*o 'e intro!zi a i!(ia !e otimizao sem3nti$a 7.er a Aeo 17.D !este $ap2t#o8. Des$re.e m sis tem
e)perimenta# $,ama!o ^UIAT 75^Uern Impro.ement t,ro*, Aemanti$ Trans"ormation6 % aper"ei D_ oamento !e
$ons#ta por meio !e trans"ormao sem3nti$a8 'e ( $apaz !e e"etar tais otimiza1es.
17.CJ Areelmar T. A,enon e i. Meta# Ozsono*#= 5A Anstem "or Aemanti$ ^ern Optimization6& Pro$. 1_J7 ACM
AI\MOD Int. Con". on Mana*ement o" Data& Aan Iran$is$o& Ca#i". 7maioZ4n,o !e 1_J78.
9sten!e o tra0a#,o !e kin* K17.C7L pe#a intro!o !e m es'ema 'e se#e$iona !inami$amente& !e m $on4nto
poten$ia#mente mito *ran!e !e restri1es !e inte*ri!a!e& a'e#as 'e ten,am pro0a0i#i!a!e !e serem @teis na
trans"ormao !e ma !a!a $ons#ta. As restri1es !e inte*ri!a!e $onsi!era!as so !e !as esp($ies 0-si$as&
restri1es !e imp#i$ao e restri1es !e s0$on 4ntos. Um e)emp#o !e restrio !e imp#i$ao ( 5se a 'anti!a!e !a
remessa ( maior 'e FXX& ento a $i!a!e !o "orne$e!or !e.e ser Lon!res6/ m e)emp#o !e restrio !e s0$on4nto (
5O $on4nto !os "orne$e!ores !e Lon!res !e.e ser m s0$on4nto !o $on4nto !e "orne$e!ores !e remessas6 7o
se4a& to!o "orne$e!or !e Lon!res !e.e "orne$er pe#o menos ma pea8. Tais restri1es so sa!as para trans"ormar
$ons#tas pe#a e#iminao !e restri1es e 4n1es re!n!antes e intro!o !e restri1es a!i$ionais so0re atri0tos
in!e)a!os. Tam0(m so trata!os !e mo!o e"i$iente $asos em 'e a $ons#ta po!e ser respon!i!a somente a partir !as
restri1es.
17.C_ Mi$,ae# Aie*e#& 9!jar! A$iore e A,aron Aa#.eter= 5A Met,o! "or Atomati$ R#e Deri.ation to Apport
Aemanti$ ^ern Optimization6& ACM TODA 17& N@mero D 7!ezem0ro !e 1__C8.
Como e)p#i$amos na Aeo 17.D& a otimizao sem3nti$a "az so !as restri1es !e inte*ri!a!e para trans"ormar
$ons#tas. Por(m& ,- .-rios pro0#emas asso$ia!os a esta i!(ia=
? Como o otimiza!or po!e sa0er 'ais trans"orma1es sero e"eti.as 7isto (& tornaro a $ons#ta mais e"i$iente8]
? A#*mas restri1es !e inte*ri!a!e no so mito @teis para "ins !e otimizao. Por e)emp#o& a restrio !e 'e pesos
!e peas !e.em ser maiores 'e zero& em0ora importante para "ins !e inte*ri!a!e& ( essen$ia#mente in@ti# para a
otimizao. Como o otimiza!or .ai !istin*ir entre restri1es @teis e in@teis]
? A#*mas $on!i1es po!eriam ser .-#i!as para a#*ns esta!os !o 0an$o !e !a!os % at( para a maior parte !e#es % e&
portanto& seriam @teis para "ins !e otimizao e& no entanto& no serem estritamente ma restrio !e inte*ri!a!e.
Um e)emp#o po!eria ser a $on!io 5i!a!e !e empre*a!o menor 'e o i*a# a BX6/ em0ora no se4a ma restrio !e
inte*ri!a!e em si 7empre*a!os po!em ter mais !e BX anos8& po!eria mito 0em o$orrer 'e nen,m empre*a!o ti.esse
mais !e BX anos no momento.
9sse arti*o !es$re.e a ar'itetra para m sistema 'e $ontemp#a as 'est1es pre$e!entes.
17.FX Upen A. C,alra.art,n& Ro,n \rant e Ra$l Minler= 5Lo*i$ base! Approa$, to Aemanti$ ^ern Optimization6&
ACM TODA 1B& N@mero C 74n,o !e 1__X8.
Citan!o o resmo= 59m .-rios arti*os anteriores Kos atoresL !es$re.eram e pro.aram a $orreo !e m m(to!o para
otimizao sem3nti$a !e $ons#tas.... 9ste arti*o $onso#i!a os prin$ipais res#ta!os !esses arti*os& en"atizan!o as
t($ni$as e sa ap#i$a0i#i!a!e para a otimizao !e $ons#tas re#a$ionais. A#(m !isso& KmostraL $omo esse m(to!o
$ont(m e *enera#iza o tra0a#,o anterior sa0re otimizao sem3nti$a !e $ons#tas. K9#e tam0(m in!i$aL $omo as
t($ni$as !e otimizao sem3nti$a !e $ons#tas po!em ser esten!i!as a K$ons#tas re$rsi.asL e restri1es !e
inte*ri!a!e 'e $ont+m !is4no& ne*ao e re$rso.
17.F 1 A. P. A,o& q. Aa*i. e R. D. U##man= 59""i$ient Optimization o" a C#ass o" Re#ationa# 9)pressions6& ACM TODA D
7!ezem0ro !e 1_7_8.
A $#asse !e e)press1es re#a$ionais a 'e o t2t#o se re"ere ( a !as e)press1es 'e sH en.o#.em restri1es !e i*a#!a!e
7'e o arti*o $,ama !e se#e1es8& pro4e1es e 4n1es natrais % as $,ama!as e)press1es APR. As e)press1es APR
$orrespon!em Ys $ons#tas !o $-#$#o re#a$iona# 'e en.o#.em somente $ompara1es !e i*a#!a!e& AND e
'anti"i$a!ores e)isten$iais. O arti*o intro!z ta0#eas $omo m meio !e representar sim0o#i$amente e)press1es
APR. Um ta0#ea ( m !ispositi.o retan*#ar& em 'e as $o#nas $orrespon!em a atri0tos e as #in,as a $on!i1es=
espe$i"i$amente& $on!i1es !e pertin+n$ia& 'e !e$#aram 'e ma $erta tp#a !e .a#ores !e.e e)istir em ma $erta
re#ao. As #in,as so $one$ta!as #o*i$amente pe#a presena !e s2m0o#os $omns nas #in,as em $asa. Por e)emp#o& a
ta0e#a=
IT ATATUA CIDAD9 PT COR
ai
0i ai Lon!res ;; "orne$e!ores
0i 0C ;; remessas
0C Perme#,o ;; peas
D_B
representa a $ons#ta 5O0ter stats 7ai8 !e "orne$e!ores 70i8 em Lon!res 'e "orne$em a#*mas peas .erme#,as
70C86. A #in,a !e $ima !o ta0#ea #ista to!os os atri0tos men$iona!os na $ons#ta& a #in,a se*inte ( a #in,a !e
5resmo6 7$orrespon!en!o Y prototp#a em ma $ons#ta !e $-#$#o& o Y pro4eo "ina# em ma $ons#ta a#*(0ri$a8& as
#in,as restantes 7$omo 4- "oi !ito8 representam $on!i1es !e pertin+n$ia. Mar$amos essas #in,as no e)emp#o para
in!i$ar as re#a1es re#e.antes. O0ser.e 'e os 506s se re"erem a .ari-.eis a$op#a!as e os 5a6s se re"erem a .ari-.eis
#i.res= a #in,a !e resmo sH $ont(m 5a6s.
Os ta0#eas representam otro $an!i!ato a m "orma#ismo $anGni$o para $ons#tas 7$ons#te a Aeo 17.F8 e)$eto&
natra#mente& pe#o "ato !e no serem s"i$ientemente *erais para representar to!as as poss2.eis e)press1es
re#a$ionais. 7Na .er!a!e& po!em ser $onsi!era!os ma .ariao sint-ti$a !e ^ern;bn;9)amp#e& mito em0ora ma
.ariao estritamente menos po!erosa 'e ^b9.8 O arti*o apresenta a#*oritmos para re!zir 'a#'er ta0#ea a otro&
semanti$amente e'i.a#ente& em 'e o n@mero !e #in,as ( re!zi!o a m m2nimo. Como o n@mero !e #in,as 7sem $ontar
as !as !e speriores& 'e so espe$iais8 ( ma ni!a!e maior 'e o n@mero !e 4n1es na e)presso APR
$orrespon!ente& o ta0#ea trans"orma!o representa ma "orma Htima !a $ons#ta % Htima no senti!o mito espe$2"i$o
!e 'e o n@mero !e 4n1es "oi minimiza!o. 7No e)emp#o anterior& ( $#aro& o n@mero !e 4n1es 4- ( o m2nimo poss2.e#
para a $ons#ta/ portanto& ta# otimizao no tem e"eito.8 O ta0#ea m2nimo po!e ento ser trans"orma!o !e .o#ta& se
!ese4-.e#& em a#*ma otra representao para otimizao a!i$iona#.
A i!(ia !e minimizar o n@mero !e 4n1es tem ap#i$ao em $ons#tas "orm#a!as em termos !e .is1es !e 4no 7em
parti$#ar $ons#tas "orm#a!as em termos !e ma 5re#ao ni.ersa#6/ $ons#te a seo 5Re"er+n$ias e 0i0#io*ra"ia6 no
Cap2t#o 1C8. Por e)emp#o& spon,a 'e se4a apresenta!a ao s-rio ma .iso P !e"ini!a $omo a 4no !as re#a1es I
e IP so0re IT& e o s-rio emita a $ons#ta=
P W PT d
Um a#*orirmo !ireto !e pro$essamento $on.erteria esta $ons#ta na se*inte=
7 IP ROIN I 8 W PT d
Por(m& $omo in!i$amos na Aeo 17.D& a $ons#ta a se*ir pro!z o mesmo res#ta!o e no en.o#.e ma 4no 7isto (& o
n@mero !e 4n1es ( minimiza!o8=
IP W PT d
9ntretanto& o0ser.e $omo os a#*oritmos para re!o !e ta0#ea !a!os no arti*o #e.am em $onta 'ais'er
!epen!+n$ias "n$ionais e)p#i$itamente !e$#ara!as entre os atri0tos 7.er o Cap2t#o _8. 9sses a#*o; ritmos "orne$em
m e)emp#o #imita!o !e ma t($ni$a !e otimizao sem3nti$a.
17.FC q. Aa*i. e M. qannalalis= 59'i.a#en$es Amon* Re#ationa# 9)pressions jit, t,e Union an! Di""eren$e
Operators6&RACM C7. N@mero D 7ot0ro !e 1_JX8.
9sten!e as i!(ias !a re"er+n$ia K17.F11 para tratar !e $ons#tas 'e in$#em opera1es !e nio e !i"erena.
17.FF A#on q. Le.n& In!erpa# Ain*, Mmi$l e qe,os,a Aa*i.= 5^ern Optimization 0n Pre!i$ate Mo.e;Aron!6& Pro$.
COt, Int. Con". on Pern Lar*e Data bases& Aantia*o& C,i#e 7setem0ro !e 1__D8.
17.FD P. \ri""it,s Ae#in*er et ai.= 5A$$ess Pat, Ae#e$tion in a Re#ationa# Data0ase Anstem6& Pro$. 1_7_ ACM AI\MOD
Int. Con". on Mana*ement o" Data& boston& Mass. 7maioZ4n,o !e 1_7_8.
9sse arti*o !is$te a#*mas !as t($ni$as !e otimizao sa!as no protHtipo !o Anstem R. Nota= o otimiza!or !o
Anstem R "oi o pre!e$essor !o otimiza!or !o DbC. A re"er+n$ia K17.FBL o"ere$e a#*mas in"orma1es a!i$ionais 'e
so espe$2"i$as para o DbC.
Uma $ons#ta no Anstem R ( ma instro !e A^L e& portanto& $onsiste em m $on4nto !e 0#o$os 5A9L9CT;IROM;
S<9R96 70#o$os !e $ons#ta8 !os 'ais a#*ns po!eriam estar anin,a!os !entro !e otros 7.e4a o Cap2t#o 1X8.
Primeiro& o otimiza!or !o Anstem R !e$i!e em 'e or!em e)e$tar esses 0#o$os !e $ons#ta. 9m se*i!a& pro$ra
minimizar o $sto tota# !a $ons#ta& es$o#,en!o a imp#ementao mais e$onGmi$a para $a!a 0#o$o in!i.i!a#. O0ser.e
'e essa estrat(*ia 7primeiro a es$o#,a !a or!em !os 0#o$os& !epois a otimizao !e 0#o$os in!i.i!ais8 si*ni"i$a 'e
$ertos p#anos !e $ons#tas poss2.eis nn$a sero $onsi!era!os/ e"eti.amente& ( ma t($ni$a para 5re!zir o espao !e
0s$a6 7.e4a as o0ser.a1es so0re esse assnto no "ina# !a Aeo 17.F8. Nota= no $aso !e 0#o$os anin,a!as& o
otimiza!or simp#esmente se*e a or!em anin,a!os $omo "oi espe$i"i$a!a pe#o s-rio % isto (& em termos in"ormais& o
0#o$o mais interno ser- e)e$ta!o primeiro. Cons#te as re"er+n$ias K17.F _ a 17.DB1 para .er $r2ti$as e ma !is$sso
a!i$iona# !essa estrat(*ia.
D_E
Para m !etermina!o 0#o$o !e $ons#ta ,- 0asi$amente !ois $asos a $onsi!erar 7o primeiro !os 'ais po!e na .er!a!e
ser .isto $omo m $aso parti$#ar !o se*n!o8=
1. Para m 0#o$o 'e en.o#.e somente ma restrio eZo pro4eo !e ma @ni$a re#ao& o otimiza!or sa in"orma1es
estat2sti$as !o $at-#o*o& 4nto $om "Hrm#as 7!a!as no arti*o8 para estimati.as !e taman,o !e res#ta!os
interme!i-rios e $stos !e opera1es !e 0ai)o n2.e#& a "im !e es$o#,er ma estrat(*ia para e)e$tar essa restrio
eZo pro4eo.
C. Para m 0#o$o 'e en.o#.e !as o mais re#a1es a serem asso$ia!as& $om 7pro.a.e#mente8 restri1es #o$ais eZo
tam0(m pro4e1es& o otimiza!or 7a8 trata $a!a re#ao in!i.i!a# $omo no Caso 1 e 708 !e$i!e so0re ma se':+n$ia para
e)e$tar as 4n1es. As !as opera1es 7a8 e 708 no so in!epen!entes ma !a otra/ por e)emp#o& ma !a!a
estrat(*ia % !i*amos& o so !e m $erto 2n!i$e % para o0ter a$esso a ma re#ao in!i.i!a# A po!eria mito 0em ser
es$o#,i!a e)atamente por'e pro!z as tp#as !e A na or!em em 'e so ne$ess-rias para a e)e$o !e ma 4no
s0se':ente !e A $om a#*ma otra re#ao b.
As 4n1es so imp#ementa!as por or!enaoZinter$a#ao& pes'isa !e 2n!i$e o "ora 0rta. Um ponto en"atiza!o no
arti*o ( 'e& na a.a#iao 7por e)emp#o8 !a 4no anin,a!a 7A ROIN b8 ROIN C& no ( ne$ess-rio $a#$#ar a 4no !e
A e b inteiramente antes !e $a#$#ar a 4no !o res#ta!o $om C/ ao $ontr-rio& to #o*o 'a#'er tp#a !e A ROIN b
ten,a si!o pro!zi!a& e#a po!er- ime!iatamente ser repassa!a ao pro$esso 'e e"eta a 4no !e tais tp#as $om
tp#as !e C. Portanto& ta#.ez nn$a se4a ne$ess-rio materia#izar a re#ao 5A ROIN b6 $omp#etamente. 79ssa i!(ia
*era# !e $ana#izao "oi !is$ti!a rapi!amente no Cap2t#o F& Aeo F.C. $ons#te tam0(m as re"er+n$ias K17.1JL e
K17.EX1.8
O arti*o in$#i tam0(m a#*mas o0ser.a1es so0re o $sto !a otimizao. Para a 4no !e !as re#a1es& o $sto (
$onsi!era!o apro)ima!amente i*a# ao $sto !e B a CX re$pera1es !e 0an$os !e !a!os % ma so0re$ar*a 'e
po!er- ser i*nora!a se a $ons#ta otimiza!a "or e)e$ta!a m *ran!e n@mero !e .ezes em se*i!a. 7O0ser.e 'e o
Aistema R ( m sistema !e $ompi#ao& e ento 'e ma instro !e A^I po!e ser otimiza!a ma .ez e !epois
e)e$ta!a mitas .ezes& ta#.ez mitos mi#,ares !e .ezes.8 Dizemos 'e a otimizao !e $ons#tas $omp#e)as e)i*e
5apenas a#*ns mi#,ares !e 0ntes !e armazenamento e ns po$os !($imos !e se*n!o6 em m IbM Anstem F7X Mo!e#
1BJ. 5Rn1es !e oito ta0e#as "oram otimiza!as em a#*ns se*n!os.6
17.FB R. M. C,en*& C. R. Loos#en& A. A,i0amina e P. A. Sort,in*ton= 5IbM DATAbAA9 C Per"orman$e= Desi*n&
Imp#ementation& an! Tnin*6& IbM Ans. R. CF& N@mero C 71_JD8.
In$#i ma 0re.e !es$rio !e t-ti$as !e orimzao em DbC 7em sa primeira .erso8= t($ni$as !e trans"ormao !e
$ons#tas& o tratamento !e 0#o$os !e $ons#tas anin,a!as& m(to!os !e 4no& se#eo !e $amin,os !e a$esso e
pro$essamento somente !e 2n!i$es. Nota= o arti*o tam0(m in$#i mito materia# interessante so0re otros aspe$tos
orienta!os para o !esempen,o no DbC.
17.FE 9*ene Son* e kare# qosse"i= 5De$omposition ; A Atrate*n "or ^ern Pro$essin*6& ACM TODA 1& N@mero F
7setem0ro !e 1_7E8.
17.F7 kare# qosse"i e 9*ene Son*= 5^ern Pro$essin* in a Re#ationa# Data0ase Mana*ement Anstem6& Pro$. At, Int.
Con". on Pern Lar*e Data bases& Rio !e Raneiro& brasi# 7setem0ro !e 1_7_8.
17.FJ Lajren$e A. Roje e Mi$,ae# Atone0raler= 5T,e Commer$ia# In*res 9pi#o*e6& na re"er+n$ia K7.1XL.
O 5Commer$ia# In*res6 ( o pro!to 'e $res$e a partir !o protHtipo 5Uni.ersitn .In*res6. A#*mas !i"erenas entre
os otimiza!ores !o Uni.ersitn e !o Commer$ia# In*res so as se*intes=
1. O otimiza!or !o Uni.ersitn sa.a 5p#ane4amento in$rementa#6 % isto (& !e$i!ia o 'e "azer primeiro& "azia;o& !e$i!ia
o 'e "azer em se*i!a $om 0ase no taman,o !o res#ta!o !o passo anterior& e assim por !iante& O otimiza!or !o
Commer$ia# !e$i!e so0re m p#ano $omp#eto antes !e $omear a e)e$o& 0asea!o em estimati.as !e taman,os !e
res#ta!os interme!i-rios.
C. O otimiza!or !o Uni.ersitn mane4a.a $ons#tas em !as .ari-.eis 7isto (& 4no8 por s0stitio !e tp#as& $omo
e)p#i$amos na Aeo 17.E. O otimiza!or !o Commer$ia# a!mite ma *ran!e .arie!a!e !e t($ni$as pre"eren$iais para
manip#ao !essas $ons#tas& in$#in!o em parti$#ar a t($ni$a !e or!enarZinter$a#ar !es$rita na Aeo 17.7.
F. O otimiza!or !o Commer$ia# ti#iza m $on4nto !e estat2sti$as mito mais so"isti$a!o 'e o otimiza!or !o
Uni.ersitn.
D_7
D. O onmiza!or !o Uni.ersitn "azia p#ane4amento in$rementa#& $omo o0ser.amos no item 1 anterior& O otimiza!or !o
Commer$ia# "az ma 0s$a mito mais e)asti.a. Por(m& o pro$esso !e pes'isa p-ra se o tempo *asto na otimizao
e)$e!e a me#,or estimati.a ata# !o tempo ne$ess-rio para e)e$tar a $ons#ta 7!e otra "orma& o e)$esso !e
so0re$ar*a !o pro$esso !e otimizao po!e mito 0em ser maior 'e as .anta*ens8.
B. O otimiza!or !o Commer$ia# $onsi!era to!as as poss2.eis $om0ina1es !e 2n!i$es& to!as as poss2.eis se':+n$ias !e
4n1es e rto!os os m(to!os !e 4no !ispon2.eis % or!enarZinter$a#ar& or!enarZinter$a#ar par$ia#& pes'isa !e ,as,&
pes'isa !o IAAM& pes'isa !e -r.ore b e "ora 0rtat 7$ons#te a Aeo 17.78.
17.F_ Son kim= 5On Optimizin* an A^L;Lile Neste! ^ern6& ACM TODA 7& N@mero F 7setem0ro !e 1_JC8& Cons#te a
re"er+n$ia K17.DF1 a se*ir.
17.DX Serner kiess#in*= 5On Aemanti$ Ree"s an! 9""i$ient Pro$essin* o" Corre#ation ^eries jit, A**re*ates6& Pro$.
1 #t, Int. Con". on Pern Lar*e Data bases& 9sto$o#mo& A($ia 7a*osto !e 1_JB8.
Cons#te a re"er+n$ia K17.DFL a se*ir.
17.D 1 Ri$,ar! A. \ansli e <arrn k. T. Son*= 5Optimization o" Neste! A^L ^eries Re.isite!6& Pro$. 1_J7 ACM
AI\MOD Int. Con". on Mana*ement o" Data& Aan Iran$is$o& Ca#i". 7maio !e 1_J78.
Cons#te a re"er+n$ia K17.DFL a se*ir.
17.DC \:nter .on b:#tzin*s#oejen= 5Transiation an! Optimizin* A^L ^eries <a.in* A**re*ates6& Pro$. #Ft, Int. Con".
on Pern Lar*e Data bases& bri*,ton& Reino Uni!o 7setem0ro !e 1_J78.
Cons#te a re"er+n$ia K17.DFL a se*ir.
17.DF M. Mra#ilris,na= 5Impro.e! Unnestin* A#*orit,ms "or Roin A**re*ate A^L ^eries6& Pro$. #Jt, Int. Con". on
Pern Lar*e Data bases& Pan$o.er& Cana!- 7a*osto !e 1__C8.
A #in*a*em A^L permite 5s0$ons#tas anin,a!as6 % isto (& m 0#o$o A9L9CT;IROM;S<9R9 anin,a!o !entro !e
otro !esses 0#o$os& em termos in"ormais 7$ons#te o Cap2t#o 78. 9ssa $onstro $aso ma $erta !i"i$#!a!e aos
imp#ementa!ores. Consi!ere a se*inte $ons#ta !e A^L 75O0ter nomes !e "orne$e!ores 'e "orne$em a pea PC68& a
'a# $,amaremos !e $ons#ta ^i=
A9L9CT 9. INOM9
IROM I
S<9R9 I.II IN
7 A9L9CT IP.II
IROM IP
S<9R9 IP.PT U PC 8 /
No Anstem R K17.FDL& essa $ons#ta ser- imp#ementa!a pe#a a.a#iao !o 0#o$o interno primeiro para "orne$er ma
ta0e#a tempor-ria& !i*amos T& $onten!o n@meros !e "orne$e!ores para os "orne$e!ores e)i*i!os/ em se*i!a& e#e
.arrer- a ta0e#a B ma #in,a !e $a!a .ez e& para $a!a #in,a& .arrer- a ta0e#a T para .er se e#a $ont(m o n@mero !e
"orne$e!or $orrespon!ente. 9 pro.-.e# 'e essa estrat(*ia se4a mito ine"i$iente 7espe$ia#mente por'e a ta0e#a T
no ser- in!e)a!a8.
A*ora $onsi!ere esta $ons#ta 7^C8=
A9L9CT I.INOM9
IROM 9& IP
Sk9R9 I.IT U IP.IT
AND IP.PT U PC 8
Pemos $om "a$i#i!a!e 'e essa $ons#ta ( semanti$amente i!+nti$a Y anterior& mas o Anstem R a*ora $onsi!erar-
estrat(*ias !e imp#ementao a!i$ionais para e#a. 9m parti$#ar& se a$onte$er !e as ta0e#as I e IP estarem
"isi$amente armazena!as na se':+n$ia !e n@meros !e "orne$e!ores& e#a ti#izar- ma 4no !e inter$a#ao& 'e ser-
mito e"i$iente. A#(m !isso& !a!o 'e 7a8 as !as $ons#tas so #o*i$amente e'i.a#entes& mas 708 a se*n!a ( mais
ime!iatamente ss$et2.e# !e imp#ementao e"i$iente& a possi0i#i!a!e !e trans"ormar $ons#tas !o tipo ^i em
$ons#tas !o tipo ^C pare$e mere$er m e)ame. 9ssa possi0i#i!a!e ( o assnto !as re"er+n$ias K17.F_ a 17.DB1.
kim K17.F_L "oi o primeiro a $onsi!erar o pro0#ema. Ioram i!enti"i$a!os $in$o tipos !e $ons#tas
D_J anin,a!as e !es$ritos os a#*oritmos !e trans"ormao $orrespon!entes. O arti*o !e kim in$#2a a#*mas
me!i!as e)perimentais 'e mostra.am 'e o a#*oritmo proposto me#,ora.a o !esempen,o !e $ons#tas anin,a!as por
7em *era#8 ma o !as or!ens !e *ran!eza.
Mais tar!e& kiess#in* K17.DX1 mostro 'e os a#*oritmos !e kim no "n$iona.am $orretamente se 7em 'a#'er n2.e#8
ma s0$ons#ta anin,a!a in$#2sse m opera!or COUNT em sa #ista A9L9CT 7e#e no trata.a !e mo!o apropria!o o
$aso em 'e o ar*mento !e COUNT era a.a#ia!o $omo m $on4nto .azio8. Os rre$i"es sem3nti$os6 !o t2t#o !o arti*o
se re"eriam Ys !i"i$#!a!es e $omp#e)i!a!es !e A^L 'e o0ri*a.am os s-rios a na.e*ar para o0ter respostas
$onsistentes e $orretas a tais $ons#tas. A#(m !isso& kiess#in* tam0(m mostro 'e o a#*oritmo !e kim no era "-$i# !e
$orri*ir 75pare$e no ,a.er nen,m mo!o ni"orme !e imp#ementar essas trans"orma1es !e maneira e"i$iente e
$orreta em to!as as $ir$nst3n$ias68.
O arti*o !e \anli e Son* K17.D1L "orne$e ma $orreo para o pro0#ema i!enti"i$a!o por kiess#in*& san!o ma 4no
e)terna 7$ons#te o Cap2t#o 1J8 em #*ar !a 4no interna norma# na .erso trans"orma!a !a $ons#ta. 7A $orreo
no ( tota#mente satis"atHria em nossa opinio& por'e intro!z ma in!ese4-.e# !epen!+n$ia !a or!enao entre os
opera!ores na $ons#ta trans"orma!a.8 O arti*o tam0(m i!enti"i$a mais m 0* no arti*o ori*ina# !e kim& o 'a# (
$orri*i!o !o mesmo mo!o. Por(m& as trans"orma1es nesse arti*o $ont+m ses prHprios 0*s a!i$ionais& a#*ns
re#a$iona!os $om o pro0#ema !e #in,as !p#i$a!as 7m notHrio 5re$i"e sem3nti$o6 K17.DXL8 e otros $om o
$omportamento !e"eitoso !o 'anti"i$a!or 9NIATA !e A^L K1J.EL.
O arti*o !e .on b:#tzin*s#oejen K17.DCL representa ma tentati.a !e $o#o$ar to!o o tHpi$o em 0ase teHri$a sH#i!a
7sen!o o pro0#ema 0-si$o o "ato !e 'e& $omo .-rios atores o0ser.aram& o $omportamento % tanto sint-ti$o 'anto
sem3nti$o % !o anin,amento e !a a*re*ao no esti#o !e A^L no ser 0em $ompreen!i!o8. 9#e !e"ine .ers1es
esten!i!as tanto !o $-#$#o re#a$iona# 'anto !a -#*e0ra re#a$iona# 7as e)tens1es esto re#a$iona!as $om a*re*a!os e
n#os8 e !emonstra a e'i.a#+n$ia !esses !ois "orma#ismos esten!i!os 7a propHsito& san!o m no.o m(to!o !e pro.a
'e pare$e mais e#e*ante 'e os p0#i$a!os anteriormente8. 9m se*i!a& !e"ine a sem3nti$a !e A^L& mapean!o a A^L
no $-#$#o esten!i!o re$(m;!e"ini!o. $ont!o& !e.emos o0ser.ar 'e=
1. O !ia#eto !e A^L !is$ti!o& em0ora mais prH)imo !o !ia#eto a!miti!o em *era# nos pro!tos $omer$iais !es$ritos
nas re"er+n$ias K17.F_ a 17.D1L& ain!a no ( $omp#etamente orto!o)o= e#e no in$#i UNION& no sporte !ireto para
opera!ores !a "orma 5U ALL6 o6g ALL6 7$ons#te o Ap+n!i$e A8 e se tratamento !e .a#ores .er!a!e !es$on,e$i!os (
!i"erente !a 7e na .er!a!e& me#,or 'e8 A^L $on.en$iona#.
C. O arti*o omite $onsi!era1es so0re 'est1es re#a$iona!as $om a e#iminao !e !p#i$atas 5para simp#i"i$ao
t($ni$a6. Por(m& as imp#i$a1es !essa omisso no esto $#aras& $onsi!eran!o;se 'e 7$omo in!i$amos antes8 a
possi0i#i!a!e !e !p#i$atas tem $onse':+n$ias si*ni"i$ati.as para a .a#i!a!e o no !e $ertas trans"orma1es KB.EL.
Por "im& Mra#ilris,na K17.DFL a"irma 'e o a#*oritmo ori*ina# !e kim K17.F_L& em0ora in$orreto& ain!a po!e ser mais
e"i$iente 'e a 5estrat(*ia *era#6 !a re"er+n$ia K17.D11 em a#*ns $asos& e por essa razo prop1e ma $orreo
a#ternati.a !o a#*oritmo !e kim. 9#e tam0(m "orne$e a#*ns aper"eioamentos a!i$ionais.
17.DD Lars bael*aar! e Leo Marl= 5In$rementa# Comptation o" Neste! ^ern 9)pressions6& ACM TODA CX& N@mero
C 74n,o !e 1__B8.
Otro arti*o so0re a otimizao !e $ons#tas en.o#.en!o s0$ons#tas no esti#o !e A^L& em espe$ia# as $ons#tas
$orre#atas 7o 5anin,amento6 men$iona!o no t2t#o !o arti*o se re"ere espe$i"i$amente a s0; $ons#tas anin,a!as no
esti#o !e A^L8. A estrat(*ia ( 718 $on.erter a $ons#ta ori*ina# em ma e'i.a#ente no anin,a!a& e !epois 7C8 a.a#iar a
.erso no anin,a!a !e mo!o in$rementa#. 5Para !ar sporte ao passo 718& !esen.o#.emos m a#*oritmo !e
trans"ormao !e -#*e0ra para -#*e0ra mito $on$iso... A e)presso Ktrans"orma!aL "az so intenso !o opera!or
KMINUAI. Para !ar sporte ao passo 7C8& apresentamos e ana#isamos m a#*oritmo e"i$iente para a a.a#iao
in$rementa# K!e opera1es MINUAL.6 O termo $-#$#o in$rementa# se re"ere Y i!(ia !e 'e a a.a#iao !e ma !a!a
$ons#ta po!e "azer so !e res#ta!os $a#$#a!os anteriormente.
17.DB Rn Rao e kennet, A. Ross= 5Usin* In.ariants= A Nej Atrate*n "or Corre#ate! ^eries6& Pro$. 1__J ACM
AI\MOD Int. Con". on Mana*ement o" Data& Aeatt#e& Sas,. 74n,o !e 1__J8.
Mais m arti*o so0re a otimizao !e $ons#tas en.o#.en!o s0$ons#tas no esti#o !e A^L.
17.DE Da.i! <. D. Sarren= 59""i$ient Pro$essin* o" Intera$ti.e Re#ationa# Data0ase ^eries 9)presse! in Lo*i$6&
Pro$. 7t, Int. Con". on Pern Lar*e Data bases& Cannes& Irana 7setem0ro !e 1_J18. D_
Apresenta ma .iso !a otimizao !e $ons#tas !e ma perspe$ti.a 0em !i"erente !a #H*i$a "orma#& O arti*o e)p1e
t($ni$as sa!as em m sistema e)perimenta# !e 0an$o !e !a!os 0asea!o em Pro#o*. As t($ni$as pare$em mito
seme#,antes Ys !o Anstem R& em0ora ten,am $,e*a!o !e "orma 0astante in!epen!ente e $om o04eti.os m tanto
!i"erentes& O arti*o s*ere 'e& em $ontraste $om as #in*a*ens !e $ons#tas $on.en$ionais $omo ^U9L e A^L& as
#in*a*ens 0asea!as na #H*i$a $omo Pro#o* permitem e)pressar $ons#tas !e maneira a !esta$ar=
? ^ais so os $omponentes essen$iais !a $ons#ta % o se4a& as metas #H*i$as.
? O 'e ne esses $omponentes % o se4a& as .ari-.eis #H*i$as.
? ^a# ( o pro0#ema $r$ia# !e imp#ementao % o se4as a se':+n$ia na 'a# se tentar- satis"azer Ys metas.
9m $onse':+n$ia !isso& ( s*eri!o 'e ma ta# #in*a*em ( mito $on.eniente $omo 0ase para otimizao. De "ato& e#a
po!eria ser $onsi!era!a mais ma $an!i!ata para a representao interna !e $ons#tas e)pressas on*ina#mente em
a#*ma otra #in*a*em 7$ons#te a Aeo 17.F8.
17.D7 qannis 9. Ioanni!is e 9*ene Son*= 5^ern Optimization 0n Aim#ate! Annea#in*6& Pro$. 1_J7 ACM AI\MOD
Int. Con". on Mana*ement o" Data& Aan Iran$is$o& Ca#i". 7maio !e 1_J78.
O n@mero !e p#anos !e $ons#tas poss2.eis $res$e e)ponen$ia#mente $om o n@mero !e re#a1es en.o#.i!as na $ons#ta.
9m ap#i$a1es $omer$iais $on.en$ionais& o n@mero !e re#a1es em ma $ons#ta ( em *era# pe'eno& e assim o n@mero
!e p#anos $an!i!atos 7o 5espao !e pes'isa68 em *era# permane$e !entro !e #imites razo-.eis. Por(m& em ap#i$a1es
mais re$entes& o n@mero !e re#a1es em ma $ons#ta po!e "a$i#mente se tomar 0em *ran!e 7por e)emp#o& $ons#te o
Cap2t#o C18. A#(m !isso& tais ap#i$a1es tam0(m t+m a pro0a0i#i!a!e !e ne$essitar !e otimizao 5*#o0a#6 7isto (& !e
.-rias $ons#tas8 K17.D_L e sporte !e $ons#tas re$rsi.as& am0os tam0(m $om o poten$ia# para amentar !e mo!o
si*ni"i$ati.o o espao !e pes'isa. A pes'isa e)asti.a rapi!amente se mostra "ora !e 'esto em ta# am0iente/
torna;se imperati.a a#*ma t($ni$a e"eti.a para re!zir o espao !e pes'isa.
9sse arti*o o"ere$e re"er+n$ias a tra0a#,os anteriores so0re os pro0#emas !e otimizao para *ran!es n@meros !e
re#a1es e otimizao !e .-rias $ons#tas& mas a"irma 'e no "oi p0#i$a!o antes nen,m ai*oritmo para otimizao !e
$ons#tas re$rsi.as. 9#e tam0(m apresenta m a#*oritmo 'e a"irma ser a!e'a!o sempre 'e o espao !e pes'isa e&
em parti$#ar& mostra $omo ap#i$ar esse a#*oritmo ao $aso !a $ons#ta re$rsi.a. O a#*oritmo 7$,ama!o 5re"oro
sim#a!o6 por'e mo!e#a o pro$esso !e re"oro pe#o 'a# os $ristais $res$em& primeiro pe#o a'e$imento !o "#i!o 'e
os $ont+m e !epois permitin!o 'e e#e se res"rie *ra!a#mente8 ( m a#*oritmo pro0a0i#2sti$o !e es$a#a!a 'e "oi
ap#i$a!o $om s$esso a pro0#emas !e otimizao em otros $onte)tos.
Cons#te tam0(m a re"er+n$ia 117.DJ1 ime!iatamente a se*ir.
17.DJ Arn Ajami e Anoop \pta= 5Optimization o" Iar*eRoin ^eries6& Pro$. 1_JJ ACM AI\MOD Int. Con".
X11 Mana*ement o" Data& C,i$a*o. 111. 74n,o !e 1_JJ8.
O pro0#ema *era# !e !eterminar a or!em !e 4no Htima em $ons#tas en.o#.en!o *ran!es n@meros !e re#a1es 7'e
sr*em& por e)emp#o& em $one)o $om sistemas !e 0an$os !e !a!os !e!ti.os % $ons#te o Cap2t#o CF8 ( !i"2$i#&
$onsi!eran!o;se as $om0ina1es. 9sse arti*o apresenta ma an-#ise $omparati.a !e m $erto n@mero !e a#*oritmos 'e
tratam !o pro0#ema= per$rso !e pertr0ao& amostra*em 'ase a#eatHria& aper"eioamento iteran.o& ,er2sti$a !e
se':+n$ia e sim#ate! an#atin* 9 17.D7L 7os nomes a$res$entam m a*ra!-.e# e#emento !e poesia a m assnto 'e
po!eria pare$er m tanto prosai$o8. Ae*n!o essa an-#ise& o aper"eioamento iterati.o ( sperior a to!os os otros
a#*oritmos/ em parti$#ar o sim#ate! an#atin* no ( @ti# 5sozin,o6 no $aso !e *ran!es $ons#tas !e 4no.
17.D_ Timos k. Aei#is= 5M#tip#e;^ern Optimization6& ACM TODA 1F& N@mero 1 7maro !e 1_JJ8.
A pes'isa !e otimizao $#-ssi$a tem se $on$entra!o no pro0#ema !e otimizar e)press1es re#a$ionais in!i.i!ais
iso#a!amente. Por(m& no "tro& a $apa$i!a!e !e otimizar .-rias $ons#tas !istintas $omo ma ni!a!e pro.a.e#mente
se tomar- importante. Uma razo para isso ( 'e o 'e $omea $omo m @ni$a $ons#ta em a#*m n2.e# mais a#to !o
sistema po!e en.o#.er .-rias $ons#tas no n2.e# re#a$iona#. Por e)emp#o& a $ons#ta em #in*a*em natra# 5Mile ( 0em
pa*o]t po!eria #e.ar Y e)e$o !e tr+s $ons#tas re#a$ionais separa!as=
? 5Mile *an,a mais !e u7B.XXX]6
? 5Mile *an,a mais 'e uEX.XXX e tem menos !e $in$o anos !e e)peri+n$ia]6
BXX ? 5Mile *an,a mais !e uDB.XXX e tem menos !e tr+s anos !e e)peri+n$ia]6
Da!o 'e ma 4no ( 0asi$amente ma operao !i-!i$a& o otimiza!or pre$isa 'e0rar ma 4no en.o#.en!o N
re#a1es 7N g C8 em ma se':+n$ia !e 4n1es !i-!i$as. A maior parte !os otimiza!ores "az isso !e ma "orma
estritamente anin,a!a/ isto (& e#es es$o#,em m par !e re#a1es para a primeira 4no& !epois ma ter$eira para
"azer a 4no $om o res#ta!o !a 4no !as 4no !as !as primerias& e assim por !iante& em otras pa#a.ras& ma
e)presso $omo A ROIN b ROIN C ROIN D po!eria ser trata!a& !i*amos& $omo 77D ROIN b8 ROIN C8 ROIN A& mas
nn$a $omo& por e)emp#o& 7A ROIN D8 ROIN 7b ROIN C8. A#(m !isso& os otimiza!ores tra!i$ionais em *era# so
pro4eta!os para e.itar pro!tos $artesianos sempre 'e poss2.e#. Am0as as t-ti$as p!em ser .istas $omo mo!os !e
rre!zir o espao !e pes'isa6 7em0ora a ,er2sti$a para es$o#,er a se':+n$ia !e 4n1es ain!a se4a natra#mente
ne$ess-ria8.O arti*o !es$re.e os aspe$tos re#e.antes !o otimiza!or no protHtipo. Atar0rst !a IbM 7$ons#te as
re"er+n$ias K17.1XL& KCB.1DL& KCB.17L e KCB.C1 e CB.CCL8. 9#e ar*menta 'e am0as as t-ti$as anteriores po!em ser
ina!e'a!as em $ertas sita1es& e portanto 'e ( ne$ess-rio m otimiza!or a!apt-.e# 'e possa ser instr2!o a sar
t-ti$as !i"erentes para $ons#tas !i"erentes. Nota= ao $ontr-rio !o otimiza!or $omer$ia# t2pi$o !e ,o4e& o Atar0rst (
$apaz !e tratar ma e)presso !a "orma R.A U A.b e $ $omo ma $on!io !e 54no6. 9#e tam0(m ap#i$a o r"e$,o
transiti.o !e pre!i$a!o6 7$ons#te a Aeo 17.D8.
17.BB bennet Pan$e e Da.i! Maier= 5Rapi! bs,n Roin;Or!er Optmization jit, Cartesian Pro!$ts6& Pro$. 1__E ACM
AI\MOD Int. Con". on Mana*ement o" Data& Montrea#& Cana!- 74n,o !e 1__E8.
Como o0ser.amos na anotao Y re"er+n$ia anterior& os otimiza!ores ten!em a rre!zir o espao !e pes'isa6 7entre
otras $oisas8 e.itan!o p#anos 'e en.o#.am pro!tos $artesianos. 9sse arti*o mostra 'e a pes'isa !o espao inteiro
r( mais .i-.e# !o 'e se re$on,e$ia antest e 'e e.itar pro!tos $artesianos no ( ne$essariamente 0en("i$o. De
a$or!o $om os atores& as prin$ipais $ontri0i1es !o arti*o esto entre 7a8 separar tota#mente a enmerao !a
or!em !e 4n1es !a an-#ise !e pre!i$a!os e 708 apresentar rno.as t($ni$as !e imp#ementaot para en"rentar o
pro0#ema !a enmerao !a or!em !e 4n1es.
17.BE qannis 9. Ioanni!is& Ranmon! T. N*& knseol A,im e Timos k. Ae##is= 5Parametri$ ^ern Optimization6& Pro$. #Jt,
Int. Con". on Pern Lar*e Data bases& Pan$o.er& Cana!- 7a*osto !e 1__C8.
Consi!ere a se*inte $ons#ta=
9MP S<9R9 AALmRIO g sa#-rio
7on!e sa#-rio ( m par3metro !e tempo !e e)e$o8. Apon,a 'e e)ista m 2n!i$e so0re AALmRIO.
9nto=
? Ae sa#-rio ( u1X.XXX por m+s& ento o me#,or mo!o !e imp#ementar a $ons#ta ( sar o 2n!i$e 7por'e sem !@.i!a a
maioria !os empre*a!os no estar- 'a#i"i$a!a8.
? Ae sa#-rio ( u1.XXX por m+s& ento o me#,or mo!o !e imp#ementar a $ons#ta ( sar ma .arre!ra se':en$ia# 7por'e
presmi.e#mente a maioria !os empre*a!os se 'a#i"i$ar-8.
9sse e)emp#o i#stra o "ato !e 'e ( me#,or tomar a#*mas !e$is1es !e otimizao em tempo !e e)e$o& mesmo em
m sistema !e $ompi#ao. O arti*o e)p#ora a possi0i#i!a!e !e *erar $on4ntos !e p#anos !e $ons#tas em tempo !e
$ompi#ao 7$a!a p#ano sen!o rHtimo6 para a#*m s0$on4nto !o $on4nto !e to!os os .a#ores poss2.eis !os
par3metros em tempo !e e)e$o8& e !epois es$o#,er o p#ano apropria!o em tempo !e e)e$o& 'an!o os .a#ores
!os par3metros reais "orem $on,e$i!os. 9m parti$#ar& e#e "o$a#iza m par3metro espe$2"i$o& a 'anti!a!e !e espao
!e 0""er !ispon2.e# para a $ons#ta. Res#ta!os e)perimentais mostram 'e a a0or!a*em !es$rita imp1e 0em po$o
!isp+n!io !e tempo no pro$esso !e otimizao e po$o sa$ri"2$io em termos !e 'a#i!a!e !os p#anos *era!os/ assim& e#e
a"irma 'e a a0or!a*em po!e me#,orar si*ni"i$ati.amente o !esempen,o !as $ons#tas. rA e$onomia no $sto !e
e)e$o !e se sar m p#ano a!apta!o espe$i"i$amente aos .a#ores reais !os par3metros ... po!eria ser enorme.t
17.B 7 Na.in ka0ra e Da.i! R. DeSitt= r9""i$ient Mi!;^ern Re;Optmization o" A0;Optima# ^ern 9)e$tion P#ans6&
Pro$. 1__J ACM AI\MOD Int. Con". Mana*ement o" Data& Aeatt#e& Sas,. 74n,o !e 1__J8.
17.BJ Rim \ran= 5Para##e# Data0ase Anstems 1X16& Pro$. 1__B ACM AI\MOD Int. Con". on Mana*ement o" Data& Aan
Rose& Ca#i". 7maio !e 1__B8.
9sse no ( m arti*o !e pes'isa& mas sim m resmo esten!i!o !e ma !e ma apresentao ttoria#. A
i!(ia 0-si$a 'e re*e os sistemas para#e#os em *era# ( !esmem0rar m pro0#ema *ran!e em .-rios pro0#e BX mas
menores 'e possam ser reso#.i!os sim#taneamente& me#,oran!o assim o !esempen,o. Os sistemas
!e 0an$os !e !a!os re#a$ionais em parti$#ar so mito sens2.eis ao tratamento em para#e#o& !e.i!o Y natreza !o
mo!e#o re#a$iona1= ( $on$eita#mente "-$i# 7a8 !esmem0rar re#a1es em s0;re#a1es !e .-rias maneiras e 708
!esmem0rar e)press1es re#a$ionais em s0e)press1es& mas ma .ez !e .-rias maneiras. No esp2rito !o t2t#o !essa
re"er+n$ia o"ere$emos a#*ns $oment-rios so0re $ertos $on$eitos importantes em sistemas !e 0an$os !e !a!os
para#e#os.
Primeiro& a ar'itetra !o ,ar!jare s04a$ente en.o#.er- e#a prHpria a#*ma esp($ie !e para#e#ismo. <- tr+s
ar'itetras prin$ipais& $a!a ma en.o#.en!o .-rias ni!a!es !e pro$essamento& !i.ersas ni!a!es !e !is$o e ma re!e
!e inter$one)o !e a#*m tipo=
? MemHria $omparti#,a!a 7s,are! memorn8= a re!e permite 'e to!os os pro$essa!ores ten,am a$esso Y mesma
memHria.
? Dis$o $omparti#,a!o 7s,are! !isl8= $a!a pro$essa!or tem sa prHpria memHria& mas a re!e permite 'e to!os os
pro$essa!ores ten,am a$esso a to!os os !is$os.
? Na!a $omparti#,a!o 7s,are! not,in*8= $a!a pro$essa!or tem sa prHpria memHria e ses !is$os& mas a re!e permite
'e os pro$essa!ores se $omni'em entre si.
Na pr-ti$a& 5s,are! not,in*6 ( a ar'itetra pre"eri!a& pe#o menos em sistemas *ran!es 7as otras !as a0or!a*ens
#o*o en$ontram pro0#emas !e inter"er+n$ia& Y me!i!a 'e mais e mais pro$essa!ores so a$res$enta!os8. Para sermos
espe$2"i$os& s,are! not,i* permite ma a$e#erao 7spee!;p8 #inear 7amentar o ,ar!jare N .ezes me#,ora o tempo
!e resposta por m "ator N8 e o $res$imento 7s$a#e;p8 #inear 7o amento !o ,ar!jare e !o .o#me !e !a!os pe#o
mesmo "ator mant(m o tempo !e resposta $onstante8. Nota= 5$res$imento6 tam0(m ( $on,e$i!o $omo es$a#a0i#i!a!e.
Tam0(m ,- .-rias a0or!a*ens para parti$ionamento !e !a!os 7isto (& !esmem0rar ma re#ao r em parti1es o s0;
re#a1es e atri0ir essas parti1es a n pro$essa!ores !i"erentes8=
? Parti$ionamento por inter.a#os= a re#ao r( !i.i!i!a em parti1es !is4ntas 1& C& ...& n !e a$or!o $om os .a#ores !e
a#*m s0$on4nto s !os atri0tos !e r 7$on$eita#mente& r ( $#assi"i$a!a so0re s e o res#ta!o ( !i.i!i!o em n
parti1es !e i*a# taman,o8. A partio i ( ento atri02!a ao pro$essa!or i. 9ssa a0or!a*em ( 0oa para $ons#tas 'e
en.o#.em restri1es !e i*a#!a!e o !e inter.a#os so0re s.
? Parti$ionamento por= $a!a tp#a t !e r ( atri02!a ao pro$essa!or ,7t8& on!e , ( a#*ma "no !e ,as,. 9ssa
a0or!a*em ( 0oa para $ons#tas 'e en.o#.em ma restrio !e i*a#!a!e nos atri0tos !o ,as,& e tam0(m para
$ons#tas 'e en.o#.em a$esso se':en$ia# Y re#ao r inteira.
? Parti$ionamento !e ro!2zio 7ron!ro0in8= $on$eita#mente& r( $#assi"i$a!a !e a#*m mo!o/ a i;(sima tp#a no res#ta!o
$#assi"i$a!o ( ento atri02!a ao pro$essa!or i mH!#o n. 9ssa a0or!a*em ( 0oa para $ons#tas 'e en.o#.em a$esso
se':en$ia# Y re#ao r inteira.
O para#e#ismo po!e se ap#i$ar Y e)e$o !e ma operao in!i.i!a# 7para#e#ismo intra;operao8& Y e)e$o !e
opera1es !istintas !entro !a mesma $ons#ta 7para#e#ismo !e interoperao o intra$ons#ta8& e ain!a Y e)e$o !e
$ons#tas !istintas 7para#e#ismo inter$ons#ta8. As re"er+n$ias K17.DL e K17.E11 $ont+m ttoriais so0re to!as essas
possi0i#i!a!es& e as re"er+n$ias K17.B_ e 17.EX1 !is$tem a#*mas t($ni$as e a#*oritmos espe$2"i$os. O0ser.amos 'e
ma .erso em para#e#o !e 4no !e ,as, 7$ons#te a Aeo 17.78 ( parti$#armente e"i$iente e mito sa!a na
pr-ti$a.
17.B_ Dina bitton& <aran bora#& Da.i!R. DeSitt e S. ke.in Si#linson= 5Para##e#A#*orit,ms "or t,e 9)e$tion o"
Re#ationa# Data0ase Operations6& ACM TODA J& N@mero F 7setem0ro !e 1_JF8.
Apresenta a#*oritmos para imp#ementao !e opera1es !e or!enao& pro4eo& 4no& a*re*ao e ata#izao em
m am0iente !e m#tipro$essa!or. O arti*o o"ere$e "Hrm#as *erais !e $sto 'e #e.am em $onta $stos !e 9iA&
mensa*ens e $stos !e pro$essa!or& e e#as po!em ser a4sta!as para !i"erentes ar'itetras !e m#tipro$essa!ores.
17.EX Sa'ar <asan e Ra4ee. Motjani= 5Optmization A#*orit,ms "or 9)p#oitin* t,e Para##e#ism;Comni$ation Tra!eo""
in Pipe#ine! Para##e#ism6& Pro$. COt, Int. Con". on Pern Lar*e Data bases& Aantia*o& C,i#e 7setem0ro !e 1__D8.
17.E1 A0ra,am Ai#0ers$,atz& <enrn I. kort, e A. A!ars,an= Data0ase Anstem Con$epts 7FA e!io8. No.a qorl& N.q.=
M$\raj;<i## 71__78.
9sse #i.ro te)to *en(ri$o so0re *eren$iamento !e 0an$os !e !a!os in$#i m $ap2t#o inteiro so0re sistemas !e 0an$os
!e !a!os para#e#os& 0em $omo m $ap2t#o so0re 5ar'itetras !e sistemas !e 0an$os !e !a!os6 7$entra#iza!o .erss
$#ienteZser.i!or .erss para#e#o .erss !istri02!o8.
BXF
R9APOATAA A 9N9RCCIOA A9L9CIONADOA
17.1 a. P-#i!o. 0. P-#i!o. $. P-#i!o. !. No .-#i!o& e. P-#i!o. ". No .-#i!o 7seria .-#i!o se s0stit2ssemos AND por OR8. *.
No .-#i!o. ,. No .-#i!o. i. P-#i!o.
17.C A t2t#o !e e)emp#o& mostramos 'e a 4no ( $omtati.a. A 4no A ROIN b !as re#a1esAWN&qd e bWq&id ( ma
re#ao $om $a0ea#,o WN&q&id e $orpo $onsistin!o no $on4nto !e to!as as tp#as WN=)&q=n&i=zd tais 'e apare$e ma
tp#a em A $om .a#or ) !e N e .a#or n !e q& e apare$e ma tp#a em b $om .a#or n !e q e .a#or z !e
i. 9ssa !e"inio ( $#aramente sim(tri$a em A e b. Assim& A ROIN b b ROIN A. ?
17.F A t2t#o !e e)emp#o& mostramos 'e a nio ( asso$iati.a. A nio A UNION b !e !as re#a1es A e b ( ma
re#ao $om o mesmo $a0ea#,o !e A e b $om m $orpo $onsistin!o no $on4nto !e to!as as tp#as t 'e perten$em a A
o b o a am0as. Assim& se C ( otra re#ao $om o mesmo $a0ea#,o !e A e b=
? A nio 7A UNION b8 UNION C ( ma re#ao $om o mesmo $a0ea#,o e $om m $orpo $onsistin!o em to!as as
tp#as t perten$entes a 7A UNION b8 o C o am0as.
? A nio A UNION 7b UNION C8 ( ma re#ao $om o mesmo $a0ea#,o e $om m $orpo $onsistin!o em to!as as
tp#as t perten$entes a A o a 7b UNION C8 o am0as.
9ssas !as re#a1es t+m o mesmo $a0ea#,o& e o $orpo em $a!a $aso ( o $on4nto !e to!as as tp#as t tais 'e t
perten$e a pe#o menos ma entre A& b& C. Portanto& as !as re#a1es so i!+nti$as. b
17.D Mostramos 'e a nio ( !istri0ti.a so0re a interseo.
? Primeiro& se t e A UNION 7b INT9RA9CT C8& ento t e A o t e b INT9RA9CT C.
? AeteA& ento t eA UNIONb e teA UNIONCe& portanto& t 7A UMONb8 INT9RA9CT 7A UNIONC8.
? ACt9bINT9RA9CTC&entotebetsC/assimteAUNIONbeteAIRNIONCe&portanto7!e no.o8 t e 7A UNION b8
INT9RA9CT 7A UNION C8.
? Re$ipro$amente& se t e 7A UNION b8 INT9RA9CT 7A UNION C8& ento t e A UNION b e t e A UNION C. Portanto&
t e A o t e b e C. Da2& t e A UNION 7b INT9RA9CT C8. ?
17. B Mostramos 'e A UNION 7A INT9RA9CT b8 e A. Ae t e A& ento $#aramente t v A UNION 7A INT9RA9CT b8.
Re$ipro$amente& se te A UNION 7A INT9RA9CT b8& ento t e A o t e A e b/ !e 'a#'er "orma& t eA. ?
17.E Os !ois $asos $on!i$ionais "oram a0or!a!os na Aeo 17.D. Os $asos in$on!i$ionais so !iretos. Mostramos
'e a pro4eo no ( !istri0ti.a so0re a !i"erena& apresentan!o o se*inte $ontra;e)emp#o= se4am AWN&qd
e bWN&qd& $a!a 'a# $onten!o apenas ma tp#a& o se4a& as tp#as WN=)&q=nd e WN=)&q=zd& respe$ti.amente 7n
f z8. 9nto 7A MINUA b8WNd "orne$e ma re#ao $onten!o apenas a tp#a WN=)d& en'anto AWNd MINUA
bWNd "orne$e ma re#ao .azia. ?
17._ Um 0om $on4nto !e tais re*ras po!e ser en$ontra!o na re"er+n$ia K17.FL.
17.1X Um 0om $on4nto !e tais re*ras po!e ser en$ontra!o na re"er+n$ia K17.FL.
17.11 a. O0ter "orne$e!ores 5no !e Lon!res6 'e no "orne$em a pea PC.
0. O0ter o $on4nto .azio !e "orne$e!ores.
$. O0ter "orne$e!ores 5no !e Lon!res6 tais 'e nen,m "orne$e!or "orne$e menos tipos !e peas.
!. O0ter o $on4nto .azio !e "orne$e!ores.
e. No ,- simp#i"i$ao poss2.e#.
". O0ter o $on4nto .azio !e pares !e "orne$e!ores.
*. O0ter o $on4nto .azio !e peas.
,. O0ter "orne$e!ores 5no !e Paris6 tais 'e nen,m "orne$e!or "orne$e mais tipos !e peas. O0ser.
e 'e $ertas $ons#tas % em espe$ia# as $ons#tas 0.& !.& ". e *. % po!em ser respon!i!as !iretamente pe#as prHprias
restri1es !e inte*ri!a!e.
17.1B Por raz1es !e pro$essamento& o .er!a!eiro .a#or mais a#to eZo mais 0ai)o Ys .ezes ( a#*m tipo !e .a#or pro.i;
sH rio % por e)emp#o& o 5nome !e empre*a!o6 mais a#to po!e ser m strin* "orma!o apenas por #etras i& o mais 0ai)o
po!eria ser m strin* !e espaos em 0ran$o. C-#$#os 7por e)emp#o8 !o in$remento m(!io !e m .a#or !e $o#na para o
prH)imo em se':+n$ia seriam a0sr!os se "ossem 0asea!os nesses .a#ores pro.isHrios.
BXD