# &kexi; käsiraamat

## Sissejuhatus

&kexi; on andmebaaside haldamise rakendus. Seda saab kasutada andmebaaside loomiseks, andmete sisestamiseks, päringute sooritamiseks ning andmete töötlemiseks. Võimalik on luua vorme, kasutades sealjuures just enda vajadustele kohandatud liidest. Kõik andmebaasiobjektid - tabelid, päringud ja vormid - salvestatakse andmebaasi, mis tagab andmete ja kujunduse hõlpsa jagamise.

&kexi; kuulub KDE kontoritööpaketti &calligra;.

Lisaks sinu &kexi; andmebaaside salvestamisele failidena võib &kexi; sinu andmed salvestada ka andmebaasiserverisse. Sellise serveri kasutamine võimaldab jagada oma andmebaasi teiste inimestega, samuti võib andmebaasi korraga kasutada rohkem kui üks inimene. &kexi; toetab järgmisi andmebaasiservereid:

- MySQL

- PostgreSQL

Rohkem infot &kexi; kohta leiab &kexi; leheküljelt Calligra veebisaidil ja Kexi enda veebileheküljel.

Kui sul on küsimusi &kexi; kohta, on sinu käsutuses kaks postiloendit &kexi; kasutajate postiloendis saab esitada küsimusi &kexi; kasutamise või &kexi; projekti kohta. &kexi; arendajate postiloendis saab esitada küsimusi &kexi; arendamise kohta. Täiendavat teavet selle kohta, kuidas nende postiloenditega liituda, samuti veel mõned viisid luua ühendus &kexi; arendajatega, leiab asiit.

Käesolev &kexi; 2.5 käsiraamat tugineb &kexi; 1.1 käsiraamatule. Palun kooskõlasta igasugused katsed seda täiendada Jarosław Staniekiga e-posti aadressil kexi at kde.org

## Kexi põhitõed

- Kexi andmebaasid

- Uue andmebaasifaili loomine

- Kexi peaaken

  - Rakenduse põhielemendid

- Olemasoleva Kexi andmebaasifaili avamine

  - Andmebaasifaili avamine dialoogis Olemasoleva projekti avamine

  - Olemasoleva Kexi andmebaasifaili avamine .kexi-faili ikoonile klõpsates

- Sisseehitatud abi kasutamine

### Kexi andmebaasid

Paljud rakendused, näiteks OpenOffice.org, LibreOffice või &Microsoft; Excel, loovad faile, mida nimetatakse dokumendiks. Ka &kexi; loob faile, kuid meie nimetame neid &kexi; andmebaasifailideks või lihtsalt andmebaasifailideks.

Lisaks andmebaaside salvestamisele andmebaasifailidena võib &kexi; kasutada ka andmebaase andmebaasiserverites, mistõttu me nimetame neid andmebaasifailideks, mitte aga lihtsalt andmebaasideks.

Ka mõistet &kexi; projekt või lihtsalt projekt kasutatakse &kexi; andmebaasi tähistamiseks sõltumata sellest, kas see on salvestatud faili või andmebaasiserverisse.

&kexi; andmebaasifailidel on tavaliselt laiend `.kexi`

### Uue andmebaasifaili loomine

1. Käivita &kexi; või kui see juba töötab, vali Kexi Uus... (Ctrl+N).

2. Uue projekti leheküljel vali sektsioonis Tühjad projektid Tühi andmebaas.

3. Salvestamismeetodi leheküljel vali Fail.

4. Projekti pealkirja ja failinime leheküljel kirjuta oma projekti pealkiri ehk nimi ja failinimi.

5. Projekti loomiseks klõpsa Järgmine.

- Kui muudad projekti pealkirja, muutub automaatselt ka pakutav failinimi.

- Failibrauseri abil võib valida kataloogi, kuhu andmebaasifail salvestada.

### Kexi peaaken

Ülal asuv kaartidega tööriistariba võimaldab kasutada levinumaid toiminguid ja käske.

Projekti navigaator ja omaduste redaktor asuvad paneelidena mõlemal pool peaakent. Neid saab peita või nende suurust muuta just enda soovi kohaselt. Paneeli peitmiseks tuleb klõpsata väiksele ristile selle ülaservas (otse tööriistariba peal).

Andmebaasiobjekte (tabelid, päringud jne.), mida toob ära projekti navigaator, saab avada klõpsuga (või topeltklõpsuga sõltuvalt sinu üldistest KDE seadistustest) nende nimele.

#### Rakenduse põhielemendid

&kexi; rakenduse peaakna põhielemendid on järgmised:

Kaartidega tööriistariba

- Sisaldab kõiki rakenduse käske. Nende põhjalikuma kirjelduse leiab vastavast lisast..

Projekti navigaatori paneel

- Sisadab kõigi parajasti avatud andmebaasiprojekti objektide (tabelid, päringud, vormid...) nimekirja. Navigaatoril on ka väike tööriistariba, mis sisaldab kõige sagedasemaid käske andmebaasiobjektide käsitsemisel.

Avatud andmebaasiobjektide ala / kaartidega aknad

- Rakenduse keskne ala, mis hõlmab enamiku ekraanist. Kasutajaliides sisaldab lülitatavaid akendega kaarte, mis on alati maksimeeritud.

Omaduste redaktori paneel

- Sisaldab parajasti aktiivse andmebaasiobjekti omaduste nimekirja. Teatud objektide korral (⪚ vormide vidinad) võib see koosneda mitmest kaardist.

#### Kaartidega tööriistariba

Tööriistariba on koht, mis tagab ligipääsu tähtsamatele &kexi; käskudele ja toimingutele.

Tööriistariba eri kaartidel olevate toimingutega saab:

- Luua / avada / sulgeda Kexi projekte

- Luua andmebaasiobjekte

- Importida / eksportida andmeid

Sõltuvalt kontekstist võib näha teisigi kaarte:

- Vormi kujunduse kaart on näha, kui kasutatakse vormi kujundajat.

- Aruande kujunduse kaart on näha, kui kasutatakse aruande kujundajat.

#### Projekti navigaatori paneel

Projekti navigaatori paneel on üks &kexi; peaakna tähtsamaid elemente. See sisaldab kõigi parajasti avatud &kexi; andmebaasiprojekti objektide nimekirja. Objektid on jagatud rühmadesse: tabelid, päringud, vormid, aruanded ja skriptid.

Projekti navigaatori paneel sisaldab ka väikest tööriistariba kõige sagedamini vajaminevate käskudega (vasakult paremale): Ava valitud objekt, Kujunda valitud objekt ja Kustuta valitud objekt.

Kõigil nimekirja objektidel on oma kontekstimenüü, mille saab avada hiire parema nupuga klõpsates.

Topeltklõps hiire vasaku nupuga objekti nimel avab selle objekti andmevaates. Kui objekti aken on juba avatud, aktiveerib see toiming lihtsalt antud objekti akna.

Isegi kui operatsioonisüsteemi või aknahalduri seadistustes võib olla määratud, et meie kirjeldatud topeltklõpsu toimingu teeb ära ühekordne klõps, kasutab &kexi; projekti navigaatoris topeltklõpse, et vältida juhuslikku suurte andmekogumite avamist või päringute esitamist.

#### Avatud andmebaasiobjektide ala / kaartidega aknad

Kui teed projekti navigaatoris mõnel objektil topeltklõpsu, avatakse see avatud andmebaasiobjektide alas. Igal aknal on &kexi;s oma kaart.

Kaarte saab ümber korraldada lohistades, samuti sulgeda kaardiriba parempoolses servas asuva sulgemisnupuga

Kunagi tulevikus tekib ka võimalus kaardid lahti haakida, millega luuakse mõneti MDI liidesele sarnanev olukord. See on näiteks kasulik kohandatud lahenduste või mitme ekraani korral.

#### Omaduste redaktori paneel

Omaduste redaktori paneelis saab muuta aktiivses aknas näidatava objekti omadusi. Sõltuvalt kontekstist võib paneel koosneda ühest või ka mitmest kaardist. Esimene, alati nähtav omaduste kaart toob ära saadaolevate omaduste nimekirja.

Omaduste redaktori kasutamise reeglid:

- Üks rida tähendab üht konkreetset omadust.

- Konkreetset omadust võib muuta nii klaviatuurilt kui ka hiirega.

- Levinuimad omaduste tüübid on järgmised:

  - arv: väärtuse saab kas otse sisestada või suurendada või vähendada hiire vasaku nupuga noolenuppudele klõpsates.

  - tekst

  - väärtuste valiknimekiri

  - Jah/Ei tõeväärtus lülitatavate nuppude näol: nupu sisselülitamine tähendab Jah (Tõene), väljalülitamine Ei (Väär).

- Väärtuse muutmist ei ole vaja eraldi kinnitada: muudatused jõustuvad kohe, kui liigud omaduste redaktoris mõnele teisele reale või vajutad klahvi &Enter;.

- Hiljuti muudetud ja veel andmebaasi salvestamata omaduste nimed on tähistatud rasvase kirjaga.

- Pärast omaduse väärtuse muutmist ilmub spetsiaalne nupp Võta muudatused tagasi antud omaduse kirje paremasse serva. Sellele klõpsates saab taastada omaduse algse väärtuse, mis laaditi andmebaasist andmebaasiobjekti avamisel. Seda nuppu näeb ainult siis, kui antud omadus on valitud.

Omaduste redaktori paneel on tühi, kui:

- pole avatud ühtegi andmebaasiobjekti akent või

- aktiivne andmebaasiobjekti aken ei paku mingeid omadusi (see on tavaline siis, kui objekt avada mitte kujundusvaates, vaid andmevaates).

### Olemasoleva Kexi andmebaasifaili avamine

Olemasolevat &kexi; andmebaasifaili saab avada kahel viisil:

#### Andmebaasifaili avamine dialoogis Projekti avamine

- Käivita &kexi;. Ilmub dialoog Tere tulemast kasutama Kexit, mis lubab avamiseks valida mõne hiljuti kasutatud projektidest.

- Kui vajalikku projekti ei leidu viimati kasutatud projektide seas, vali Ava... (&Ctrl;O). Ilmub järgmine dialoog:

- Vali asukoharibal kataloog, mis sisaldab vajalikku faili.

- Faili võib valida sellele klõpsates või sisestades selle nime kasti Nimi ja klõpsates Järgmine.

Märkused

- Vaikimisi on liitkastis Filter valitud Kõik toetatud failid (*.kexi, *.kexic, *.kexis, *.mdb). Kui otsid mõne muu laiendiga faili, võid liitkastis Filter valida hoopis Kõik failid, et näidataks kõiki faile sõltumata nende laiendist.

- Kui valid mõne võõra tüübiga faili, näiteks MS Access'i `.mdb`-faili, pakub &kexi; võimalust fail importida.

- Kui valid ühenduse andmete faili (laiendiga `.kexic`) või projekti viida andmebaasiserveris (laiendiga `.kexis`), näitab &kexi; vastavat dialoogi.

#### Olemasoleva Kexi andmebaasifaili avamine .kexi-faili ikoonile klõpsates

- Klõpsa failihalduris või töölaual faili ikoonile. &kexi; avab automaatselt selle andmebaasiprojekti.

Märkused

Märkus võrgus paiknevate andmebaasifailide kohta. Soovi korral saab avada ka võrgus (⪚ veebis või FTP-serveris või MS Windows'i jagatud ressursis) paikneva andmebaasifaili. KDE võimaldab muidu avada võrgufaile otse rakendustes ja salvestada otsekohe võrku ka tehtud muudatused, kuid andmebaasifailide puhul on asjad teisiti. Võrgus paiknevale andmebaasifailile klõpsates laaditakse fail alla sinu arvuti ajutisse kataloogi ning kõik muudatused tehakse sellesse kohalikku faili. Võrgus paiknev originaalfail jääb Kexi sulgemise järel muutmata, mistõttu on soovitatav fail esmalt oma arvutisse tõmmata, siis see avada ja töödelda ning kui soovid muudatusi ka edaspidi näha, võrku tagasi kopeerida.

### Sisseehitatud abi kasutamine

&kexi; võimaldab kasutada järgmisi sisseehitatud abivõimalusi:

Käsiraamat elektroonilise dokumendina.

- Käsiraamatu saab avada kiirklahviga F1 või klõpsuga menüüribal ikoonile ja valides Abi.

Mis see on? kohtspikrid.

- Vali Mis see on? menüüs, mis ilmub nähtavale, kui klõpsad ikoonile , ja klõpsa seejärel rakenduses piirkonnale, mille kohta soovid teavet saada.

## Lihtsate andmebaaside loomine

- Sissejuhatus

- Andmebaasi tabelite kirjeldamine

  - Tabeli kirjeldamise aken

- Andmete sisestamine tabelitesse

- Andmebaasi päringute kirjeldamine

- Vormide kujundamine

  - Tähtsamad mõisted

  - Vormid või tabelid

  - Vormi kujundamine

  - Kaardi Vidinad kasutamine

  - Vidinate lisamine - tekstiväljad

  - Andmeallikate omistamine

  - Tekstipealdiste lisamine

  - Toimingud

  - Vidinate paigutus

- Andmete sisestamine vormide abil

### Sissejuhatus

&kexi; põhialuste tundmaõppimiseks tuleks esmalt luua lihtne andmebaas, mille juures saab ära kasutada kõige põhilisemaid &kexi; omadusi. Et asjad lihtsamini selgeks saaksid, ei käsitleta siinkohal andmebaaside disaini kõiki üksikasju.

Alustuseks loo uus tühi telefoniraamat.

Kui sul on nüüd uus tühi andmebaasiprojekt, võta ette järgmised sammud:

1. Andmebaasi tabelite kirjeldamine. Loe osa Andmebaasi tabelite kirjeldamine.

2. Andmete sisestamine tabelitesse. Loe osa Andmete sisestamine tabelitesse.

3. Andmebaasipäringute kirjeldamine. Loe osa Andmebaasipäringute kirjeldamine.

4. Vormide kujundamine. Loe osa Vormide kujundamine.

5. Vormide kasutamine andmete sisestamiseks. Loe osa Vormide kasutamine andmete sisestamiseks.

### Andmebaasi tabelite kirjeldamine

Kõigepealt pane tähele, et sinu andmebaasis on kaks tabelit: `isikud` ja `telefoninumbrid` Need on samad tabelid, mida kirjeldab osa Andmebaas ja arvutustabel. Tabeli `Isikud` ülesehitust tutvustab sama peatüki osa Andmeterviklus ja -õigsus.

1. Vali tööriistaribal Tabel. Samuti võib kasutada projekti navigaatori elemendi Tabelid kontekstimenüü käsku Loo objekt: Tabel.

2. Ilmub tabeli kirjeldamise aken. Selle ülaosas märkad, et &kexi; on andnud sinu uuele tabelile üldise nime, näiteks Tabel1. Tabel ei ole veel aga salvestatud, nii et hiljem saad sellele anda sobivama nime. Samal põhjusel ei ole ka tabeli nime veel näha projekti navigaatoris.

#### Tabeli kirjeldamise aken

##### Tabeli kirjeldamise aken koosneb järgmistest veergudest:

- - Välja lisateave.

- Välja pealdis - välja ehk veeru nimi, mis on näha andmete sisestamise ajal.

- Andmetüüp - liitkast erinevate andmetüüpide nimekirjaga, mis võimaldab valida antud väljale sisestatavate andmete põhireegli. Kui selleks on näiteks täisarv, siis ei saa andmebaasi kasutaja sisestada antud väljale tähti.

- Kommentaarid - siia saab lisada mis tahes infot, mis aitab mõista, milleks antud väli on mõeldud. See lisatekst salvestatakse koos tabeli kirjeldusega ja seda näeb ainult kujundamisrežiimis.

Tabeli kirjeldamise aknas vastab iga rida tabeli ühele väljale. Seda, et viibid parajasti kujundamisrežiimis, näitab tabeli kirjeldamise akna tööriistaribal sisselülitatud nupp Kujundus.

##### Tabeli Isikud kirjeldamine

Klõpsa esimeses reas lahtrile veerus Välja pealdis ja määra välja pealdiseks `Nimi`. Välja Välja pealdis täitmine täidab automaatselt välja Nimi, nagu näeb paneelil Omaduste redaktor.

Märkus väljanimede ja pealdiste kohta

- Igal tabeli väljal peab olema nimi ja pealdis, need ei tohi puududa.

- Väljanimi on sõna, mida kasutab andmebaas ja mis ei ole tavaliselt andmebaasirakenduse kasutajale nähtav. Väljanimed ei tohi sisaldada erimärke (näiteks ±, ¶, Ü) ega tühikut. Nimed võivad sisaldada ainult tähti, arve ja alakriipsu _. Viimast on hea kasutada näiteks tühikute või side/mõttekriipsude asemel.

- Väljanimed peavad algama tähe või alakriipsuga _, aga mitte arvuga.

- Pole vahet, kas kasutad suur- või väiketähti. &kexi; jaoks on andmebaasi nimi `Isikud` samaväärne nimega `isikud`.

- Välja pealdis aga võimaldab kasutada mis tahes märke ja sümboleid. Seda näidatakse andmebaasirakenduse kasutajale.

Samamoodi sisesta tabelisse järgmised väljad:

- `perekonnanimi`

- `tänav`

- `majanumber`

- `linn`

Kõigi mainitud väljade, välja arvatud `majanumber`, tüübiks on tekst Määra välja `majanumber` tüübiks täisarv. Selleks klõpsa lahtril veerus Andmetüüp ja reas `majanumber` ning seejärel andmetüüpide nimekirja sisaldaval nupul (sama tulemuse saab vajutamisega klahvile F4). Andmetüübi muutmiseks võib kasutada ka nooleklahve Nool üles ja Nool alla). Vali Täisarv.

Edaspidi saab väljale `majanumber` sisestada ainult arve.

Tabel Isikud ongi nüüd kirjeldatud. Klõpsa tööriistaribal nupule Andmed, millega saad lõpetada kirjeldamise ja näha tabelit andmevaates. See võimaldab sisestada tabelisse andmeid.

Tabel ei ole veel andmebaasi salvestatud, mistõttu ilmub dialoog Objekti salvestamine. Siin tuleb uuele tabelile nimi anda.

&kexi; pakub välja üldise nime, näiteks Tabel1. Selle muutmiseks kirjuta `Isikud` väljale Pealdis ja vajuta &Enter; või klõpsa nupule OK. Väljale Pealdis kirjutatut kasutatakse tabeli kuvamisel andmebaasi kasutajale, ⪚ vormina. Erinevalt nimest võib pealdis sisaldada igasuguseid sümboleid, sealhulgas tühikuid ja erimärke.

Pane tähele, et välja Pealdis täitmisel täidetakse automaatselt ka väli Nimi. Sinu elu kergendamiseks peetakse kinni reeglist, et nimes saab kasutada ainult tähti, arve ja märki _. Soovi korral võid muidugi välja Nimi sisu muuta.

1. Sinu käest päritakse, kas soovid tabelile automaatselt lisada primaarvõtme. Jätkamiseks klõpsa nupule Lisa primaarvõti.

2. Nüüd ongi tabel `Isikud` loodud ja avatud andmevaates. Selle nime näeb ka projekti navigaatori paneelil.

3. Loo tabel `telefoninumbrid` samamoodi, nagu lõid tabeli `isikud`.

4. Määra välja `isik` tüübiks Täisarv ja välja `telefon` tüübiks Tekst. Ära kasuta arvutüüpi, sest telefoninumbrid võivad esineda väga mitmesugusel kujul ja väga erinevate eesliidetega.

5. Klõpsa tööriistaribal nupule Andmed ja määra tabeli pealdiseks `Telefonid`. Nagu eelmise tabeli korral, luba &kexi;l automaatselt luua primaarvõti.

### Andmete sisestamine tabelitesse

Oled loonud kaks tabelit: `Isikud` ja `telefoninumbrid` Kummaski pole veel andmeid. Selles peatükis selgitatakse, kuidas sisestada andmeid kiiresti ja tõhusalt.

Alustame tabeliga `Isikud` Ava see andmevaates projekti navigaatori kontekstimenüü käsu Ava või tööriistariba nupu abil. Aktiivne lahter on märgitud (tavaliselt musta) ristkülikuga, kursoriga. Lahtri sisu, kui see on olemas, on värviga esile tõstetud. Aktiivset rida, s.t. rida, kuhu oled asetanud ristkülikukujulise kursori, tähistab vasakul noolesümbol.

Tabeli lahtrite vahel saab liikuda hiirega või nooleklahvidega, samuti klahvidega Page Down, Page Up, Home ja End.

Pärast tabeli `Isikud` avamist on kursor esialgu veerus `ID`. Veerul on kirjeldatud automaatse numbri omadus, mida tähistab sinine tekst (automaatnumber) viimases reas. See tähendab, et sa ei pea väärtusi andmete sisestamisel uude ritta käsitsi sisestama, sest lahter täidetakse automaatselt üksteisele järgnevate numbritega.

Uute ridade lisamine ja neisse andmete lisamine käib &kexi;s teisiti kui arvutustabelites. Uue rea andmete sisestamiseks tuleb nooleklahvide või hiirega viia kursor spetsiaalsele tühjale viimasele reale, mida tähistab plussmärk. Vii kursor (teise) veergu `Nimi` ja sisesta isiku eesnimi. Samamoodi sisesta perekonnanimi, tänav, majanumber ja linn. Kui oled valmis, liigu klahviga Nool alla või hiirega viimasele tühjale reale uue rea lisamiseks. Võid lisada read, mida näitab pilt, aga ka rohkem.

#### Andmete sisestamisel tabelisse kasutatavad toimingud

- Kui alustad andmete sisestamist, käivitatakse pärast esimese märgi kirjutamist aktiivse rea redigeerimisrežiim. Andmetabelist vasakul ilmub nähtavale pliiatsisümbol.

- Aktiivse rea redigeerimisrežiimi käivitab ka topeltklõps lahtril hiire vasaku nupuga või klahvi &Enter; või F2 vajutamine.

- Lahtri redigeerimise ajal klahvile &Esc; vajutades tühistatakse lahtrisse tehtud muudatused. Pliiatsisümbol siiski ei kao, sest sa võid redigeeritavas reas liikuda mõnele muule lahtrile ja muuta selle sisu. Tühistamaks tervesse ritta tehtud muudatused, vajuta uuesti klahvi &Esc;.

- Klahvi &Esc; vajutamise asemel võib klõpsata tööriistaribal nupule Loobu kirje muudatustest.

- Klahve &Shift;&Enter; vajutades saab salvestada kõik aktiivse rea lahtritesse tehtud muudatused.

Täida tabel `Telefoninumbrid` andmetega. Veerus `Isikud` tuleb anda isiku `ID` number tabelist `Isikud`.

### Andmebaasi päringute kirjeldamine

Andmebaasi esmane ülesanne on salvestada ja aidata hankida teavet, mida kasutajal tarvis läheb. Erinevalt paberandmebaasidest võimaldab &kexi; andmebaas mitmete kriteeriumide alusel andmeid otsida. Tulemused tagastatakse väga kiiresti isegi suurte andmekogumite korral. Kuigi andmebaasid on niisiis väga võimsad vahendid, on selleks, et sooritada andmebaasis edukaid päringuid, vaja teada, kuidas andmebaasile teada anda, mida otsida.

Andmebaasi päringutega saab piirata tabeli andmeid eelnevalt määratud ridade ja veergude kogumiga või ka dünaamiliselt ühendada mitmest tabelist pärit andmeid.

Selgitamaks, kuidas päringud toimivad, loome päringu Kontaktid tabelite `Isikud` ja `Telefoninumbrid` andmete ühendamisel (nende tabelite kirjeldamisest kõneldi siin ning andmetega täitmisest siin )

1. Loo uus päring tööriistariba nupuga Päring. Ilmub kujundusaken See on jagatud kaheks: päringu seosed ülal ning päringu veerud all.

2. Vali tabel `Isikud` rippmenüüst Tabel akna ülaosas ja klõpsa nupule Lisa. Tabeli visuaalne esitus ilmub nähtavale seoste alas. Lisa samamoodi ka tabel `Telefoninumbrid`.

3. Lisa lohistades päringu seos: klõpsa väljale `ID` tabelis `Isikud` ja lohista see väljale `Isik` tabelis `Telefoninumbrid`. See ühendab mõlemad väljad, luues uue seose.

4. Topeltklõpsuga väljal `Nimi` tabelis `Isikud` saab välja lisada päringu veeruna. Samamoodi lisa väljad `perekonnanimi`, `tänav`, `majanumber` ja `linn` tabelist `Isikud` ning väli `Telefon` tabelist `telefoninumbrid`.

5. Nüüd on aeg päringut testida. Klõpsa tööriistaribal nupule Andmed, millega saad kirjeldamisest lülituda päringu tulemusel pakutavate andmete vaatamisele.

6. Salvesta päring hilisemaks kasutamiseks klõpsuga tööriistariba nupule Salvesta. Et päringu kirjeldust pole veel salvestatud, palutakse sul sellele nimi anda. Kirjuta `Kontaktid` väljale Pealdis ja klõpsa OK.

### Vormide kujundamine

- Tähtsamad mõisted

- Vormid või tabelid

- Vormi kujundamine

- Kaardi Vidinad kasutamine

- Vidinate lisamine - tekstiväljad

- Andmeallikate omistamine

- Tekstipealdiste lisamine

- Toimingud

- Vidinate paigutus

#### Tähtsamad mõisted

Vorm

- Aken andmete hõlpsaks sisestamiseks ja kuvamiseks arvutiekraanil.

Vormi andmeallikas

- Andmebaasi tabel või päring vormis kuvatavate andmetega. Andmeallikas on vajalik, sest vormid on kõigest tööriistad andmete kuvamiseks ja sisestamiseks, tabelid ja päringud aga andmeallikad. Tühjale vormile pole ühtegi andmeallikat omistatud, mistõttu nad ei näita mingeid andmebaasi andmeid seni, kuni neile pole andmeallikat omistatud.

Vormi väli

- Otsene tabeli või päringu veeru vaste. Enamasti kasutatakse välju teksti ja arvude esitamiseks. Sellisele väljale uue väärtuse sisestamine või olemasoleva väärtuse muutmine põhjustab muudatuse ka sellega seotud tabeli või päringu veerus (pärast muudatusega nõustumist).

Vormi kujundamine

- Toimingud, millega määratakse kindlaks vormi välimus ja funktsioonid. Selleks on vajalik määrata andmeallikas, lisada vajalikku tüüpi vormi väljad ning asetada nad sobivasse asukohta.

Vormividin

- Vormi element. Peamised vidinatüübid on järgmised:

  - Infot esitavad vidinad, näiteks tekstikast või pildikast. Iga sellist tüüpi vidin võib olla seotud andmeallika väljaga (tabeli või päringu veeruga). Seepärast nimetatakse neid lühidalt vormi väljadeks.

  - Teatud toiminguks mõeldud vidinad, näiteks nupp, mis sulgeb aktiivse vormi. Mõnes muus rakenduses nimetatakse sellist tüüpi vidinaid vahel vormi juhtelementideks, sest nad sooritavad eelnevalt määratud toimingu, millega juhitakse andmebaasirakenduse käitumist.

  - Muud vormi välimust parandavad vidinad, näiteks joonevidin, mis eraldab visuaalselt vormi kaht piirkonda.

Konteinervidin

- Vidin, mis sisaldab nagu konteiner teisi antud ala vidinaid. Näiteks on paneelividin või kaardividin. Ka vormi enda pind on konteiner. Käsunupud ei ole vidinad, sest nende sisse pole võimalik ühtegi muud vidinat asetada. Keerulisematel juhtudel võib konteinervidina lisada omakorda konteinerisse.

#### Vormid või tabelid

Peatükis Andmete sisestamine tabelitesse oli juttu, kuidas lisada andmed tabelisse otse, kasutades andmelehe vaadet. Kuid paljudel juhtudel sobivad andmete sisestamiseks paremini vormid:

- Tabel võib sisaldada nii palju veerge, et neid ei saa ekraanil korraga kuvada. Vormid võivad selliseid andmeid esitada paljude ridadena.

- Vormid võimaldavad andmete välju jagada visuaalselt loogilistesse rühmadesse, mis hõlbustab nende käitlemist. Võimalik on lisada täiendava infoga pealdisi, mis lubavad paremini mõista, kuidas vormi kasutada või mida antud andmeväljad tähendavad.

- Vormides saab kasutada levinumate käskudega nuppe, mis lubab kasutajal vormides tegutseda nii, nagu nad on harjunud tegutsema autonoomsetes rakendustes.

Andmelehevaates on mitmerealiste tekstandmetega väljade või piltide esitamine sama lihtne nagu vormides.

#### Vormi kujundamine

Nagu tabeli või päringu kirjeldamisel, saab ka siin kasutada andmevaadet ja kujundusvaadet. Vormi kujundamine käib kujundusvaates. Vormi kujundamise akent nimetatakse sageli lihtsalt vormikujundajaks.

1. Uue tühja vormi loomiseks vali tööriistaribal Vorm. Teise võimalusena võib kasutada projekti navigaatori tööriistariba rippmenüü käsku Loo objekt. Vorm või projekti navigaatori kontekstimenüü käsku Loo objekt: vorm.

2. Ilmub uus paneel, kus vormi suurust saab muuta piirdeid liigutades. Vormi katab punktidena esitatud alusvõrk, mis hõlbustab vidinate täpset paigutamist.

Nagu tabeli puhul, on ka vormikujundajas omaette omaduste paneel. Et see ekraanil liigselt ruumi ei rööviks, on paneel jagatud kolmeks aktiivse vormi kohta käivaks kaardiks:

Omaduste kaart

- Sisaldab parajasti valitud vidina omaduste loendit.

Kaart Andmeallikas

- Sisaldab parajasti valitud vidina või terve vormi otseselt andmeallikaga seotud omadusi.

Kaart Vidinad

- Sisaldab vormi kõigi vidinate hierarhiat. Loend lihtsustab vidinate leidmist nime järgi ja nende vahel liikumist.

Esimesel ja teisel kaardil kuvatakse ka infot parajasti valitud vidina nime ja tüübi kohta.

Kasutada saab ka lisatööriistaribasid:

- Vidinate tööriistariba uute vidinate lisamiseks vormi. Nägemiseks vali Vormi kujundus.

#### Kaardi Vidinad kasutamine

Vidinate kaart omaduste paneelil näitab vormi vidinate loendit ja nende hierarhiat. Iga vidinat näidatakse hierarhias kõrvuti teiste samal tasandil (samas konteineris) asuvate vidinatega. Alamvidinate (kuuluvad konteinerisse) nimesid kuvatakse taandega.

Iga vidina korral näidatakse selle nime ja tüüpi. Tüübile lisaks näeb ka ikooni - see on sama, mida kasutatakse tööriistaribal vormi kujundamise ajal.

- Aktiivse valiku muutmisel loendis muudetakse valikut ka kujundatavas vormis. See võimaldab hõlpsasti otsida vidinaid nime järgi ning nende vahel liikuda. Nii võib näiteks valida nime järgi vidina ning lülituda seejärel kaardile Omadused, et muuda vidina omadusi.

- Hoides loendis vidinate valimise ajal all klahvi &Ctrl;, saab korraga valida mitu vidinat. Klahvi &Shift; all hoides saab valida terve vidinate loendi.

Vidinale mõistliku nime andmine on kasuks, kuid see pole kohustuslik. Pane tähele, et vidina nimi on omadus, mida vormi kasutaja ei näe. Kasutajad näevad ainult vidina teksti, mida pakub omadus Tekst või mõni muu omadus.

#### Vidinate lisamine - tekstiväljad

Loome vormi, mis pakub teavet isikute kohta, s.t vormi, mis on ühendatud tabeliga `Isikud`.

Kui kujundatav vorm peab sisaldama andmebaasist hangitavaid andmeid, tuleb sellele asetada vajalikud väljad. Selleks tuleb kasutada tööriistariba Vidinad, mis sisaldab tervet rida nuppe. Iga nupp vastab teatud kindlale vidinatüübile.

1. Klõpsa tööriistaribal Vidinad nupule Tekstikast.

2. Klõpsa vormipinnal hiire vasaku nupuga. Uus tekstikast asetatakse klõpsamise kohta. Enne nupu vabastamist lohista hiirt, et tekstikast võtaks vajaliku suuruse.

3. Vajaduse korral lohista lisatud vidin vajalikku asukohta. Vidina suurust saab hiljem muuta, kui lohistada mõnda selle servadel asuvat väikest kastikest. Pane tähele, et kastikesed on näha ainult siis, kui vidin on valitud. Kui valid mõne muu vidina või klõpsad vormipinnale, kastikesed kaovad.

4. Klõpsa uuesti tööriistaribal nupule Tekstikast ja lisa vormipinnale veel üks vidin. Korda operatsiooni. Nüüd on vormis veel kolm tekstikasti. Lihtsuse mõttes piirdumegi siinkohal viie andmeväljaga.

- Vormi kujundamise režiimis saab kasutada ka kontekstimenüüd, mille avamiseks klõpsa hiire parema nupuga valitud vidinale või vormipinnale. Menüüs leiduvad sellised käsud, nagu Lõika, Kopeeri, Aseta, Kustuta ja mõned keerulisemadki. Käske saab kasutada ka kiirklahvidega. Teatud käsud on saadaval ainult konkreetset tüüpi vidinate puhul.

- Käsud Lõika, Kopeeri ja Aseta võimaldavad vidinaid liigutada või kopeerida vormide vahel isegi erinevate andmebaasiprojektide korral.

- Vidinatel klõpsamise ajal klahvi &Ctrl; all hoides saab valida mitu vidinat.

- Käskude Kopeeri ja Aseta asemel võib ühes ja samas vormis vidina kloonimiseks ka hoida vidina liigutamise ajal all klahvi &Ctrl;. Pärast hiirenupu vabastamist lohistatud vidinat mitte ei liigutata, vaid kopeeritakse uude asukohta.

#### Andmeallikate omistamine

Sisestatud väljadele ei ole veel omistatud andmeallikat, mistõttu need ei saa esitada mingit andmebaasi infot. Andmeallika omistamiseks vali omaduste paneelil kaart (Andmeallikas).

Esimene samm on määrata vormi andmeallikas, s.t koht, kust kuvatavad andmed hangitakse. Nagu eespool mainitud, kasutame antud juhul uue vormi jaoks andmeallikana tabelit `Isikud`.

1. Klõpsa vormipinnal, sest ees seisab vormi enda omaduste muutmine.

2. Ava kaart (Andmeallikas) ja kirjuta `isikud` väljale Vormi andmeallikas. Teise võimalusena võib selle nime valida ka ripploendist.

Sellega on vormi andmeallikas määratud. Nüüd tuleb määrata vidina andmeallikas.

1. Klõpsa vormi ülaosas esimesele tekstivälja vidinale.

2. Kirjuta omaduste paneeli kaardil (Andmeallikas) `nimi` väljale Vidina andmeallikas. Teise võimalusena võib selle nime valida ka ripploendist.

3. Klõpsa järgmisel tekstivälja vidinal ja määra andmeallikaks `perekonnanimi`.

4. Samamoodi sisesta tekstiväljade tänav, majanumber ja linn andmeallikad.

Nüüd võib vormi kujunduse salvestada (selle testimine pole kohustuslik) Salvestamiseks klõpsa tööriistaribal nupule Salvesta. Salvestamisel palutakse anda vormile nimi. Anna selleks näiteks `Isikud` ja klõpsa OK. Vormi nimi täidetakse automaatselt.

Nüüd on õige aeg vormi testida. Klõpsa tööriistaribal nupule Andmed. Kui sa pole andmeallikaid sisestades vigu teinud, näed vormi välju, mis on täidetud tabeli `Isikud` andmetega.

- Kui soovid eemaldada vormi vidina andmeallika omistamise, klõpsa vidina andmeallika kastis nupule . Samamoodi saab eemaldada vormi andmete allika omistamise.

- Nupuga (Liigu valitud vormi andmeallikale) saab valida projekti navigaatoris vajaliku tabeli või päringu, mis võimaldab kiiresti avada tabeli või päringu, mida kasutada vormi andmeallikana.

#### Tekstipealdiste lisamine

Et vormi kasutajal oleks hõlpsam tuvastada iga väljavidina tähendust, tuleks neile lisada vajaliku sisuga tekstipealdis. Tekstipealdise loomiseks tuleb kasutada vidinat Pealdis.

Lisa vormile kolm tekstipealdise vidinat, asetades need tekstiväljadest vasakule (või ka paremale, kui sinu operatsioonisüsteem kasutab paremalt vasakule paigutust). Uue pealdise sisestamisel ilmub kursor asukohta, kus saad kirjutada vajaliku pealkirja. Kirjuta nüüd `Nimi`, `Perekonnanimi`, `Tänav`, `Majanumber` ja `Linn`. Lisa veel vormi ülaossa pealdis, mis näitab vormi enda nime, s.t `Isikud`. Suurenda pealdise suurust ja fonti, kasutades kirjet Font kaardil Omadused.

#### Toimingud

Toiming on ühekordne rakendusesisene tegevus, mida kasutaja saab käivitada. Seda on võimalik panna käivituma ka automaatselt reaktsioonina teatud sündmusele (nt. vormi avamise järel).

##### Toimingute omistamine vormi nuppudele

Enamikku toiminguid saab omistada vormi nuppudele. Omistatud toiming käivitatakse pärast nupule klõpsamist.

Toimingu omistamiseks:

1. Lülitu vormi kujundamisvaatele, kui sa pole seda veel teinud.

2. Vali olemasolev nupuvidin sellele klõpsates või paiguta vormi uus nupuvidin. Kui lisad uue nupu, kirjuta selle nimi ja vajuta klahvi &Enter;.

3. Klõpsa nupuvidinal hiire parema nupuga, et avada kontekstimenüü.

4. Vali kontekstimenüüst käsk Omista toiming...

5. Ilmub nupule toimingu omistamise dialoog, mis pakub võimalikke toiminguid. Kui vidinale on toiming juba omistatud, on see valitud. Vastasel juhul on toimingu kategooriate loendis valitud Toiming puudub.

6. Vali loendis Toimingu kategooria kirje Rakenduse toimingud. Ilmub kogu rakenduses saadaolevate toimingute nimekiri.

7. Vali nimekirjast mõni toiming (nt. Kustuta valitud objekt).

Pärast lülitumist vormi andmevaatele võid proovida, kas toiming töötab korralikult.

- Toimingu omistamise tühistamiseks vali dialoogis Toimingu omistamine nupule loendis Toimingu kategooriad kirje Toiming puudub.

- Toiming toimib ainult vormi andmevaates. Mitte kõik toimingud pole ühtmoodi kasutatavad. Näiteks toiming Font... on andmevaates saadaval ainult juhul, kui vidin on valitud kujundamisvaates. Fondiseadistusi muutes rakendatakse muudatused valitud vidina tekstile.

#### Vidinate paigutus

Enamasti on mõttekas ja kasulik vormi vidinad mingil moel korrastatult paigutada. Vidinate asukoha määramine, nende joondamine ja suuruse muutmine käsitsi pole kuigi hõlpus, pealegi ei muudeta neid parameetreid, kui kasutaja muudab vormi suurust. Tegelikult on asi veel hullem: pole mingit põhjust arvata, nagu peaks antud vorm võtma just nii palju ruumi, sest kasutajatel võivad olla väga erinevad fondisuurused ja ekraanilahutused.

Spetsiaalne tööriist, mida nimetatakse vidinate paigutuseks, aitab vormi vidinad automaatselt paigutada. Vidina paigutus on toiming, millega kaks või enam vidinat rühmitatakse, et need asuksid üksteise suhtes mõistlikult ja et nende suurus oleks samuti mõistlik.

Paigutuse kasutamine vormis parandab joondust. Lisaks kasutatakse ruumi paremini ära. Tekstiväljad on üksteisele lähemal, vahed on ühesugused.

##### Vidinate suuruse reeglid paigutuses

&kexi; võimaldab valida vidinate mitmesuguse suuruse vahel. Suuruse reeglid on väga paindlikud ning lubavad täpselt määrata, kuidas vidinat kasvatatakse või kahandatakse vastavalt teda ümbritsevatele vidinatele ja vormis saadaolevale ruumile.

Pärast vidinate asetamist reale nende suurust muudetakse, et nad mahutaksid ära oma nähtava teksti.

Iga vormi lisatud vidina puhul pakub omaduste redaktor välja suuruse reeglid. Need on koondatud rühma Suuruse reegel.

See omaduste rühm sisaldab järgmisi elemente:

Horisontaalse suuruse tüüp

- määrab vidina suuruse rõhtsuunas

Vertikaalse suuruse tüüp

- määrab vidina suuruse püstsuunas

Horisontaalne venitamine

- määrab horisontaalse suuruse tüübi tugevuse

Vertikaalne venitamine

- määrab vertikaalse suuruse tüübi tugevuse

##### Suuruse reeglite väärtused

Järgnevad väärused on nähtavad omaduste redaktori omaduste Horisontaalse suuruse tüüp ja Vertikaalse suuruse tüüp ripploendis:

Fikseeritud

- vidina suurust ei muudeta automaatselt, see jääb alati täpselt nii suureks, nagu kujundamise ajal määratud (kõrgus või laius)

Miinimum

- vidina algne suurus määratakse nii väikeseks kui võimalik, kuid vajaduse korral seda suurendatakse. Selle reegliga saab vidina sundida vajaduse korral laienema kas või tervele laiusele või kõrgusele, eriti kui venitamise väärtus määrata suuremaks kui 0.

Maksimum

- vidina algne suurus määratakse nii suureks kui võimalik ning seda saab kahandada ilma vidina kasutuskõlblikkust ja loetavust halvendamata, kui teised vidinad vajavad rohkem ruumi

Eelistatud

- vidina algne suurus on parim ja eelistatud, vidinat saab suurendada või vähendada, ilma et see kaotaks loetavuses

Laienev

- vidina algne suurus määratakse mõistlikuna, kuid seda saab kahandada või suurendada, et see hõivaks nii palju ruumi kui parajasti vaja

Minimaalselt laienev

- vidina algne suurus määratakse mõistlikuna, kuid seda saab suurendada, et see hõivaks nii palju ruumi kui parajasti vaja

Ignoreeritud

- vidina algset suurust ignoreeritakse, kuid seda saab suurendada, et see hõivaks nii palju ruumi kui parajasti vaja, ehkki tavaliselt teised vidinad seda tegelikkuses ei luba

Erinevat tüüpi vidinatel on erinevad vaikimisi suuruse reeglid: näiteks nupuvidina vaikimisi suuruse reegel on Miinimum (mõlemas suunas), tekstiväljal aga vertikaalne suurus Fikseeritud.

Kõige levinumad suuruse reeglid on Eelistatud, Miinimum ja Maksimum.

##### Vertikaalne ja horisontaalne venitamine

Omadused Vertikaalne venitamine ja Horisontaalne venitamine tunnistavad täisarvväärtusi 0 või suuremad. Need omadused võimaldavad suuruse reegli täppishäälestust. Omaduste vaikimisi väärtus on 0. Venitamise suurem väärus tähendab seda, et vidinat suurendatakse rohkem kui teisi vidinaid, mille venitamise väärtus on väiksem.

### Andmete sisestamine vormide abil

Andmete sisestamine ja redigeerimine on tavaliselt andmebaasirakenduse kasutaja ülesanne. Andmebaasi looja peaks aga kontrollima vormi andmekirjete korrektsust ning vaatama, kas vorm toimib nii nagu vaja.

Vormi testimiseks lülitu selle andmevaatele. Näidatakse üht andmebaasirida (kirjet). Väljade vahel saab liikuda hiire vasaju nupuga või klahvidega > ja &Shift; . Redigeerimise ajal on kirje navigaatori juures näha pliiatsisümbol. Pärast rea (kirje) andmete sisestamist vajuta klahve &Shift;&Enter; või klõpsa tööriistaribal nuppu Salvesta kirje, mis salvestab aktiivsesse ritta tehtud muudatused. Klõps tööriistariba nupule Tühista kirje muudatused tühistab aktiivsesse ritta tehtud muudatused ning taastab andmeväljade sisu. Kirje navigaatori nupuga saab liikuda uude ritta. Kõik navigaatori funktsioonid on samasugused nagu andmetabelivaates.

## Kexi seadistamine

- Külgpaneelide dokkimine ja lahtihaakimine

### Külgpaneelide dokkimine ja lahtihaakimine

Projekti navigaatori ja omaduste redaktori külgpaneeli saab lahti haakida:

- topeltklõpsuga paneeli ülaosas asuvale 'haarderibale' või

- ühekordse klõpsuga rombikujulisele nupule paneeli ülaosas x-i kõrval.

Lahtihaagitud paneele saab taas peaaknasse dokkida samamoodi:

- topeltklõpsuga akna ülaosas asuvale 'haarderibale' või

- ühekordse klõpsuga rombikujulisele nupule paneeli ülaosas x-i kõrval.

Paneeli lahtihaakimisel jätab &kexi; meelde viimase dokitud asukohta, nii et kui dokid paneeli uuesti, asetatakse see sinna, kus see paiknes viimati.

## Käskude seletused

- Kaart Kexi

- Kaart Loomine

- Kaart Andmed

- Kaart Välised andmed

- Kaart Tööriistad

- Kaart Vormi kujundus

- Kaart Aruande kujundus

### Kaart Kexi

Kaart &kexi; on koht, kus saad käidelda &kexi; projekte.

Toimingu valimine avab ekraani menüüst paremal, pakkudes valikuid valitud toimingule.

Saadaval on järgmised valikud:

Tere tulemast

- Siin saab valida avamiseks projekti, mille kallal oled hiljuti töötanud.

Ava

- Siin saab avada &kexi; projekti, olgu see siis salvestatud faili või andmebaasiserverisse.

Sulge

- Siin saab sulgeda parajasti avatud &kexi; projekti.

Uus

- Siin saab nõustaja abil luua uue &kexi; projekti.

Import, eksport või saatmine...

- Siin saab nõustaja abil importida olemasolevad andmed parajasti avatud &kexi; projekti.

Välju

- Sulgeb &kexi;.

### Kaart Loomine

Kaardil Loomine saab luua projekti lisatavaid objekte.

Tabel

- Kui valid Tabel, ilmub tabeli kirjeldamise ekraan kujundusvaates, mis lubab lisada tabelisse väljade definitsioone.

Päring

- Kui valid Päring, ilmub päringu kirjeldamise ekraan kujundusvaates, mis võimaldab kirjeldada päringu, millega hankida projekti tabelitest kohandatud tulemusi.

Vorm

- Kui valid Vorm, ilmub vormi kujundamise ekraan kujundusvaates, mis lubab lisada vormi vidinaid.

Aruanne

- Kui valid Aruanne, ilmub aruande kujundamise ekraan kujundusvaates, mis lubab lisada aruandesse vidinaid.

Skript

- Kui valid Skript, ilmub skriptiredaktor, mis lubab lisada projekti või objektidele kohandatud koodi.

### Kaart Andmed

Kaardil Andmed saab käidelda tabelite andmeid või objektide (vormide, aruannete jms.) vidinaid.

Lõika

- Lõika kopeerib andmed või vidina lõikepuhvrisse ja eemaldab selle praegusest asukohast.

Kopeeri

- Kopeeri kopeerib andmed või vidina lõikepuhvrisse, eemaldamata seda selle praegusest asukohast.

Aseta

- Aseta asetab lõikepuhvris leiduvad andmed või vidina tabelisse või objekti.

Aseta eriliselt

- Aseta eriliselt on kasutusel suvaliste lõikepuhvris leiduvate andmete asetamiseks tabelisse teataval kindlal viisil, et need lisataks korrektselt tabeli definitsiooni.

Otsi

- Otsi avab otsimisdialoogi konkreetse teksti otsimiseks andmebaasi andmetest.

### Kaart Välised andmed

Kaardil Välised andmed saab importida muude allikate andmeid &kexi; projekti.

Impordi andmed failist

- Impordi andmed failist avab dialoogi, mille abil saab importida CSV- või lihttekstifaili andmed projekti uude tabelisse.

Impordi tabelid

- Impordi tabelid avab tabeli importimise nõustaja, mis lubab importida andmeid `fods`-, `mdb`-, `ods`- või `tsv`-failist või mõnest muust andmebaasiserverist projekti uude tabelisse.

Ekspordi andmed failina

- Ekspordi andmed failina avab dialoogi, mis lubab eksportida aktiivsete tabelite andmed lihtteksti- või CSV-failina.

Et andmeid saaks tabelist faili eksportida, peab tabel olema avatud.

### Kaart Tööriistad

Kaardil Tööriistad saab käidelda projekte.

Tihenda andmebaas

- Tihenda andmebaas kontrollib väiksemaid vigasid andmebaasis ja vähendab andmebaasi suurust.

Andmebaasi tuleks regulaarselt tihendada, et see ikka heas korras püsiks, eriti pärast suuremaid kirjendamistegevusi (massiline lisamine või kustutamine jne.).

### Kaart Vormi kujundus

Kaardil Vormi kujundus saab valida vidinaid, mida lisada vormi.

Viit

- Viit lülitab vidina valimise režiimi.

Suvalise vidina valimine lülitab vidina lisamise režiimi. Seejärel võib klõpsata sobivale kohale vormis, et vidin paika asetada.

Pealdis

- Vidin Pealdis kuvab vormis määratud teavet. Tavaliselt kasutatakse seda pealdisena teiste andmetundlike vidinate kõrval.

Tekstikast

- Tekstikast on üherealine tabelis leiduvate andmete konteiner.

Tekstiredaktor

- Tekstiredaktor on mitmerealine tabelis leiduvate andmete konteiner.

Liitkast

- Liitkast kuvab kasutajale mitu valikut.

Märkekast

- Märkekast sisaldab kaks või kolm andmeolekut (nt. sees/väljas).

Pildikast

- Pildikast sisaldab tabeli väljaga seotud pilti.

Nupp

- Nupp võimaldab defineerida toiminguid, mis käivitatakse sellele klõpsamisel.

Raam

- Raam on konteiner teiste vidinate jaoks.

Grupikast

- Grupikasti kasutatakse teiste vidinate rühmitamiseks ja nende oleku kontrollimiseks.

Kaardividin

- Kaardividinat kasutatakse teiste vidinate konteinerina ja sel võib olla mitu eri vidinaid sisaldavat lehekülge.

Joon

- Joon on kasutusel vormi erinevate osade eraldamiseks.

Veebibrauser

- Veebibrauser on vidin, mis lubab vormis kuvada veebilehekülge.

Omista toiming

- Omista toiming võimaldab kindlaks määrata toimingu, mis täidetakse teatava sündmuse korral (nt. nupule klõpsates).

### Kaart Aruande kujundus

Kaardil Aruande kujundus saab valida vidinaid, mida lisada aruandesse.

Pealdis

- Vidin Pealdis kuvab aruandes määratud teavet Tavaliselt kasutatakse seda pealdisena teiste andmetundlike vidinate kõrval.

Väli

- Väli on üherealine tabelis leiduvate andmete konteiner.

Tekst

- Tekst on mitmerealine tabelis leiduvate andmete konteiner.

Pilt

- Pilt sisaldab tabeli väljaga seotud pilti.

Märgis

- Märgis sisaldab kaks või kolm andmeolekut (nt. sees/väljas).

Joon

- Joon on kasutusel vormi erinevate osade eraldamiseks.

Diagramm

- Vidinat Diagramm saab kasutada andmete esitamiseks diagrammina.

Veeb

- Vidin Veeb tagab minimaalse veebibrauseri komponendi, et näidata aruandes kohalikku või veebilehekülje teavet.

Ribakood

- Vidinaga Ribakood saab luua väljas leiduvate andmete põhjal aruandes näidatava ribakoodi.

## Lisa A. Sissejuhatus andmebaasidesse

- Mis on andmebaas?

- Andmebaas ja arvutustabel

- Andmebaasi disain

- Kes vajab andmebaasi?

- Andmebaaside loomise tarkvara

### Mis on andmebaas?

Andmebaasi võib määratleda kui teatud teemat puudutavate andmete kogumit. See on korraldatud viisil, mis lubab infot hõlpsasti uurida, muudatusi teha ning uusi kirjeid lisada.

Vaatame näiteks siinset skeemi, millel on kujutatud lihtne telefoniraamat.

Toodud pildil on näha kaks kontakti, kumbki omaette kaardil. Tabelis saab sellise kaardi seada ühele reale:

### Kontaktide tabel

Nimi | Tel. nr.
Joan | 699 23 43 12
Adam | 711 19 77 21

Mõisted: konkreetsed andmed, mis moodustavad osa suuremast kogust, kannavad nimetust rida või kui kasutada professionaalsemat väljendit, siis kirje. Kogu ise kannab tavaliselt nimetust tabel. Kõige mõistlikum on üldiselt anda tabelile nimi, mis väljendab selles peituvate andmete sisu - antud juhul siis Kontaktid. Iga rida koosneb mitmest veerust, mida mõnikord nimetatakse ka väljadeks. Tabelis `Kontaktid` on kaks veergu (välja): Nimi ja Tel. nr.

Lihtsamas tähenduses moodustab juba üks tabel andmebaasi. Paljud peavadki neid samaväärseks. Aga nagu edaspidi näeme, on tegelikes andmebaasides tavaliselt märksa enam kui üks tabel.

Kokkuvõtteks võib öelda, et meil on nüüd juba lihtne andmebaas ühe tabeliga, mis kannab nime `Kontaktid`.

Uuri lähemalt linki

### Andmebaas ja arvutustabel

Arvatavasti oled juba kasutanud mõnda tabeliarvutusrakendust, näiteks Calligra Sheets, LibreOffice Calc või &Microsoft; Excel. Sellisel juhul tekib vahest mõte: kui nii arvutustabelis kui ka andmebaasis on tabelid, siis miks viimast üldse kasutada?

Arvutustabeleid ja andmebaase võrreldes puutud usutavasti kokku järgmiste probleemidega, mida vaatleme allpool lähemalt.

#### Mille poolest erineb andmebaas arvutustabelist?

Laiendame oma tabelit `Kontaktid` veidi ja lisame veeru (välja) `Aadress`. Lisame igale isikule veel telefoninumbreid (kodus, tööl) ning ka nende perekonnanimed. Lihtsuse mõttes eeldame järgmisi asju:

- Tabel on piiratud kahe inimesega (mõistagi võib reaalses andmebaasis olla sadu ja tuhandeid isikuid)

- Pole ühesuguse ees- ja perekonnanimega isikuid

#### Kontaktide tabel

Ees- ja perekonnanimi | Tel. nr. | Aadress
Joan Smith | 699 23 43 12 | Brama Zachodnia 1, Varssavi
Adam Willson | 711 19 77 21 | London, Frogs Drive 5
Joan Smith | 110 98 98 00 | Brama Zachodnia 1
Smith Joan | 312 43 42 22 | Varssavi, Brama Zachodnia 1
ADAM Willson | 231 83 02 04 | Frogs Drive 5, London

Sellist tabelit võib luua nii arvutustabeli kui andmebaasina. Arvutustabeli kasutamine on loomulikult väga lihtne. Milliste probleemidega me hetkel silmitsi seisame?

#### Andmete viiteterviklus

Oletame, et kasutad arvutustabelit ja sul tuleb muuta vähemalt ühe isiku aadressi. Sinu ees seisab pisike probleem: sageli tuleb selleks muuta aadressi paljudel ridadel. Nii võib näiteks Joan esineda kolmel real. Probleem tekib siis, kui unustad üht neist ridadest muuta: isikule omistatud aadress muutub mitmetähenduslikuks, see aga tähendab, et sinu andmed kaotavad tervikluse.

Pealegi pole kuigi lihtsat võimalust mõnda isikut tabelist kustutada: selleks tuleb kustutada kõik teda sisaldavad read.

#### Andmete liiasus

See on otseselt seotud eelneva probleemiga. Väljadele Ees- ja perekonnanimi ning Aadress on samu andmeid sisestatud mitu korda. See on arvutustabelitele tüüpiline vähetõhus viis andmete salvestamiseks, sest andmebaas kasvab nii või teisiti, nõudes vastavalt aina enam ressursse arvutilt (suuremad andmed ja aeglasem ligipääs).

Kuidas aitab andmebaas neid probleeme lahendada? Info võib jagada väikesteks tükkideks, luues täiendava tabeli `Isikud` vaid kahe veeruga: `Ees- ja perekonnanimi` ning `Aadress`:

#### Isikute tabel

Ees- ja perekonnanimi | Aadress
Joan Smith | Brama Zachodnia 1, Varssavi
Adam Willson | Frogs Drive 5, London

Iga tabeli `Isikud` rida vastab ainult ühele isikule. Tabel `Kontaktid` on nüüd seotud tabeliga `Isikud`.

#### Andmeterviklus ja -õigsus

Pane tähele, kuidas on andmed sisestatud väljadele `Ees- ja perekonnanimi` ning `Aadress`. Andmeid sisestavad inimesed võivad mõnikord eksida või olla hooletud. Meie näites ongi andmeid sisestatud erinevalt: Joan Smith ja Smith Joan, Adam ja ADAM. Üht ja sama aadressi võib samuti mitmel moel sisestada, nagu ka meie tabel näitab.

See probleem ilmneb siis, kui otsid näiteks isiku telefoninumbrit, kelle aadress on Brama Zachodnia 1, Varssavi. Sa leiad kolme kirje asemel ainult ühe. Samuti ei leia sa kaugeltki kõiki telefoninumbreid, kui otsid välja `Ees- ja perekonnanimi` järgi isikut Joan Smith, sest Joan Smith ja Smith Joan loetakse antud juhul erinevaks.

Kuidas aitab andmebaas neid probleeme lahendada? Selleks tuleks muuta tabeli `Isikud` ülesehitust:

1. Jagada andmed väljal Ees- ja perekonnanimi kahele väljale: `Eesnimi` ja `Perekonnanimi`.

2. Jagada andmed väljal `Aadress` kolmele väljale: `Tänav`, `Majanumber` ja `Linn`.

3. Tagada andmeõigsus nõudega, et väljad ei oleks tühjad (s.t. et alati tuleb sisestada ka näiteks majanumber).

Muudetud tabel näeb välja nii:

#### Isikute tabel

Nimi | Perekonnanimi | Tänav | Majanumber | Linn
Joan | Smith | Brama Zachodnia | 1 | Varssavi
Adam | Willson | Frogs Drive | 5 | London
Tingimused
nõutav väli | nõutav väli | nõutav väli | nõutav väli | nõutav väli

Tänu tingimuse nõutav väli lisamisele võime olla kindlad, et sisestatud andmed on täielikud. Mõningate tabelite korral võib muidugi andmete sisestamisel lubada teatud väljade tühjaksjätmist.

#### Andmevaate piiramine

Arvutustabelid näitavad tabeli kõiki ridu ja veerge, mis eriti väga suurte andmetabelite korral on päris tülikas. Arvutustabelis võib muidugi ridu filtreerida ja sorteerida, kuid seejuures peab olema väga ettevaatlik. Arvutustabeli kasutajad võivad sageli unustada, et andmevaade on filtreeritud, mis võib kaasa tuua eksimusi. Näiteks summa arvutamisel võid arvata, et sul ongi 100 andmerida, ehkki tegelikult on veel 20, aga need on peidetud.

Kui soovid kasutada andmete väiksemat hulka, näiteks saata neid teistele redigeerimiseks, võib need kopeerida ja asetada teise arvutustabelisse ning redigeerimise järel muudetud andmed taas põhitabelisse asetada. Kuid sellise käsitsi redigeerimise korral valitseb suur andmekao või vigaste arvutuste võimalus.

Andmevaate piiramiseks pakuvad andmebaasirakendused päringuid, vorme ja aruandeid.

Ühe praktilise piiramise näitena vaatleme varasema tabeli `Isikud` laiendatud versiooni:

#### Isikute tabel

Nimi | Perekonnanimi | Tänav | Majanumber | Linn | Sissetulek
Joan | Smith | Brama Zachodnia | 1 | Varssavi | 2300
Adam | Willson | Frogs Drive | 5 | London | 1900

Eeldame, et lisatud veerg Sissetulek sisaldab konfidentsiaalseid andmeid. Kuidas jagada nüüd näiteks isikute kontaktandmeid oma kaastöötajatega ilma nende isikute sissetulekut paljastamata? See on võimalik, kui jagad ainult päringu, aga mitte terve tabeli. Päring võib valida kõik veerud, välja arvatud veerg Sissetulek. Andmebaaside maailmas kannab selline päring sageli nimetust vaade.

#### Jõudlus ja võimsus

Sinu arvuti võib olla küll võimas, aga peaaegu kindlasti koged, et väga suurte arvutustabelite korral jääb see ometi aeglaseks. Selle põhjuseks on esmajoones indeksi puudumine, mis kiirendaks andmete otsingut. Andmebaasid pakuvad sellist võimalust. Kui aga kasutad näiteks süsteemset lõikepuhvrit, võib isegi andmete kopeerimisele kuluda närviajavalt palju aega.

Suuri andmekogumeid sisaldavate arvutustabelite avamisele võib kuluda väga palju aega. Arvutustabelid laadivad avamisel hulga andmeid arvuti mällu. Tõenäoliselt on enamik laaditud andmeist parajasti kasutud või ebavajalikud. Erinevalt arvutustabelitest laadivad andmebaasid andmeid arvuti mällu ainult sellise vajaduse tekkimisel.

Enamasti pole vaja andmebaaside puhul muret tunda, kuidas need andmeid salvestavad. See tähendab, et erinevalt arvutustabelitest ei ole andmebaaside puhul vaja muret tunda järgmiste asjade pärast:

- Ridade järjekord, sest sa võid ridu järjestada vastavalt vajadusele. Pealegi võib samu andmeid vaadata mitmes vaates erineval moel.

- Sama käib tabeli veergude (väljade) kohta.

Koos eelnevas alajaotuses kirjeldatud andmevaate piiramise võimalusega on need omadused andmebaaside väga suureks eeliseks.

#### Andmekirje

Tabelitöötlusrakenduste uusimad versioonid võimaldavad kujundada andmekirjete vorme. Neist on kõige enam kasu siis, kui sinu andmeid ei ole eriti mõistlik esitada tabelina: näiteks kui tekst hõlmab liiga palju ridu või kui kõik veerud ei mahu mingil tingimusel ekraanile ära.

Sellisel juhul osutuvad arvutustabelid juba olemuselt problemaatiliseks. Selliste andmekirjete väljad paiknevad arvutustabelis suvaliselt ega pole tihtipeale eriti turvaliselt kaitstud kasutaja (tahtliku või tahtmatu) sekkumise eest.

#### Aruanded

Andmebaasid võimaldavad andmeid rühmitada, piirata ja summeerida aruande kujul. Arvutustabelid esitatakse nii ekraanil kui ka trükituna tavaliselt väikeste tabelitena, ilma et sul oleks täielik kontroll lehekülje ja väljade paigutuse üle.

#### Programmeerimine

Andmebaaside loomise rakendused sisaldavad sageli terveid programmeerimiskeeli. Uuematel tabelitöötlusrakendustel on samuti see funktsionaalsus, kuid arvutused piirduvad arvutustabeli väljade muutmise ja lihtsa andmete kopeerimisega ega arvesta kuigivõrd eelpool mainitud tervikluse nõuetega.

Andmete töötlemine arvutustabelis käib sageli graafilises kasutajaliideses, mis võib aeglustada andmetöötluse kiirust. Andmebaasid võivad töötada taustal, ilma graafilist kasutajaliidest kasutamata.

#### Ühiskasutus

Ühe arvutustabeli ühiskasutust on isegi raske ette kujutada. Uusimate rakendustega võib see küll olla tehniliselt võimalik, kuid see nõuab kasutajatelt väga suurt distsipliini, tähelepanelikkust ja teadlikkust, mida on väga raske tagada.

Arvutustabelisse salvestatud andmete klassikaline teistega jagamise viis on saata neile fail tervikuna (tavaliselt e-postiga) või panna see tabelarvutuse failina välja võrku. Suuremate inimrühmade korral on see väga vähetõhus: andmed, mida sul mingil konkreetsel hetkel vaja läheb, võivad olla lukustatud, sest neid kasutab keegi teine.

Andmebaasid on aga juba kavandatud mõttega, et neid võib korraga kasutada ka palju inimesi. Isegi kõige lihtsamates versioonides saab lukustada või vabaks anda tabeli iga rida, mis tagab väga lihtsa ja hõlpsa tabeliandmete jagamise.

#### Turvalisus

Arvutustabeli või selle konkreetsete osade kaitsmine parooliga on üldiselt rohkem sümboolne. Kui tabelarvutuse fail on võrku pandud, võib iga isik, kellel on antud asukohta ligipääs, selle sealt endale kopeerida ja üritada parooli murda. Mõnikord pole see sugugi raske, sest parool on salvestatud arvutustabeliga samasse faili.

Sama lihtne on jagu saada arvutustabeli või selle osa redigeerimise või kopeerimise lukustamise võimalustest.

Andmebaasid aga (välja arvatud need, mis on serveri asemel salvestatud failina) ei pruugi üldse asuda ühes failis. Neile pääseb ligi võrgus, tavaliselt on selleks vaja anda kasutajanimi ja parool. Ligipääsu saad ainult neile aladele (tabelid, vormid või isegi konkreetsed read ja veerud), millele sulle on selline õigus antud.

Kasutamisõigused võivad tähendada õigust andmeid muuta või ka ainult neid vaadata ehk lugeda. Kui mingeid andmeid pole sulle kättesaadavaks tehtud, ei saadeta neid sinu arvutisse, nii et sul pole neid võimalik kopeerida või vähemalt ei ole see kaugeltki nii lihtne kui tabelarvutuse failide korral.

### Andmebaasi disain

Andmebaasi disain vajab hoolikat läbimõtlemist. Pane tähele, et näiteks osas Andmeterviklus ja -õigsus kirjeldatud tabeli `Isikud` ümberkujundamine võib tekitada probleeme, kui tabel on juba andmetega täidetud. Nii ei ole näiteks välja ümbernimetamine sugugi raske tegevus, kuid välja `Aadress` jagamine kaheks eraldi väljaks nõuab väga hoolikat ja pingsat tööd.

Selliste probleemide vältimiseks loo oma andmebaasiprojekt üksikasjalikult juba peas, enne kui hakkad seda looma arvutis ning sa ise ja teised seda kasutama hakkavad. Kui kulutad algul aega veidi rohkem, säästad tõenäoliselt edaspidi omajagu nii enda kui kõigi teiste aega.

### Kes vajab andmebaasi?

#### Püsi arvutustabelite juures, kui:

- Sinu vajadused on piiratud ning sinu andmed ei kasva kunagi kuigi suureks (ehkki - kas sa oskad seda tõesti ette näha?)

- Sa ei ole suuteline omandama andmebaaside loomise meetodeid. Siiski võiks sellisel juhul kaaluda mõtet anda see ülesanne kellelegi teisele või kasutada lihtsamaid tööriistu.

- Sa kasutad keerukaid arvutustabeleid ning sul puudub aeg või raha andmebaasidele üleminekuks. Mõtle siiski või pea kellegagi aru, kas see ei vii sind ummikusse. Ära looda maagilistele abivahenditele, mis muudavad sinu (ükspuha kui hästi loodud) arvutustabelid vaevata andmebaasiks.

#### Kaalu andmebaaside kasutamist, kui:

- Sinu andmekogu kasvab iga nädalaga.

- Sa lood sageli uusi arvutustabeleid, kopeerid nende vahel andmeid ning tunned, et see muutub aina keerulisemaks ja vaevalisemaks. Sel juhul tasub üleminek andmebaasidele ennast kindlasti ära.

- Sa lood aruandeid ja õiendeid, mille jaoks arvutustabeli tabelivaade hästi ei sobi. Sel juhul tasuks kasutada vormivaadetega andmebaasi.

### Andmebaaside loomise tarkvara

Seni on juttu olnud andmebaaside üldistest omadustest, kuid me pole puudutanud konkreetseid rakendusi, millega neid luua ja kujundada.

Esimesed andmebaasid loodi 1960. aastatel koos võimsate suurarvutitega (⪚ IBM System/360). Toona ei olnud tänaseid personaalarvuteid, mistõttu ka andmebaasid nõudsid hea väljaõppega personali. Ehkki omaaegsete arvutite riistvara polnud kuigi usaldusväärne ning nad olid üüratult aeglased ja mahutasid vähe andmeid, on üks andmebaaside juba toonane omadus jäänud tänini püsima: ligipääsu tagamine andmetele üle võrgu paljudele kasutajatele korraga.

1970. aastatel töötasid teadlased välja relatsioonandmebaaside teooria (märksõnadeks on sellised mõisted nagu tabel, kirje, veerg (väli), relatsioonilisus ja nii edasi). Selle teooria alusel loodi IBM-i DB2 ja Oracle'i andmebaasid, mida arendatakse ja kasutatakse veel tänapäevalgi. 1970. aastate lõpus loodi esimesed personaalarvutid. Nende kasutajad said (aegamööda) võimaluse hakata kasutama mitmesuguseid rakendusi, sealhulgas selliseid, millega luua andmebaase.

Kui rääkida firmade suurtest andmebaasidest, pole olukord väga palju muutunud: need vajavad endiselt võimsaid arvuteid või arvutikogumeid ehk klastreid. See teema aga väljub käesoleva käsiraamatu piirest.

Personaalarvutites kättesaadavate graafilise kasutajaliidesega andmebaaside osas on valida järgmiste seast:

- DBase - tööriist andmebaasioperatsioonide sooritamiseks DOS-is, mis oli populaarne 1980. aastatel. DBase-vormingus faile kasutatakse nende lihtsuse tõttu teatud erijuhtudel seniajani.

- FoxPro - DBase'iga sarnane rakendus (1990. aastate algus). Pärast ülevõtmist Microsofti poolt juurutati graafiline kasutajaliides ning seda hakati kasutama ka andmebaaside loomisel personaalarvutites. Seda rakendust pakutakse veel tänapäevalgi, ehkki see tundub olevat veidi iganenud.

- Microsoft Access - graafilise kasutajaliidesega andmebaaside disaini võimaldav rakendus, mis tänu mitmetele lihtsustustele sobib ka algajatele. Loodi 1980. aastate lõpus, tugineb 16-bitisele arvutiarhitektuurile. Seda toodet pakutakse tänaseni laialdaselt ja ka kasutatakse ohtralt eriti väikeettevõtetes, kus tõhusus ja ühiskasutus pole esmatähtsad.

- FileMaker - lihtsuse mõttes MS Access'iga sarnanev rakendus, mis töötab Windowsi ja Macintoshi platvormil. Turul alates 1985. aastast.

- Kexi - rakendus paljudele platvormidele (&UNIX;/&Linux;, Windows, &MacOS; X), mis loodi 2003 aastal Seda arendatakse vaba tarkvara põhimõtetest lähtudes ning see kuulub üleilmse KDE kogukonna koosseisu, mis muu hulgas loob &UNIX;/&Linux; süsteemide graafilist töökeskkonda. &kexi; arendamise üks märkimisväärsemaid toetajaid on ettevõte OpenOffice Polska.

## Lisa B. Kexi võrdlus teiste andmebaasirakendustega

- Andmetüübid

### Andmetüübid

Kuigi erinevad andmebaasirakendused pakuvad üldiselt samasugust funktsionaalsust, kipub nende terminoloogia mõnikord erinema. Et sul lihtsam oleks, näitab see lisa, millised on &kexi; ja teiste andmebaasirakenduste terminite vastavused. Selle teadmine tuleb eriti kasuks siis, kui võtad ette näiteks andmebaasi migreerimise ühest rakendusest teise.

Siinne tabel näitab vastavusi &kexi; ja teiste andmebaasirakenduste andmetüüpide vahel.

Mõned toodud andmetüübid on teiste tüüpide alamtüübid. Näiteks Long text on tüübi Text alamtüüp. Alamtüübi kasutamiseks &kexi;s tuleb valida tabelidisaineris vastav baastüüp (antud juhul Text) ning seejärel alamtüüp valikuga Alamtüüp omaduste redaktoris.

### Kexi ja teiste andmebaasirakenduste andmetüüpide võrdlus

&kexi; | MS Access | dBase/FoxPro | Paradox
Text (Text) | Text | Character | Alphanumeric
Long text (Long text) | Memo | Memo | Memo
Date/Time (Date/Time) | Date, Time | Date | DateTime
Integer Number (Integer Number) | Number (Integer) | Numeric | Integer
Big Integer Number (Big Integer Number) | Long Integer | Numeric | Long Integer
Floating Point Number (Floating Point Number) | Single/Double precision number | Float | Number

## Lisa C. SQL-i reserveeritud sõnad

Järgnev nimekiri sisaldab sõnu, mida &kexi; kasutab sisemiselt andmeallikatega tegeldes.

Andmebaasi kujundades tuleks kindlasti vältida nende reserveeritud sõnade kasutamist, sest see võib lõppeda andmebaasifaili probleemidega või selle sootuks ära rikkuda.

Kui siiski tunned vajadust kasutada reserveeritud sõnu, ümbritse nad topeltjutumärkidega .

### Kexi SQL-i reserveeritud sõnad

See nimekiri sisaldab võtmesõnu, mis on reserveeritud Kexi SQL-i tarbeks.

- AFTER

- ALL

- ASC

- BEFORE

- BEGIN

- BETWEEN

- BY

- CASCADE

- CASE

- CHECK

- COLLATE

- COMMIT

- CONSTRAINT

- CROSS

- DATABASE

- DEFAULT

- DELETE

- DESC

- DISTINCT

- DROP

- END

- ELSE

- EXPLAIN

- FOR

- FOREIGN

- FULL

- GROUP

- HAVING

- IGNORE

- INDEX

- INNER

- INSERT

- INTO

- KEY

- LIMIT

- MATCH

- NATURAL

- OFFSET

- ORDER

- OUTER

- PRIMARY

- REFERENCES

- REPLACE

- RESTRICT

- ROLLBACK

- ROW

- SET

- TEMPORARY

- THEN

- TRANSACTION

- UNION

- UNIQUE

- UPDATE

- USING

- VALUES

- WHEN

### Kexi SQLite'i draiveri reserveeritud sõnad

See nimekiri sisaldab võtmesõnu, mis on reserveeritud Kexi SQLite'i draiveri tarbeks.

- ABORT

- ATTACH

- CLUSTER

- CONFLICT

- DEFERRED

- DEFERRABLE

- DETACH

- EACH

- EXCEPT

- FAIL

- GLOB

- IMMEDIATE

- INITIALLY

- INSTEAD

- INTERSECT

- ISNULL

- NOTNULL

- OF

- PRAGMA

- RAISE

- STATEMENT

- TEMP

- TRIGGER

- VACUUM

- VIEW

### Kexi MySQL'i draiveri reserveeritud sõnad

See nimekiri sisaldab võtmesõnu, mis on reserveeritud Kexi MySQL'i draiveri tarbeks.

- ACTION

- ADD

- AGAINST

- AGGREGATE

- ALTER

- ANALYZE

- ANY

- ASCII

- AUTO_INCREMENT

- AVG

- AVG_ROW_LENGTH

- BACKUP

- BDB

- BERKELEYDB

- BIGINT

- BINARY

- BINLOG

- BIT

- BLOB

- BOOL

- BOOLEAN

- BOTH

- BTREE

- BYTE

- CACHE

- CHANGE

- CHANGED

- CHAR

- CHARACTER

- CHARSET

- CHECKSUM

- CIPHER

- CLIENT

- CLOSE

- COLLATION

- COLUMN

- COLUMNS

- COMMENT

- COMMITTED

- COMPRESSED

- CONCURRENT

- CONVERT

- CUBE

- CURRENT_DATE

- CURRENT_TIME

- CURRENT_TIMESTAMP

- CURRENT_USER

- DATA

- DATABASES

- DATE

- DATETIME

- DAY

- DAY_HOUR

- DAY_MICROSECOND

- DAY_MINUTE

- DAY_SECOND

- DEALLOCATE

- DEC

- DECIMAL

- DELAYED

- DELAY_KEY_WRITE

- DESCRIBE

- DES_KEY_FILE

- DIRECTORY

- DISABLE

- DISCARD

- DISTINCTROW

- DIV

- DO

- DOUBLE

- DUAL

- DUMPFILE

- DUPLICATE

- DYNAMIC

- ENABLE

- ENCLOSED

- ENGINE

- ENGINES

- ENUM

- ERRORS

- ESCAPE

- ESCAPED

- EVENTS

- EXECUTE

- EXISTS

- EXPANSION

- EXTENDED

- FALSE

- FAST

- FIELDS

- FILE

- FIRST

- FIXED

- FLOAT

- FLOAT4

- FLOAT8

- FLUSH

- FORCE

- FULLTEXT

- FUNCTION

- GEOMETRY

- GEOMETRYCOLLECTION

- GET_FORMAT

- GLOBAL

- GRANT

- GRANTS

- HANDLER

- HASH

- HELP

- HIGH_PRIORITY

- HOSTS

- HOUR

- HOUR_MICROSECOND

- HOUR_MINUTE

- HOUR_SECOND

- IDENTIFIED

- IF

- IMPORT

- INDEXES

- INFILE

- INNOBASE

- INNODB

- INSERT_METHOD

- INT

- INT1

- INT2

- INT3

- INT4

- INT8

- INTERVAL

- IO_THREAD

- ISOLATION

- ISSUER

- KEYS

- KILL

- LAST

- LEADING

- LEAVES

- LEVEL

- LINES

- LINESTRING

- LOAD

- LOCAL

- LOCALTIME

- LOCALTIMESTAMP

- LOCK

- LOCKS

- LOGS

- LONG

- LONGBLOB

- LONGTEXT

- LOW_PRIORITY

- MASTER

- MASTER_CONNECT_RETRY

- MASTER_HOST

- MASTER_LOG_FILE

- MASTER_LOG_POS

- MASTER_PASSWORD

- MASTER_PORT

- MASTER_SERVER_ID

- MASTER_SSL

- MASTER_SSL_CA

- MASTER_SSL_CAPATH

- MASTER_SSL_CERT

- MASTER_SSL_CIPHER

- MASTER_SSL_KEY

- MASTER_USER

- MAX_CONNECTIONS_PER_HOUR

- MAX_QUERIES_PER_HOUR

- MAX_ROWS

- MAX_UPDATES_PER_HOUR

- MEDIUM

- MEDIUMBLOB

- MEDIUMINT

- MEDIUMTEXT

- MICROSECOND

- MIDDLEINT

- MINUTE

- MINUTE_MICROSECOND

- MINUTE_SECOND

- MIN_ROWS

- MOD

- MODE

- MODIFY

- MONTH

- MULTILINESTRING

- MULTIPOINT

- MULTIPOLYGON

- NAMES

- NATIONAL

- NDB

- NDBCLUSTER

- NCHAR

- NEW

- NEXT

- NO

- NONE

- NO_WRITE_TO_BINLOG

- NUMERIC

- NVARCHAR

- OLD_PASSWORD

- ONE_SHOT

- OPEN

- OPTIMIZE

- OPTION

- OPTIONALLY

- OUTFILE

- PACK_KEYS

- PARTIAL

- PASSWORD

- POINT

- POLYGON

- PRECISION

- PREPARE

- PREV

- PRIVILEGES

- PROCEDURE

- PROCESS

- PROCESSLIST

- PURGE

- QUERY

- QUICK

- RAID0

- RAID_CHUNKS

- RAID_CHUNKSIZE

- RAID_TYPE

- READ

- REAL

- REGEXP

- RELAY_LOG_FILE

- RELAY_LOG_POS

- RELAY_THREAD

- RELOAD

- RENAME

- REPAIR

- REPEATABLE

- REPLICATION

- REQUIRE

- RESET

- RESTORE

- RETURNS

- REVOKE

- RLIKE

- ROLLUP

- ROWS

- ROW_FORMAT

- RTREE

- SAVEPOINT

- SECOND

- SECOND_MICROSECOND

- SEPARATOR

- SERIAL

- SERIALIZABLE

- SESSION

- SHARE

- SHOW

- SHUTDOWN

- SIGNED

- SIMPLE

- SLAVE

- SMALLINT

- SOME

- SONAME

- SOUNDS

- SPATIAL

- SQL_BIG_RESULT

- SQL_BUFFER_RESULT

- SQL_CACHE

- SQL_CALC_FOUND_ROWS

- SQL_NO_CACHE

- SQL_SMALL_RESULT

- SQL_THREAD

- SSL

- START

- STARTING

- STATUS

- STOP

- STORAGE

- STRAIGHT_JOIN

- STRING

- STRIPED

- SUBJECT

- SUPER

- TABLES

- TABLESPACE

- TERMINATED

- TEXT

- TIME

- TIMESTAMP

- TINYBLOB

- TINYINT

- TINYTEXT

- TRAILING

- TRUE

- TRUNCATE

- TYPE

- TYPES

- UNCOMMITTED

- UNICODE

- UNLOCK

- UNSIGNED

- UNTIL

- USAGE

- USE

- USER

- USER_RESOURCES

- USE_FRM

- UTC_DATE

- UTC_TIME

- UTC_TIMESTAMP

- VALUE

- VARBINARY

- VARCHAR

- VARCHARACTER

- VARIABLES

- VARYING

- WARNINGS

- WITH

- WORK

- WRITE

- X509

- YEAR

- YEAR_MONTH

- ZEROFILL

### Kexi PostgreSQL'i draiveri reserveeritud sõnad

See nimekiri sisaldab võtmesõnu, mis on reserveeritud Kexi pqxx draiveri tarbeks.

- ABORT

- ABSOLUTE

- ACCESS

- ACTION

- ADD

- AGGREGATE

- ALTER

- ANALYSE

- ANALYZE

- ANY

- ARRAY

- ASSERTION

- ASSIGNMENT

- AT

- AUTHORIZATION

- BACKWARD

- BIGINT

- BINARY

- BIT

- BOOLEAN

- BOTH

- CACHE

- CALLED

- CAST

- CHAIN

- CHAR

- CHARACTER

- CHARACTERISTICS

- CHECKPOINT

- CLASS

- CLOSE

- CLUSTER

- COALESCE

- COLUMN

- COMMENT

- COMMITTED

- CONSTRAINTS

- CONVERSION

- CONVERT

- COPY

- CREATEDB

- CREATEUSER

- CURRENT_DATE

- CURRENT_TIME

- CURRENT_TIMESTAMP

- CURRENT_USER

- CURSOR

- CYCLE

- DAY

- DEALLOCATE

- DEC

- DECIMAL

- DECLARE

- DEFAULTS

- DEFERRABLE

- DEFERRED

- DEFINER

- DELIMITER

- DELIMITERS

- DO

- DOMAIN

- DOUBLE

- EACH

- ENCODING

- ENCRYPTED

- ESCAPE

- EXCEPT

- EXCLUDING

- EXCLUSIVE

- EXECUTE

- EXISTS

- EXTERNAL

- EXTRACT

- FALSE

- FETCH

- FIRST

- FLOAT

- FORCE

- FORWARD

- FREEZE

- FUNCTION

- GLOBAL

- GRANT

- HANDLER

- HOLD

- HOUR

- ILIKE

- IMMEDIATE

- IMMUTABLE

- IMPLICIT

- INCLUDING

- INCREMENT

- INHERITS

- INITIALLY

- INOUT

- INPUT

- INSENSITIVE

- INSTEAD

- INT

- INTERSECT

- INTERVAL

- INVOKER

- ISNULL

- ISOLATION

- LANCOMPILER

- LANGUAGE

- LAST

- LEADING

- LEVEL

- LISTEN

- LOAD

- LOCAL

- LOCALTIME

- LOCALTIMESTAMP

- LOCATION

- LOCK

- MAXVALUE

- MINUTE

- MINVALUE

- MODE

- MONTH

- MOVE

- NAMES

- NATIONAL

- NCHAR

- NEW

- NEXT

- NO

- NOCREATEDB

- NOCREATEUSER

- NONE

- NOTHING

- NOTIFY

- NOTNULL

- NULLIF

- NUMERIC

- OF

- OFF

- OIDS

- OLD

- ONLY

- OPERATOR

- OPTION

- OUT

- OVERLAPS

- OVERLAY

- OWNER

- PARTIAL

- PASSWORD

- PATH

- PENDANT

- PLACING

- POSITION

- PRECISION

- PREPARE

- PRESERVE

- PRIOR

- PRIVILEGES

- PROCEDURAL

- PROCEDURE

- READ

- REAL

- RECHECK

- REINDEX

- RELATIVE

- RENAME

- RESET

- RESTART

- RETURNS

- REVOKE

- ROWS

- RULE

- SCHEMA

- SCROLL

- SECOND

- SECURITY

- SEQUENCE

- SERIALIZABLE

- SESSION

- SESSION_USER

- SETOF

- SHARE

- SHOW

- SIMPLE

- SMALLINT

- SOME

- STABLE

- START

- STATEMENT

- STATISTICS

- STDIN

- STDOUT

- STORAGE

- STRICT

- SUBSTRING

- SYSID

- TEMP

- TEMPLATE

- TIME

- TIMESTAMP

- TOAST

- TRAILING

- TREAT

- TRIGGER

- TRIM

- TRUE

- TRUNCATE

- TRUSTED

- TYPE

- UNENCRYPTED

- UNKNOWN

- UNLISTEN

- UNTIL

- USAGE

- USER

- VACUUM

- VALID

- VALIDATOR

- VARCHAR

- VARYING

- VERBOSE

- VERSION

- VIEW

- VOLATILE

- WITH

- WITHOUT

- WORK

- WRITE

- YEAR

- ZONE

### Kexi Oracle'i draiveri reserveeritud sõnad

See nimekiri sisaldab võtmesõnu, mis on reserveeritud Kexi Oracle'i draiveri tarbeks.

- ADMIN

- AFTER

- ALLOCATE

- ANALYZE

- ARCHIVE

- ARCHIVELOG

- AUTHORIZATION

- AVG

- BACKUP

- BECOME

- BEFORE

- BEGIN

- BLOCK

- BODY

- CACHE

- CANCEL

- CASCADE

- CHANGE

- CHARACTER

- CHECKPOINT

- CLOSE

- COBOL

- COMMIT

- COMPILE

- CONSTRAINT

- CONSTRAINTS

- CONTENTS

- CONTINUE

- CONTROLFILE

- COUNT

- CURSOR

- CYCLE

- DATABASE

- DATAFILE

- DATE

- DBA

- DEC

- DECLARE

- DISABLE

- DISMOUNT

- DOUBLE

- DUMP

- EACH

- ENABLE

- END

- ESCAPE

- EVENTS

- EXCEPT

- EXCEPTIONS

- EXEC

- EXECUTE

- EXPLAIN

- EXTENT

- EXTERNALLY

- FETCH

- FLUSH

- FORCE

- FOREIGN

- FORTRAN

- FOUND

- FREELIST

- FREELISTS

- FUNCTION

- GO

- GOTO

- GROUPS

- INCLUDING

- INDICATOR

- INITRANS

- INSTANCE

- INT

- KEY

- LANGUAGE

- LAYER

- LINK

- LISTS

- LOGFILE

- MANAGE

- MANUAL

- MAX

- MAXDATAFILES

- MAXINSTANCES

- MAXLOGFILES

- MAXLOGHISTORY

- MAXLOGMEMBERS

- MAXTRANS

- MAXVALUE

- MIN

- MINEXTENTS

- MINVALUE

- MODULE

- MOUNT

- NEW

- NEXT

- NOARCHIVELOG

- NOCACHE

- NOCYCLE

- NOMAXVALUE

- NOMINVALUE

- NONE

- NOORDER

- NORESETLOGS

- NORMAL

- NOSORT

- NUMERIC

- OFF

- OLD

- ONLY

- OPEN

- OPTIMAL

- OWN

- PACKAGE

- PARALLEL

- PCTINCREASE

- PCTUSED

- PLAN

- PLI

- PRECISION

- PRIMARY

- PRIVATE

- PROCEDURE

- PROFILE

- QUOTA

- READ

- REAL

- RECOVER

- REFERENCES

- REFERENCING

- RESETLOGS

- RESTRICTED

- REUSE

- ROLE

- ROLES

- ROLLBACK

- SAVEPOINT

- SCHEMA

- SCN

- SECTION

- SEGMENT

- SEQUENCE

- SHARED

- SNAPSHOT

- SOME

- SORT

- SQL

- SQLCODE

- SQLERROR

- SQLSTATE

- STATEMENT_ID

- STATISTICS

- STOP

- STORAGE

- SUM

- SWITCH

- SYSTEM

- TABLES

- TABLESPACE

- TEMPORARY

- THREAD

- TIME

- TRACING

- TRANSACTION

- TRIGGERS

- TRUNCATE

- UNDER

- UNLIMITED

- UNTIL

- USE

- USING

- WHEN

- WORK

- WRITE

### Kexi Sybase'i draiveri reserveeritud sõnad

See nimekiri sisaldab võtmesõnu, mis on reserveeritud Kexi Sybase'i draiveri tarbeks.

- ACTION

- ADD

- AGAINST

- AGGREGATE

- ALTER

- ANALYZE

- ANY

- ASCII

- AUTOINCREMENT

- AVG

- AVG_ROW_LENGTH

- BACKUP

- BDB

- BERKELEYDB

- BIGINT

- BINARY

- BINLOG

- BIT

- BLOB

- BOOL

- BOOLEAN

- BOTH

- BTREE

- BYTE

- CACHE

- CHANGE

- CHANGED

- CHAR

- CHARACTER

- CHARSET

- CHECKSUM

- CIPHER

- CLIENT

- CLOSE

- COLLATION

- COLUMN

- COLUMNS

- COMMENT

- COMMITTED

- COMPRESSED

- CONCURRENT

- CONVERT

- CUBE

- CURRENT_DATE

- CURRENT_TIME

- CURRENT_TIMESTAMP

- CURRENT_USER

- DATA

- DATABASES

- DATE

- DATETIME

- DAY

- DAY_HOUR

- DAY_MICROSECOND

- DAY_MINUTE

- DAY_SECOND

- DEALLOCATE

- DEC

- DECIMAL

- DELAYED

- DELAY_KEY_WRITE

- DESCRIBE

- DES_KEY_FILE

- DIRECTORY

- DISABLE

- DISCARD

- DISTINCTROW

- DIV

- DO

- DOUBLE

- DUAL

- DUMPFILE

- DUPLICATE

- DYNAMIC

- ENABLE

- ENCLOSED

- ENGINE

- ENGINES

- ENUM

- ERRORS

- ESCAPE

- ESCAPED

- EVENTS

- EXECUTE

- EXISTS

- EXPANSION

- EXTENDED

- FALSE

- FAST

- FIELDS

- FILE

- FIRST

- FIXED

- FLOAT

- FLOAT4

- FLOAT8

- FLUSH

- FORCE

- FULLTEXT

- FUNCTION

- GEOMETRY

- GEOMETRYCOLLECTION

- GET_FORMAT

- GLOBAL

- GRANT

- GRANTS

- HANDLER

- HASH

- HELP

- HIGH_PRIORITY

- HOSTS

- HOUR

- HOUR_MICROSECOND

- HOUR_MINUTE

- HOUR_SECOND

- IDENTIFIED

- IF

- IMPORT

- INDEXES

- INFILE

- INNOBASE

- INNODB

- INSERT_METHOD

- INT

- INT1

- INT2

- INT3

- INT4

- INT8

- INTERVAL

- IO_THREAD

- ISOLATION

- ISSUER

- KEYS

- KILL

- LAST

- LEADING

- LEAVES

- LEVEL

- LINES

- LINESTRING

- LOAD

- LOCAL

- LOCALTIME

- LOCALTIMESTAMP

- LOCK

- LOCKS

- LOGS

- LONG

- LONGBLOB

- LONGTEXT

- LOW_PRIORITY

- MASTER

- MASTER_CONNECT_RETRY

- MASTER_HOST

- MASTER_LOG_FILE

- MASTER_LOG_POS

- MASTER_PASSWORD

- MASTER_PORT

- MASTER_SERVER_ID

- MASTER_SSL

- MASTER_SSL_CA

- MASTER_SSL_CAPATH

- MASTER_SSL_CERT

- MASTER_SSL_CIPHER

- MASTER_SSL_KEY

- MASTER_USER

- MAX_CONNECTIONS_PER_HOUR

- MAX_QUERIES_PER_HOUR

- MAX_ROWS

- MAX_UPDATES_PER_HOUR

- MEDIUM

- MEDIUMBLOB

- MEDIUMINT

- MEDIUMTEXT

- MICROSECOND

- MIDDLEINT

- MINUTE

- MINUTE_MICROSECOND

- MINUTE_SECOND

- MIN_ROWS

- MOD

- MODE

- MODIFY

- MONTH

- MULTILINESTRING

- MULTIPOINT

- MULTIPOLYGON

- NAMES

- NATIONAL

- NDB

- NDBCLUSTER

- NCHAR

- NEW

- NEXT

- NO

- NONE

- NO_WRITE_TO_BINLOG

- NUMERIC

- NVARCHAR

- OLD_PASSWORD

- ONE_SHOT

- OPEN

- OPTIMIZE

- OPTION

- OPTIONALLY

- OUTFILE

- PACK_KEYS

- PARTIAL

- PASSWORD

- POINT

- POLYGON

- PRECISION

- PREPARE

- PREV

- PRIVILEGES

- PROCEDURE

- PROCESS

- PROCESSLIST

- PURGE

- QUERY

- QUICK

- RAID0

- RAID_CHUNKS

- RAID_CHUNKSIZE

- RAID_TYPE

- READ

- REAL

- REGEXP

- RELAY_LOG_FILE

- RELAY_LOG_POS

- RELAY_THREAD

- RELOAD

- RENAME

- REPAIR

- REPEATABLE

- REPLICATION

- REQUIRE

- RESET

- RESTORE

- RETURNS

- REVOKE

- RLIKE

- ROLLUP

- ROWS

- ROW_FORMAT

- RTREE

- SAVEPOINT

- SECOND

- SECOND_MICROSECOND

- SEPARATOR

- SERIAL

- SERIALIZABLE

- SESSION

- SHARE

- SHOW

- SHUTDOWN

- SIGNED

- SIMPLE

- SLAVE

- SMALLINT

- SOME

- SONAME

- SOUNDS

- SPATIAL

- SQL_BIG_RESULT

- SQL_BUFFER_RESULT

- SQL_CACHE

- SQL_CALC_FOUND_ROWS

- SQL_NO_CACHE

- SQL_SMALL_RESULT

- SQL_THREAD

- SSL

- START

- STARTING

- STATUS

- STOP

- STORAGE

- STRAIGHT_JOIN

- STRING

- STRIPED

- SUBJECT

- SUPER

- TABLES

- TABLESPACE

- TERMINATED

- TEXT

- TIME

- TIMESTAMP

- TINYBLOB

- TINYINT

- TINYTEXT

- TRAILING

- TRUE

- TRUNCATE

- TYPE

- TYPES

- UNCOMMITTED

- UNICODE

- UNLOCK

- UNSIGNED

- UNTIL

- USAGE

- USE

- USER

- USER_RESOURCES

- USE_FRM

- UTC_DATE

- UTC_TIME

- UTC_TIMESTAMP

- VALUE

- VARBINARY

- VARCHAR

- VARCHARACTER

- VARIABLES

- VARYING

- WARNINGS

- WITH

- WORK

- WRITE

- X509

- YEAR

- YEAR_MONTH

- ZEROFILL

### Kexi xBase'i draiveri reserveeritud sõnad

See nimekiri sisaldab võtmesõnu, mis on reserveeritud Kexi xBase'i draiveri tarbeks.

- ABORT

- ATTACH

- CLUSTER

- CONFLICT

- DEFERRED

- DEFERRABLE

- DETACH

- EACH

- EXCEPT

- FAIL

- GLOB

- IMMEDIATE

- INITIALLY

- INSTEAD

- INTERSECT

- ISNULL

- NOTNULL

- OF

- PRAGMA

- RAISE

- STATEMENT

- TEMP

- TRIGGER

- VACUUM

- VIEW

Reserveeritud sõnad on ära toodud iga draiveri jaoks eraldi, et neid saaks kasutada ka viitematerjalina.

## Lisa D. Toetatud failivormingud

### Komaga eraldatud väärtuste vorming (CSV)

&kexi; suudab importida ja eksportida andmeid mitmesugustesse ja mitmesugustest komaga eraldatud väärtuste (CSV) vormingutesse ja vormingutest. Enamik tabelarvutuse- ja andmebaasirakendusi suudab seda vormingut importida ja eksportida, mistõttu see sobib kenasti tekstiandmete vahetamiseks rakenduste vahel.

Samuti toetab &kexi; mitmeid võimalusi, mida saab enne importimist seadistada:

- iga veeru andmete tüüp,

- muud väljade eraldajad, näiteks tabeldusmärgid,

- mitmesugused teksti-jutumärgid,

- vajaduse korral määratud arvu kirjete vahelejätmine,

- topelteraldajate vahelejätmine,

- esimese rea väärtusi saab kasutada veerunimede määramiseks,

- teksti kodeering (vaikimisi on see UTF-8),

- kuupäevavorming (vaikimisi on see operatsioonisüsteemi määratud),

- tekstiväärtuste ees ja järel olevate tühikute eemaldamine.

Importimisel näitab &kexi; imporditavate andmete eelvaatlust. &kexi; tuvastab CSV-faili põhjal automaatselt kõige sobivama valikute koosluse.

### Microsoft Accessi (MDB) failivorming

#### Ülevaade

Microsoft Accessi andmebaaside (2003 või vanemad) importimise toetus on &kexi;sse sisse ehitatud. Accessi andmebaase saab ainult importida &kexi; andmebaasi. Seda ei saa kasutada andmebaasi muutmiseks, samuti ei saa eksportida Accessi andmebaasi. Siiski peaks see olema võimeline importima teiste rakenduste loodud andmebaase, mis kasutavad JET andmebaasimootorit. `.accdb`-andmebaaside importimine, mida hakkas pakkuma MS Access 2997, ei ole veel toetatud.

Andmebaasi importimine:

1. Vali &kexi; menüüst käsk Import, eksport või saatmine...

2. Klõpsa nupule Impordi andmebaas.

3. Vajaliku .mdb-faili saab valida impordinõustaja abil.

#### Omadused

Importimisfunktsiooni on edukalt kasutatud importimaks Northwindi andmebaasi, mis on MS Accessi kasutajatele hästi teada. Importida saab ka paljusid teisi Accessi mallandmebaase.

#### Toetatud omadused

Järgmiste väljade importimine on testitud ja toimib üldiselt edukalt:

- Tekstiväljad

- Memoväljad

- Kuupäevaväljad

- Arvväärtused

#### Toetamata võimalused

Praegu imporditakse ainult tabelid. Importimisel jätab &kexi; vahele järgmised objektid:

- Päringud

- Vormid

- Skriptid

- Aruanded

Järgmised omadused on testimata:

- Binaarobjektide import

## Autorid ja litsents

&kexi; autoriõigus 2002-2012: Kexi meeskond

Kexi arendajad:

- Jaroslaw Staniek (staniek kde.org)

- OpenOffice Polska, LLC (info openoffice.com.pl)

- Lucijan Busch (lucijan kde.org)

- Cedric Pasteur (cedric.pasteur free.fr)

- Adam Pigg (adam piggz.fsnet.co.uk)

- Martin Ellis (martin.ellis kdemail.net)

- Sebastian Sauer (mail dipe.org)

- Christian Nitschkowski (segfault_ii web.de)

- Peter Simonsson (psn linux.se)

- Joseph Wenninger (jowenn kde.org)

- Seth Kurzenberg (seth cql.com)

- Laurent Montel (montel kde.org)

- Till Busch (till bux.at)

Dokumentatsioon: Martin A. Ellis (martin.ellis kdemail.net) ja Jaroslaw Staniek (staniek kde.org) Anne-Marie Mahfoufi, Raphael Langerhorsti, Michal Kubicki ja Aron Stansviki kaasabiga.

Käesolevat programmi levitatakse vastavalt GNU Lesser General Public License'i tingimustele.

Tõlge eesti keelde: Marek Laane bald@smail.ee

&underFDL;
&documentation.index;