cscie66@fas.harvard.edu
. liame ro ,azzaiP no meht tsop ,sruoh eciffo dnetta esaelp ,tnemngissa siht no gnikrow elihw snoitseuq evah uoy fI
.suballys eht ni debircsed tcudnoc cimedaca no seicilop eht yb ediba ot erus ekam ,tnemngissa siht no krow ruoy nI
.ecnatsissa niatbo dna snoitseuq ksa ot emit elpma uoy evig lliw ylrae gnitratS .tnemngissa na nigeb ot etunim tsal eht litnu tiaw tʼnod dna ,ylluferac emit ruoy nalP .etal syad 7 naht erom si taht krowemoh yna tpecca ton lliw eW .71 hcraM ,yadsendeW no .m.p 95 11 hguorht noitcuded %02 a htiw snoissimbus tpecca lliw ew erofereht dna ,kaerb gnirps fo esuaceb enildaed sʼtnemngissa siht retfa keew eht gnirud erutcel on si erehT .enildaed eht retfa yadnuS eht no .m.p 95 11 yb edam era taht snoissimbus etal rof noitcuded %01 a eb lliw erehT .etal yad lluf a deredisnoc eb lliw ti ,erutcel fo trats eht retfa setunim 01 naht erom dettimbus si ti fI .erutcel fo trats eht ot roirp eud si krowemoH
II traP rof krow ruoy gnittimbuS noitcaretni elpmaS elbat elgnis a rof * TCELES :6 melborP gnillahsramnu dna srotareti elbaT :5 melborP sdnammoc TRESNI gnitelpmoC :4 melborP seulav nmuloc gnillahsraM :3 melborP seton lareneG snoitseuq ngised dna gnidaer-edoC detrats gnitteG weivrevO
II traP I traP rof krow ruoy gnittimbuS serutcurts xednI :2 melborP sdrocer htgnel-elbairav dna htgnel-dexiF :1 melborP elif yrassecen eht gnitaerC
.snoissimbus etal gnidrager seicilop eht fo yrammus a rof woleb eeS .1202 ,01 hcraM no erutcel fo trats eht erofeb euD
seiranimilerP
I traP seiranimilerP
2 teS melborP
Oscar
ps2_partI.pdf
ps2_partI
Oscar(movie_id CHAR(7), person_id CHAR(7), type VARCHAR(23), year INTEGER)
(‘7286456’, ‘0001618’, ‘BEST-ACTOR’, 2020)
ps2_partI
‘#’ ‘-‘
id ‘0001618’ id ‘7286456’
.sllec )81/2 no 34 ot 24 morf detadpu :eton( 34 lla gnideen pu dne tʼnod uoy fi ,drocer eht fo dne yrev eht ta eb dluohs sllec ytpme ylno ehT .drocer eht fo stnenopmoc eht neewteb sllec ytpme yna evael ton dluohs uoY
.)atadatem ro atad lufesu gnirots yllautca ton era tub noitatneserper sʼdrocer eht fo trap era taht setyb ,e.i( setyb ”detsaw“ yna rof ) ( snehpyh esU
.eulav sʼdleif htgnel-elbairav a fo dne eht drocer ot yrassecen si ti nehw retimiled a sa ) ( ngis rebmun a esU
.elbat eht fo llec hcae ni tigid ro retcarahc eno tsom ta tuP
.stnetnoc drocer delebal elbat eht ni rewsna ruoy tup ,)evoba ees( fo noitces 2.1 dna 1.1 eht nI ?drocer htgnel-dexif a ni ti derots ew fi ekil kool elput siht dluow tahW )stniop 4( .
rof rotcA tseB rof racsO sʼraey tsal now )
.) fo na sah hcihw( rekoJ ehT ni ecnamrofrep sih si esohw( xineohP niuqaoJ taht tcaf eht serutpac hcihw
:snoitnevnoc gniwollof eht evresbo dluohs uoY
:amehcs gniwollof eht sah hcihw ,1 teS melborP ni esabatad eivom ruo morf elbat eht llaceR latot stniop 91
no elif FDP eht evas dna ,tnemucod FDP>-sa daolnwoD>-eliF esoohc ,I traP detelpmoc evah uoy ecnO . .elif siht ot I traP morf smelborp eht fo lla rof krow ruoy ddA . . eman eht gnisu evirD elgooG ruoy ot ypoc eht evas dna ,…ypoc a ekaM>-eliF tceleS . Itrap_2sp :scoD elgooG ni I traP rof detaerc evah ew taht etalpmet eht nepO .
:gniwollof eht od dluohs uoy ,ti etaerc oT .elif FDP elgnis a ni detelpmoc eb lla lliw tnemngissa eht fo trap sihT elif yrassecen eht gnitaerC
:elbat taht morf elput gniwollof eht redisnoC
sdrocer htgnel-elbairav dna htgnel-dexiF :1 melborP
.I traP fo dne eht ta senilediug noissimbus eht eeS .timbus lliw uoy taht eno eht si ) ( elif FDP gnitluser ehT .enihcam ruoy
latot stniop 05-04
I traP
type
Oscar type
ps2_partI
ps2_partI
null
Oscar
type
31, 30, 29, 21, 19, 18, 13, 11, 8, 6, 5, 3, 2
ps2_partI
.eert lanif eht dna ,sedon erom ro eno fo tilps a sesuac taht noitresni hcae retfa eert eht wohs , fo 1.2 noitces nI .2 redro fo eert-B ytpme yllaitini na otni ecneuqes yek siht tresnI .
:gnixedni fo mrof emos sesu taht sdrocer fo noitcelloc a otni syek fo ecneuqes gniwollof eht htiw smeti tresni ot tnaw uoy taht yas sʼteL
.elbat eht rof stamrof drocer eerht eseht fo hcae gnisu fo sesunim dna sesulp eht ssucsid ylfeirB )tiderc artxe ”laitrap“ rof
stneduts rehto yb detelpmoc eb yam ;stneduts tiderc-darg fo deriuqer( melborp tiderc-darG )stniop 5( .
. era seulav dleif eht fo enon taht emussa yam uoY .drocer taht ni eulav eht fo htgnel eht dna drocer ralucitrap a ni dleif eht fo gninnigeb eht htob enimreted ot desu eb dluow )htob ro ,drocer-rep ,elbat/noitcelloc-rep( atadatem fo seceip woh tuoba scificeps edulcni ot erus ekaM .drocer sʼracsO taht morf detcartxe eb dluow racsO nevig a fo eulav eht woh rof erudecorp pets-yb-pets deliated a edivorp ,evoba dessucsid elbat eht rof stamrof drocer eerht eht fo hcae roF )tiderc artxe ”laitrap“ rof
stneduts rehto yb detelpmoc eb yam ;stneduts tiderc-darg fo deriuqer( melborp tiderc-darG )stniop 5( . .rewsna eht woleb xob eht ni krow ruoy wohs dna ,setyb ni htgnel
delebal xob eht ni rewsna lanif ruoy tuP ?5 trap morf drocer eht fo setyb ni htgnel eht si tahW )stniop 2( .
.2 trap ni uoy evag ew taht sregetni dna sretcarahc fo sezis eht tuoba snoitpmussa emas eht esu dna ,1 trap rof deificeps ew taht snoitnevnoc emas eht esU .stnetnoc drocer delebal elbat eht ni rewsna ruoy tup , fo noitces 6.1 dna 5.1 eht nI
?stesffo fo redaeh
a htiw snigeb taht drocer htgnel-elbairav a ni ti derots ew fi ekil kool elput siht dluow tahW )stniop 5( .
.rewsna eht woleb xob eht ni krow ruoy wohs dna ,setyb ni htgnel delebal xob eht ni rewsna lanif ruoy tuP .2
trap ni detats snoitpmussa emas eht ekaM ?3 trap morf drocer eht fo setyb ni htgnel eht si tahW )stniop 2( .
.2 trap ni uoy evag ew taht sregetni dna sretcarahc fo sezis eht tuoba snoitpmussa emas eht esu dna ,1 trap rof deificeps ew taht snoitnevnoc emas eht esU .stnetnoc drocer delebal elbat eht ni rewsna ruoy tup , fo noitces 4.1 dna 3.1 eht nI
?htgnel sti yb dedecerp
si dleif hcae hcihw ni drocer htgnel-elbairav a ni ti derots ew fi ekil kool elput siht dluow tahW )stniop 4( .
.rewsna eht woleb xob eht ni krow ruoy wohs dna ,setyb ni htgnel delebal xob eht ni rewsna lanif ruoy tuP .)yna fi( atadatem regetni rof dna seulav dleif regetni rof htob ,sregetni
etyb-owt gnisu era uoy taht emussA ?1 trap morf drocer eht fo setyb ni htgnel eht si tahW )stniop 2( .
trap hcae stniop 7 ;latot stniop 12
serutcurts xednI :2 melborP
ps2_partI
ps2_partI.pdf
ps1_partI.pdf
ps2_partI
(x)
.enildaed lanif eht erofeb dedeen sa semit ynam sa krow ruoy timbuser ot egap eht fo mottob eht ta nottub timbuseR eht esu nac uoY .
.xob taht esolc ot nottub eht kcilC .lufsseccus saw noissimbus ruoy taht gniyas xob a ees dluohs uoY . .wodniw eht fo renroc thgir-rewol
eht ni nottub timbuS eht kcilc ,eniltuo noitseuq eht ni smelborp eht fo lla ot segap dengissa evah uoy ecnO . .edarg ot su tnaw uoy taht krow eht niatnoc ees uoy
taht segap eht taht kcehcelbuod dna egap hcae rof noci ssalg gniyfingam eht no kcilc ,os od uoy sA
.dnuof eb nac melborp taht rof krow ruoy hcihw no )s(egap eht kcilC .melborp eht fo eltit eht kcilC
:eniltuo eht ni melborp hcae roF .FDP dedaolpu ruoy morf segap eht fo slianbmuht htiw gnola smelborp eht fo eniltuo na ees dluohs uoY .
.nottub FDP daolpU eht kcilc nehT .1 pets ni detaerc uoy taht eht dnif dna nottub FDP tceleS eht kcilc neht dna ,noitpo FDP timbuS eht esoohC .
).egap eht fo mottob eht ta nottub timbuseR ro timbuS eht kcilc ,ti ees tʼnod uoy fI( .tnemngissA timbuS delebal wodniw pu-pop a ees dluohs uoY .epocsedarG no stnemngissa fo tsil eht ni I traP :2 SP no kcilC .
.enihcam ruoy no elif FDP eht evas dna ,tnemucod FDP>-daolnwoD>-eliF esoohc ,evirD elgooG no elif ruoy nepo ,elif FDP eht etaerc ot deen llits uoy fI .
.66-E ICSC rof xob eht no kcilc ,ni deggol ni era uoy ecnO .rab noitagivan dnah-tfel eht ni knil eht gnikcilc yb epocsedarG ot nigoL
.elbat eht fo etats lanif eht sa llew sa ,stekcub fo rebmun eht ni esaercni hcae retfa dna erofeb elbat eht fo etats eht wohs ot dedivorp evah ew taht selbat eht esu , fo 3.2 noitces nI .stekcub fo rebmun eht semit eerht sdeecxe elbat eht ni smeti fo rebmun eht revenehw dedda si tekcub a taht emussA .stekcub ytpme owt htiw tuo trats dluohs ti dna ,x = )x(h noitcnuf
hsah eht esu dluohs elbat ehT .gnihsah raenil sesu taht elbat hsah a otni ecneuqes yek emas siht tresnI .
.dedeen sa meht tide dna uoy nevig evah ew taht margaid eht fo seipoc ekam dluohs uoy ,niaga ereH .eert lanif eht dna ,sedon erom ro eno fo tilps a sesuac taht noitresni hcae retfa eert eht wohs ,
fo 2.2 noitces nI .2 redro fo )+ eht eton( eert+B ytpme yllaitini na otni ecneuqes yek emas siht tresnI .
.dedeen era segnahc rehto revetahw gnikam dna ,syek gnivomer ro gnidda ,syek htiw sX eht gnicalper ,segde dna sedon gnidda ro gniteled :dedeen sa ti tide dluohs uoy ,rehtaR .uoy nevig evah ew taht eert eht fo epahs eht peek ot deen ton od uoy taht etoN .eert lanif eht rof dna ,tilps a sesuac taht noitresni hcae fo stluser eht rof smargaid etarapes esu nac uoy taht os margaid eht fo seipoc ekaM .sezis tnereffid fo sedon sedulcni taht margaid elpmas a uoy nevig evah eW
:spets eseht gnisu elif ruoy timbuS
I traP rof krow ruoy gnittimbuS
tnatropmI
cscie66@fas.harvard.edu
dbms
ArrayList
:secruoser gniwollof eht daer/weiver dluohs uoy ,ralucitrap nI .BD yelekreB htiw dna ,redlof eht ni uoy nevig evah ew taht selif eht htiw flesruoy gnizirailimaf emit emos dneps dluohs uoy ,gnihtyreve gnirugifnoc retfA
.ereh dnuof eb nac os gniod rof spets ehT .tnemnorivne krow ruoy gnirugifnoc dna selif yrassecen eht gnidaolnwod yb nigeb dluohs uoY
.ytilanoitcnuf yrassecen eht fo emos sedivorp ydaerla taht reyal elddim eht rof krowemarf edoc a uoy nevig evah ew ,uoy pleh oT .dnammoc eht etucexe ot snoitca level-rewol yrassecen eht smrofrep dna dnammoc LQS a fo noisrev desrap eht sekat hcihw ,metsys eht fo ”reyal elddim“ eht fo strap tnemelpmi ot si boj ruoY
.noitidE avaJ BD yelekreB esu lliw ew ,yllacificeps eroM .enigne egarots eht sa evres lliw taht metsys esabatad deddebme na ,BD yelekreB .
:metsys eht fo stnenopmoc eerht eht fo owt htiw uoy dedivorp evah eW .egaugnal LQS eht fo tesbus a stroppus taht metsys tnemeganam esabatad lanoitaler elpmis a fo snoitrop tnemelpmi lliw uoy ,tnemngissa siht nI
ot enildaed eht erofeb krowemoh ruoy liame ,enildaed eht ot esolc si ti dna timbus ot elbanu era uoy fI .niaga yrt neht dna owt ro ruoh na tiaw ,os od ot emit hguone si ereht dna epocsedarG ssecca ot elbanu era uoy fI
.evoba deniltuo spets eht gnisu ylluferac noissimbus ruoy kcehc esaelp os ,desolc sah tnemngissa nevig a rof wodniw noissimbus eht retfa elif yna tpecca ton lliw eW .enildaed lanif eht erofeb epocsedarG no si elif a fo noisrev tcerroc eht taht erusne ot ytilibisnopser ruoy si tI
ssalc ni-tliub sʼavaJ fo IPA eht IPA noitidE avaJ BD yelekreB eht noitidE avaJ BD yelekreB ot ediug a
:lufpleh eb osla yam secruoser lanoitidda gniwollof ehT
gnippam lacisyhp-ot-lacigol a gnitnemelpmi no seton erutcel eht krowemarf edoc eht fo noitatnemucod IPA eht krowemarf edoc eht fo weivrevo eht
detrats gnitteG
resrap LQS a .
weivrevO
latot stniop 06
II traP
DEBUG
DBMS.java
true
q
db
true
DEBUG false
Enter command (q to quit):
InsertRow
INSERT InsertStatement execute()
InsertRow execute()
na setaerc dohtem tahT .)ssalc eht ni eno eht( sdnammoc rof dohtem eht yb desu si tcejbo na ,snoitseuq gnidaer-edoc eht gnitelpmoc nehw was uoy sA
.ssalc eht fo dohtem yek eht gnitnemelpmi yb gnillahsram rof troppus dda lliw uoy ,melborp siht nI .riap atad/yek BD yelekreB elgnis a otni seulav nmuloc fo noitcelloc a llahsram ot elba eb ot sdeen SMBD ruoy ,elbat a otni swor tresni ot redro nI
.evoba denoitnem snoitseuq ngised dna gnidaer-edoc eht derewsna evah uoy taht dna ,evoba noitces detratS gnitteG eht rednu detsil sksat eht detelpmoc evah uoy taht erus ekam ,gnidoc nigeb uoy erofeB
. ot tes ,segassem gniggubed eht etanimile oT . ot tes si tnatsnoc siht nehw detucexe ylno si taht edoc gniggubed lanoitidda dda ot hsiw osla yam uoY .sdnammoc fo sepyt suoirav eht tnemelpmi uoy sa lufpleh noitamrofni siht dnif yam uoY .resu eht yb deretne si dnammoc LQS hcae retfa detnirp era resrap eht yb detareneg snekot eht fo ynam fo seulav eht ,)uoy nevig evah ew taht selif eht ni si ti sa( ot tes si ti nehW . ni denifed si taht deman tnatsnoc a si erehT
.hsarc a retfa yrotcerid siht morf selif lla evomer uoy taht dnemmocer ew ,tluser a sA .detpurroc eb yam selif eseht ,nosaer yna rof sehsarc margorp ruoy fI .esabatad ruoy rof setaerc BDB taht selif eht erots ot desu eb lliw ti dna ,tnemnorivne BD yelekreB eht rof yrotcerid emoh eht si sihT .yrotcerid edoc ruoy nihtiw dellac yrotcerid a etaerc lliw ti ,emit tsrif eht rof margorp eht nur uoy nehW
.margorp eht tiuq ot uoy wolla lliw esac-rewol a gniretnE .)yrammus siht elbasid ot woh rof woleb tnatsnoc GUBED eht no seton eht ees( stnenopmoc sʼdnammoc eht fo emos fo yrammus a yalpsid dna dnammoc eht esrap lliw margorp eht ,dnammoc LQS dilav a retne uoy fI
:tpmorp gniwollof eht gnitnirp yb nigeb lliw tI .segnahc yna ekam uoy erofeb nur eb nac uoy nevig evʼew taht edoc ehT
.wonk su tel ,od uoy fI .uoy nevig evʼew taht edoc retrats eht elipmoc uoy nehw srorre yna ees tʼndluohs uoY .desserdda eb ot deen lliw dna gnilipmoc morf edoc ruoy peek lliw )sgninraw ton( srorre sa delebal segasseM .derongi eb dluohs dna detcepxe eb ot era sgninraw esehT .)”.snoitarepo efasnu ro dekcehcnu sesu avaj.resraP :etoN“ ,.g.e( edoc ruoy gnilipmoc nehw sgninraw erom ro eno ees yam uoY
seulav nmuloc gnillahsraM :3 melborP
seton lareneG .tnemngissa eht fo trap siht morf smelborp eht no krow ruoy rof eraperp ot
uoy pleh lliw hcihw ,ereh dnuof snoitseuq eht rewsna uoy taht dnemmocer ylhgih ew ,gnidoc nigeb uoy erofeB snoitseuq ngised dna gnidaer-edoC
tnatropmI
stniop 02
InsertRow
marshall()
InsertRow
Table
getKeyBuffer()
getValueBuffer()
toString()
Object
RowOutput
RowOutput
String
offsets
toString()
marshall()
RowOutput
Catalog.java
marshall() keyBuffer valueBuffer
InsertRow
Table
Column.getLength()
VARCHAR
keyBuffer dataBuffer
RowOutput
RowOutput
InsertRow
InsertRow
RowOutput
table Column
RowOutput
Table
RowOutput
VARCHAR
String.length()
eht no dohtem eht gnikovni yb htgnel eht enimreted dluohs uoy ,s eht nI .s tpecxe snmuloc lla fo setyb ni htgnel lautca eht sevig dohtem
.eulav lautca fo esac ehT
eht morf sdeen ti taht noitamrofni nmuloc yna niatbo nac edoc ruoY . dellac dleif a ni ecnerefer taht serots ti dna ,retemarap a sa tcejbo gnidnopserroc eht ot ecnerefer a sekat rotcurtsnoc ehT
ot tfel morf syarra etyb detaicossa rieht llif stcejbo esuaceB .sdleif dna eht ot dengissa stcejbo eht ni sdohtem eht esu ot deen lliw dohtem
ruoY :setoN
.stcejbo detaicossa sti dna tcejbo
.stcejbo eht otni gnitirw fo ssecorp eht nigeb nac uoy ,yarra siht ni derots dna detupmoc neeb evah stesffo eht fo lla ecno ;stesffo eht rof dedivorp evah ew taht dleif yarra eht esu ot si siht od ot yaw enO .seulav eht gnillahsram nigeb uoy erofeb stesffo ruoy fo lla enimreted ot deen lliw uoy ,thgir
.liated erom rof gnillahsramnu dna gnillahsram no snoitseuq gnidaer-edoc eht fo noitces eht eeS .eulav nmuloc elgnis a fo gnillahsramnu tneiciffe eht troppus ot sdeen tamrof wor ruoy saerehw ,meti atad eritne na sllahsramnu syawla golatac eht taht rebmemer ot tnatropmi si ti ,revewoH .gnillahsramnu dna gnillahsram sti smrofrep ti woh ees ot ni uoy nevig evah ew taht edoc golatac eht tlusnoc ot lufpleh ti dnif yam uoy ,snoitseuq gnidaer-edoc eht ni detseggus sA
.tcejbo eht fo sdleif dna eht ot stcejbo gnitluser eht ngissa dna ,gnillahsram eht mrofrep ot dedeen era spets revetahw ekat dluohs uoY .riap eulav/yek dellahsram a otni meht
nrut dna
eht fo seulav nmuloc eht ekat dluohs hcihw ,dohtem eht tnemelpmi lliw uoY
eht rof )yek eht rof
.edoc gnillahsram ruoy gniggubed nehw uoy pleh dluohs dohtem sihT .)eulav eht edisni si taht setyb fo yarra eht ,.e.i( reffub eulav eht fo stnetnoc tnerruc eht
eht edisni si taht setyb fo yarra eht ,.e.i( reffub yek eht fo stnetnoc tnerruc eht
eulav dellahsram eht fo trats eht ta raeppa lliw taht seulav tesffo eht gninimreted nehw esu uoy taht dnemmocer ew hcihw ,dleif eht fo stnetnoc tnerruc eht
:sedulcni taht noitatneserper dellahsram eht fo noitrop eulav eht rof tcejbo
a snruter taht dohtem a
eulav/yek dellahsram eht fo noitrop yek eht rof tcejbo
.riap a snruter taht dohtem a
.snmuloc eht fo sepyt eht ot dnopserroc ot dedeen sa detsujda neeb evah yeht taht dna dilav era seulav eht taht emussa osla eW .cte ,elbat eht ni nmuloc dnoces eht rof rof eulav a sniatnoc 1 tnemele ,elbat eht ni nmuloc tsrif eht rof eulav a sniatnoc yarra eht fo 0 tnemele taht ,.e.i – redro etairporppa eht ni era seulav eht taht emussa eW .detresni eb ot wor eht ni seulav
eht gniniatnoc epyt fo yarra na dna ,dedda eb lliw wor eht hcihw ot elbat eht rof tcejbo denepo ydaerla na :sretemarap owt sekat tI .tcejbo fo etats eht sezilaitini taht rotcurtsnoc na
.riap eulav/yek a snruter taht dohtem a
:uoy rof ssalc siht fo sdohtem rehto eht fo emos detnemelpmi ydaerla evah eW
.wor eht rof riap )atad ,yek( dellahsram eht eraperp ot dohtem sʼtcejbo taht sllac ti dna ,detresni eb ot wor eht tneserper ot tcejbo
Double.doubleValue()
int
val.intValue()
writeUTF()
DataOutputStream
InsertStatement
InsertRow
RowOutput
writeBytes()
writeShort()
marshall()
Table Column RowOutput
DatabaseEntry
DataOutputStream
String
Double
(String)values[i]
Object
values[i] String
Column
values int double
Integer
Integer.intValue()
Integer val
INSERT
INSERT execute()
RowOutput
InsertRow
execute()
Table InsertRow
Database
CreateStatement
SELECT
elbat a rof troppus dda lliw uoy ,melborp siht nI .swor esoht ni snmuloc eht fo seulav eht ssecca ot dna ,selbat erom ro eno ni swor eht revo etareti ot elba eb ot sdeen SMBD ruoy ,dnammoc a etucexe ot redro nI
gnitirw yb dohtem
wor eht eraperp ot tcejbo
:taht edoc eht etelpmoc ot deen lliw uoY .riap eulav/yek a otni ti gnillahsram – noitresni rof na sesu edoc dedivorp ruo ,reilrae denoitnem sA .sdnammoc tuo
yrrac ot desu si hcihw ,ssalc
eht fo dohtem
eht fo trats eht uoy nevig evah eW
sʼBD yelekreB sa llew sa ,dedeen sa sessalc
dna ,
.ssalc
, , eht weiveR
.ksat llarevo eht fo trap od ot dellac eb nac taht sdohtem repleh etavirp erom ro eno dda ot tnaw yam uoy ,egral oot gnitteg morf dohtem eht peek oT
.meht rof dohtem eht esu nac uoy suht dna ,regetni etyb-owt a yb detneserper eb ot hguone llams era seulav tesffo lla taht emussa yam uoY
gnillahsramnu dna srotareti elbaT :5 melborP
.ssalc BD yelekreB eht sa llew sa ,dedeen sa sessalc dna eht weiveR
.noitpecxe na gniworht fo selpmaxe rof edoc ruo eeS .egassem rorre etairporppa na htiw noitpecxe na gniworht yb eulav nruter siht eldnah dluohs edoc ruoY .stsixe ydaerla yek deificeps eht nehw eulav laiceps a nruter lliw taht dohtem noitresni BDB eht esoohc dluohs uoY .yek deificeps eht htiw riap eulav/yek a ydaerla si ereht dna yek yramirp a sah elbat eht fi liaf dluohs noitresni ehT
:setoN .esabatad BDB gniylrednu eht ot riap eulav/yek eht sdda
riap eulav/yek eht rof stcejbo BD yelekreB yrassecen eht tcurtsnoc ot tcejbo eht ni stcejbo eht morf syarra etyb eht sesu
.dohtem eht ton ,dohtem eht esu dluohs uoy ,eulav a gnillahsram nehW .ssalc taht fo IPA eht weiver ot erus ekam dluohs uoy os ,ssalc eht morf detirehni era seulav eht gnitirw rof esu lliw uoy taht sdohtem ehT
. llac dohtem eht gnikam yb na ot ti trevnoc nac uoy , deman tcejbo na evah uoy fi ,elpmaxe roF .os od ot sdohtem
dna eht esu dluohs uoy dna , dna epyt fo seulav evitimirp ot meht trevnoc ot deen lliw uoy ,seulav eseht gnillahsram nehW .ssalc sʼavaJ fo stcejbo sa
derots era seulav laer dna ,ssalc
sʼavaJ fo stcejbo sa yarra eht ni derots era seulav regetnI
.nmuloc nevig a fo epyt eht enimreted eht tlusnoC . ekil gnihtemos od ot deen taert ot ,elpmaxe roF .sepyt lautca rieht fo stcejbo sa meht taert ot redro ni stsac epyt esu ot deen lliw uoy , epyt fo yarra na ni derots era seulav nmuloc eht esuaceB
ot esu dluohs uoy dohtem eht rof ssalc dluow uoy , a sa
sdnammoc
gnitelpmoC :4 melborP
stniop 02
stniop 01
WHERE
TableIterator
first()
getColumn()
close()
printAll()
next()
first()
true
getColumnVal()
WHERE false
isTrue()
this.where.isTrue()
getColumnVal()
Catalog.java
n
WHERE
Column
first()
numTuples
WHERE
TableIterator
next()
n
SELECT WHERE
n
TableIterator
next()
WHERE
n
evalWhere TableIterator where
next()
false
true
RowInput
TrueExpression
RowInput
:eulav fo epyt hcae rof sdohtem owt sedulcni ssalc ehT
.flesti eulav nmuloc eht )2( dna ,eulav nmuloc eht fo htgnel eht )yrassecen nehw( dna detacol si eulav nmuloc eht erehw enimreted ot dedeen stesffo ro tesffo eht )1( daer ylno dluohs ti ,rehtaR .sdaer yrassecennu mrofrep ton dluohs edoc ruoy
,meti atad dellahsram eritne eht sllahsramnu syawla edoc golatac eht saerehw ,revewoH .
ni uoy nevig evah ew taht edoc golatac eht tlusnoc ot lufpleh ti dnif yam uoy ,niaga ereH .nmuloc deificeps eht fo eulav eht llahsramnu ot tcejbo a esu ot deen lliw dohtem ruoY
.wor tnerruc eht tisiv dluohs rotareti eht fi enimreted ot
ekovni ylefas syawla nac dohtem ruoy ,tluser a sA . eht fo ecnatsni na ot dleif s‘
snruter syawla dohtem sti ;ssalc eht tes lliw rotcurtsnoc eht ,
fo eulav a sah rotcurtsnoc eht fo retemarap
eht fi ro ,esualc on si ereht fI :setoN
.liated erom rof woleb seton eht eeS .nmuloc deificeps eht fo eulav eht ssecca yltneiciffe ot elput eht dellahsram uoy nehw dedulcni uoy taht atadatem eht esu dluohs ti dna ,elput taht htiw detaicossa riap atad/yek BDB eht morf eulav etairporppa eht llahsramnu ot deen lliw ti ,os od oT .denoitisop yltnerruc si rotareti eht hcihw no elput eht ni nmuloc ht eht fo eulav eht snruter dna xedni na sekat taht dohtem a
. nruter dluohs dohtem eht ,tisiv ot rotareti eht rof tfel selput on era ereht fI . nruter dluohs dohtem eht dna ,detnemercni eb dluohs ) dellac dleif eht ni derots( rotareti eht yb detisiv selput fo rebmun eht fo tnuoc eht ,elput etairporppa na no denoitisop eb nac rotareti eht taht dedivorP .)woleb eton tsrif eht ees( esualc eht seifsitas taht wor a sehcaer ti litnu rotareti eht gnicnavda peek dluohs dohtem eht ,rotareti eht htiw detaicossa esualc eht serongi dohtem eht saerehw ,revewoH .ledom a sa dohtem ruo esu ot tnaw yam uoy ,dohtem eht gnitnemelpmi nI .dnammoc eht yb deificeps elput txen eht ot rotareti eht secnavda taht dohtem a
:sdohtem gniwollof eht tnemelpmi dluohs uoy ,tnemngissa siht roF
.tuo meht tnirp dna elbat detaicossa eht ni swor lla revo etareti ot dellac eb lliw taht dohtem a .rotareti eht htiw detaicossa rosruc eht sesolc taht dohtem a
.0 fo xedni na sah nmuloc tsomtfel ehT .rotareti eht htiw detaicossa elbat eht ni nmuloc ht eht rof tcejbo a snruter dna xedni na sekat taht dohtem a
.elbat eht fo elput tsrif eht no rotareti eht snoitisop taht dohtem a
.sdeen ti taht seulav nmuloc eht niatbo ot rotareti eht esu ot esualc eht detaulave taht edoc eht swolla os gniod ;snmuloc esoht htiw rotareti siht setaicossa ti dna ,dedeen si rotareti siht hcihw rof tnemetats LQS eht ni denoitnem snmuloc eht senimaxe osla rotcurtsnoc ehT .esabatad gniylrednu eht rof rosruc a gnidulcni ,rotareti elbat eht yb dedeen etats eht sezilaitini dna tcejbo elbat denepo ydaerla na sekat taht rotcurtsnoc a
:uoy rof ssalc siht fo sdohtem rehto eht fo emos detnemelpmi ydaerla evah eW .ssalc eht fo sdohtem owt tnemelpmi ot deen lliw uoy ,melborp siht etelpmoc oT
.esualc eht yfsitas taht swor tisiv ylno lliw ti esac hcihw ni ,rotareti na hcus htiw esualc a etaicossa nac eW .snmuloc eht fo seulav eht ssecca dna elbat elgnis a ni swor eht fo emos ro lla revo etareti ot elba eb lliw hcihw ,rotareti
readIntAtOffset()
readDoubleAtOffset()
readNextInt()
readNextDouble() RowInput
RowInput toString()
Table Column ConditionalExpression DatabaseEntry Cursor
RowInput
SELECT * execute()
SelectStatement
SELECT *
execute()
SELECT
Table open()
SELECT
execute()
open()
InsertStatement
Table
printAll()
SELECT
open()
TableIterator
TableIterator
FROM
SELECT
next() printAll()
TableIterator
Table
TableIterator
SelectStatement
SQLStatement
this
execute
: retemarap ticilpmi eht gnisu yb od nac uoy hcihw ,dekovni saw dohtem eht hcihw no tcejbo eht ot ecnerefer a ni ssap dluohs uoY . epyt fo tcejbo na ot ecnerefer a sekat rotcurtsnoc ehT
.detceles selput fo rebmun eht sedulcni taht egassem a gnitnirp yb hsinif dluohs dohtem ruoy ,srorre on era ereht fI .egassem rorre etairporppa na htiw noitpecxe na worht dluohs uoy ,rorre na si ereht fI
.os od ot ysae ti ekam dluohs tcejbo
eht fo dohtem eht ;eman nevig eht htiw elbat gnitsixe na si ereht taht erus ekam dluohs ti ,noitidda nI
.etorw uoy taht sdohtem eht fo lla seod ydaerla ;
dohtem
eht ekovni dna elbat etairporppa eht rof a etaerc neht dluohs edoc ruoY
dna ,tcejbo na rof
.nepo ydaerla tʼnsi ti fi esabatad BDB gniylrednu eht nepo osla lliw ti eht ot ti dda dna atadatem golatac sʼelbat eht teg lliw dohtem ehT ).siht fo elpmaxe rof dohtem eht fo trats eht eeS( .stcejbo rof dedivorp evah ew taht eht gnisu yb dnammoc eht htiw detaicossa elbat eht nepo ot deen lliw dohtem ruoY
dohtem
siht roF .sdohtem repleh yrassecen yna dna ,ssalc
:sdnammoc
detroppusnu yltnerruc rof kcehc dluohs dohtem ruoY
.esualc eht ni deificeps snmuloc erom ro eno htiw esoht esualc eht ni elbat eno naht erom htiw esoht
eht gnisu ,uoy rof – krow rehto eht fo lla dna – noitareti gnillac yb rotareti eht ecnavda ot deen ton seod edoc tnemetats – ruoy taht etoN .gnittamrof etairporppa htiw meht yalpsid dna seulav nmuloc sʼelbat eht niatbo ot sdohtem rotareti etairporppa eht ekovni lliw , ni dedivorp evah ew hcihw ,dohtem sihT .ti no
.elbat elgnis a gnivlovni sdnammoc troppus ot deen ylno lliw uoy ,tnemngissa
eht sa llew sa ,dedeen sa sessalc dna
, ,
BD yelekreB eht weiveR
.yarra taht nihtiw tesffo tnerruc eht dna yarra etyb gniylrednu eht fo stnetnoc eht sedulcni taht gnirts a snruter tI .gniggubed nehw lufesu dnif yam uoy taht dohtem a sedulcni osla ssalc ehT
.daer tsuj saw taht eulav eht retfa yletaidemmi semoc taht etyb eht fo tesffo eht eb ot detadpu si tesffo tnerruc eht ,daer
hcae retfA .0 ot tes si tesffo tnerruc eht ,detaerc si tcejbo eht nehW .)
dna ,.g.e( yarra etyb eht fo trats eht morf tesffo tnerruc eht ta eulav a sdaer taht eno
.daer eht gnimrofrep erofeb yarra etyb gniylrednu eht ni noitisop deificeps eht ot pmuj sdohtem esehT .) dna ,.g.e( yarra etyb eht fo trats eht morf tesffo deificeps a ta eulav a sdaer taht eno
eht fo dohtem
eht tnemelpmI
elbat elgnis a rof .sessalc dna
:6 melborP
:setoN
stniop 01
printAll()
Table TableIterator
DEBUG
System.out
printAll()
SQLStatement
false DBMS.java
… new TableIterator(this, …);
Enter command (q to quit): CREATE TABLE Course(name VARCHAR(20), enrollment INT);
Created table Course.
Enter command (q to quit): SELECT * FROM Course;
| name | enrollment |
—————————————
Selected 0 tuples.
Enter command (q to quit): DROP TABLE Course;
Dropped table Course.
Enter command (q to quit): SELECT * FROM Course;
Course: no such table
Enter command (q to quit): CREATE TABLE Course(id CHAR(5) PRIMARY KEY, name VARCHAR(20));
Created table Course.
Enter command (q to quit): INSERT INTO Course VALUES (‘01000’, ‘CS 460’);
Added 1 row to Course.
Enter command (q to quit): INSERT INTO Course VALUES (‘00050’, ‘Math 123’);
Added 1 row to Course.
Enter command (q to quit): INSERT INTO Course VALUES (‘02050’, NULL);
Added 1 row to Course.
Enter command (q to quit): INSERT INTO Course VALUES (‘00050’, ‘Physics 211’);
There is an existing row with the specified primary key.
Could not insert row.
Enter command (q to quit): SELECT * FROM Course; |id |name |
———————————-
| 00050 | Math 123 |
| 01000 | CS 165 |
.sdnammoc eseht nar ew erofeb ni ot tnatsnoc eht tes eW :etoN .woleb noitcaretni elpmas a dedivorp evah ew ,ekil kool dluohs tuptuo sʼSMBD ruoy tahw fo esnes a uoy evig oT
.dedeen sa sessalc dna , , eht weiveR
).elosnoc eht ot fo daetsni elif taht ot nettirw eb dluow stluser eht dna ,elif txet a ot sdnopserroc taht retemarap a ni ssap dluoc ew ,ot detnaw ew fI .ytilibixelf dedda rof si siht rof retemarap a ekat ekam ew taht nosaer ehT( .elosnoc eht no deyalpsid eb lliw stluser eht taht os ,retemarap eht sa ni ssap dluohs uoy ,dohtem eht llac uoy nehW
noitcaretni elpmaS
| 02050 | null |
Selected 3 tuples.
Enter command (q to quit): q
InsertRow.java
InsertStatement.java
TableIterator.java
SelectStatement.java
(x)
cscie66@fas.harvard.edu
ot enildaed eht erofeb krowemoh ruoy liame ,enildaed eht ot esolc si ti dna timbus ot elbanu era uoy fI .niaga yrt neht dna owt ro ruoh na tiaw ,os od ot emit hguone si ereht dna epocsedarG ssecca ot elbanu era uoy fI
.evoba deniltuo spets eht gnisu ylluferac noissimbus ruoy kcehc esaelp os ,desolc sah tnemngissa nevig a rof wodniw noissimbus eht retfa elif yna tpecca ton lliw eW .enildaed lanif eht erofeb epocsedarG no si elif a fo noisrev tcerroc eht taht erusne ot ytilibisnopser ruoy si tI
.edarg ot su tnaw uoy taht edoc eht niatnoc selif eht taht erus ekam ot kcehC .stnetnoc sti weiv ot elif hcae fo eman eht no kcilc nehT .edoC delebal xob eht no kcilc ,egap eht fo pot eht raeN .
.noissimbus tsal ruoy ecnis degnahc ton evah meht fo emos fi neve ,tnemngissa epocsedarG taht rof selif eht fo lla timbus dluohs uoy ,noissimbus a ekam uoy taht emit
yrevE :tnatropmI .krow ruoy timbuser ot egap eht fo mottob eht ta nottub timbuseR eht esu ,dedeen fI .
.pleh rof rebmem ffats a ksa ot eerf leeF .segnahc yrassecen yna ekam ,segassem esoht no desaB .eruliaf eht gnibircsed egassem a eb dluohs ereht dna ,der ni eb lliw tset taht fo eman eht ,ssap ton did stset eht fo erom ro eno fI .dessap erew stset eht
taht erusne ot stluser eht kcehc ,enod si ti ecnO .selif ruoy no stset emos mrofrep lliw redargotuA ehT . .xob taht esolc ot nottub eht kcilC .lufsseccus saw noissimbus ruoy taht gniyas xob a ees dluohs uoY . .nottub daolpU eht kcilC .
.selif eht rof esworb dna flesti xob eht no kcilc nac uoy ro ,xob eht otni redlof rieht morf selif eht pord dna gard rehtie nac uoY .PORD & GARD delebal xob eht ot selif ruoy ddA .
).egap eht fo mottob eht ta nottub timbuseR ro timbuS eht kcilc ,ti ees tʼnod uoy fI( .PORD & GARD delebal xob a htiw wodniw pu-pop a ees dluohs uoY .stnemngissa fo tsil eht ni II traP :2 SP no kcilC .
.66-E ICSC rof xob eht no kcilc dna ,rab noitagivan dnah-tfel eht ni knil eht gnikcilc yb epocsedarG ot nigoL II traP rof krow ruoy gnittimbuS
:selif ruof gniwollof eht ylno timbus dluohs uoY
tnatropmI
:spets eht era ereH