Puuduvate andmetega toimetulemine SQL-andmebaasides

Size: px
Start display at page:

Download "Puuduvate andmetega toimetulemine SQL-andmebaasides"

Transcription

1 Sisukord Puuduvate andmetega toimetulemine SQL-andmebaasides 1. Sissejuhatus Vastandlikud seisukohad NULLide lubamine baastabelis Puuduvate andmete esitamine IS NULL predikaat NULL ja loogika NULL ja duplikaadid NULL ja skalaarsed funktsioonid NULL ja tehted (operaatori kasutamine) NULL ja välisühendamise operatsioon NULL ja grupifunktsioonid NULL ja sorteerimine NULL ja alampäringud NULL ja nullpikkusega stringid töölaua andmebaasisüsteemis MS Access (2007, 2010) NULLid stringide konkateneerimisel Stringide sorteerimine PredictiveDB Kasutatud materjalid Sissejuhatus Maailm ei ole täiuslik. Sageli esineb olukordi, kus andmed, mida andmebaasi lisatakse, ei ole täielikud. See tähendab, et SQL tabelis võivad ridade väljad erinevatel põhjustel tühjaks jääda (vt. teema 2). On teada, et väärtus on olemas, kuid mingil põhjusel pole see andmebaasi andmete lisajatele teada (on salajane, pole veel andmeid saadud, osaliselt teadmata, ebakindel) (näiteks päikseprille kandva inimese silmade värv). On teada, et vastaval olemil ei ole sellist atribuuti ja järelikult ei ole andmeid mida registreerida (näiteks organisatsiooni silmade värv). Väärtust ei ole registreeritud, sest see on määramata (Näide: a/b jagamise tulemus, kui b=0). Ka see, et andmed puuduvad, on andmebaasi kasutajatele oluline informatsioon, mis võib nende peas tekitada uusi mõtteid ja seoseid. Seda tuleb andmebaasi projekteerimisel ja kasutamisel silmas pidada. Väljas väärtuse puudumist tähistatakse SQLis markeriga NULL. NULL on SQLis ka reserveeritud sõna. SQL standardi seisukohalt. NULL on väärtus (sellest ka kasutatav mõiste NULL-value e. NULL-väärtus e. tühiväärtus). Andmetüüp on väärtuste hulk. NULL kuulub kõikidesse tüüpidesse ja seega saab seda kasutada kõigis mittekohustuslikes veergudes. 1

2 NULL ei tähenda arvu 0. NULL ei tähenda nullpikkusega stringi ''. NULLi võrdlemisel väärtusega (sealhulgas teise NULLiga) ei saa öelda kumb on suurem, väiksem või kas nad on võrdsed. Võrdluse tulemus on teadmata e. UNKNOWN. Näiteks oletame, et andmebaasis on tabel Klient, milles sisalduvates ridades puuduvad andmed kliendi elukoha kohta. kliendi_nr elukoht Järgnev päring peaks andma loogiliselt võttes tulemuseks kõigi klientide numbrid, kuid tänu NULLide kasutamisele ei ole päringu tulemuseks olevas tabelis ühtegi rida. FROM Klient WHERE elukoht=elukoht; Kui tabeli veerule on lisatud unikaalsuse kitsendus, kuid see veerg ei ole kohustuslik, siis võib selles veerus olla mitu NULLi. Märkus: Mõned andmebaasisüsteemid (IBM DB2, Informix, MS SQL Server, Sybase) omavad (Gulutzan Pelzer 2003, lk. 272) põhjal piirangut, et unikaalsuse kitsendusega veerus ei tohi olla mitu NULLi. Sealhulgas IBM DB2, Ingres ja InterBase ei luba unikaalsuse kitsendusega veerus ühtegi NULLi. MS Accessis (2007, 2010) võib unikaalsuse kitsendusega mittekohustuslikus veerus olla mitu NULLi. 2.Vastandlikud seisukohad "The whole point about nulls (or a large part of the point, at any rate) is precisely that they are not values they are, to repeat, marks or flags" (Date 2003, lk. 576) Seega ei oleks korrektne rääkida NULList kui tühiväärtusest (eesti keeles kasutatav termin), sest NULL ei ole väärtus. "NULL is a value. Oh, it's true that it represents missing data but that doesn't mean that it is missing data you can put NULL into Columns and you can take it out again. Those operations are only possible with values, therefore NULL is a value." (Gulutzan Pelzer 1999, lk. 246) ( Andmebaaside teooria väljatöötajad võib tinglikult jagada kahte rühma (sulgudes on toodud mõned näited). 2

3 Inimesed, kes pooldavad NULLe ja näevad nende kasutamisel mõtet (SQL standardi väljatöötajad, E.F. Codd) Inimesed, kes ei poolda NULLide kasutamist (C. J. Date, F. Pascal). 3.NULLide lubamine baastabelis Vaikimisi on SQLis loodava baastabeli (lühidalt tabeli) iga veerg mittekohustuslik (st. veerule vastavates ridade väljades võib olla NULL). NOT NULL kitsenduse abil saab määrata, et veerg on kohustuslik, st. veerule vastavates ridade väljades ei tohi olla NULLe. Näide: CREATE TABLE Magaja ( magaja_id INTEGER, eesnimi VARCHAR ( 50 ), perenimi VARCHAR ( 50 ) NOT NULL, sugu SMALLINT NOT NULL, synni_aeg DATE, aadress VARCHAR ( 255 ), telefon VARCHAR ( 30 ), kommentaar VARCHAR(255), CONSTRAINT pk_magaja_magaja PRIMARY KEY (magaja_id), CONSTRAINT chk_magaja_sugu CHECK (sugu IN (0, 1, 2, 9)) ); eesnimi mittekohustuslik veerg perenimi kohustuslik veerg SQL standardi järgi ei pea primaarvõtme veerule eraldi NOT NULL kitsendust lisama, sest kohustuslikkus tuleneb olemi terviklikkuse reeglist, mille kohaselt "Baasrelatsioonis sisalduva korteeži ükski atribuut ei tohi olla väärtustamata". SQL standardi kohaselt on NOT NULL kitsendus tegelikult CHECK kitsendus. Järelikult järgnevad tabeli loomise laused on samaväärsed: CREATE TABLE Table1( column1 INTEGER NOT NULL); CREATE TABLE Table1( column1 INTEGER, CHECK (column1 IS NOT NULL)); SQL standardi järgi on mõlema lause tulemuseks tabeli veeruga seotud kitsendus, mida on võimalik hiljem ka kustutada (ja seega anda veerule omadus, et see on mittekohustuslik). Veerule vaikimisi väärtuse (default value) deklareerimine ei taga, et igas tabeli reas on veerule vastavas väljas alati väärtus. Loon näitena tabeli Oppeaine, 3

4 milles olev veerg loengute_arv on mittekohustuslik, kuid sellel veerul on vaikimisi väärtus. CREATE TABLE Oppeaine(ainekood VARCHAR(7) PRIMARY KEY, loengute_arv SMALLINT DEFAULT 2); INSERT INTO Oppeaine(ainekood, loengute_arv) VALUES ('IDU3382', NULL); INSERT INTO Oppeaine(ainekood, loengute_arv) VALUES ('IDU3381', 2); UPDATE Oppeaine SET loengute_arv=null WHERE ainekood='idu3381'; Ridade lisamise ja muutmise järel on tabelis Oppeaine kaks rida, kus veerule loengute_arv vastavas väljas väärtus puudub. Kui kehtib reegel, et iga õppeaine korral peab loengute arv olema määratud, siis tuleks veerule loengute_arv deklareerida NOT NULL kitsendus. Vaikimisi väärtuse deklareerimisest ei piisa. 4.Puuduvate andmete esitamine Võimalikud valikud SQL-andmebaasis. 1. Kasutada SQLis lubatud võimalust jätta ridade väljad tühjaks kasutada NULLe. 2. Määrata, et tabeli veerg on kohustuslik (igas reas peab selle veeru jaoks väärtus olema) ning võtta kasutusele mingid eriväärtused, mis tähistavad erinevat tüüpi andmete puudumise olukordi. Kõik sellised eriväärtused tuleb dokumenteerida ja need tuleb SQL lausete koostajatele teatavaks teha, et nad oskaksid õigeid otsingutingimusi koostada ja SQL lausete tulemusi interpreteerida. Valitud eriväärtused peavad loomulikult kuuluma veeruga seotud tüüpi kuuluvate väärtuste hulka (nt. kuupäeva tüüpi veergu väärtust "-1" lisada ju ei saa!) Näide väärtuste kohta, mida võiks kasutada täisarvu tüüpi veerus. Kood Semantika -1 On teada, et sellesse välja kunagi väärtust ei teki. -2 On teada, et väärtus mida välja kirjutada on olemas, kuid antud hetkel pole seda suudetud hankida. -3 Pole teada, kas välja leidub sobilik väärtus või mitte. Celko (2000) soovitused NULLide kasutamise kohta SQL-andmebaasis. NULLide tõttu võivad päringute tulemused olla segadusttekitavad. Seetõttu: 1. Keelake NULLide kasutamine kõikide tabelite kõikides veergudes, kui see on võimalik. Selleks defineerige tabeli veerud kasutades NOT NULL omadust. 2. Vältige NULLide kasutamist välisvõtme veergudes. 3. Vältige NULLide kasutamist veergudest, mille võimalikud väärtused on kindlalt teada. 4

5 Kasutage NULL asemel mingit spetsiaaltähistust. Näiteks ISO (International Organization for Standardization) soo tähistamiseks mõeldud koodid: - 0 teadmata, - 1 mees, - 2 naine, - 9 mittesobilik (näiteks ühes tabelis on koos juriidiliste- ja füüsiliste isikute andmed. Juriidilisel isikul ei ole sugu ja tuleks kasutada väärtust 9. Parem lahendus oleks luua juriidiliste ja füüsiliste isikute andmete hoidmiseks eraldi tabelid). Pange tähele, et NULL kasutamisel puuduvate väärtuste esitamiseks ei saa me eristada erinevaid põhjuseid, miks väärtused puuduvad. Date (2009) esitab mõned täiendavad soovitused. 4. Vältige Nullif funktsiooni kasutamist. Nullif(x,y) tulemuseks on NULL, kui x=y. 5. Vältige välisühendamise operatsiooni kasutamist (operatsiooni tulemuses võivad ridade väljades olla NULLid). 6. Kasutage igas avaldises, mille tulemus on skalaarne väärtus, Coalesce funktsiooni, mis tagastab vasakult lugedes esimese argumendi, mis ei ole NULL. Eriväärtuste kasutamise juures on probleemiks, et ettevaatamatul kasutamisel hakkavad nad moonutama SQL lausete tulemusi. Näiteks, kui inimese palgaandmete puudumise erinevate põhjuste kirjeldamiseks kasutatakse eelpool mainitud negatiivseid väärtuseid, siis ei tohi neid väärtuseid kasutada keskmise palga arvutamise juures. SQL lausesse tuleb sisse kirjutada tingimus, mis jätab sellised read vaatluse alt välja. See suurendab päringute keerukust. SELECT Avg(palk) AS keskmine FROM Tootaja WHERE palk NOT IN (-1, -2, -3); NULLi asemel vaikimisi väärtuse kasutamisest tuleb samuti hoiduda. Oletame, et ülesandeks on leida töötajate keskmine palk. Osade töötajate palk pole teada. Kui kasutada nende palkade asemel vaikimisi väärtust (nt. 0 või 1500) on tulemus suure tõenäosusega ebakorrektne. SQL võimaldab siiski NULLi asemel kasutada mingit väärtust. SQL standardi järgi võib teha näiteks päringu, milles kasutatakse CASE avaldist. SELECT Avg(CASE WHEN palk IS NULL THEN 1500 ELSE palk END) AS keskmine FROM Tootaja; 5

6 Samuti võib kasutada SQL standardis kirjeldatud coalesce funktsiooni, mis tagastab argumentide hulgast vasakult lugedes esimese, mis ei ole NULL. SELECT Avg(coalesce(palk, 1500) AS keskmine FROM Tootaja; coalesce(null, 1500) = 1500 coalesce(1000, 1500) = 1000 Samuti võib ülesande lahendamiseks kasutada järgmist päringut. SELECT Avg(palk) AS keskmine FROM (SELECT palk AS palk FROM Tootaja WHERE palk IS NOT NULL UNION SELECT 1500 AS palk FROM Tootaja WHERE palk IS NULL) AS palgad; Juhul, kui palk on määramata, asendatakse see vaikimisi väärtusega Näide: Võimalik lahendus MS Accessis (2007, 2010) kasutab funktsiooni Nz, mis asendab NULLi mingi (muu) väärtusega. See funktsioon on sarnane SQL standardis kirjeldatava Coalesce funktsiooniga. SELECT Avg(Nz(palk,1500)) AS keskmine FROM Tootaja; Samuti võib ülesande lahendamiseks MS Accessis (2007, 2010) kasutada iif funktsiooni, mis võimaldab koostada avaldisi, mis sarnanevad CASE lause abil koostatavatele avaldistele. isnull funktsioon võimaldab kontrollida, kas argument on NULL või mitte. SELECT Avg(iif(isNull(palk), 1500, palk)) AS keskmine FROM Tootaja; 4.1 IS NULL predikaat SQL lauses saab testida, kas väljas on väärtus olemas või mitte, kasutades predikaati: <null predikaat>::=<rea väärtuse konstruktor> IS [NOT] NULL Näide: Leia tabelist Tabel1 sellised read, kus veerule veerg1 vastavas väljas väärtus puudub. FROM Tabel1 WHERE veerg1 IS NULL; 6

7 FROM Tabel1 WHERE NOT veerg1 IS NOT NULL; Näide: Leia tabelist Tabel1 sellised read, kus veerule veerg1 vastavas väljas on väärtus olemas. Järgmised päringud on samaväärsed FROM Tabel1 WHERE veerg1 IS NOT NULL; FROM Tabel1 WHERE NOT veerg1 IS NULL; NB! Järgnev päring ei leia ühtegi rida, sest võrdluse NULL<>NULL tulemuseks on otsus UNKNOWN (vt. järgmine jaotis) ja andmebaasisüsteem ei väljasta ridu, kus veerus veerg1 on NULL. FROM Tabel1 WHERE veerg1<>null; NULLidega võib kokku puutuda järgmistes olukordades. - Baastabelite ridade väljades (kui tegemist on mittekohustuslike veergudega). - NULLe tekitavad välisvõtmete deklaratsioonis kirjeldatavad kompenseerivad tegevused ON DELETE SET NULL ja ON UPDATE SET NULL. - Kui skalaarse alampäringu tulemuseks on tabel, kus on null (0) rida, siis teisendatakse alampäringu tulemus NULLiks. - Tühja hulga põhjal tehtud grupifunktsiooni (kokkuvõttefunktsiooni) tulemustes (erandiks on Count, mis tagastab sellisel juhul väärtuse 0). - Välisühendamise (ingl. k. outer join) operatsiooni tulemuses. - Aritmeetikaoperatsioonide tulemustes, kus mõni operandidest on NULL. - Nullif(x, y) funktsiooni tulemustes, kui x=y

8 4.2 NULL ja loogika SQL kasutab kolmevalentset loogikat (3VL)! Tingimuse täidetuse kontrolli tulemus võib olla: - TRUE, - FALSE, - UNKNOWN. Otsingutingimustes tuleb arvestada ka olukorraga, et rea väli on tühi (ei sisalda andmeid). UNKNOWN saadakse tulemuseks, kui otsingutingimustes toimub võrdlus NULLidega. WHERE klausel elimineerib (st. ei leia) kõik read, mille puhul otsingutingimus pole täidetud (FALSE) või tingimuse täidetus on teadmata (UNKNOWN). Teiste sõnadega, otsingutingimuse kontrollimise tulemuses on vaid sellised read, mille puhul otsingutingimus on täidetud (TRUE). Test known to be X (on teada, et omab väärtust X) possibly X (on võimalik, et omab väärtust X) SQLi otsingutingimus eesnime otsimiseks isikute tabelist Ülesanne: Leia kõik isikud, kelle eesnimi on Mati. eesnimi='mati' Ülesanne: Leia kõik isikud, kelle eesnimi on võib-olla Mati. eesnimi='mati' OR eesnimi IS NULL Tuleb otsida inimesi, kelle kohta on teada, et nende eesnimi on Mati. Samuti tuleb otsida inimesi, kelle eesnimi pole teada, sest ka nende eesnimi võib olla Mati see pole lihtsalt andmebaasi pidajatele teada. known not to be X (on teada, et ei oma väärtust X, kuid omab mingit väärtust) Teise interpretatsiooni järgi tuleks leida isikud, kelle eesnimi on registreerimata (IS NULL), sest selliste isikute puhul pole kindlalt teada, kas nende eesnimi on "Mati" või mitte. Ülesanne: Leidke kõik isikud, kellel on eesnimi määratud, kuid kelle eesnimi ei ole Mati. 8

9 Test not (known to be X) (kõik muud väärtused peale X, kaasa arvatud NULL) unknown (teadmata) not unknown (teada) SQLi otsingutingimus eesnime otsimiseks isikute tabelist eesnimi<>'mati' Ülesanne: Leia kõik isikud, välja arvatud need, kelle eesnimi on Mati. eesnimi<>'mati' OR eesnimi IS NULL Ülesanne: Leia kõik isikud, kelle eesnimi pole teada. eesnimi IS NULL Ülesanne: Leia kõik isikud, kelle eesnimi on teada. eesnimi IS NOT NULL Näide: Soovin leida praegu kestvad tegevused, tabelist Tegevus. FROM Tegevus WHERE Date() BETWEEN alguse_aeg AND lopu_aeg; Iga tabelis Tegevus oleva rea kohta kontrollitakse, kas see vastab tingimusele, et hetke kuupäev jääb tegevuse alguse ja lõpu aja vahele. Kui tegevuse alguse ja/või lõpu aeg on määramata, on tingimuse täidetus UNKNOWN. See tähendab, et POLE TEADA, kas vaadeldav tegevus kestab praegu või mitte. Näide: Olgu meil päring leidmaks sellised kliendid, kes kas elavad Tallinnas või ei ela Tallinnas. Loogiliselt võttes peaks selle päringu tulemuseks olema kõigi klientide andmed. kliendi_nr elukoht 1 Tallinn 2 3 Tartu FROM Klient WHERE elukoht='tallinn' OR elukoht<>'tallinn'; SQLis ei leita paraku sellise päringuga andmeid klientide kohta, kelle korral elukoha andmed puuduvad (antud juhul klient, kelle number on 2). Selliste klientide korral on tingimuse elukoht='tallinn' OR elukoht<>'tallinn' kontrolli tulemus UNKNOWN. 9

10 Järgmisena esitatakse loogikaoperaatorite (AND, OR, NOT) tõeväärtustabelid kolmevalentse loogika kasutamise korral. x TRUE UNKNOWN FALSE NOT x FALSE UNKNOWN TRUE AND TRUE UNKNOWN FALSE TRUE TRUE UNKNOWN FALSE UNKNOWN UNKNOWN UNKNOWN FALSE FALSE FALSE FALSE FALSE OR TRUE UNKNOWN FALSE TRUE TRUE TRUE TRUE UNKNOWN TRUE UNKNOWN UNKNOWN FALSE TRUE UNKNOWN FALSE SQL-andmebaasisüsteemid teevad ridade valimisel teisenduse UNKNOWN=>FALSE. See tähendab, et kui otsingutingimuse täidetus pole teada, siis seda rida otsingutingimusele vastavasse ridade hulka ei valita. SQL defineerib Celko (1999) põhjal ka järgmise predikaadi: <otsingutingimus> IS [NOT] TRUE FALSE UNKNOWN MS Accessis (2007, 2010) sellist predikaati kasutada ei saa. Antud predikaadi abil teostatav kontroll taandab kolmeväärtuselise loogika kahele tõeväärtusele. IS TRUE UNKNOWN FALSE TRUE TRUE FALSE FALSE UNKNOWN FALSE TRUE FALSE FALSE FALSE FALSE TRUE IS NOT TRUE UNKNOWN FALSE TRUE FALSE TRUE TRUE UNKNOWN TRUE FALSE TRUE FALSE TRUE TRUE FALSE Alates SQL:1999 standardi versioonist on standardis kirjeldatud andmetüüp BOOLEAN. Sellel on 3 võimalikku väärtust: TRUE, FALSE, UNKNOWN. SQLis on siinkohal segadus. Määramaks, et BOOLEAN tüüpi olevas veerus olev väärtus on UNKNOWN, tuleb sellesse veergu lisada NULL. Olgu meil muutuja X, mis on tüüpi BOOLEAN. Date (2009) märgib, et SQLis: 10

11 Omistamise X:= UNKNOWN korral täidetakse omistamine: X:= NULL Peale seda omistamist ei anna võrdlus X=UNKNOWN tulemuseks mitte TRUE vaid NULL (järelikult UNKNOWN). (Paralleel kas arvu "0" asemel NULL kasutada oleks mõttekas?). 4.3 NULL ja duplikaadid NULL on NULLi duplikaat (kuigi võrdlus NULL=NULL =>UNKNOWN). Seega: 1. Grupeerimisel võetakse NULL kokku üheks grupiks. 2. DISTINCT operatsioon hulgale {7, 33, NULL, 7, 21, NULL}. Tulemus: {7, 33, NULL, 21} 3. {7, 33, NULL, 7, 21, NULL} UNION {7, 33, NULL, 7, 21, NULL}. Tulemus: {7, 33, NULL, 21} 4. {7, 33, NULL, 7, 21, NULL} EXCEPT {7, NULL, NULL}. Tulemus: {33, NULL, 21} 5. {7, 33, NULL, 7, 21, NULL} INTERSECT {7, NULL, NULL}. Tulemus: {7, NULL} 4.4 NULL ja skalaarsed funktsioonid funktsioon(null) => NULL 4.5 NULL ja tehted (operaatori kasutamine) Üldjuhul: NULL tehe väärtus => NULL Näiteks 0 * NULL => NULL Olgu meil järgmine tabel: Töötaja töötaja_id palk lisatasu

12 SELECT töötaja_id, palk+lisatasu AS kogu_palk FROM Töötaja; Tulemuseks saame: töötaja_id kogu_palk NULL ja välisühendamise operatsioon SQLi kasutaja puutub NULLidega muuhulgas kokku välisühendamise (outer join) operatsioonide tulemustes. Oletame, et meil on andmebaas, kus hoitakse andmeid autode ja markide kohta. Iga autot iseloomustab täpselt üks mark. Iga mark iseloomustab nulli või rohkemat autot. Järgnevalt esitatakse selle andmebaasi tabelite näiteväärtused. Mark Mark_ID nimetus 1 Volga 2 Volvo 3 Scania 4 Audi Auto Auto_ID Mark_ID registri_nr ABC DDE EDR KLA Oletame, et kasutaja teeb järgneva päringu. SELECT Auto.auto_id, Mark.nimetus AS mark, Auto.registri_nr FROM Mark LEFT JOIN Auto ON Mark.mark_id = Auto.mark_id; 12

13 Päringu tulemus on antud juhul järgnev. auto_id mark registri_nr 4 Volga 689KLA 1 Volvo 333ABC 2 Volvo 598DDE 3 Scania 456EDR Audi Tühjad väljad (kus on NULLid) tulemuses tekitavad segadust tulemuse interpreteerimisel. Jääb mulje, et andmebaasis on andmed ühe auto kohta, millest on registreeritud mark, aga auto identifikaator ja registri number pole registreeritud. Tegelikult on andmebaasis andmed nelja auto kohta. Välisühendamise operatsiooni kasutamise korral ei selgu tulemust vaadeldes, kas tulemuses on NULLid tänu välisühendamise kasutamisele või tänu sellele, et ühendatavate tabelite ridade väljades puudusid üksikud väärtused. 4.7 NULL ja grupifunktsioonid Grupifunktsioonide (kokkuvõttefunktsioonide) (Avg, Count, Sum jne) rakendamisel mingile veerule lähevad arvesse väärtused nendes väljades, mis ei sisalda NULLe. Näide: Mõnikord väidetakse, et järgnevad kaks päringut on samaväärsed: SELECT Count(*) AS ridade_arv FROM Töötaja; SELECT Sum(1) AS ridade_arv FROM Töötaja; See ei ole päris õige väide. Vaatleme piirjuhtu. Kui tabelis Töötaja on 0 rida, siis on Count funktsiooni kasutava päringu tulemuseks väärtus 0. Samas Sum funktsiooni kasutav päring annab tulemuseks NULL. Näide: SELECT Magaja.magaja_id, Magaja.eesnimi, Magaja.perenimi, Count(Magamine.algus) AS magamiste_arv FROM Magaja INNER JOIN Magamine ON Magaja.magaja_id = Magamine.magaja_id GROUP BY Magaja.magaja_id, Magaja.eesnimi, Magaja.perenimi; Antud päring leiab inimese eesnime, perenime ja tema magamiste arvu. Arvesse lähevad vaid need magamised, mille puhul on teada magamise alguse aeg, kuna Count funktsioon arvutab magamiste arvu tabeli Magamine veerus algus olevate väärtuste põhjal. 13

14 Juhul, kui soovitakse arvesse võtta kõiki magamisi (kaasa arvatud selliseid, mille puhul magamise alguse aeg ei ole teada), tuleb Count funktsioonis kasutada "(*)" Päringu tulemuses näidatakse magajate nimesid ja iga magaja KÕIGI magamiste arvu. Järgnev päring leiab kõik magajad ja nendega seotud magamiste arvu. Kui magajaga pole seotud andmeid ühegi magamise kohta, siis olgu arvuks 0. SELECT Magaja.magaja_id, Magaja.eesnimi, Magaja.perenimi, Count(Magamine.magaja_id) AS magamiste_arv FROM Magaja LEFT JOIN Magamine ON Magaja.magaja_id = Magamine.magaja_id GROUP BY Magaja.magaja_id, Magaja.eesnimi, Magaja.perenimi; Tehes päringu: SELECT Magaja.magaja_id AS id, Magaja.eesnimi, Magaja.perenimi, Magamine.magaja_id FROM Magaja LEFT JOIN Magamine ON Magaja.magaja_id = Magamine.magaja_id; on tulemus: id eesnimi perenimi magaja_id 1 Ants Mets 1 1 Ants Mets 1 1 Ants Mets 1 2 Kati Karu 2 2 Kati Karu 2 3 Toomas Tuhk Tehes päringu: SELECT Magaja.magaja_id, Magaja.eesnimi, Magaja.perenimi, Count(*) AS magamiste_arv FROM Magaja LEFT JOIN Magamine ON Magaja.magaja_id = Magamine.magaja_id GROUP BY Magaja.magaja_id, Magaja.eesnimi, Magaja.perenimi; 14

15 on tulemus: magaja_id eesnimi perenimi magamiste_arv 1 Ants Mets 3 2 Kati Karu 2 3 Toomas Tuhk 1 Toomas Tuha magamiste arv on päringu tulemuses 1, sest välisühendamist kasutava päringu tulemuses on tema kohta üks rida. Count(*) funktsiooni abil loetakse kokku kõigi gruppi kuuluvate ridade arv. Seega tuleks teha hoopis päring, kus Count funktsioon on rakendatud veerule Magamine.magaja_id. SELECT Magaja.magaja_id, Magaja.eesnimi, Magaja.perenimi, Count(Magamine.magaja_id) AS magamiste_arv FROM Magaja LEFT JOIN Magamine ON Magaja.magaja_id = Magamine.magaja_id GROUP BY Magaja.magaja_id, Magaja.eesnimi, Magaja.perenimi; et saada tulemus: magaja_id eesnimi perenimi magamiste_arv 1 Ants Mets 3 2 Kati Karu 2 3 Toomas Tuhk 0 Tulemuses on magamiste arv null (0), sest loetakse kokku vaid selliste ridade arv, kus veerus Magamine.magaja_id on väärtus olemas. Gulutzan ja Pelzer (1999) toovad veel ühe näite seoses grupifunktsioonide ja NULLidega. Oletame, et meil on tabel T, kus on järgnevad andmed. a b 5 NULL 5 5 Järgnevad päringud selle tabeli põhjal annavad erineva tulemuse. SELECT Sum(a+b) AS summa FROM T; 15

16 Päringu tulemus on 10, sest 5+NULL=NULL, 5+5=10 ja Sum{NULL,10} = 10. SELECT Sum(a)+Sum(b) AS summa FROM T; Päringu tulemus on 15, sest Sum{5,5} = 10, Sum{NULL,5} = 5 ja 10+5=15. Seega Sum(a+b)!= Sum (a+b) Milline nendest tulemustest on õige? Võiks arvata, et õige vastus on NULL. Gulutzan ja Pelzer (1999) kohaselt tuleks parimaks lugeda vastus, mis ignoreerib kõige rohkem NULLe, st. 15. Seega on õige kasutada avaldist Sum(a)+Sum(b), mitte Sum(a+b). 4.8 NULL ja sorteerimine Sorteerimise kontekstis NULL=NULL. SQL standard annab andmebaasisüsteemi tegijatele õiguse valida, kas sorteerimisel pidada NULLe suuremaks või väiksemaks kui tegelikke väärtusi. Näiteid: Sorteerimine andmebaasisüsteemides Oracle, PostgreSQL: Oracle (11g Enterprise Edition) ja PostgreSQL (9.0) lubavad ORDER BY klauslis määrata, kuidas toimida ridade sorteerimisel NULLidega. Järgnevate päringute hulga annavad 1 ja 2 sama tulemuse. 1. SELECT eesnimi FROM Magaja ORDER BY eesnimi; 2. SELECT eesnimi FROM Magaja ORDER BY eesnimi NULLS LAST; 3. SELECT eesnimi FROM Magaja ORDER BY eesnimi NULLS FIRST; Järgnevate päringute hulga annavad 1 ja 3 sama tulemuse. 1. SELECT eesnimi FROM Magaja ORDER BY eesnimi DESC; 2. SELECT eesnimi FROM Magaja ORDER BY eesnimi DESC NULLS LAST; 3. SELECT eesnimi FROM Magaja ORDER BY eesnimi DESC NULLS FIRST; NULLS FIRST ja NULLS LAST määrangud on ka hetkel kehtivas SQL standardi versioonis (SQL:2008) kirjeldatud. Sorteerimine andmebaasisüsteemis MS Access (2007, 2010): Read NULLidega on ülevalt vaadates kõige alguses (NULLS FIRST): SELECT eesnimi FROM Magaja ORDER BY eesnimi; 16

17 Read NULLidega on ülevalt vaadates kõige lõpus (NULLS LAST): SELECT eesnimi FROM Magaja ORDER BY eesnimi DESC; Seega MS Access käsitleb NULLi kui väärtust, mis on kõikidest teistest väärtustest väiksem. 4.9 NULL ja alampäringud Järgneva näite on esitanud Celko (2000, lk ). Olgu meil kaks tabelit Table1 Table2 x x NULL Käivitame päringu: FROM Table1 WHERE x NOT IN (SELECT x FROM Table2); Tulemus on alati tühi, st. sinna ei kuulu mitte ühtegi rida! Miks? Vaatleme päringu täitmist samm-sammult. 1. Kasutame alampäringu asemel konstante. FROM Table1 WHERE x NOT IN (1, NULL, 2); 2. Teeme teisenduse, mille tulemuses on samaväärne päring. FROM Table1 WHERE NOT (x IN (1, NULL, 2)); 3. Asendame IN predikaadi samaväärsete võrdluspredikaatidega. FROM Table1 WHERE NOT ((x=1) OR (x=null) OR (x=2)) 17

18 4. Rakendame DeMorgani seadust FROM Table1 WHERE ((x<>1) AND (x<>null) AND (x<>2)); 5. SQLis annab võrdlus x<>null tulemuseks UNKNOWN. FROM Table1 WHERE ((x<>1) AND UNKNOWN AND (x<>2)); 6. Taandame konstandiks. FROM Table1 WHERE UNKNOWN; 7. Tulemus on alati tühi. Seetõttu tuleks teha päring. FROM Table1 WHERE x NOT IN (SELECT x FROM Table2 WHERE x IS NOT NULL); Päringute kirjutajate tüüpviga on juhul, kui veerg x ei ole kohustuslik ja võib sisaldada NULLe, jätta alampäringust välja IS NOT NULL tingimus. Samal põhjusel tuleb teha päring. FROM Table1 WHERE x<>all(select x FROM Table2 WHERE x IS NOT NULL); 5.NULL ja nullpikkusega stringid töölaua andmebaasisüsteemis MS Access (2007, 2010) MS Accessis on Text, Memo ja Hüperlink andmetüübiga veergude väärtustamiseks võimalik kasutada ka nullpikkusega stringi e. tühja stringi (ingl. k. zero lenght string). See võimaldab tähistada väärtuse puudumist kahel erineval viisil (ja selle kaudu eristada põhjuseid, miks väärtus puudub): NULL, nullpikkusega string. 18

19 Näiteks NULL tähistab olukorda, kus ei teata seda, kas väärtus on olemas või mitte. Kui väärtuse puudumine on kindlalt teada, kasutatakse nullpikkusega stringi. MS Accessis saab tabeli disainivaates määrata, kas lubada mingis veerus NULLe ja nullpikkusega stringe. Veerul on omadused. - Required kas välja täitmine on kohustuslik? (yes on kohustuslik; no ei ole kohustuslik). Kohustuslik veerg ei tohi sisaldada NULLe, mittekohustuslik tohib. - AllowZeroLength kas lubada nullpikkusega stringe (yes lubada; no mitte lubada); Väärtuse puudumise kindlakstegemiseks tuleb kasutada IS NULL predikaati. Nullpikkusega stringi otsimiseks tuleb WHERE klauslis kasutada literaali '' (kaks järjestikus ülakoma mille vahel ei tohi olla tühikut). Järgnev päring leiab kõik magajad, kelle perenimi pole määratud (on NULL). FROM Magaja WHERE perenimi IS NULL; Järgnev päring leiab kõik magajad, kelle perenimi on nullpikkusega string. FROM Magaja WHERE perenimi=''; Järgnev päring leiab kõik magajad, kelle puhul perenimi pole NULL. FROM Magaja WHERE perenimi IS NOT NULL; Järgnev päring toob välja kõik magajad, kellel perekonnanimi on määratud (pole NULL), kuid perekonnanimi ei ole "Juurikas". FROM Magaja WHERE (perenimi<>'juurikas'); NB! See päring ei leia selliseid magajaid, kelle perekonnanimi pole määratud, st. perenimi IS NULL. Küll leiab päring magajad, kelle puhul perekonnanime väli sisaldab nullpikkusega stringi. Selleks, et leida kõik magajad, kelle perekonnanimi ei ole "Juurikas", sõltumata sellest, kas perenimi on üldse määratud või mitte, tuleb teha päring. 19

20 FROM Magaja WHERE (perenimi<>'juurikas') OR perenimi IS NULL OR perenimi<>''; Selleks, et asendada teksti, memo või hyperlink andmetüübiga veerus NULLid nullpikkusega stringiga, võib kasutada UPDATE lauset. UPDATE Magaja SET perenimi = '' WHERE perenimi IS NULL; Vastupidise tegevuse jaoks võib kasutada järgnevat lauset. UPDATE Magaja SET perenimi = NULL WHERE perenimi=''; Need laused põhinevad eeldusel, et tabeli Magaja veerus perenimi on lubatud kasutada nullpikkusega stringi ja väärtuse sisestamine veergu ei ole kohustuslik (required=no). NULLidega tuleb arvestada enamike andmete otsimise või muutmise lausete juures. Näiteks järgnevad päringud ei leia isikuid, kellel on perekonnanimi määramata (NULL), kuid leiab sellised, kelle nimi on nullpikkusega string. FROM Magaja WHERE perenimi NOT IN ('Tammik', 'Juurikas'); FROM Magaja WHERE perenimi NOT LIKE 'T%'; Järgnev päring leiab kõik isikud, kellel on eesnimi määratud (NOT NULL). FROM Magaja WHERE eesnimi; See on samaväärne päringuga. FROM Magaja WHERE eesnimi=true; 5.1 NULLid stringide konkateneerimisel Kui stringide (e. sõnede) konkateneerimisel kasutatakse "+" operaatorit ja üks väärtus on NULL, siis on tulemuseks NULL. 20

21 SELECT magaja_id, eesnimi +' '+ perenimi AS nimi FROM Magaja; Juhul, kui eesnimi ja/või perenimi on määramata (NULL), siis tulemuses veerus nimi väärtust ei ole. Kui stringide konkateneerimiseks kasutatakse "&" operaatorit ja üks väärtus on NULL, siis tulemuseks ei ole NULL. SELECT magaja_id, eesnimi &' '& perenimi AS nimi FROM Magaja; Juhul, kui eesnimi või perenimi on määramata (NULL), siis veerus nimi näidatakse ikkagi kas eesnime või perenime. Sama lähenemist saab kasutada näiteks UPDATE lausete puhul. Lähtetabel. Magaja perenimi pikkus kommentaar Kuusk 220 Hea inimene Kask 250 Tamm 212 UPDATE Magaja SET kommentaar = kommentaar + ' ' + 'Pikk inimene' WHERE (pikkus>210); Tulemus: perenimi pikkus kommentaar Kuusk 220 Hea inimene Pikk inimene Kask 250 Tamm 212 Juhul, kui kommentaari väli on tühi (NULL), siis teksti "Pikk inimene" sinna ei lisata. Põhjus on selles, et kommentaari väljas pandav väärtus leitakse järgneva avaldise arvutamise tulemusena: NULL + ' ' + 'Pikk inimene' UPDATE Magaja SET kommentaar = kommentaar & ' ' & 'Pikk inimene' WHERE (pikkus>210); Tulemus: perenimi pikkus kommentaar Kuusk 220 Hea inimene Pikk inimene Kask 250 Pikk inimene Tamm 212 Pikk inimene 21

22 Kommentaar "Pikk inimene" lisatakse igasse välja, sõltumata sellest, kas seal on eelnevalt väärtus olnud või mitte. 5.2 Stringide sorteerimine Oletame, et tabelis T on stringitüüpi veerg x, mis on mittekohustuslik (seal on lubatud NULLid) ning veerus x on ka lubatud nullpikkusega stringid. Tehes päringu: SELECT x FROM T ORDER BY x ASC; on tulemuses read sorteeritud järgnevalt: NULL... NULL Nullpikkusega string... Nullpikkusega string Muu väärtus... Muu väärtus Tehes päringu: SELECT x FROM T ORDER BY x DESC; on tulemuses read sorteeritud järgnevalt. Muu väärtus... Muu väärtus Nullpikkusega string... Nullpikkusega string NULL... NULL 22

23 6.PredictiveDB Käesoleval ajal on väljatöötamisel SQL-andmebaasisüsteem PredictiveDB ( See andmebaasisüsteem oskab analüüsida andmebaasis olevaid andmeid ning prognoosida nende põhjal, millised võiksid olla NULLide asemel tegelikud väärtused. Iga sellise prognoosi kohta arvutatakse ka eksimise tõenäosus. Mida rohkem on andmebaasis andmeid, seda täpsem prognoos tehakse. 7.Kasutatud materjalid 1. Cannan, S. J., & Otten, G. A. M., SQL - The Standard Handbook based on the new SQL standard (ISO 9075:1992(E)). 2. Celko, J., SQL for smarties: advanced SQL programming. 2 nd ed. Academic Press, p. 3. Date, C. J., An Introduction to Database Systems, Eighth Edition, Addison Wesley. 983 p. 4. Date, C. J., SQL and Relational Theory. How to Write Accurate SQL Code, O'Reilly. 404 p. 5. Gulutzan, P. & Pelzer, T., SQL-99 Complete, Really. Miller Freeman p. 6. Gulutzan, P. & Pelzer, T., SQL Performance Tuning, Addison-Wesley. 495 p. 7. Karwin, B., SQL Antipatterns. Avoiding the Pitfalls of Database Programming. The Pragmatic Bookshelf. 333 p. 8. PredictiveDB. [WWW] ( ) 9. Saal, E., Puuduvate andmete esitamine SQL-andmebaasides, Bakalaureusetöö, TTÜ Informaatikainstituut. 23

Tabelid <TABLE> Koostanud: Merike Hein

Tabelid <TABLE> Koostanud: Merike Hein Tabelid Tabelite kasutusvõimalus on HTML'is olemas juba pikka aega. Tabelimärgendite esmaseks kasutusalaks oli muidugi mõista tabelkujul info kuvamine. tähendab siis tabelite joonistamist.

More information

Andmebaasid (6EAP) I praktikum

Andmebaasid (6EAP) I praktikum Andmebaasid (6EAP) I praktikum Mõisteid Server on arvutisüsteem või selles töötav tarkvara, mis pakub teatud infoteenust sellega ühenduvatele klientidele. Klient on tarkvara, mis võimaldab suhelda serveriga.

More information

Puudub protseduur. Protseduuri nimi võib olla valesti kirjutatud. Protseduuri (või funktsiooni) poole pöördumisel on vähem argumente kui vaja.

Puudub protseduur. Protseduuri nimi võib olla valesti kirjutatud. Protseduuri (või funktsiooni) poole pöördumisel on vähem argumente kui vaja. Puudub protseduur. Protseduuri nimi võib olla valesti kirjutatud. Sub prog1() Msgox "Tere" Sub prog2() a = si(1) Protseduuri (või funktsiooni) poole pöördumisel on vähem argumente kui vaja. a = Sin() Protseduuri

More information

MSDE Upgrade platvormile SQL 2005 Server Express SP4

MSDE Upgrade platvormile SQL 2005 Server Express SP4 MSDE Upgrade platvormile SQL 2005 Server Express SP4 NB! Windos XP puhul peab veenduma, et masinas oleks paigaldatud.net Framework vähemalt versioon 2.0!!! NB! Muutke oma SA parool turvaliseks ( minimaalne

More information

Mis on tõene? Tsüklid, failihaldus. if - näited. unless - näited. unless. Merle Sibola. if ($arv > $suur) { #leitakse suurim arv $suur=$arv; } #if

Mis on tõene? Tsüklid, failihaldus. if - näited. unless - näited. unless. Merle Sibola. if ($arv > $suur) { #leitakse suurim arv $suur=$arv; } #if Mis on tõene? Tsüklid, failihaldus Merle Sibola iga string on tõene, välja arvatud "" ja "0" iga number on tõene, v.a. number 0 Iga viide (reference) on tõene Iga defineerimata muutuja on väär. if if (EXPR)

More information

MITME VÄITE ÜHE ANDMEVÄÄRTUSENA ESITAMISE EELISED JA PUUDUSED SQL-ANDMEBAASIDES

MITME VÄITE ÜHE ANDMEVÄÄRTUSENA ESITAMISE EELISED JA PUUDUSED SQL-ANDMEBAASIDES TALLINNA TEHNIKAÜLIKOOL Infotehnoloogia teaduskond Informaatikainstituut IDU40LT Maria Ossipova 135215IAPB MITME VÄITE ÜHE ANDMEVÄÄRTUSENA ESITAMISE EELISED JA PUUDUSED SQL-ANDMEBAASIDES Bakalaurusetöö

More information

Andmebaasi krüpteerimine ja dekrüpteerimine

Andmebaasi krüpteerimine ja dekrüpteerimine Andmebaasi krüpteerimine ja dekrüpteerimine Me võime küll asetanud kõikidele andmebaasi objektidele ligipääsuõigused eri kasutajate jaoks, kuid ikkagi võib mõni häkker avada vastava faili lihtsalt failina

More information

SQL lausete veateadete headuse analüüs kolme erineva andmebaasisüsteemi näitel

SQL lausete veateadete headuse analüüs kolme erineva andmebaasisüsteemi näitel TALLINNA TEHNIKAÜLIKOOL Infotehnoloogia teaduskond Informaatikainstituut Infosüsteemide õppetool SQL lausete veateadete headuse analüüs kolme erineva andmebaasisüsteemi näitel Bakalaureusetöö Üliõpilane:

More information

XmlHttpRequest asemel võib olla vajalik objekt XDomainRequest

XmlHttpRequest asemel võib olla vajalik objekt XDomainRequest 1 2 3 XmlHttpRequest asemel võib olla vajalik objekt XDomainRequest 4 5 6 7 8 https://www.trustwave.com/global-security-report http://redmondmag.com/articles/2012/03/12/user-password-not-sophisticated.aspx

More information

Ülesanne 3 ja 4. Diagrammide joonistamiseks kasutati CASE vahendit Rational Rose.

Ülesanne 3 ja 4. Diagrammide joonistamiseks kasutati CASE vahendit Rational Rose. Ülesanne 3 ja 4 Diagrammide joonistamiseks kasutati CASE vahendit Rational Rose. Ülesande lahendamise täiesti loomulikuks tulemuseks oli, et kasutaja nõudmised täpsustusid ja seoses sellega lisandus uusi

More information

Ülesanne nr. 13. Töölaua andmebaasisüsteemi MS Access (2007) võimalustega tutvumine.

Ülesanne nr. 13. Töölaua andmebaasisüsteemi MS Access (2007) võimalustega tutvumine. Ülesanne nr. 13 Töölaua andmebaasisüsteemi MS Access (2007) võimalustega tutvumine. Laadige õppekeskkonna kataloogist Harjutustunnid alla andmebaas Magajate_Systeem.mdb, tehke läbi näited ja täitke esitatud

More information

Kirje. Kirje. Tüpiseeritud fail. CASE-lause. Laiendatud klahvikoodid. 1

Kirje. Kirje. Tüpiseeritud fail. CASE-lause. Laiendatud klahvikoodid. 1 Kirje. Tüpiseeritud fail. CASE-lause. Laiendatud klahvikoodid. 1 Kirje Kirje (record) on struktuurne andmetüüp (nagu massiiv) erinevat tüüpi andmete gruppeerimiseks. Kirje koosneb väljadest (field). Iga

More information

EESTI STANDARD EVS-ISO 11620:2010

EESTI STANDARD EVS-ISO 11620:2010 EESTI STANDARD EVS-ISO INFORMATSIOON JA DOKUMENTATSIOON Raamatukogu tulemusindikaatorid Information and documentation Library performance indicators (ISO 11620:2008) EVS-ISO EESTI STANDARDI EESSÕNA NATIONAL

More information

Andmebaasid kursuse andmemudel

Andmebaasid kursuse andmemudel Veebiteenused SyBase SQL Anywhere koostanud Sander Sepp SQL Anywhere on andmebaasi juhtsüsteem, mis sisaldab HTTP veebiserveri funktsionaalsust. Veebiserver võimaldab andmebaasi luua veebiteenuseid. Veebiteenused

More information

Mälu interfeisid Arvutikomponendid Ergo Nõmmiste

Mälu interfeisid Arvutikomponendid Ergo Nõmmiste Mälu interfeisid Arvutikomponendid Ergo Nõmmiste Mälu liigid Read-only memory (ROM) Flash memory (EEPROM) Static random access memory (SRAM) Dynamic random access memoty (DRAM) 1 kbaidine mälu vajab 10

More information

Programmeerimine. 3. loeng

Programmeerimine. 3. loeng Programmeerimine 3. loeng Tana loengus T~oevaartustuup ja loogilised avaldised Hargnemisdirektiivid { Lihtne if-lause { if-else-lause { Uldkujuline if-lause Tsuklidirektiivid { Eelkontrolliga tsukkel {

More information

Tsüklidirektiivid. Klass Math. Staatilised meetodid. Massiivid. Koostada programm, mis leiab positiivsete paarisarvude summat vahemikus 1 kuni 20.

Tsüklidirektiivid. Klass Math. Staatilised meetodid. Massiivid. Koostada programm, mis leiab positiivsete paarisarvude summat vahemikus 1 kuni 20. Harjutustund 3 Tsüklidirektiivid. Klass Math. Staatilised meetodid. Massiivid. Tsüklidirektiivid Vaadake teooriat eelmisest praktikumist. Ülesanne 1 Koostada programm, mis leiab esimeste 20 arvude summat

More information

Hierarhiliste andmete esitamine SQL-andmebaasides kolme disainilahenduse näitel

Hierarhiliste andmete esitamine SQL-andmebaasides kolme disainilahenduse näitel TALLINNA TEHNIKAÜLIKOOL Infotehnoloogia teaduskond Informaatikainstituut Infosüsteemide õppetool Hierarhiliste andmete esitamine SQL-andmebaasides kolme disainilahenduse näitel Magistritöö Üliõpilane:

More information

MÕNED MITMEKEELSETE SQL-ANDMEBAASIDE DISAINIMUSTRID

MÕNED MITMEKEELSETE SQL-ANDMEBAASIDE DISAINIMUSTRID TALLINNA TEHNIKAÜLIKOOL Infotehnoloogia teaduskond Tarkvarateaduse instituut Eliis Hövel 134292IAPB MÕNED MITMEKEELSETE SQL-ANDMEBAASIDE DISAINIMUSTRID Bakalaureusetöö Juhendaja: Erki Eessaar Doktor Tallinn

More information

EESTI STANDARD EVS-ISO/IEC 27003:2011

EESTI STANDARD EVS-ISO/IEC 27003:2011 EESTI STANDARD EVS-ISO/IEC 27003:2011 INFOTEHNOLOOGIA Turbemeetodid Infoturbe halduse süsteemi teostusjuhis Information technology Security techniques Information security management system Implementation

More information

SQL Serveri paigaldus. Laadimine:

SQL Serveri paigaldus. Laadimine: SQL Serveri paigaldus Laadimine: http://msdn.microsoft.com/vstudio/express/sql/download/ Tasub paigaldada kõige lihtsam versioon (SQL Server 2005 Express Edition SP2). Samalt lehelt saab laadida ka Sql

More information

WD My Net N600 juhend:

WD My Net N600 juhend: WD My Net N600 juhend: 1) Kui WD My Net N600 seade on ühendatud näiteks Elioni Thomsoni ruuteriga (TG789vn või TG784) või Elioni Inteno DG301a ruuteriga, kus üldiselt on ruuteri Default Gateway sama, nagu

More information

SQL Server 2005 Expressi paigaldamine

SQL Server 2005 Expressi paigaldamine SQL Server 2005 Expressi paigaldamine Laadige alla.net Framework 2.0 http://www.microsoft.com/downloads/details.aspx?familyid=0856eacb-4362-4b0d- 8edd-aab15c5e04f5 Avage http://www.microsoft.com/express/2005/sql/download/default.aspx

More information

Lõimed. Lõime mõiste. Lõimede mudelid. Probleemid lõimedega seoses. Pthreads. Solarise lõimed. Windowsi lõimed. FreeBSD lõimed.

Lõimed. Lõime mõiste. Lõimede mudelid. Probleemid lõimedega seoses. Pthreads. Solarise lõimed. Windowsi lõimed. FreeBSD lõimed. Lõimed Lõime mõiste Lõimede mudelid Probleemid lõimedega seoses Pthreads Solarise lõimed Windowsi lõimed FreeBSD lõimed Linuxi lõimed MEELIS ROOS 1 Ühe- ja mitmelõimelised protsessid code data files code

More information

TP-Link TL-WR743ND Juhend

TP-Link TL-WR743ND Juhend TP-Link TL-WR743ND Juhend 1) Ühenda oma arvuti TP-Link ruuteriga üle kaabli (LAN). 2) Kui arvuti ja ruuter said omavahel ühendatud, siis võid minna seadme koduleheküljele (interneti brauseri otsingu reasse

More information

IPv6 harjutused. Aadressi kuju, kirjaviis, osad, liigid Aadressi saamise viisid

IPv6 harjutused. Aadressi kuju, kirjaviis, osad, liigid Aadressi saamise viisid IPv6 harjutused Aadressi kuju, kirjaviis, osad, liigid Aadressi saamise viisid IPv6 aadressi kuju IPv4 32 bitti (4 baidi kaupa) Kuju kümnendarvud 4 kaupa punktidega eraldatud 192.168.252.200 IPv6 128 bitti

More information

Erik Jõgi. twitter.com/erikjogi twitter.com/codeborne

Erik Jõgi. twitter.com/erikjogi twitter.com/codeborne Disain Erik Jõgi erik@codeborne.com twitter.com/erikjogi twitter.com/codeborne Disain? Miks? Bad code Clean Code A Handbook of Agile Software Craftsmanship Robert C. Martin, 2008 Uncle Bob You know you

More information

Robot iehit amise j uhend Mikrokont rolleri programmeerimine C keeles Põhiline C keelest

Robot iehit amise j uhend Mikrokont rolleri programmeerimine C keeles Põhiline C keelest Robot iehit amise j uhend Mikrokont rolleri programmeerimine C keeles Põhiline C keelest Autorid: Alar Ainla Alvo Aabloo Tartu Ülikool Juhendi koostamist on toetanud EITSA SISUKORD SISUKORD 2 SISSEJUHATUS

More information

APPLE I ÕPPEMATERJAL TABELARVUTUSPROGRAMM NUMBERS

APPLE I ÕPPEMATERJAL TABELARVUTUSPROGRAMM NUMBERS Tallinna Ülikool Informaatika Instituut APPLE I ÕPPEMATERJAL TABELARVUTUSPROGRAMM NUMBERS Seminaritöö Autor: Sandra Saartok Juhendaja: Jaanika Meigas Tallinn 2014 Sisukord SISSEJUHATUS... 3 1 IWORK JA

More information

Reapõhise ja veerupõhise andmete salvestamise võrdlus kahe SQL-andmebaasisüsteemi näitel Magistritöö

Reapõhise ja veerupõhise andmete salvestamise võrdlus kahe SQL-andmebaasisüsteemi näitel Magistritöö TALLINNA TEHNIKAÜLIKOOL Infotehnoloogia teaduskond Informaatikainstituut Infosüsteemide õppetool Reapõhise ja veerupõhise andmete salvestamise võrdlus kahe SQL-andmebaasisüsteemi näitel Magistritöö Üliõpilane:

More information

Tallinna Ülikooli veebipuhvri teenuse kasutamine väljaspool ülikooli arvutivõrku

Tallinna Ülikooli veebipuhvri teenuse kasutamine väljaspool ülikooli arvutivõrku Tallinna Ülikooli veebipuhvri teenuse kasutamine väljaspool ülikooli arvutivõrku Selleks, et kasutada Tallinna Ülikooli veebipuhvrit väljaspool ülikooli arvutivõrku, tuleb luua ühendus serveriga lin2.tlu.ee

More information

ABIMATERJAL ROBOOTIKA TÖÖVIHIKULE Algoritmid ja programmeerimine

ABIMATERJAL ROBOOTIKA TÖÖVIHIKULE Algoritmid ja programmeerimine Raivo Sell, Mikk Leini ABIMATERJAL ROBOOTIKA TÖÖVIHIKULE Algoritmid ja programmeerimine Robootika Kodulabori baasil Kujundus ja küljendus: Raivo Sell Arvutigraafika: Raivo Sell Keeletoimetus: Airi Veber

More information

Programmeerimise 2. vaheeksam

Programmeerimise 2. vaheeksam Programmeerimise 2. vaheeksam 5. jaanuar 2015, kell 10:00 13:00 1. Fraktal (3p) yl1.py Kõrvaloleval pildil on fraktali 1., 2., 3. ja 4. taseme näidised. Kirjuta rekursiivne funktsioon, mis võtab argumendiks

More information

Vea haldus ja logiraamat hajutatud süsteemides Enn Õunapuu.

Vea haldus ja logiraamat hajutatud süsteemides Enn Õunapuu. Vea haldus ja logiraamat hajutatud süsteemides Enn Õunapuu enn.ounapuu@ttu.ee Millest tuleb jutt? Kuidas ma näen, millises sammus erinevad protsessid parasjagu on? Kuidas ma aru saan, kas protsess töötab

More information

Digitaalne signaal Diskreetimine ja Dirac Delta Digitaalfiltrid. Digitaalne heli. Hendrik Nigul. Mathematics of Sound and Music.

Digitaalne signaal Diskreetimine ja Dirac Delta Digitaalfiltrid. Digitaalne heli. Hendrik Nigul. Mathematics of Sound and Music. Mathematics of Sound and Music Aprill 2007 Outline 1 Digitaalne signaal 2 3 z-teisendus Mis on heli? Digitaalne signaal Heli on elastses keskkonnas lainena leviv mehaaniline võnkumine. amplituud heli tugevus

More information

Andmebaaside varundamine ja taastamine

Andmebaaside varundamine ja taastamine Andmebaaside varundamine ja taastamine Sybase SQL Anywhere 12 Menüü Pane tähele... 1. Andmebaasist kujutise tegemine ja taastamine 2. Andmebaasist pakitud varukoopia tegemine ja taastamine 3. Andmebaasist

More information

Õppejõudude hindamise rakenduse REST API ja kasutajaliides kasutades Spring ja AngularJS raamistikke Bakalaureusetöö

Õppejõudude hindamise rakenduse REST API ja kasutajaliides kasutades Spring ja AngularJS raamistikke Bakalaureusetöö TALLINNA TEHNIKAÜLIKOOL Infotehnoloogia teaduskond Arvutiteaduse instituut Võrgutarkvara õppetool Õppejõudude hindamise rakenduse REST API ja kasutajaliides kasutades Spring ja AngularJS raamistikke Bakalaureusetöö

More information

IT infrastruktuuri teenused. Failiserver. Margus Ernits

IT infrastruktuuri teenused. Failiserver. Margus Ernits IT infrastruktuuri teenused Failiserver Margus Ernits margus.ernits@itcollege.ee 1 Failide hoidmine kasutaja arvutis pole tihti mõistlik, kuna Failiserver Arvuti kõvaketta hävimisega kaovad andmed ja nendest

More information

Sissejuhatus Funktsionaalne programmeerimisparadigma

Sissejuhatus Funktsionaalne programmeerimisparadigma Sissejuhatus Funktsionaalne programmeerimisparadigma Paradigma järgi liigitub funktsionaalne (ingl functional) programmeerimine koos loogilise (ingl logic) programmeerimisega deklaratiivse programmeerimise

More information

Tallinna Ülikool Informaatika Instituut. XML rakendused. Jaagup Kippar

Tallinna Ülikool Informaatika Instituut. XML rakendused. Jaagup Kippar Tallinna Ülikool Informaatika Instituut XML rakendused Jaagup Kippar Tallinn 2009 Sisukord XML...3 Ülesanded XMLiga tutvumiseks...5 XSL...5 Käivitamine Java abil...7 Käivitamine Visual Studio abil...8

More information

Rakendustarkvara: R. Sügis 2017, 1. praktikum

Rakendustarkvara: R. Sügis 2017, 1. praktikum Rakendustarkvara: R. Sügis 2017, 1. praktikum 1 Lühike sissejuhatus R on programmeerimiskeel ja -keskkond, mis on arendatud statistiliseks andmetöötluseks. R-i kasutavate inimeste hulk on viimase kümmekonna

More information

Windows XP ja varasemates versioonides kasutati arvuti failides otsimiseks Windows Search versiooni 2.

Windows XP ja varasemates versioonides kasutati arvuti failides otsimiseks Windows Search versiooni 2. Windows 7 otsingud Windows XP ja varasemates versioonides kasutati arvuti failides otsimiseks Windows Search versiooni 2. Windows 7 kasutab täiustatud otsingut Windows Desktop Search (WDS), mis põhineb

More information

ANIMATSIOONID CAP TEOREEMI KOHTA HAJUSATE SQL-ANDMEBAASIDE NÄITEL

ANIMATSIOONID CAP TEOREEMI KOHTA HAJUSATE SQL-ANDMEBAASIDE NÄITEL TALLINNA TEHNIKAÜLIKOOL Infotehnoloogia teaduskond Informaatikainstituut IDU40LT Sander Siniorg 134676IAPB ANIMATSIOONID CAP TEOREEMI KOHTA HAJUSATE SQL-ANDMEBAASIDE NÄITEL Bakalaureusetöö Juhendaja: Erki

More information

NAS, IP-SAN, CAS. Loeng 4

NAS, IP-SAN, CAS. Loeng 4 NAS, IP-SAN, CAS Loeng 4 Tunniteemad Network Attached Storage IP Storage Attached Network Content Addressed Storage Network Attached Storage Tehnoloogia, kus andmed on jagatud üle võrgu Salvestusvahendile

More information

Informatsiooni andmeelementide omavaheliste seoste kohta saab, kui vastata järgmistele küsimustele:

Informatsiooni andmeelementide omavaheliste seoste kohta saab, kui vastata järgmistele küsimustele: Andmestruktuurid Programmid töötlevad andmeid. Neid hoitakse programmi töö jooksul mälus. Andmed pole amorfne arvude ja stringide hulk, vaid neil on omavahel väga olulised struktuursed seosed, mis võivad

More information

FUNKTSIONAALNE PROGRAMMEERIMINE. Animatsioonid

FUNKTSIONAALNE PROGRAMMEERIMINE. Animatsioonid Animatsioon on liikuv, ehk ajast sõltuv, graafika Liikumise illusioon saavutatakse sellega, et teatud ajavahemike järel (optimaalseks peetakse 30 freimi sekundis) joonistatakse erineva pildiga uus freim

More information

Androidi rakenduste ligipääsu õigused

Androidi rakenduste ligipääsu õigused Tallinna Ülikool Digitehnoloogiate Instituut Androidi rakenduste ligipääsu õigused Seminaritöö Autor: Martin Kütt Juhendaja: Jaagup Kippar Autor:...... 2017 Juhendaja:...... 2017 Instituudi direktor:......

More information

Teatis paranduse kohta on avaldatud EVS Teataja aasta veebruarikuu numbris.

Teatis paranduse kohta on avaldatud EVS Teataja aasta veebruarikuu numbris. EESTI STANDARDI PARANDUS EVS-ISO 19005-1:2006/AC:2010 DOKUMENDIHALDUS Digidokumendi pikaajalise säilitamise vorming Osa 1: PDF 1.4 (PDF/A-1) kasutamine Document management Electronic document file format

More information

Lühike paigaldusjuhend TK-V201S TK-V401S 1.01

Lühike paigaldusjuhend TK-V201S TK-V401S 1.01 Lühike paigaldusjuhend TK-V201S TK-V401S 1.01 Sisukord Eesti 1 1. Enne alustamist 1 2. Riistvara paigaldamine 2 Technical Specifications 8 Tõrkeotsing 9 Version 05.12.2010 1. Enne alustamist Eesti Pakendi

More information

ESIMENE OSA - ALGAJATELE

ESIMENE OSA - ALGAJATELE ESIMENE OSA - ALGAJATELE Esimene osa on jõukohane neile, kel on olemas programmeerimise alusteadmised. Täiendava materjalina võib kasutada oma programmeerimiskeele dokumentatsiooni. 1 PROGRAMMIDE SISEMAAILM

More information

2

2 1 2 3 4 5 St. seotud grupid 6 7 Soovitused: Vältida sidusgruppide tähtsuse järgi järjestamist. Minimeerige üksikute sidusgruppide esiletõstmist. 8 9 10 11 12 Päästeameti avalik veebileht (www.päästeamet.ee)

More information

COBOL Common Business-Oriented Language

COBOL Common Business-Oriented Language COBOL Common Business-Oriented Language Ain Uljas Ajalugu Esmaettekanne 28 mai 1959 Pentagonis peale seda kui American Departement of Defense palus grupil spetsialistidel luua ärivajadusi rahuldav keel,

More information

Apache Cassandra andmebaasisüsteem ja sellele ühe rakenduse migreerimine

Apache Cassandra andmebaasisüsteem ja sellele ühe rakenduse migreerimine TALLINNA TEHNIKAÜLIKOOL Infotehnoloogia teaduskond Informaatikainstituut Infosüsteemide õppetool Apache Cassandra andmebaasisüsteem ja sellele ühe rakenduse migreerimine bakalaureusetöö Üliõpilane: Marten

More information

5. harjutustund (1.10)

5. harjutustund (1.10) Kava 5. harjutustund (1.10) Andmete laadimine ja töötlus: o ETL (extract, transform & load) põhimõtted o SQL Server Integration Services (SSIS) tutvustus o Iseseisev harjutus Teemad ETL põhimõtted ETL

More information

SIDE (IRT 3930) Põhipunktid. Loeng 23/2007 Sidevõrkude haldus Teema võrguhaldus. Eeldused võrguhalduseks. Telefonivõrk. Mitmetasemeline andmevõrk

SIDE (IRT 3930) Põhipunktid. Loeng 23/2007 Sidevõrkude haldus Teema võrguhaldus. Eeldused võrguhalduseks. Telefonivõrk. Mitmetasemeline andmevõrk SIDE (IRT 3930) Loeng 23/2007 Sidevõrkude haldus Teema võrguhaldus Põhipunktid Võrguhalduse ülesanded Klient server mudel võrguhalduses Halduse standardimine Arvutivõrkude haldussüsteemid Terminalide ja

More information

Objektorienteeritud programmeerimine

Objektorienteeritud programmeerimine Objektorienteeritud programmeerimine 2. loeng 19. veebruar 2018 Marina Lepp 1 Möödunud nädalal Loeng Sissejuhatus Praktikum Paaristöö, algus Vastlapäev Sõbrapäev Hiina uusaasta 2 Umbes mitu tundi tegelesite

More information

Aruandegeneraator Books by HansaWorld 6.3 põhjal

Aruandegeneraator Books by HansaWorld 6.3 põhjal Aruandegeneraator Books by HansaWorld 6.3 põhjal Märts 2012 Sisukord Sissejuhatus... 3 Ettevalmistused... 5 Aruande ettevalmistamine... 5 Määra akna ettevalmistamine... 7 Aruande loomine... 8 Andmed...

More information

VIITMUUTUJA. ARVUTI MÄLU PAINDLIK KASUTAMINE

VIITMUUTUJA. ARVUTI MÄLU PAINDLIK KASUTAMINE VIITMUUTUJA. ARVUTI MÄLU PAINDLIK KASUTAMINE SISSEJUHATUS Selle teema raames tutvustan ma Teile üht omapärast andmeobjekti VIITMUUTUJAT. Selleks, et järgnevast jutust hästi aru saada, tuleb meelda tuletada

More information

Pädevushaldus RESTful veebiteenuste abil

Pädevushaldus RESTful veebiteenuste abil Tallinna Ülikool Informaatika Instituut Pädevushaldus RESTful veebiteenuste abil Seminaritöö Autor: Eigen Lenk Juhendaja: Mart Laanpere Tallinn 2010 Sisukord Sissejuhatus... 3 1. Muutused veebitarkvara

More information

PHP koodimisstandard PSR

PHP koodimisstandard PSR Tallinna Ülikool Informaatika Instituut PHP koodimisstandard PSR Seminaritöö Autor : Manuel Vulp Juhendaja : Jaagup Kippar Tallinn 2014 Sisukord Sissejuhatus... 4 1 Mis on koodimisstandard?... 5 2 Miks

More information

Milleks tüübid? Mida teeb järgmine programmijupp? x 1 := "Pii siinus on : "; x 2 := ; printx 2 ; print(sin(x 1 ));

Milleks tüübid? Mida teeb järgmine programmijupp? x 1 := Pii siinus on : ; x 2 := ; printx 2 ; print(sin(x 1 )); Milleks tüübid? Mida teeb järgmine programmijupp? x 1 := "Pii siinus on : "; x 2 := 3.1415926;... printx 2 ; print(sin(x 1 )); Ei tea (loodetavasti siiski mitte midagi väga hullu :-) VARMO VENE 1 Milleks

More information

RELATSIOONILISTE ANDMEBAASIDE PIDEVA SÜNKRONISEERIMISE RAKENDUSE PLATVORM

RELATSIOONILISTE ANDMEBAASIDE PIDEVA SÜNKRONISEERIMISE RAKENDUSE PLATVORM TALLINNA TEHNIKAÜLIKOOL Infotehnoloogia teaduskond Arvutiteaduse instituut ITV40LT Rein-Sander Ellip 112989 RELATSIOONILISTE ANDMEBAASIDE PIDEVA SÜNKRONISEERIMISE RAKENDUSE PLATVORM Bakalaureusetöö Juhendaja:

More information

Online-raamatupood Iseseisev töö aines Objektorienteeritud modelleerimine

Online-raamatupood Iseseisev töö aines Objektorienteeritud modelleerimine Tallinna Tehnikaülikool Online-raamatupood Iseseisev töö aines Objektorienteeritud modelleerimine Koostaja: Kitty Dahl (97370 LAP) Juhendaja: Ants Torim Tallinn 2000 Lk Sisukord Planeerimise ja täpsustamise

More information

Lühike kokkuvõte Pascal-keele süntaksist 1

Lühike kokkuvõte Pascal-keele süntaksist 1 Lühike kokkuvõte Pascal-keele süntaksist 1 Sellest osast leiab järgmised mõisted ja teemad Keeltest, kompileerimisest ja Pascali ajaloost identifikaator, programmi struktuur, lihtandmetüübid, konstant,

More information

Objekt-orienteeritud programmeerimine MTAT (6 EAP) 5. Loeng. H e l l e H e i n h e l l e. h e i e e

Objekt-orienteeritud programmeerimine MTAT (6 EAP) 5. Loeng. H e l l e H e i n h e l l e. h e i e e Objekt-orienteeritud programmeerimine MTAT.03.130 (6 EAP) 5. Loeng H e l l e H e i n h e l l e. h e i n @ut. e e Täna loengus: Abstraktsed klassid Liidesed Mähisklassid 2 Abstraktsed klassid Meetodit nimetatakse

More information

Aegridade analüüs Praktikum nr. 1, 2016, SAS tarkvara kasutamisest

Aegridade analüüs Praktikum nr. 1, 2016, SAS tarkvara kasutamisest Aegridade analüüs Praktikum nr. 1, 2016, SAS tarkvara kasutamisest Andmete lugemine SAS keskkonda. Protseduur sobiva skripti kirjutamiseks on järgmine: 1. Anname andmestikule nime ja alustame sisselugemise

More information

EstEID Turvakiibi rakenduse kasutusjuhend

EstEID Turvakiibi rakenduse kasutusjuhend EstEID Turvakiibi rakenduse kasutusjuhend Dokumendi versioon: 01.11.2003 1 Sisukord Sisukord... 2 1 Kellele on dokument suunatud... 3 2 Kasutatud lühendid... 3 3 Kaardi äratundmine... 3 4 T=0 või T=1?...

More information

Nokia E51 kasutamine modemina

Nokia E51 kasutamine modemina Tartu Ülikool Matemaatika-informaatika teaduskond Arvutiteaduse instituut Nokia E51 kasutamine modemina Juhend Koostaja: Allar Tammik Juhendaja: Kersti Taurus Tartu 2008 Sisukord Sissejuhatus...3 Arvuti

More information

Infosüsteemi auditi tugitarkvara (CAAT) - ülevaade ja näide. Jaak Tepandi, CISA TTÜ, Tepinfo, EVS TK4, EISAÜ

Infosüsteemi auditi tugitarkvara (CAAT) - ülevaade ja näide. Jaak Tepandi, CISA TTÜ, Tepinfo, EVS TK4, EISAÜ Infosüsteemi auditi tugitarkvara (CAAT) - ülevaade ja näide Jaak Tepandi, CISA TTÜ, Tepinfo, EVS TK4, EISAÜ Jaak Tepandi, 2003 IS CAAT - 2 Teemad CAAT - ülevaade ja lisad CAAT Eestis IDEA ja CaseWare Examiner

More information

Adapter: msa Adapter: msa tns: http://producers.msa.xtee.riik.ee/producer/msa Port msaport Port type Protokoll: SOAP Päringud: 1. hyvitamistingimused Detail 2. hyvitamistingimusedbyidarray Detail 3. kl01riskiklassid

More information

DATA MASKING AND USER RIGHTS IN DATA WAREHOUSE TO PROTECT DATA

DATA MASKING AND USER RIGHTS IN DATA WAREHOUSE TO PROTECT DATA TALLINN UNIVERSITY OF TECHNOLOGY Faculty of Information Technology Department of Informatics IDU70LT Ott Jalakas 143810IAPM DATA MASKING AND USER RIGHTS IN DATA WAREHOUSE TO PROTECT DATA Master s thesis

More information

This document is a preview generated by EVS

This document is a preview generated by EVS EESTI STANDARD EVS-ISO 5725-5:2002 MÕÕTMISMEETODITE JA TULEMUSTE MÕÕTETÄPSUS (TÕELINE VÄÄRTUS JA TÄPSUS) Osa 5: Alternatiivsed meetodid standardse mõõtmismeetodi kordustäpsuse kindlaks määramiseks Accuracy

More information

3.1 Valikulause. Sõnede ja arvude võrdlemine

3.1 Valikulause. Sõnede ja arvude võrdlemine 3.1 Valikulause. Sõnede ja arvude võrdlemine SISSEJUHATUS Elus tuleb teha mitmeid valikuid. Näiteks tuleb abielutseremoonial valida kahe valiku vahel - kas jah või ei. Selles osas vaatame, kuidas valikulausete

More information

This document is a preview generated by EVS

This document is a preview generated by EVS EESTI STANDARD EVS-ISO/IEC 27033-3:2013 INFOTEHNOLOOGIA Turbemeetodid Võrguturve Osa 3: Tüüpsed võrgustsenaariumid Riskid, kavandamismeetodid ja reguleerimisküsimused Information technology Security techniques

More information

Veebilehe loomine HTML5 abil

Veebilehe loomine HTML5 abil Tallinna Ülikool Informaatika Instituut Veebilehe loomine HTML5 abil Seminaritöö Autor: Vladimir Vološin Juhendaja: Andrus Rinde Autor:......... 2011 Juhendaja:...... 2011 Tallinn 2011 Sisukord Sissejuhatus...

More information

BC4J - Java ärikomponentide algõpetus Oracle9i JDeveloper arenduskeskkonna baasil

BC4J - Java ärikomponentide algõpetus Oracle9i JDeveloper arenduskeskkonna baasil Tallinna Pedagoogikaülikool Matemaatika-loodusteaduskond Informaatika osakond Triin Lichfeld BC4J - Java ärikomponentide algõpetus Oracle9i JDeveloper arenduskeskkonna baasil Bakalaureusetöö Juhendaja:

More information

Makrode koostamine. Menüüde koostamine

Makrode koostamine. Menüüde koostamine Makrode koostamine Makrode abil Access lubab automaatselt korrata erinevaid tegevusi ning seega tarbija ei pea kirjutama keerukaid programmi mooduleid. Makro on samasugune Accessi objekt, nagu tabel, päring,

More information

TARTU ÜLIKOOL. Arvutiteaduse instituut LOODUS- JA TÄPPISTEADUSTE VALDKOND

TARTU ÜLIKOOL. Arvutiteaduse instituut LOODUS- JA TÄPPISTEADUSTE VALDKOND TARTU ÜLIKOOL Arvutiteaduse instituut LOODUS- JA TÄPPISTEADUSTE VALDKOND Anita Scharonberg CVE-2015-3457 Referaat Juhendaja: Meelis Roos Tartu 2016 SISUKORD 1 Sissejuhatus... 3 2 Turvaauk... 3 3 Turvaaugu

More information

TEKSTIANALÜSAATORI AUTOMAATMÄRGENDUSELE KASUTAJALIIDESE LOOMINE

TEKSTIANALÜSAATORI AUTOMAATMÄRGENDUSELE KASUTAJALIIDESE LOOMINE Tallinna Ülikool Informaatika Instituut TEKSTIANALÜSAATORI AUTOMAATMÄRGENDUSELE KASUTAJALIIDESE LOOMINE Seminaritöö Autor: Marko Sultsing Juhendaja: Jaagup Kippar Tallinn 2010 SISUKORD LÜHENDID JA VÕÕRKEELSED

More information

Tekstitöötlusprogramm

Tekstitöötlusprogramm Tekstitöötlusprogramm Tekstitöötlusprogramm ei ole mingi tähtsusetu abivahend. Teda ei saa võrrelda aruka kirjutusmasinaga. Võib loetleda järgmisi eeliseid: 1. erinevad kirjakujud ekraanil, kerge loetavus;

More information

Veebiteenuse arendamise teekaart Rada7.ee näitel

Veebiteenuse arendamise teekaart Rada7.ee näitel Tallinna Ülikool Informaatika Instituut Veebiteenuse arendamise teekaart Rada7.ee näitel Bakalaureusetöö Autor: Kirill Milovidov Juhendaja: Jaagup Kippar Autor:...... 2015 Juhendaja:...... 2015 Instituudi

More information

Dokumendi koostas: Rene Tomson, Cybernetica AS, kuupäev:

Dokumendi koostas: Rene Tomson, Cybernetica AS, kuupäev: ETT+ X-tee teenuse päringute näited Dokumendi koostas: Rene Tomson, Cybernetica AS, kuupäev: 10.02.2016. Päringute näidete koostamisel on kasutatud ArcticITE poolt pakutavaid veebiteenuseid. 1. Kaubanomenklatuuri

More information

ArcGIS mobiilsed lahendused kasutades pilve teenuseid. Raido Valdmaa, AlphaGIS

ArcGIS mobiilsed lahendused kasutades pilve teenuseid. Raido Valdmaa, AlphaGIS ArcGIS mobiilsed lahendused kasutades pilve teenuseid Raido Valdmaa, AlphaGIS ArcGIS terviklik süsteem üks kaart, erinevad platvormid ArcGIS Online Server Rakendused ArcGIS Viewers ArcGIS APIs Javascript,

More information

JavaScript programmeerimise tüüpvead ja parimad praktikad

JavaScript programmeerimise tüüpvead ja parimad praktikad Tallinna Ülikool Informaatika Instituut JavaScript programmeerimise tüüpvead ja parimad praktikad Seminaritöö Autor: Kristjan Tammekivi Juhendaja: Andrus Rinde Autor:...,,2014 Juhendaja...,,2014 Instituudi

More information

Venni diagrammide õpiprogramm

Venni diagrammide õpiprogramm TARTU ÜLIKOOL Arvutiteaduse instituut Informaatika õppekava Marko Täht Venni diagrammide õpiprogramm Bakalaureusetöö (9 EAP) Juhendaja: dots. Rein Prank Tartu 2016 Venni diagrammide õpiprogramm Lühikokkuvõte:

More information

Allalaadimiseks. Virtuaalmasinad. Slaidid

Allalaadimiseks.     Virtuaalmasinad. Slaidid 1 Allalaadimiseks Virtuaalmasinad http://elab.itcollege.ee:8000/ Slaidid http://enos.itcollege.ee/~irokk/v6rgud.pdf ARVUTIVÕRGUD - ALUSED Indrek Rokk Indrek.Rokk@itcollege.ee 3 Meeldetuletuseks (1) Milline

More information

EESTI STANDARD EVS-ISO/IEC :2011

EESTI STANDARD EVS-ISO/IEC :2011 EESTI STANDARD EVS-ISO/IEC 15408-1:2011 INFOTEHNOLOOGIA Turbemeetodid Infoturbe hindamise kriteeriumid Osa 1: Sissejuhatus ja üldmudel Information technology Security techniques Evaluation criteria for

More information

Programmeerimine. 2. loeng

Programmeerimine. 2. loeng Programmeerimine 2. loeng Tana loengus Nimed ja muutujad Baastuubid Litaraalkonstandid Omistamine Aritmeetilised avaldised Funktsioonide rakendamine Standardteegid Muutujad Imperatiivses programmeerimises

More information

Kiir-sissejuhatus kompilaatorite ehitusse. Priidu Paomets

Kiir-sissejuhatus kompilaatorite ehitusse. Priidu Paomets Kiir-sissejuhatus kompilaatorite ehitusse Priidu Paomets 2002 Sisukord Sissejuhatus Formaalsed keeled Keeled kui stringihulgad Grammatikad Regulaarsed avaldised Lõplikud automaadid Kontekstivabad grammatikad

More information

SEADISTAMISE JUHEND. Zoiper. Toompuiestee 37, Tallinn;

SEADISTAMISE JUHEND. Zoiper. Toompuiestee 37, Tallinn; SEADISTAMISE JUHEND Zoiper Toompuiestee 37, 10133 Tallinn; teenindus@gonetwork.ee; +372 6310700 Sisukord Sissejuhatus... 3 Täpsustav info... 3 Sätted... 3 Windows (UDP)... 4 Allalaadimine ja Paigaldamine...

More information

WhiteDB C# API loomine ja jõudluse analüüs

WhiteDB C# API loomine ja jõudluse analüüs TALLINNA TEHNIKAÜLIKOOL Infotehnoloogia teaduskond Informaatikainstituut Tarkvaratehnika õppetool WhiteDB C# API loomine ja jõudluse analüüs bakalaureusetöö Üliõpilane: Andrei Reinus Üliõpilaskood: 111881

More information

CSS i laiendusvõimalused läbi Sass i ning selle kasutamine veebirakenduste loomisel

CSS i laiendusvõimalused läbi Sass i ning selle kasutamine veebirakenduste loomisel Tallinna Ülikool Informaatika Instituut CSS i laiendusvõimalused läbi Sass i ning selle kasutamine veebirakenduste loomisel Seminaritöö Autor: Martin Koidu Juhendaja: Jaagup Kippar Tallinn 2012 Autorideklaratsioon

More information

VEEBITEENUST KASUTAV KASUTAJA TEGEVUSTE JÄLGIMISE JA SALVESTAMISE RAKENDUS

VEEBITEENUST KASUTAV KASUTAJA TEGEVUSTE JÄLGIMISE JA SALVESTAMISE RAKENDUS TALLINNA TEHNIKAÜLIKOOL Infotehnoloogia teaduskond Informaatikainstituut Infosüsteemide õppetool VEEBITEENUST KASUTAV KASUTAJA TEGEVUSTE JÄLGIMISE JA SALVESTAMISE RAKENDUS Bakalaureusetöö Üliõpilane: Üliõpilaskood:

More information

Tartu Ülikooli Ideelabori veebikeskkonna arendus Bakalaureusetöö (6 EAP)

Tartu Ülikooli Ideelabori veebikeskkonna arendus Bakalaureusetöö (6 EAP) TARTU ÜLIKOOL MATEMAATIKA-INFORMAATIKATEADUSKOND Arvutiteaduse instituut Informaatika eriala Lauri Laur Tartu Ülikooli Ideelabori veebikeskkonna arendus Bakalaureusetöö (6 EAP) Juhendajad: Uuno Puus, Margus

More information

M. Kusmin, Programmeerimine II Teema 6 1

M. Kusmin, Programmeerimine II Teema 6 1 M Kusmin, Programmeerimine II Teema 6 1 Teema 6 Dünaamiline mälukasutus Väga sageli pole programmi kirjutamise ajal täpselt teada, kui suuri puhvreid või muid "mälust haaratavaid tükke" programmi töö ajal

More information

TARTU ÜLIKOOL MATEMAATIKA-INFORMAATIKATEADUSKOND Arvutiteaduse instituut Infotehnoloogia eriala. Bakalaureusetöö (6 EAP)

TARTU ÜLIKOOL MATEMAATIKA-INFORMAATIKATEADUSKOND Arvutiteaduse instituut Infotehnoloogia eriala. Bakalaureusetöö (6 EAP) TARTU ÜLIKOOL MATEMAATIKA-INFORMAATIKATEADUSKOND Arvutiteaduse instituut Infotehnoloogia eriala Gerrit Kraav Mobiilse haiglainfosüsteemi broneeringu rakenduse arendamine Bakalaureusetöö (6 EAP) Juhendaja:

More information

Veebilehtede loomine, css3

Veebilehtede loomine, css3 CSS... 3 CSS LINKIMINE HTML DOKUMENDIGA... 4 Välise stiililehe rakendamine... 4 Sisemise stiili rakendamine... 4 Reastiili rakendamine... 5 CSS ÕIGEKIRI... 5 Erinevad selektorid... 6 Elemendi nimega selektorid...

More information

Tabelid tekstis. Tabeli loomine. Tabeli täitmine ja täiendamine

Tabelid tekstis. Tabeli loomine. Tabeli täitmine ja täiendamine Tabelid tekstis Tabelid on teema, mida enamik arvutikasutajaid seostab arvutamise ning seega tabelarvutusprogrammiga (MS Excel, Quattro Pro, Lotus 123 jms). Tegelikult on aga paljudel meist oma dokumentides

More information

Andmebaasi. Kirja loomine. loomine. Kirja põimimine. Kirjakomplekti. loomine. Vormkirjad / Ümbrikukomplektid / Aadressilipikud.

Andmebaasi. Kirja loomine. loomine. Kirja põimimine. Kirjakomplekti. loomine. Vormkirjad / Ümbrikukomplektid / Aadressilipikud. Dokumendipõime Kirjakooste (Mail Merge) Kui on tihti vaja välja saata mahukaid kirjakomplekte, on kirjad sobiv koostada põhiliselt tüüptekstist koosnevate vormkirjadena (Form Letters), kasutades dokumendipõimet.

More information

MTAT OPERATSIOONISÜSTEEMID praktikumid. Kersti Taurus

MTAT OPERATSIOONISÜSTEEMID praktikumid. Kersti Taurus MTAT.03.008 OPERATSIOONISÜSTEEMID praktikumid Kersti Taurus Mida tehakse praktikumides? Paigaldatakse operatsioonisüsteemid: Windows 7 Professional 64 bit eestikeelne ver. opensuse Linux 11.2 Edasi ülesanded

More information