Andmebaaside efektiivsuse mtja 1.0.0.0 kasutusjuhend
Autor: Tanel Talvik

1. Sissejuhatus

Kesolev programm on loodud bakalaureuset raames ning vimaldab mta erinevate andmebaasissteemide andmete sisestamise kiirust, kasutades SQL lauset insert. Programm on kirjutatud programmeerimiskeeles C# ning phineb ODBC arhitektuuril ning vajab kasutamiseks .NET 2.0 raamistikku. Samuti eeldab programm, et kasutatavate andmebaasissteemide jaoks on olemas ning installeeritud vastav ODBC draiver. Andmebaasissteemis peaks olema ka andmebaas, kuhu on vimalik tabeleid luua.

2. Andmebaaside sidumine kasutajaliidesega

Programmi on vimalik kasutada jrgnevate andmebaasissteemidega:

Oracle 10g
MySQL 5.0
Sybase Adaptive SQL Anywhere 9
Microsoft SQL Server 2005

Vimalik, et programm ttab ka mainitud andmebaasissteemide eelnevate versioonidega kuid neid pole testitud.
Muude andmebaasissteemide testimine kesoleva kasutajaliidesega vib samuti ttada, kuid siis ei ole programmi funktsionaalsus tielik. Seoses osalise mainitud andmebaaside spetsiifika kirjutamisega kasutajaliidesesse ei pruugi vastavad funktsioonid mne muu andmebaasi lisamisel lihtsalt ttada.  

Andmebaasissteemi sidumiseks kesoleva kasutajaliidesega tuleks esmalt konfigureerida failid:

conf.txt
showtables.txt
identitys.txt

Faili "conf.txt" konfigureerimine:

Faili "conf.txt" kasutatakse andmebaasissteemiga hendamiseks.
Kirjutada faili esimesele reale #Andmebaasissteemi nimi ning jrgnevale reale andmebaasissteemiga hendamiseks vajalik ODBC hendussne (connectionstring).
Niteks oletame, et andmbaasissteemiks on Microsoft SQL Server, siis "conf.txt" failis oleks:
#Microsoft SQL Server
Driver={SQL Native Client};Server=serveri_nimi;Database=andmebaasi_nimi;Trusted_Connection=yes;Mars_Connection=yes;

Faili "showtables.txt" konfigureerimine:

Faili "showtables.txt" kasutatakse andmebaasis olevate tabelite nitamiseks kasutajaliideses.
Faili struktuur on sama, mis faili "conf.txt" puhul. Ainuke erinevus on selles, et hendussne ehk connectionstring asmel tuleb jrgnevale reale vastava andmebaasissteemi ksk, mis kuvab kik kasutaja tabelid. 
Niteks MySQL puhul oleks failis "showtables.txt" jrgnevad read:
#MySQL
SHOW TABLES

Faili "identitys.txt" konfigureerimine:

Faili "identitys.txt" kasutatakse selleks, et defineerida vastava andmebaasissteemi ksk, mis tagastab viimati lisatud kirje ID. Faili struktuur on samasugune eelnevatega.
Niteks oletame, et andmebaasissteemiks on Microsoft SQL Server, siis "identitys.txt" oleks:
#Microsoft SQL Server 
SELECT @@Identity

NB! Failide "showtables.txt" ja "identitys.txt" konfigureerimisel on oluline, et andmebaasissteemide jrjekord oleks sama, mis "conf.txt" puhul.

Kommentaaride kirjutamiseks saab kikides failides kasutada ##.
Niteks:
## See on kommentaar, seda ignoreeritakse.

Kui kik eelnev on edukalt konfigureeritud, siis vib asuda programmi kasutama.

3. Programmi kasutamine

3.1 Programmi kivitamine ning henduse loomine andmebaasiserveriga
 
Programmi kivitamiseks tuleks tle panna DBMeasure.exe

Seejrel on vimalik rippmenst valida, millise andmebaasiga soovitakse hendus luua (andmebaasid said defineeritud "conf.txt" failis) ning vajutada nupule henda.

Kui andmebaasiga hendamine nnestus, siis on vimalik programmi kasutama hakata. Vastasel korral tuleks le vaadata
fail "conf.txt".

3.2 Andmebaasissteemi tabelite loomine

Tabelite loomine on vimalik, kasutades SQL pringu akent. Kirjutada tabeli loomiseks sobiv SQL lause ning vajutada nupule "Teosta pring". Tabelite alla ilmuvad loodud tablid alles peale jrgmist andmebaasiga hendamist. See thendab, et peale tabelite loomist tuleks korra vajutada nupule "henda lahti" ning seejrel nupule "henda".

NB! Tabelite loomisel tuleks arvestada, et programm oskab kasutada ainult string, double, integer ja datetime tpi vlju.

Nitena saab kasutada fails "Tables.sql" toodud sql kske.

3.3 Kirjete sisestamine tabelisse hekaupa

3.3.1 Andmete genereerimine

Andmete genereerimiseks valida soovitud tabel ning vajutada nupule "Genereeri andmed".
Sisestada soovitud kirjete arv ning valida sobiv vljatrki samm, ehk siis mitme kirje sisestamise tagant programm aega mdab. Seejrel vajutada nupule "OK". 

3.3.2 Andmete sisestamine

Genereeritud andmed saab sisestada hetkel hendatud andmebaasi vi siis kikidesse andmebaasissteemidesse (eeldab, et tabelite struktuur oleks andmebaasides sama). Andmete sisestamiseks vajutada nupule "Sisesta" vi siis valida menst "Kik andmebaasid" -> "Sisesta andmed". Tulemused vljastatakse konsoolile ning faili "results.txt". Faili "results.txt" kirjutatakse andmebaasissteemi nimi ning kirjete sisestamiseks kulunud aeg millisekundites ning kirjete arv kujul:

Andmebaasissteemi nimi

Kirjete arv;Kirjete sisestamise aeg millisekundites

3.4 Kirjete sisestamine tabelisse mitmekaupa

3.4.1 Andmete genereerimine

Andmete genereerimiseks valida soovitud tabel ning vajutada nupule "Genereeri andmed".
Sisestada soovitud kirjete arv ning mrkida linnuke "Sisesta blokkidena". Valida blokis olevate ehk siis korraga sisestatavate kirjete arv. Seejrel valida sobiv vljatrki samm, ehk siis mitme bloki sisestamise tagant programm aega mdab. Seejrel vajutada nupule "OK". 

3.4.2 Andmete sisestamine

Genereeritud andmed saab sisestada hetkel hendatud andmebaasi vi siis kikidesse andmebaasissteemidesse (eeldab, et tabelite struktuur oleks andmebaasides sama). Andmete sisestamiseks vajutada nupule "Sisesta" vi siis valida menst "Kik andmebaasid" -> "Sisesta andmed". Tulemused vljastatakse konsoolile ning faili "results.txt". Faili "results.txt" kirjutatakse andmebaasissteemi nimi ning blokkide sisestamiseks kulunud aeg millisekundites ning blokkide arv kujul:

Andmebaasissteemi nimi

Blokkide arv;Blokkide sisestamise aeg millisekundites

3.5 Kirjete sisestamine tabelisse hekaupa, kasutades bind muutujaid

3.5.1 Andmete genereerimine

Andmete genereerimiseks valida soovitud tabel ning vajutada nupule "Genereeri andmed".
Sisestada soovitud kirjete arv ning mrkida linnuke "Kasuta bind muutujaid". Valida sobiv vljatrki samm, ehk siis mitme kirje sisestamise tagant programm aega mdab. Seejrel vajutada nupule "OK". 

3.5.2 Andmete sisestamine

Genereeritud andmed saab sisestada hetkel hendatud andmebaasi vi siis kikidesse andmebaasissteemidesse (eeldab, et tabelite struktuur oleks andmebaasides sama). Andmete sisestamiseks vajutada nupule "Sisesta" vi siis valida menst "Kik andmebaasid" -> "Sisesta andmed". Tulemused vljastatakse konsoolile ning faili "results.txt". Faili "results.txt" kirjutatakse andmebaasissteemi nimi ning kirjete sisestamiseks kulunud aeg millisekundites ning kirjete arv kujul:

Andmebaasissteemi nimi

Kirjete arv;Kirjete sisestamise aeg millisekundites

3.6 Kirjete sisestamine hest tabelist teise

Kirjete sisestamiseks hest tabelist teise peaks olema ks tabel, kus on mingi hulk kirjeid ning sama struktuuriga teine tabel, mis on thi. Valida tabel, kus on juba kirjed ning vajutada nupule "Sisesta teise tabelisse".
Programm lubab valida lejnud tabelite seast teise tabeli, kuhu andmed sisestatakse. Programm kontrollib, et tabelite vljad oleksid samad ning tabel oleks thi. Peale sobiva tabeli valimist vajutada nupule "Sisesta andmed".
Faili "results.txt" kirjutatakse andmebaasissteemi nimi ning kirjete sisestamiseks kulunud aeg millisekundites ning kirjete arv kujul:

Andmebaasissteemi nimi

Kirjete arv;Kirjete sisestamise aeg millisekundites

3.7 Kirjete sisestamine kahte tabelisse

3.7.1 Andmete genereerimine

Kirjete sisestamiseks kahte tabelisse valida kaks tabelit (phitabel ja temaga seotud alamtabel).
Seejrel vajutada nupule "Genereeri andmed". Saab valida kirjete arvu phitabelis ning kirjete vahemiku alamtabelis ning mrata mitme phitabeli kirje sisestamise jrel tulemused faili kirjutatakse. Seejrel vajutada nupule "OK".

3.7.2 Andmete sisestamine

Andmete sisestamiseks vajutada nupule "Sisesta" vi siis valida menst "Kik andmebaasid" -> "Sisesta andmed". Tulemused vljastatakse konsoolile ning faili "results.txt".
Faili "results.txt" kirjutatakse andmebaasissteemi nimi ning phitabelisse kirjete sisestamiseks kulunud aeg millisekundites ning kirjete arv phitabelis kujul:

Andmebaasissteemi nimi

Kirjete arv phitabelis;Kirjete phitabelisse ning sellega seotud alamtabelisse sisestamise aeg millisekundites

3.8 Tabelite thjendamine

Tabelite thjendamiseks valida soovitud tabelid ning vajutada nupule "Thjenda tabelid". Kikide andmebaasissteemide kikide tabelite thjendamiseks saab valida menst "Kik andmebaasid" -> "Thjenda tabelid".

3.9 Tabeli vljadele indeksite loomine

Tabeli kikidele vljadele indeksi loomiseks on nupp "Loo indeksid".
Selleks, et indekseid luua ksikutele vljadele saab pringu kirjutada pringu aknasse ning vajutada nupule "Teosta pring".

3.10 Tabeli vljadelt indeksite eemaldamine

Tabeli kikidele vljadele indeksi eemaldamiseks on nupp "Kustuta indeksid".
Selleks, et indekseid ksikutelt vljadelt kustutada, saab kirjutada pringu aknasse  pringu ning vajutada nupule "Teosta pring".
