Retsensioon Raul Torga bakalaureusetööle Andmebaasi struktuuri ja dokumentatsiooni korrastamine küsitlustarkvara ankeet.ee näitel Tarkvara koostades arendaja sageli ei tea, kas ta töö jõuab üldse kasutusse, pruugitakse seda lühikese aja vältel või jääb loodud tarkvara või mõni selle osa tööle aastakümneteks - tarkvara elab vahel kauem kui tema looja seda kõige hullemates unenägudes suudab ette kujutada. Andmete hoidmise, kaasaarvatud andmebaasi mugav ja arusaadav struktuur moodustab olulise osa rakenduse töökindlast toimimisest. Tartu Ülikooli kompilaatorite kursuse õppejõud Ain Isotamm armastas rõhutada, et kui on suudetud välja mõelda sobiv andmete hoidmise ja ligipääsu lahendus, siis on mõnigikord pool tööst tehtud. Samuti võimaldab arusaadav andmebaasiskeem teha lahendusele iseseisvaid täiendusi ilma olemasolevat koodibaasi puutumata. Praktilise töö tulemusena kirjeldati andmebaasitabelid ja nende väljad, tehti enesele ning kirjelduse järgi ka teistele selgeks, et mida kust leida saab. Retsensendi kogemuste järgi võib vahel selline võõra süsteemiga tutvumine mõnigikord aeganõudev olla - eriti, kui arenduse käigus on sisse jäänud ebaloogilisi kohti. Töös väideti leheküljel 23, et kuna andmebaasi kasutava programmi kood on dokumenteerimata, siis oleksid andmebaasi struktuurimuudatused koos koodi muutmisega äärmiselt töömahukad. Väitega nõus - ainult, et ka dokumenteeritud kuid testidega katmata koodi puhul on andmebaasi struktuuri muutused küllalt ohtlikud ja vigade vastu raskesti kontrollitavad. Tehtud on märgatav kirjeldav töö, kuid võrreldes näiteks Lauri Eliase 2014. aastal kaitstud samuti vana andmebaasi uuendava lahendusega (FoxPro geneetikaalase pärandrakenduse portimine veebiplatvormile) on jäädud (poolele) teele pidama. Esimese asjana valminud uuele skeemile peale vaadates tunnen puudust seostest tabelite vahel, seejärel tabelite rühmitamisest teemade kaupa. Ehkki enamike tabelite puhul kasutatakse MyISAMi mootorit, kus võõrvõtmeid ei talletata, siis sisuliselt on ju seosed ikkagi olemas ning arendajal on päringuid tunduvalt kergem koostada ja kontrollida juhul, kui viited skeemil selgelt näha on. Grupeerimine aitaks valdkondade järgi sobivad tabelid kergemini üles leida. Ehkki - praegusel ühel lehel toodud ülevaatel on ka oma eelis - kõik on korraga silmaga haaratav. Sageli üheks andmebaasirakenduste korrastamise põhjuseks on andmemahtude märgatav kasv ning sealtkaudu vajadus sobiva indekseerimise järele. Seetõttu küsimusteks: * kui mitme reaga on baasis leiduvad suuremad tabelid? * millised päringud võtavad rohkem aega kui sekundi? * kas ja milliseid kohti baasis oleks põhjust sobiva indekseerimise abil kiirendada? Koodi struktuurimuudatuste keerukuse hindamiseks * mitmest failist ning mitmest koodireast koosneb andmebaasi kasutav kood? Koodi muutmine on alati seotud ohtudega, kuid rakenduse mitmekordsel kasvamisel kipub paratamatult ükskord kätte jõudma kätte hetk, kus järgmiste suuremate täienduste tarbeks on mõistlik märgatav osa koodist ümber kirjutada - ka siis, kui see on pealtnäha arusaamatuna esiotsa kirja pandud. Teoreetiline osa on arusaadavalt kirjutatud, pakub vajaliku taustateabe praktilise töö kõrvale. Loen valminud bakalaureusetöö kaitstavaks ning pakun hindeks C (hea). Jaagup Kippar TLÜ Digitehnoloogiate Instituudi lektor Tallinnas 13. mail 2017