Kodulehed Valitud koduleht:IDU0230_2016 - Andmebaasid II (IDU0230) (sügis 2016) Logi sisse
Üldist
Pealehe teated
Aine tutvustus
Registreerumine
Kõik teated
Vastuvõtuajad
Teadmiste kontroll
Otsing
Materjalid
Aine korraldus
Iseseisva töö projekti tegemine
Teooria testideks (vahetestid, eksam) valmistumine
Tarkvara saamine ja kasutamine
Tulemused
Tudeng
Oma andmed
Ülesanded
Personaalsed teated
Abi
Korduvad küsimused
Helpdesk
Mitmesugust
Olulised viidad
pinnedErki Eessaar: Lehekülg on suletud
03.09.2017 SEE LEHEKÜLG ON SULETUD! KOGU SELLEL LEHEKÜLJEL OLEV INFORMATSIOON ON MITTEAKTUAALNE!

Aine uus kodulehekülg koos aktuaalse informatsiooniga asub http://maurus.ttu.ee/366

Erki Eessaar: Uus raamat
11.08.2017 TTÜ raamatukokku jõudis kaks eksemplari Martin Kleppmanni uuest raamatust Designing data-intensive applications : the big ideas behind reliable, scalable, and maintainable systems. See raamat katab paljusid teemasid, mida käsitleb "Andmebaasid II" ja läheb ka sellistesse detailidesse, milleni aines ei jõuta. Soovitan seda raamatut lugeda!

Lisainfot leiab Martin Kleppmanni ajaveebist.

Erki Eessaar: Võimalik lõputöö teema
21.02.2017 Teema sobiks nii andmebaaside kui veebirakenduste programmeerimisega hästi kodus olijale ja pigem IAPB õppekaval õppijale.

Jätkata avatud lähtekoodiga veebipõhise metaandmetega juhitavate veebirakenduste kiirprogrammeerimise vahendi pgApex arendamist. Selle süsteemi esimese versiooni loomisega lõppenud magistritöös on arendusvaates kirjas suur hulk täiendusvajadusi. pgApexit tuleb ise katsetada, võrrelda Oracle APEXiga ja teha kindlaks, kas leidub veel täiendusvõimalusi. Järgmiseks ülesandeks on väljalaske planeerimine (release planning) – milline funktsionaalsus lõputöö tulemusena realiseerida. Tuleb valida meetod selle otsustamiseks ja seda rakendada. Kõik täiendused tuleb mudelite abil projekteerida ja ka tarkvaras realiseerida ning testida. Töö peab ka kirjeldama täienduste tegemise protsessi. Siin on pgApexi serverisse üles laetud arenduskeskkond ning siin on selle vahendi MIT litsentsiga kaitstud lähtekood. Töö tulemus peab olema samuti avatud lähtekoodiga, mida kaitseb MIT litsents. Projekt peab olema GitHubis. Töö kõrvaltegevusena tuleb teha statistikat andmebaasi skeemimuudatuste ja nendest tingitud rakenduse lähtekoodi muudatuste kohta.

Erki Eessaar: Lisapunktid lisaeksamil
20.01.2017 Lisaeksamil lähevad lisapunktid endiselt arvesse.
Erki Eessaar: Iseseisva töö tähtaeg
18.01.2017 Kõik, kes soovivad teha lisaeksamisessioonil eksamit ja iseseisev töö on positiivsele tulemusele tegemata, peavad esitama iseseisva töö hindamiseks hiljemalt 21. jaanuaril 2017 kell 23:59.
Erki Eessaar: Andmete turvalisuse õppetund metsaregistri näitel
18.01.2017 Soovitan kõigil, kes seda pole veel teinud, lugeda 15.01.2017 Postimehest Nils Niitra poolt kirjutatud artiklit andmelekkest metsaregistris. See on surepärane juhtumianalüüs teema 5 (andmete turvalisus) kohta.

Niitra (2017) kirjutab metsaregistrist toimunud andmelekkest. Väidetavalt luges üks artikli kirjutamise ajaks töölt lahkunud töötaja süstemaatiliselt infot isikute (nimed, sünniajad, telefoninumbrid) ja nende metsakinnistute kohta. Peale töölt lahkumist asus ta tööle erafirma metsakorraldajana. Lekkinud info alusel hakkasid metsaomanikud saama massiliselt telefonikõnesid, millega üritati neid kallutada müüma raieõigust turuhinnast madalamalt. Vahendusfirmasid huvitab põhiliselt raieõigus. Seda müüakse suure vaheltkasuga edasi metsa ülestöötamisega tegelevatele ettevõtetele. "Samad firmad tegelevad ka kinnistute vahendamisega rahvusvahelistele kontsernidele, Eesti kohalikele suurmaaomanikele ja välismaistele pensionifondidele. Mets saadakse inimestelt kätte muuhulgas neid juriidiliselt korrektsel moel pettes, kasutades selleks väga erinevaid võtteid." (Niitra, 2017)

Olgu öeldud, et avaliku teabe seadus keelab riigi infosüsteemis asutada ühtede ja samade andmete kogumiseks eraldi andmekogusid. Isikuandmete kogumise koht on rahvastikuregister. Metsaregistrisse jõuavad isikuandmed siis, kui inimesed esitavad e-kava keskkonna kaudu metsaregistrile enda metsa kohta infot.

Milliseid seoseid saab tõmmata selle juhtumi ja andmebaaside aines õpitu vahele?

  • Andmete loata lugemine rikkus konfidentsiaalsuse nõuet.
  • Kuna metsaregister ei loginud piisavalt infot selle kohta, kes ja milliseid andmeid täpselt luges ning milliseid tegevusi andmetega tegi (kas laadis alla või mitte), siis polnud täidetud ka revideeritavuse nõue.
  • "Asutusesisese uurimise käigus suudeti küll tõestada, et mees oli käinud andmeid vaatamas, küll aga oli võimatu tagantjärele kindlaks teha, kas ta neid ka maha laadis." – puudus võimalus viia läbi turvarikke tõendtuvastus, mida on vaja turvarikete rangeks ja täpseks tõestamiseks (näiteks, et oleks võimalik kasutada süüdistusmaterjalina kohtus).
  • Töötaja vaatas andmeid, mis ei kuulunud tema tööpiirkonda – õiguste jagamisel ei oldud lähtutud minimaalsuse printsiibist.
  • Registri kasutamise paroolid on antud ka metsakonsulentidele. Neil võib tekkida huvide konflikt, kuid kuna andmete lugemisi piisavalt ei logita, siis on võimatu seda tuvastada. Võimalik, et süsteemile juurdepääsu andmisel pole lähtutud minimaalsuse põhimõttest ja juurdepääs on antud liiga suures ulatuses liiga laiale kasutajate ringile.
  • Riiklike registrite andmete avalikustamine suurendab üheltpoolt läbipaistvust, kuid teisalt võib leiduda selle info kuritarvitajaid. "Isegi metsaregistri avalik osa on vahendajatele piisavalt huviväärne. Hiljuti muutis riik kaardil nähtavaks ka kõik need metsaeraldised, millel tohib teha uuendusraiet ehk lageraiet. Just sellised tükid tõotavad iseäranis suurt tulu vahendajatele ja metsa ülestöötajatele." (Niitra, 2017)
  • Süsteemi kõige nõrgemaks lüliks on sellega seotud inimesed.
  • Kasuahnus on väga levinud rünnaku motiiv.
  • Ebaseaduslikult saadud andmed võivad anda ettevõttele konkurentide ees ebaseadusliku ja ebaeetilise eelise.
  • Kõneluse töötaja elukaaslane töötab ühes riigi suurimas metsavahendusfirmas metsahindajana. Eelnev taustakontroll oleks võinud tuvastada töötaja puhul huvide konflikti ja talle poleks pidanud selliseid õiguseid andma või oleks vähemalt tulnud võtta selle töötaja tegevus tervadatud tähelepanu alla. Taustakontrolli vajaduse kehtestamine oleks organisatsiooniline tugevdusmeede. Selle tulemuste alusel juurdepääsu piiramine oleks tehniline tõkestusmeede.
  • Selliste juhtumite uurimisega tegeleb Andmekaitse Inspektsioon.
  • Ilmselt pole metsaregistri puhul ISKEt kasutatud.
Erki Eessaar: Küberfüüsikaliste süsteemide loeng
16.01.2017 Nii andmebaaside ainetes kui ka süsteemianalüüsi ainetes on Teile räägitud süsteemide mudelipõhisest arendusest ja sellest, et süsteemid koosnevad omavahel teatud reeglite alusel suhtlevatest allsüsteemidest.

17. jaanuaril on TTÜs loeng, kus professor ühest maailma tippülikoolist räägib samast teemast küberfüüsikaliste süsteemide võtmes. Kõik huvilised on oodatud!

*************

We have great opportunity to host a very special quest Prof. Stavros Tripakis from Berkeley (https://people.eecs.berkeley.edu/~stavros/) who is one of the big names in formal methods for cyber physical systems. His lecture will be on 17th of January at 12.00, room 507 ab. Please find the abstract and slides from the link below. All who are interested on formal methods and their application in CPS development are welcome.

Jüri Vain

Abstract
In this talk we will discuss systems, system design, and compositionality. We begin by proposing a generic definition of system and debate classic and modern system theories. Motivated by cyber-physical systems, most of which are safety-critical, we ask what is the best way to design such systems, and answer "model-based design". We discuss work by the author on model-based design, focusing on compositionality, and in particular work on the refinement calculus of reactive systems.

Slides http://materials.dagstuhl.de/files/16/16491/16491.StavrosTripakis.Slides.pdf

Erki Eessaar: Eksami algusaja muudatus
17.01.2017 kell 15:30 algama pidanud eksami algus on lükatud edasi samal päeval ja samas ruumis kella 16:00-ks.

Seega eksam toimub 17.01.2017 kell 16:00 ICT-402

Vabandan võimalike ebamugavuste pärast!

Erki Eessaar: Mõtteid andmebaaside arengusuundadest
07.01.2017 Kellel ei ole veel andmebaasidest mürgistust tekkinud, siis siin on minu mõtteid andmebaaside arengusuundadest. Seal on nimetatud nii hetkel "kuumi" tehnoloogiaid/lähenemisi, kui ka teemasid, millele praegu teenimatult vähe tähelepanu pööratakse, kuid mis minu arvates vajaksid lahendamist.

Üle kümne aasta uus väljaanne: Readings in Database Systems, 5th Edition. Selles esitavad andmebaasidega seotud teadus- ja arendustöö suurkujud viiteid mõnedele andmebaaside valdkonda palju ja püsivalt mõjutanud teadusartiklitele. Mis peamine, iga peatüki ees on toimetajate kommentaar, milles tutvustatakse artikleid ning kommenteeritakse andmebaasisüsteemide minevikku, olevikku ja tulevikku. Kellel on andmebaaside ja maailma selle valdkonna trendide vastu sügavam huvi, soovitan lugeda.

Erki Eessaar: Veelkord isikunimedest
31.12.2016 Leidub isikunimesid, mida mõned arvutisüsteemid ei suuda korrektselt töödelda. Isikunimedega tuleb tegeleda ka Teie projekti andmebaasis.
Erki Eessaar: Projektist (5)
29.12.2016 Kasutatud materjalide hulgas tuleb nimetada "Andmebaasid II" õppematerjalid.
Erki Eessaar: Projektist (4)
29.12.2016 Kes teeb rakenduse pgApexis - ka Teil on vaja luua andmebaasis uus rakendusele vastav kasutaja ja jagada sellele minimaalsuse põhimõttest lähtuvalt õiguseid. Selle kasutaja nimi/parool tuleb kirjutada rakenduse omaduste "Database username" ja "Database password" väärtuseks. Rakendus hakkab andmebaasi kasutama selle kasutaja õigustes.
Erki Eessaar: Projektist (3)
29.12.2016 Palun ärge unustage sügisel CASE vahendis loodud andmebaasi füüsilise disaini diagramme oma projekti dokumenti kopeerida. Nendega tuleb asendada kevadel loodud andmebaasi füüsilise disaini diagrammid.
Erki Eessaar: Projektist (2)
29.12.2016 Veel üks asi, mida enne esitamist üle vaadata - tiitellehel peab olema õige ainekood (IDU0230) ja aine nimi (Andmebaasid II).
Erki Eessaar: Projektist
29.12.2016 Kui esitate projekti hilinemisega, siis kaotate punkte. See võib takistada lävendi (31 punkti) ületamist. Teie harjutustundides või lisapunktide testidega kogutud punktid sellest lävendist kergemini üle ei aita.

Küll aga aitab lävendi ületamisele kaasa järgnevale tähelepanu pööramine.

  • Hindamismudelis ettenähtud lisapunktide (kokku 20 võimalikku) kogumine. Mille eest saab lisapunkte on kirjas hindamismudeli eraldi töölehel.
  • Oma töö automaattestimine. Kes teeb projekti PostgreSQLis, see laske kindlasti käima "Quick test". Iga selle välja toodav tulemus tähendab punktikadu (välja arvatud vaadete suhtes õiguste jagamine, kus tulemuse PUUDUMINE tähendab punktikadu).
  • Iga tööst leitud tekstilõik, mis on kopeeritud mõnest teisest kohast (nt näiteprojekt) ja on korrektselt viitamata (peab olema jutumärkides, taga viide allikale; allikas nimetatud kasutatud materjalides) tähendab ühte miinuspunkti.
Erki Eessaar: NoSQL
27.12.2016 Andmebaaside maailm on suur ja lai ning viimasel ajal lööb seal laineid uus populaarne tegelane nimega NoSQL. Selle teema kohta ei tule eksamiküsimusi ja ei jõudnud sellest ka palju loengutes rääkida. Kuid, kellel huvi, siis jagan viiteid.

Selles dokumendis on lk 29-46 minu eestikeelne ülevaade NoSQL süsteemidest.

Ingliskeelsetest allikatest soovitan esmatutvuseks järgnevaid:

Kõik need ingliskeelsed allikad pärinevad umbes 2013. aastast. Süsteemide tehnilised detailid on sellest ajast kindlasti muutunud, kuid nendes süsteemides andmete esitamise üldised põhimõtted on jäänud samaks.

Erki Eessaar: Häid pühi
23.12.2016 Soovin kõigile kauneid jõule ja õnnelikku vana aasta lõppu! Kohtumiseni eksamisessioonil!
Erki Eessaar: Paroolide räsimisest ja trigeritest
22.12.2016 Ülesandes 9 pakuti ühekordne lahendus andmebaasis olevate avatekstiliste paroolide nende põhjal leitud räsiväärtustega asendamiseks. Kui lisasite peale ülesande 9 täitmist isikute tabelisse uusi ridu ja tahate nendes ridades parooli samasugusel viisil räsida, siis tuleb muuta vaid ridu, kus parool on veel avatekstina. Seega tuleb UPDATE lausesse lisada WHERE klausel. Näiteks:

UPDATE Isik SET parool=... WHERE isik_id IN (...);

Räsiväärtuste arvutamist on võimalik automatiseerida, sidudes tabeliga Isik INSERT trigeri ja UPDATE trigeri, mis käivitub andmete muutmisel parooli veerus. Huvilised leiavad selliste trigerite koodinäite Oracle jaoks kataloogist: Tarkvara saamine ja kasutamine/Oracle APEX õppevideod (APEX 4.2 baasil) dokumendist "APEXis autentimisskeemi muutmine, et kasutada parooli kontrollimiseks funktsiooni."

Erki Eessaar: Nimedest
22.12.2016 Hea kokkuvõte andmebaasiobjektide nimetamise tüüpprobleemidest ja nende parandamise võimalustest. Artikkel on kirjutatud PostgreSQL põhjal, kuid kehtib ka kõigi teiste SQL-andmebaasisüsteemide korral.
Erki Eessaar: Trigeritest
19.12.2016 Uuendasin harjutustunni ülesannet 10 (trigerid). Panin leheküljele 2 kollasele taustale kirja info selle kohta, millised trigerid oleks vaja luua, kui soovite töövihiku järgi tehtavas projektis trigerite abil täielikult realiseerida põhiobjekti seisundidiagrammis esitatud informatsioonist tulenevad kontrollid. Nagu näete, on seisundidiagrammis palju infot ja kokku tuleks luua 8 trigerit.

Rõhutan, et see pole hindamismudeli mõttes kohustuslik. Projektis peab olema tehtud miinimum kaks trigerit (PostgreSQLis võivad nende asemel olla ka reeglid).

Erki Eessaar: PostgreSQL andmebaasi kiirkontroll
17.12.2016 Lõin PostgreSQL disaini kontrolli süsteemis kiirtesti (Quick test). Kui valite selle, vajutate vanas keskkonnas nupule "Execute and show only queries that return rows" ning tulemuses on ridu, siis on väga tõenäoline, et Teie andmebaasi disainis on mõni puudujääk. See test ei leia kõiki võimalikke vigu, vaid sinna on olemasolevatest kontrollidest valitud sellised, mille tulemus osutab kõige tõenäolisemalt veale.
Erki Eessaar: Täiendav eksamiaeg
16.12.2016 Lisasin ÕISi täiendava eksamiaja 4. jaanuariks 2016 kell 13:00 ICT-402.
Erki Eessaar: 23. detsember
15.12.2016 23. detsembril lõpeb ülikoolis ametlikult tööpäev kell 12.00. Kuid minu harjutustunnid ja vastuvõtuaeg toimuvad vastavalt tunniplaanile.
  • Harjutustund: 23. detsember 2016 kell 12:00-13:30 ICT-637.
  • Harjutustund: 23. detsember 2016 kell 14:00-15:30 ICT-404.
  • Vastuvõtuaeg: 23. detsember 2016 kell 16:00-17:00 ICT-627 (vajalik eelregistreerimine e-meili teel).

Võimalus on veel projekti kohta küsimusi esitada.

Erki Eessaar: Jõudlusprobleemide lahendamisest PostgreSQLi näitel
14.12.2016 Hea lisalugemine teema 7 juurde sellest, kuidas reaalses süsteemis Sherlock Holmes`likult ühe jõudlusprobleemi põhjuseid taga otsiti ja siis see probleem lahendati.
Erki Eessaar: Andmesaatkonnad
13.12.2016 Juhin Teie tähelepanu uudisele andmesaatkondade kohta, mis seostub nii teemaga 5 (andmete turvalisus) kui ka 12 (hajusad andmebaasid).

Tegemist on näitega, kuidas liiasust kasutatakse andmete kaitse ühe vahendina.

Pange tähele, kuidas artiklis rõhutatakse korduvalt andmete tervikluse vajadust "Selle kontseptsiooni juures ei saa me aga üle ega ümber vajadusest andmete tervikluse järele –kuidas me tagame, et mingi Eestis kasutusel olevas andmekogus ja selle peegelduses kas siis saatkondades ja mujal välismaa pilveteenustes olevad andmed oleksid igal ajahetkel samad."

Teemas 12 on juttu CAP teoreemist, mille kohaselt andmete hajutatud paiknemise korral on disaineritel valida, kas tagada süsteemi kättesaadavus igal ajahetkel (leppides sellega, et andmed koopiates pole igal hetkel ühesugused) või koopiate kooskõla igal ajahetkel (leppides sellega, et süsteemi või selle osi ei saa mõnikord kasutada). Paljud (kergekaalulisemad) hajutatult paiknevad süsteemid eelistavad tagada kättesaadavust. Kriitilise tähtsuega andmetega süsteemid (nagu riiklikud süsteemid, aga ka pangad), aga ei saa kuidagi koopiate kooskõlast mööda vaadata.

Erki Eessaar: Iseseisva töö projekti tegemine
12.12.2016 Olen tänaseks pannud kataloogi Iseseisva töö projekti tegemine/Töö harjutustunnis (samm-sammuline juhend) kõik ülesanded, mis kokku moodustavad projekti tegemise juhendi.

Kataloogi Teooria testideks (vahetestid, eksam) valmistumine/Harjutustunni slaidid (enamasti iseseisvaks uurimiseks) on pandud viimane slaidikomplekt, millest võiks olla abi nii projektis nõutud täitmisplaani kirjelduse koostamisel, kui ka viimaseks lisapunktide testiks ja eksamiks (teema 7 kohta) ettevalmistamisel.

Erki Eessaar: Andmebaasi hallatavus
10.12.2016 Minult on küsitud, millele oleks eriti oluline andmebaaside õppimisel tähelepanu pöörata.

Kui maailmas on üldse midagi kindlat, siis see, et kõik on pidevas muutumises. Kui loote infosüsteemi ja selle andmebaasi, siis tuleb neid ajaga kaasaskäimiseks pidevalt kohandada. Hoolduskulud võivad lõpuks moodustada kuni 80% süsteemi kogukuludest. Selles kontekstis on väga oluline andmebaasi hallatavus.

Artiklis: Riaz, M., Tempero, E., Sulayman, M., & Mendes, E. (2013). Maintainability Predictors For Relational Database-Driven Software Applications: Extended Results From A Survey. International Journal of Software Engineering and Knowledge Engineering, 23(04), 507-522.

esitatakse 40 tarkvararenduse spetsialisti hulgas läbiviidud küsitluse tulemused. Selle küsitlusega sooviti teada saada, millised tegevused aitavad parandada SQL-andmebaasi põhiste andmebaasirakenduste hallatavust. Teatele lisatud failis tuuakse välja kõik sellised aspektid, millel on küsitlusele vastanute arvates mõõdukas või suur positiivne mõju hallatavusele. See fail esitab artiklis esitatud diagrammi.

Andmebaasi_hallatavust_suurendavad_tegurid.jpg
Erki Eessaar: Projekti hindamisest
09.12.2016 Meenutan, et ...
  • 24. detsember 2016 – 30. detsember 2016 esitatud töö saab hilinemise eest 5 miinuspunkti
  • 31. detsember 2016 – 28. jaanuar 2017 esitatud töö saab hilinemise eest 10 miinuspunkti

Hindamismudelis on lehekülg Lisapunktid, kus on kirjas võimalused saada projekti eest rohkem punkte, tehes selleks projekti nõutust mahukamaks.

Erki Eessaar: Lisapunktide test kuueteistkümnendal õppenädalal
09.12.2016 Kuueteistkümnendal õppenädalal (19.12.2016-22.12.2016) on harjutustundide alguses võimalik teha vabatahtlikku lisapunktide testi loengute teemade 5-7 kohta. Ettevalmistamiseks on teemade slaidid ja kordamisküsimused eksamiks. Need materjalid on väljas kodulehel kataloogis Teooria testideks (vahetestid, eksam) valmistumine (teema 7 slaidid panen välja 15ndal õppenädalal).

Testil osalemiseks on kohustuslik registreerida. Registreerimine toimub Mauruse kaudu: Üldist => Teadmiste kontroll (nagu kevadel SQL kontrolltööle). Testil osalemiseks peab olema kaasas isikut tõendav dokument (nagu kevadel SQL kontrolltööl ja eksamil; raamatukogu- krediit- jms kaardid ei sobi ja nendega testi teha ei saa; autojuhiluba sobib).

Erinevused võrreldes eelmise kahe lisapunktide testiga.

  • Küsimusi on kuus, mitte viis (loodan, et see sobib - võimalus üks punkt rohkem saada).
  • Vastamiseks on aega 12 minutit.
  • Testi tulemusi saab vaadata, kui kõik üliõpilased on tunnis testile vastamise lõpetanud.
  • Reedel 23. detsembril 2016 teste ei toimu. See on viimane päev enne projekti esitamise tähtaega ja selle päeva tunnid on mõeldud viimastele küsimustele vastamiseks.
Erki Eessaar: Isikuandmete kogumisest Eesti mobiilirakendustes
05.12.2016 Tarbijakaitseamet ja Andmekaitse Inspektsioon viisid 2016. aastal läbi ühisseire. Selle käigus vaadeldi isikuandmete töötlemist kümnes suure kasutajaskonnaga Eesti mobiilirakenduses. Kõigil kontrollitud rakendustest esines suuremal või vähemal määral puudusi isikuandmete töötlemise osas. Peamise probleemina selgus, et tihtilugu küsib rakendus igaks juhuks luba rohkematele andmetele kui tegelikult rakenduse kasutamiseks vajalik on.
Erki Eessaar: Iseisva töö rakenduse osa esitamine
04.12.2016 Iseseisva töö andmebaasirakenduse loomise vahendi valikul on järgnevad piirangud.
  1. Loodud rakendus peab kasutama apex.ttu.ee serveris olevat andmebaasi.
  2. Serverirakenduse korral peab teil peab olema keskkond, kus seda käitada.
    • apex.ttu.ee serveris on PHP (5.5.3), pgApex, Oracle APEX (4.2).
    • Väljaspool ülikooli võrku oleva rakenduse korral peate apex.ttu.ee serveriga looma SSH ühenduse.
  3. Rakendust peab olema võimalik õppejõule demonstreerida. Üldiselt ei ole vaja tulla projekti, sh rakendust isiklikult ette näitama. Sellele tingimusele on järgmised erandid, mille korral on vaja tulla rakendust eksamisessiooni ajal vastuvõtuajal ette näitama. Projekti tulemuse saab teada alles peale seda kohtumist. Vastuvõtule tulek on vaja eelnevalt e-meili teel registreerida.
    • Kui rakenduse kasutamine eeldab kasutaja arvutisse lisaks PostgreSQL ODBC draiverile või MS Accessile täiendava tarkvara installeerimist.
    • Kui serverirakenduse poolt andmebaasisüsteemiga ühenduse loomine ei õnnestu (nt tasuta keskkonnad ei võimalda luua SSH ühendust) ja rakendus töötab vaid üliõpilase enda arvutis.
  4. Sõltumata sellest, kas Teil on vaja tulla rakendust ette näitama või mitte, loetakse projekt esitatuks alles siis, kui kõik projekti osad, sh rakenduse lähtekood on Maurusesse laaditud.
    • Oracle APEXi korral on vaja esitada rakenduse eksportimisel loodud fail.
    • pgApexi korral on vaja esitada apex.ttu.ee serverist andmebaasi pgapex eksportimisel saadud fail (plain formaadis, SQL laused; loomiseks saate kasutada pgAdmin programmi Backup funktsiooni).
    • MS Accessi korral on vaja esitada *.mdb või *.accdb laiendiga fail, mitte *.mde või *.accde laiendiga fail.
    • Kui teete rakenduse mõnes programmeerimiskeeles, siis tuleb saata nii lähtekood, käivitatavad failid kui ka käivitamise juhend (veebirakenduse korral viimase asemel link).
Erki Eessaar: Vastuvõtuaja ühekordne muudatus
04.12.2016 Reedel 9. detsembril 2016 kell 16:00-17:00 ruumis ICT-627 toimuv vastuvõtuaeg jääb ära.

Selle asemel on vastuvõtuaeg neljapäeval 8. detsembril 2016 kell 13:00-14:00 ruumis ICT-627.

Erki Eessaar: Protseduuridest ja funktsioonidest
03.12.2016 Palun kõigil, kes on juba iseseisva töö mustripõhise juhendi alusel (see on eeldusaine kodulehel) oma projekti jaoks protseduure või funktsioone teinud, lugeda ja võtta teadmiseks sellesse juhendisse praegu lk 30-31 lisatud hoiatust.
Erki Eessaar: Eeltöö enne 14nda õppenädala harjutustundi
01.12.2016 Selleks, et saaksite 14ndal õppenädalal (05.12.2016 - 09.12.2016) võimalikult hästi kaasa töötada, palun Teil enne tundi tulekut lugeda läbi ülesande 9 dokumendi esimesed neli lehekülge. See on kodulehel väljas. Loomulikult võib ka rohkem lugeda.
Erki Eessaar: Eksam
01.12.2016 Kataloogis Aine korraldus on dokumendis Eksam_IDU0230_2016.pdf väljas informatsioon eksami kohta.
Erki Eessaar: Iseseisva töö esitamine
01.12.2016 Iseseisva töö esitamise tähtaeg on 23. detsember 2016 (kaasa arvatud). Esitamine toimub Mauruse kaudu. Enne failide saatmist lugege palun ülesandest, mis kujul tuleb vastused saata.
Erki Eessaar: Töö 13nda nädala harjutustunnis
26.11.2016 Selleks, et saaksite 13nda nädala harjutustunnis kaasa töötada, installeerige palun sülearvutisse, millega harjutustuses käite
  • Oracle SQL Developer
  • PostgreSQL ODBC draiver
  • Looge ODBC andmeühenduse spetsifikatsioon nimega PostgreSQL_yhendus

VÕI

logige harjutustunnis arvutiklassi arvutisse, sest seal on see tarkvara olemas.

Viited tarkvarale ja ODBC andmeühenduse spetsifikatsiooni loomise juhend on õppeaine kodulehel teates "Tarkvara" (kuupäevaga 05.09.2016)

Erki Eessaar: PostgreSQL BRIN (plokkide vahemiku) indeks
25.11.2016 Järgnevas katsetuses on read veerus reg_aeg olevate väärtuste alusel kettal loomulikul viisil enam-vähem sorteeritud. Kasutan funktsiooni timeofday(), et iga lisatud rea jaoks genereeritaks uus ajatempel, mitte ei kasutataks ühte ajatemplit kogu lisamise transaktsiooni kohta.

CREATE TABLE Brin_test (brin_test_id INTEGER PRIMARY KEY,
reg_aeg TIMESTAMP NOT NULL DEFAULT timeofday()::timestamp);

INSERT INTO Brin_test(brin_test_id)
SELECT generate_series
FROM generate_series (1,1000000);
/*Lisasin tabelisse miljon rida.*/

ANALYZE;

\timing

SELECT Count(*) AS cnt FROM Brin_test WHERE reg_aeg>'2016-11-25';
/*Tulemuses 0 rida. Ilma BRIN indeksita kulus tulemuse leidmiseks aega 167.908 ms*/

CREATE INDEX idx_brin_test ON Brin_test USING BRIN (reg_aeg);

ANALYZE;

SELECT Count(*) AS cnt FROM Brin_test WHERE reg_aeg>'2016-11-25';
/*Tulemuses 0 rida. BRIN indeksiga kulus tulemuse leidmiseks aega 1.442 ms*/

Sellest tulenevalt võite PostgreSQL korral kaaluda BRIN indeksi loomist veergudele reg_aeg. Read on registreerimisaja järgi kettal loomulikul viisil järjestatud ja loodud indeksist oleks abi, kui ridu otsitakse registreerimisaja vahemike alusel. Sellist indeksi tüüpi ei saa EA ning RR vahendis kirjeldada. Seega tuleb sellise indeksi loomise kood ise kirjutada.

  1. http://pythonsweetness.tumblr.com/post/119568339102/block-range-brin-indexes-in-postgresql-95
  2. https://www.postgresql.org/docs/9.5/static/brin-intro.html
Erki Eessaar: Lisapunktide test kolmeteistkümnendal õppenädalal
18.11.2016 Kolmeteistkümnendal õppenädalal (28.11.2016-02.12.2016) on harjutustundide alguses võimalik teha vabatahtlikku lisapunktide testi loengute teemade 3-4 kohta. Ettevalmistamiseks on teemade slaidid ja kordamisküsimused eksamiks. Need materjalid on väljas kodulehel kataloogis Teooria testideks (vahetestid, eksam) valmistumine.

Testil osalemiseks on kohustuslik registreerida. Registreerimine toimub Mauruse kaudu: Üldist => Teadmiste kontroll (nagu kevadel SQL kontrolltööle). Testil osalemiseks peab olema kaasas isikut tõendav dokument (nagu kevadel SQL kontrolltööl ja eksamil; raamatukogu- krediit- jms kaardid ei sobi ja nendega testi teha ei saa; autojuhiluba sobib).

Test toimub elektrooniliselt, Mauruse testikeskkonnas. Kasutada võib arvutiklassi arvutit või oma arvutit (erinevalt eksamist, mis toimub ainult arvutiklassi arvutites). Küsimustele vastamiseks materjale kasutada ei või. Testis on viis juhuslikult valitud küsimust, vastamiseks on aega 10 minutit. Küsimused on valikvastustega ning ainult üks vastuse variant on õige. Tulemuse saate teada kohe, kuid vastuste õigsust saab vaadata üheksanda nädala harjutustundides. Nädala jooksul saab testi teha maksimaalselt ühe korra. Kui Te ei soovi testi teha, siis võiksite tundi tulla 15 minutit peale algust.

Erki Eessaar: Kaupade kategooriad
18.11.2016 Kui teete projekti teemal Kaupade/toodete arvestus, siis on Teie andmebaasis tabel Kauba_kategooria.

Andmed sellesse tabelisse saaksite Te võtta Global Product Classification (GPC) rahvusvahelisest standardist.

Erki Eessaar: Andmebaasidega seotud tegevuste näiteid "päriselust"
16.11.2016
  • Shared Nothing Partitioning kasutuselevõtt Pinteresti näitel.
  • Suurettevõtte andmebaasi ühest andmebaasisüsteemist (Oracle => PostgreSQL) teise migreerimine Yandex Mail näitel (saab vaadata videot).
Erki Eessaar: Andmebaasi kapseldamine
14.11.2016 Kataloogi Teooria testideks (vahetestid, eksam) valmistumine/Harjutustunni slaidid (enamasti iseseisvaks uurimiseks) on iseseisvaks uurimiseks lisatud slaidikomplekt andmebaasi kapseldamise kohta. Kui seal jääb midagi arusaamatuks, siis palun kirjutage või tulge küsima. Selle materjaliga tuleks tutvuda enne, kui hakkate tegema vaateid ja andmebaasiserveris talletatud rutiine (funktsioone ja protseduure).
Erki Eessaar: Täiendavate testandmete lisamine
11.11.2016 Selleks, et saada INSERT laused, mida paigutada projekti dokumendi alajaotusesse "Täiendavate testandmete lisamine", võite lisada need andmed läbi haldusprogrammide tabelitesse ning seejärel need andmed eksportida. Siin on videod, kuidas teha eksportimist PostgreSQLis ja Oracles. See on andmebaasist loogilise varukoopia tegemine (vastandina füüsilisele varukoopiale, mida tehakse failide tasemel).

Vihje

Kui tegite kevadise projekti MS Accessis ja kasutasite SQL lausete käivitamiseks minu poolt pakutud abiprogrammiga faili, siis seal saate ekraanivormil SQL_skripti_käivitamine vajutada nupule, mis ekspordib MS Accessi andmebaasist CREATE TABLE, DROP TABLE ja INSERT laused (Nupp SQL lausete eksport teatele lisatud pildil). Võibolla on genereeritud INSERT lausetest kasu. Nendes INSERT lausetes puuduvad veergude nimed (tuleb ise juurde kirjutada). Kui peale faili avamist on sisu "välja lülitatud", siis tuleb eksportimise võimaldamiseks valida Enable Content.

4_4.jpg
Erki Eessaar: Milliste veergude indekseerimist võiks veel kaaluda?
09.11.2016
Erki Eessaar: Tagasiside küsitlus
08.11.2016 Kataloogis Aine korraldus on väljas 2. novembril 2016 loengus toimunud tagasiside küsitluse tulemuste kokkuvõte.
Erki Eessaar: Rühma IAPB52 harjutustunni aeg neljapäeval 10. novembril
05.11.2016 Pean osalema ühel tähtsal instituudi ja ülikooli tulevikku puudutaval koosolekul, mis algab 10. novembril 2016 kell 15:00. Seetõttu algab harjutustund neljapäeval 10. novembril 2016 kell 13:30 ruumis ICT-402. Olen kohal ja vaatan projekte. Need kes tulevad teisest tunnist saavad jooksvalt ühineda. Panen punktid kirja enne kella 15:00. Minu lahkumise järel jääb klass avatuks ning saate projekti edasi teha. Kell 16:00 algav harjutustund toimub tavapäraselt. Rühma IAPB52 üliõpilastele sobivad tunniplaani järgselt ka järgmised harjutustunni ajad.
  • Esmaspäeval kell 8:00 ruumis ICT-401
  • Reedel kell 14:00 ruumis ICT-404
  • Kui Te ei õpi automaatjuhtimissüsteemide ainet, siis ka reedel kell 12:00 ruumis ICT-637
Erki Eessaar: Töö harjutustunnis
03.11.2016 Kui tunnete, et harjutustunnis on liiga palju üliõpilasi ja Te ei saa oma küsimustele piisavalt kiiresti vastuseid, siis võib teid aidata järgnev.
  • Kui ma projekte vaatan ning küsimustele vastan, siis astuge harjutustunnis julgelt ligi kuulama. Projektide teemad, lahendamist vajavad probleemid ning vastamist ootavad küsimused on sageli ühesugused.
  • Reedeti kell 12:00 käib ICT-637 umbes 10 inimest harjutustunnis ning reedeti kell 14:00 käib ICT-404 vaid paar inimest harjutustunnis. Seal jätkub aega kõigile.
Erki Eessaar: PostgreSQL kasutamine ettevõtetes
01.11.2016 Konkreetne näide, kuidas suur infosüsteem vahetas Oracle PostgreSQLi vastu. Siin on lühike tekstiline ülevaade.
Erki Eessaar: Oracle vs. PostgreSQL
26.10.2016 Koostasin kaks nimekirja, kus tõin välja endale kõige südamelähedasemad PostgreSQL eelised Oracle ees ning vastupidi.
Erki Eessaar: Projekti täiendusi
22.10.2016 1. Võiksite kevadise projekti kontseptuaalse andmemudeli atribuutide definitsioonides lisada olemitüübi Klassifikaator atribuudi kood juurde järgneva kitsenduse:

{Riikide koodid koosnevad vastavalt ISO 3166 standardile täpselt kolmest suurtähest.}

2. Kui Te soovite vaikimisi väärtusena registreerida ajatempli minuti täpsusega, siis kasutage vaikimisi väärtusena järgnevaid avaldisi:

  • PostgreSQLis: date_trunc('minute',LOCALTIMESTAMP)
  • Oracles: trunc(LOCALTIMESTAMP,'mi')

3. Leiate materjalidest regulaaravaldise, mis kontrollib isikukoodi vastavust Eesti isikukoodi reeglitele. Kui Teie projekt lubab registreerida isikukoode erinevatest riikidest, siis ei saa Te seda kontrolli üks-ühele kasutada. Aga, kui soovite (pole kohustuslik), saate andmebaasis jõustada reegli "Kui isikukoodi riik on Eesti, siis isikukood peab vastama mustrile ...". Formaalsemalt kirja panduna on tegemist implikatsiooni reegliga, mille üldkuju on selline P=>Q. See tähendab, et kui kehtib tingimus P, siis peab kehtima ka tingimus Q. Sellise reegli CHECK kitsendusena jõustamiseks, saate kasutada avaldisega P=>Q loogiliselt samaväärset avaldist NOT(P) OR Q.

  • PostgreSQLis oleks kitsenduse loogikaavaldis selline: NOT (riigi_kood='EST') OR isikukood~'^([3-6]{1}[[:digit:]]{2}[0-1]{1}[[:digit:]]{1}[0-3]{1}[[:digit:]]{5})$'
  • Oracles oleks kitsenduse loogikaavaldis selline: NOT (riigi_kood='EST') OR REGEXP_LIKE(isikukood, '^([3-6]{1}[[:digit:]]{2}[0-1]{1}[[:digit:]]{1}[0-3]{1}[[:digit:]]{5})$')
Erki Eessaar: Rühma IAPB53 harjutustunni aja püsiv muutus
17.10.2016 Alates 21. oktoobist 2016 toimub rühma IAPB53 harjutustund õppeaines "Andmebaasid II" (IDU0230) reedeti kell 12:00-13:30 ruumis ICT-637.
Erki Eessaar: Lisapunktide test kaheksandal õppenädalal
14.10.2016 Kaheksandal õppenädalal (24.10.2016-28.10.2016) on harjutustundide alguses võimalik teha vabatahtlikku lisapunktide testi loengute teemade 1-2 kohta. Ettevalmistamiseks on teemade slaidid ja kordamisküsimused eksamiks. Need materjalid on väljas kodulehel kataloogis Teooria testideks (vahetestid, eksam) valmistumine.

Testil osalemiseks on kohustuslik registreerida. Registreerimine toimub Mauruse kaudu: Üldist => Teadmiste kontroll (nagu kevadel SQL kontrolltööle). Testil osalemiseks peab olema kaasas isikut tõendav dokument (nagu kevadel SQL kontrolltööl ja eksamil; raamatukogu- krediit- jms kaardid ei sobi ja nendega testi teha ei saa).

Test toimub elektrooniliselt, Mauruse testikeskkonnas. Kasutada võib arvutiklassi arvutit või oma arvutit (erinevalt eksamist, mis toimub ainult arvutiklassi arvutites). Küsimustele vastamiseks materjale kasutada ei või. Testis on viis juhuslikult valitud küsimust, vastamiseks on aega 10 minutit. Küsimused on valikvastustega ning ainult üks vastuse variant on õige. Tulemuse saate teada kohe, kuid vastuste õigsust saab vaadata üheksanda nädala harjutustundides. Nädala jooksul saab testi teha maksimaalselt ühe korra. Kui Te ei soovi testi teha, siis võiksite tundi tulla 15 minutit peale algust.

Erki Eessaar: Agile! : the good, the hype and the ugly / Bertrand Meyer
13.10.2016 Värskelt TTÜ raamatukokku saabunud raamatu Agile! : the good, the hype and the ugly üks eksemplar on endiselt TTÜ raamatukogus saadaval. See on lisamaterjaliks esimese teema kohta, aga ka teistele ainele ja on ka laiemalt silmaringi jaoks väga kasulik.

Samuti on raamatukogus hetkel saadaval üks eksemplar raamatust SQL antipatterns : avoiding the pitfalls of database programming. Ütleksin, et see on lausa kohustuslik kirjandus kõigile SQL-andmebaaside disainiga tõsisemalt tegeleda soovijatele.

Erki Eessaar: Töökorraldus harjutustundides
13.10.2016 Mõnes harjutustunnis on palju osavõtjaid ja ma ei pruugi alati jõuda kõigi tööd üle vaatama. Samas, projektide teemad ning võimalikud probleemid/vead korduvad. Seega kutsun üles kuulama/vaatama, mida ma teistele rühmadele räägin ning võtma saadud info kohe enda projekti juures arvesse. Kui ma tehtud tööd tunnis üle vaatan, siis võite julgesti ligi astuda. Usun ja loodan, et see ei ole ka probleemiks üliõpilastele, kelle tööd ma parajasti vaatan. Kui on, siis andke palun sellest märku.
Erki Eessaar: Isiku nõusolek enda andmete töötlemisega
11.10.2016 Ka Teie töövihiku projektis on tabelis Klient veerg on_nõus_otseturundusega. 2018. aasta mais jõustub andmekaitse üldmäärus, mis karmistab oluliselt isikuandmete töötlemiseks vajaliku nõusoleku tingimusi.
Erki Eessaar: Lisapunktid
09.10.2016 Kataloogis Tulemused on aruanne lisapunktide kohta, mida plaanin täiendada iga nädala lõpus. Kui leiate, et seal on Teie kohta vale info, siis palun andke kohe teada.
Erki Eessaar: Maurusest teadete saamine
08.10.2016 Üliõpilaste tagasisides soovitakse ainete korraldusliku info meilile saamist. Täiustasin Maurust nii, et edaspidi on võimalik Maurusesse pandud üldiseid teateid kodulehe kinnitatud kasutajate meilile edasi saata. Plaanin seda teha korralduslike teadetega. Kirja teema osa algab aine kodulehe nimega (antud juhul Andmebaasid II (IDU0230) (sügis 2016)). Selle alusel saate näiteks meile otsida ja grupeerida. Samasugune kirjade saatmise funktsionaalsus on Moodles.
Erki Eessaar: PostgreSQL ja uute keelte loomine
01.10.2016 Mainisin harjutustunnis, et PostgreSQLis saavad arendajad võtta kasutusele uusi protseduurseid keeli (PL). Sellise keele näide on Skype poolt arendatud ja kasutatav PL/Proxy. Sellest keelest on juttu selles esitluses slaididel 6 ja 11–29. Lisaks tutvustatakse esitluses ka teisi Skype poolt kasutatavaid PostgreSQL laiendusi.
Erki Eessaar: PostgreSQL ja operaatorid
30.09.2016 Harjutustunnis oli juttu, et PostgreSQLis NULL || tekstiline väärtus = NULL. Järgneva koodi võite käivitada oma andmebaasis ja see loob operaatori & mis käitub nii:
NULL & tekstiline väärus = tekstiline väärtus
NULL & NULL = tühi string

CREATE FUNCTION textcat_coalesce(text, text) RETURNS text AS $$
SELECT coalesce($1,'') || coalesce($2,'');
$$ LANGUAGE sql IMMUTABLE LEAKPROOF;

COMMENT ON FUNCTION textcat_coalesce(text, text) IS
'Stringide konkatenatsiooni operaatorit & realiseeriv funktsioon. Tagab, et operatsiooni tulemus pole NULL.';

CREATE OPERATOR & (
LEFTARG = text,
RIGHTARG = text,
PROCEDURE = textcat_coalesce
);

SELECT NULL || 'katsetus' AS tulemus;
Tulemus: NULL

SELECT NULL & 'katsetus' AS tulemus;
Tulemus: katsetus

Erki Eessaar: PostgreSQL 9.6
29.09.2016 PostgreSQL 9.6 on tänase päeva seisuga ametlikult väljas. Palju uuendusi, kuid need puudutavad suures osas andmebaasisüsteemi sisemisi tööprotsesse. Andmebaasi programmeerija jaoks palju ei muutu ja seega jääme sellel sügisel PostgreSQL 9.5 kasutamise juurde.
Erki Eessaar: PostgreSQL ja fraktalid
29.09.2016 PostgreSQLis kirjutatud rekursiivsete SELECT lausetega saab genereerida fraktaleid. Näiteid leiab SIIT. Võite nende päringute käivitamiseks kasutada mistahes kursuse serveri andmebaasi. Kasutage käivitamiseks programme psql või pgAdmin.
Erki Eessaar: Kaugjuurdepääs PostgreSQLile
23.09.2016 Serveritega seotud turvalisuse küsimustega tegeleb IT osakond. Nad on võtnud suuna sellele, et kaugligipääsudeks ülikooli serveritele peab hakkama kasutama autenditud VPNi või võtmetega SSHd. Kaugligipääs (st ligipääs väljastpoolt TTÜ arvutivõrku) apex.ttu.ee PostgreSQL pordile (5432) on blokeeritud järgmiste eranditega. Kaugligipääs on võimalik:

PostgreSQL andmebaasile rakenduse tegijad peaksid arvestama järgnevaga.

  • Kui teete kahekihilise süsteemi, kus rakendus on kliendi arvutis (nt kasutades MS Accessi või Javat), siis kodus rakendusega tegeledes on kõigepealt vajalik luua TORU.ttu.ee kaudu VPN ühendus. Muide, samal viisil saate kasutade väljaspool TTÜd ülikooli raamatukogu andmebaase.
  • Veebirakenduste tegijad - apex.ttu.ee serveris on PHP ja pgApex. Kui soovite rakenduse jaoks kasutada mõnda muud serverit/vahendit, siis tuleks kas valida TTÜ võrgus olev server (mõnest teisest ainest) või luua rakenduses apex.ttu.ee serveriga SSH ühendus (näide).

Kui soovite kodust PostgreSQLiga töötamiseks kasutada pgAdmini, siis tuleb teha ühte järgnevast.

  • Luua kõigepealt TORU.ttu.ee kaudu VPN ühendus.
  • Luua ühendus kasutades SSH tunnelit (ühenduse defineerimisel pgAdmin 3 ver 1.22 sisestada info nii sakkide Properties kui SSH Tunnel alla).

Andmebaas on kohustuslik paigutada apex.ttu.ee serverisse, sest seal on automaattestimise vahendid ja õppejõul on sellele hindamiseks vajalik täielik juurdepääs

Erki Eessaar: Programmeerimiskeelte populaarsus
23.09.2016 PL/SQL on TIOBE programmeerimiskeelte populaarsuse indeks, milles Oracle andmebaasiserveris talletatud rutiinide keel PL/SQL on üsna kõrgel kohal. See on saavutus, sest tegemist pole üldotstarbelise keelega ja seda saab kasutada ainult teatud keskkondades (mõned SQL-andmebaasisüsteemid).
Erki Eessaar: Paindmetoodikad
21.09.2016 Kui soovite rohkem infot paindmetoodikatest, siis soovitan vaadata seda Bertrand Meyeri ettekannet (osa 1 ja osa 2), mis põhineb tema uuel raamatul. Raamat ise on olemas TTÜ raamatukogus.

TTÜ raamatukogu kaudu on tehtud üliõpilastele elektrooniliselt kättesaadavaks raamat Disciplined Agile Delivery: A Practitioner’s Guide to Agile Software Delivery in the Enterprise. See kirjeldab suurte projektide jaoks kohandatud paindmetoodikat.

Siit aga leiab info, kuidas pääseda raamatule ligi ka väljaspoolt TTÜ võrku.

Erki Eessaar: Lisalugemine Teema 1 slaidide juurde
17.09.2016 : Royce, W. W., 1970. Managing the development of large software systems. Proceedings of IEEE WESCON. Vol. 26. No. 8.

Royce_1970_Managing_the_Development_of_Large_Software_Systems.pdf
Erki Eessaar: SQL*Plus ja teksti kustutamine
16.09.2016 Tuleb välja, et SQL*Plus'is teksti kustutamiseks kasutatav klaviatuuri klahv sõltub serverisse logimise tarkvarast.
  • SSH Secure Shell Client - Delete
  • Putty - Backspace

Väga segadus tekitav. Vähemasti PostgreSQLi psqlis selliseid anomaaliaid ei ole ja teksti kustutab alati Backspace.

Erki Eessaar: Soovituslik lugemine
16.09.2016 Thomas Kyte on Oracle andmebaasisüsteemide spetsialist ja tema sellel teemal kirjutatud raamatud on väga head. Üks nendest raamatutest - Expert Oracle Database Architecture, Third Edition - on TTÜ üliõpilastele kättesaadav elektrooniliselt, andmebaasist Safari. TTÜ ja TÜ ühistellimusena on TTÜ võrgus avatud juurdepääs üle 200-le selles andmebaasis olevale infotehnoloogia valdkonna raamatule.

Palun lugege sellest raamatust esimese peatüki osi My Approach ja The Black Box Approach.

Jah, seal kiidetakse muuhulgas Oraclet. Võtke seda kergelt, sest ka mitmed teised andmebaasisüsteemid (sh PostgreSQL) on sama võimekad. Kuid seal kirjeldatav üldine andmebaasirakenduste loomise mõtteviis on selline, mida pean mõistlikuks ja millest lähtun ka käesolevas kursuses.

Siit aga leiab info, kuidas pääseda raamatule ligi ka väljaspoolt TTÜ võrku.

Põhimõte on, et hea andmebaasirakenduse loomiseks tuleks tunda ja kasutada andmebaasisüsteemide pakutavaid võimalusi. Lisan siia lõppu tsitaadi raamatust, mida ma tõlkima ei hakka. Viidatud osades tuuakse mõned ilmekad näited selle kohta, kuidas rakenduse arendajate poolne andmebaasi/andmebaasisüsteemi musta kastina vaatamine viis halbade tulemusteni.

My point about the power of database features is not a criticism of tools or technologies like Hibernate, EJBs, and container-managed persistence. It is a criticism of purposely remaining ignorant of the database and how it works and how to use it. The technologies used in this case worked well—after the developers got some insight into the database itself.

The bottom line is that the database is typically the cornerstone of your application. If it does not work well, nothing else really matters. If you have a black box and it does not work, what are you going to do about it? About the only thing you can do is look at it and wonder why it is not working very well. You can’t fix it, you can’t tune it. Quite simply, you do not understand how it works—and you made the decision to be in this position. The alternative is the approach that I advocate: understand your database, know how it works, know what it can do for you, and use it to its fullest potential.

Erki Eessaar: Microsoft Imagine
21.09.2016 Kui Teil veel ei ole juurdepääsu Microsoft Imagine (vana nimega Microsoft Dreamspark) keskkonnale, aga soovite seda selle semestri jooksul saada (sealt keskkonnast saab näiteks MS Accessi), siis peate esitama juurdepääsu taotluse selle keskkonna kaudu hiljemalt 26. oktoobril 2016 kell 23:59. Varem küsitud juurdepääsud kehtivad endiselt.
Erki Eessaar: Kuidas valida andmebaasisüsteemi?
13.09.2016 Hiljutine arutelu teemal, kuidas ettevõtted valivad enda infosüsteemide jaoks andmebaasisüsteeme ning milliseid meetodeid andmebaasisüsteemide arendajad kasutavad, et leida uusi kliente ja hoida kinni olemasolevaid.
Erki Eessaar: Iseseisva töö teema registreerimine
09.09.2016 Tähtajaga 16. september 2016 tuleb registreerida iseseisva töö teema, rakenduses realiseeritav töökoht, esialgne kasutatavate vahendite valik ja üliõpilased, kes seda tööd üheskoos teevad. Kui otsustate teha midagi teisiti, kui vastuses kirjas, siis õppejõu teavitamiseks piisab ainult selle vastuse muutmisest.

Iseseisva töö registreerimiseks valige õppekeskkonna vasakpoolsest menüüst
"Tudeng->Ülesanded" ning avanenud leheküljelt ülesanne "Iseseiseva töö registreerimine".

Ühte tööd võib teha koos kuni kolm inimest. Kui teete tööd mitmekesi, siis peab ülesandele vastama ainult üks tegijatest. Kutsun üles koonduma ja tegema projekti mitmekesi!

Nimetan järgnevalt ka mõningaid tüüpilisi probleeme vastustes ja loodan, et Te väldite neid.

  1. Teisi andmebaasisüsteeme peale PostgreSQL ja Oracle iseseisva töö tegemiseks kasutada ei saa.
  2. Oraclet ja MS Accessi on raske koos kasutada ja seega ei sobi MS Access Oracle andmebaasi rakenduse tegemiseks.
  3. Oracle Application Express vahendi abil ei saa teha PostgreSQL andmebaasi kasutamiseks mõeldud veebirakendust.
  4. Enterprise Architect ja Rational Rose ei ole rakenduse tegemise vahendid, vaid on modelleerimisvahendid.
Erki Eessaar: NoSQList
09.09.2016 Minult küsiti tunnis, kas ja millal eelistada NoSQL andmebaasi SQL-andmebaasi loomisele.

Arvan, et käesolevaks ajaks on NoSQL jõudnud haibitsüklis ülisuurte ootuste tipust üle, pettumuste lohust läbi, võibolla isegi juba taasavastamise tõusule.

Üha rohkem ilmub seisukohti ja tähelepanekuid, mis osundavad lähenemise või süsteemide üldistele puudujääkidele (näide1, näide2) ja konkreetsete süsteemide probleemidele (näide3, näide4, näide5). Muidugi saab öelda, et ühes või teises NoSQL süsteemis selliseid probleeme ei ole, kuid küsimus on, kuidas see toode kümnete teiste seast üles leida ja kas on kindel, et selle teinud idufirma pole viie aasta pärast hingusele läinud. NoSQL süsteemid peavad oma arengus jõudma produktiivsuse platoole ja tõsised tegijad välja settima.

Näen tõsist probleemi selles, et NoSQL süsteeme üritatakse kasutada ka seal, kus see pole kindlasti mõistlik. Teha raamatupidamise tarkvara NoSQL süsteemi põhjal on sama lahe kui kratsida kukalt pannes käe jalge vahelt läbi. Alguses paistab huvitav ja ekstravagantne, sellest tehtud piltidega saab sotsiaalmeedias praalida - pärast on kael ja keha kanged ning selg paigast ära. Mulle meeldis ühes arutelus võrdlus andmete ja koduse tööriistakuuri vahel. Oletame, et Teil on kuuris palju tööriistu. Üks võimalus on võtta erinevat tüüpi tööriistade jaoks kasutusele erinevad kastid. Kahtlemata võtab kastide valimine, neile siltide kleepimine ning tööriista ära panemisel õige kasti otsimine aega. Andmebaaside maailmas vastab sellele skeemi defineerimine SQL/relatsioonilises andmebaasis. Selle tulemusena on vajaliku tööriista leidmine kiire. Kas tõesti oleks lahendus, kus kuuris on hulk kaste ja tööriist pannakse esimesse vabasse kasti, kokkuvõttes kiirem ja parem? Andmebaaside maailmas vastaks sellele skeemitu NoSQL andmebaasi kasutamine.

Näen NoSQL süsteemide peamist kasutusvaldkonda suurandmete (big data) hoiustamisel - andmeid on hästi palju, neid tuleb nagu kosest juurde ja andmete struktuur ei ole ühe vitsaga löödud, vaid küllaltki muutlik. Kena oleks need kuskile kiiresti ja odavalt ära panna, lootuses, et ehk on hiljem aega, tahtmist ja raha, et neid lähemalt uurida. Tööriistade näitel oleks see umbes midagi sellist. Asjade hunnikusse paigutajal oli oma süsteem ja ta leiab vajaliku kiiresti üles. Teistel see nii kiiresti ei lähe. Teisalt, nagu tõestavad seriaalid nagu American Pickers, võib sellisest hunnikust igasugu väärt kraami leida. Samamoodi ei tasu ka andmeid lihtsalt ära visata. Graafipõhistel andmebaasisüsteemidel on kindlasti oma kindel koht igat sorti võrgustike (kes on kelle sõber, kust kuhu tee viib või kaabel jookseb jne) andmete käepäraseks muutmisel. Arvan, et mõistlikuks arengusuunaks on SQL ja NoSQL kokkusulamine, mille näiteks on PostgreSQLis JSON tüüpi andmetega töötamise võimalus. See võimaldab lahendusi, kus ühes geograafilises punktis oleva andmebaasi piires on teatud osa andmetest esitatud rohkem struktureeritult (eraldi veergudes) ja muutlikum osa andmeid on surutud kokku JSON andmeväärtustesse (vt kolmandat disaini selles näites). Kõiki neid andmeid kantseldab ACID omadusi toetav transaktsioonide juhtimise moodul.

NoSQL and Technical Debt on ajaveebi postitus, mis selgitab, miks NoSQL süsteemide ilmumine pole muutnud väärtusetuks SQLi ning andmebaaside projekteerimise õppimist. Nende oskuste puudumine on arendajatel võlg, mis tuleb hiljem intressidega tagasi maksta. NoSQL oma "skeemitute" andmetega loob tegelikult tehnilist võlga.

Erki Eessaar: Vääritu käitumise menetlemise kord
06.09.2016 Sellest sügisest kehtib Infotehnoloogia teaduskonnas õppuri akadeemiliste tavade rikkumise ja vääritu käitumise menetlemise kord. Selles dokumendis määratakse ära, milliseid õppuri poolseid tegevusi loetakse akadeemiliselt väärituks käitumiseks ning millised on tegevused ja võimalikud ametlikud tagajärjed õppuri jaoks (noomitus, eksmatrikuleerimine) kui ta millegi sellisega hakkama saab.

Palun Teilt järgnevat.

  • Ärge jagage enda tehtud projekte teiste üliõpilastega.
  • Ärge tehke kellegi teise eest tema tööd ära.
  • Ärge taluge projekti meeskonnas liikmeid, kes teistega võrdselt töösse ei panusta.

Sellega teete tegelikult neile palju halba, sest nad ei õpi midagi!!! Veel enam, Te teete kahju endale, sest teadmisteta/oskusteta lõpetajad kahjustavad tööandjate silmis kõigi diplomisaajate mainet.

Kui mõni projekti kaaslane ei panusta piisavalt, siis arvake ta palun oma projektist välja ja teavitage sellest (nt õppekeskkonna kaudu) õppejõudu.

Erki Eessaar: Facebook
05.09.2016 Loengutes ja harjutustes teevad paljud üliõpilased lisaks apex.ttu.ee serverile praktilisi katseid ja vaatluseid ka Facebookis :-) Kelle huvi pakub, siis sellele teatele lisatud faili jaotises 2.1 antakse ülevaade Facebooki andmebaasi arhitektuurist. Artikkel ise seostub teemadega 6 ja 12.
Lu_et_al_2015_Existential_consistency_at_Facebook.pdf
Erki Eessaar: Miks peavad ka veebi/rakenduste programmeerija ning neile ülesannete jagajad andmebaase hästi tundma?
05.09.2016 Motivatsioonikõne asemel neile, kes näevad oma tulevast elu progejana või (projekti)juhina ja arvavad, et andmebaaside kohta eriti midagi teadma ei pea - väga eluline näide (seostub teemaga 6 - transaktsioonid ja lukustamine), miks on vaja andmebaaside tehnoloogiat tunda.
Erki Eessaar: Andmebaasi disaini kontrollimine
05.09.2016 Teie töö hindamiseks kasutatakse automatiseeritud disaini kontrollimise vahendit. Teil on võimalus jooksvalt ise oma andmebaasi selle abil analüüsida. Eeldus on, et andmebaas on apex.ttu.ee serveris (see on muide projekti reeglitega nõutud).

Vahend käivitab andmebaasi süsteemikataloogi põhjal päringuid. Osa päringuid suudavad leida vigu. Osa aga otsivad andmebaasi disainist halva lõhnaga kohti (vt halvasti lõhnav disain ja halvasti lõhnav kood). Halvasti lõhnavad kohad ei takista andmebaasi ja seda kasutavate süsteemide toimimist, kuid muudavad andmebaasi kasutamise, haldamise või arendamise mingis aspektis raskemaks kui see võiks olla. Halvasti lõhnavad kohad on sügavamate probleemide sümptomid. Nende probleemide lahendamine aitab koodi puhastada. Halb lõhn on tehnilise võla tunnus. Tehniline võlg tähendab, et "asi" töötab, kuid saaks olla sisemiselt tehtud paremini. Kuna praegu on seal midagi "üle jala" lastud, siis see on probleem tulevikus, kui "asja" on vaja edasi arendada. Kliendile kiiresti töötava asja üleandmiseks on võetud võlga tuleviku arenduste arvelt. Tehnilist võlga aitab vähendada refaktoreerimine.

Kui teete oma projekti PostgreSQLis, siis minge aadressile. Logige sisse kasutades apexi kasutajanime ja parooli. Valige kontrollitav andmebaas. Ilmselt on see samasuguse nimega nagu ühe projekti tegija kasutajanimi ja sisaldab tema matriklinumbrit. Valige "Käivita saadaolevaid teste". Valige test "Databases II (fall 2016)". Vaadake päringu tulemusi, milles on üks või rohkem rida. Lugege kirjeldust, vaadake tulemusi. Usaldusväärsus on hinnang sellele, kuidas päring oma eesmärke täidab.

  • Alajaotuses "General" on päringud, mis otsivad andmebaasist spetsiifilist infot, kuid otsuse selle kohta, kas midagi on õigesti või valesti peab tegema inimkasutaja, kes tulemust vaatab.
  • Alajaotuses "Flaw detection" on päringud, mille tulemuses olev iga riga osundab mingile võimalikule disaini veale. Sõltuvalt päringu usaldusväärsuse hinangust peaks inimkasutaja selle üle kontrollima.
  • Alajaotuses "Software measure" on päringud, mis arvutavad andmebaasi skeemi põhjal mingi arvulise väärtuse.

Soovi korral võite kasutada ka kasutajaliidese vana versiooni, kus kõik tulemused on ühel lehel. Mina kasutan tundides Teiega koos andmebaase vaadates seda. Päringud on samad, kasutajaliides erinev.

Kui teete oma projekti Oracles, siis minge aadressile. Päringud, mida saate sealt kaudu käivitada leiate andmebaasi disaini kontrollimiseks mõeldud SQL laused kataloogist Iseseisva töö projekti tegemine. 990999 tuleb asendada matrikli numbriga, mida kasutate projekti tulemusena loodud andmebaasiobjektide nimedes.

Võite neid päringuid regulaarselt ise käivitada ja interpreteerida üritada. Küsimuste korral pöörduge õppejõu poole. Oleks väga hea, kui mõnes semestri lõpu harjutustunnis, kui projekt juba valmis saama hakkab, jõuaksite koos õppejõuga need päringu tulemused üle vaadata.

Erki Eessaar: Juurdepääs serverile
05.09.2016 Saamaks juurdepääsu serverile apex.ttu.ee, tuleb täita esimene punkt ülesandest nr 1, mis on kataloogis Iseseisva töö projekti tegemine/Töö harjutustunnis (samm-sammuline juhend).
Erki Eessaar: Suur pilt
05.09.2016 Suur pilt (1. juuni 2015 seisuga) erinevatest andmebaasitehnoloogiatest ning neid realiseerivatest tarkvarasüsteemidest.
Erki Eessaar: Üliõpilase töökeskkond
05.09.2016

Üliõpilaste töökeskkond:

  1. Oracle Application Express (Oracle APEX): http://apex.ttu.ee:8000/apex/apex_login
  2. PostgreSQL phpPgAdmin: http://apex.ttu.ee/andmebaas/

Oracle Application Express abil tehtud rakenduste näiteid:

  1. Töötajate andmebaas (rakenduse tegemiseks kulus umbes 30 minutit)
    (kasutajanimi: testkasutaja
    parool: 1234)
  2. Koristajate andmebaas
    (kasutajanimi: testkasutaja
    parool: 1234)
  3. Seisundimuudatuste realiseerimise näide
  4. APEXiga kaasa tulev näiterakendus
    (kasutajanimi: testkasutaja
    parool: 1234)

2016. aasta kevadel arendas hr Rait Raidma välja Oracle APEXile sarnase süsteemi nimega pgApex, mis põhineb PostgreSQLil. Magistritööd saab lugeda siit.

PHP rakenduse näide:

  1. Teadetetahvel - sisselogimiseks on vaja kasutada apex.ttu.ee PostgreSQL kasutajanime ja parooli.

NB! apex.ttu.ee serveris tuleb PHP rakendus paigutada kataloogi /usr/local/apache2/htdocs alamkataloogi.
Kui loote seal näiteks oma rakenduse jaoks kataloogi rakendus, siis rakenduse veebiaadress on: http://apex.ttu.ee/rakendus/

Abivahendid:

  1. StarUML CASE vahendil põhinev lahendus, mis võimaldab StarUML abil koostada SQL-andmebaasi disaini mudeleid ja genereerida nendest PostgreSQLi jaoks mõeldud SQL koodi (kaasa arvatud mõningate keerukamate kitsenduste jõustamiseks vajalik kood). Idee on, et mudelis saab deklareerida kitsenduse vajaduse ning generaator oskab selle deklaratsiooni alusel koodi genereerida.
  2. apex.ttu.ee serveris olevate PostgreSQL andmebaaside kvaliteedi kontroll - sisselogimiseks on vaja kasutada apex.ttu.ee PostgreSQL kasutajanime ja parooli. Siin on sama vahendi vana kasutajaliides.
  3. Erinevad tarkvaravahendid PostgreSQL andmebaaside projekteerimiseks, programmeerimiseks ja haldamiseks. Nimekirjas on nii vaba tarkvara kui ka kommertstarkvara.

Dokumentatsioon:

  1. Tigu lahkamas, ehk ekskursioon UNIXi maailma
  2. PostgreSQL (9.5) dokumentatsioon
  3. Oracle 12c Release 1 dokumentatsioon
  4. Ask Tom on koht kust leiab vastuseid paljudele küsimustele Oracle kohta. Ühtlasi on see keskkond näide Oracle Application Express kasutamise kohta.
  5. Oracle Application Express
  6. Oracle Application Express foorum
  7. Pistikprogrammid e pluginad, mida saab kasutada Oracle APEXI abil tehtud rakenduste funktsionaalsuse suurendamiseks.
  8. Mõned videod, mis demonstreerivad APEX 4.1 kasutamist.

Lisainfo:

  1. Suur hulk soovitusi ja näpunäiteid andmebaaside programmeerijatele
  2. Visioon, kuidas üles ehitada andmete haldamiseks mõeldud süsteeme
  3. Teadmusbaas Database Lifecycle Management, kus on palju andmebaasi testimisest, evitamisest, versioonihaldusest. Tehnilisemad näited on seal MS SQL Serveri baasil, kuid üldiselt on see jutt oluline ja vajalik mistahes andmebaasisüsteemi korral.
  4. Kümme tavalist viga, mida Java arendajad teevad SQLi kirjutamisel
  5. Veel kümme tavalist viga, mida Java arendajad teevad SQLi kirjutamisel
  6. Üle kümne aasta uus väljaanne raamatus, kus andmebaasidega seotud teadus- ja arendustöö suurkujud esitavad viiteid mõnedele andmebaaside valdkonda palju ja püsivalt mõjutanud teadusartiklitele. Mis peamine, iga peatüki ees on toimetajate kommentaar, milles tutvustatakse artikleid ning kommenteeritakse andmebaasisüsteemide minevikku, olevikku ja tulevikku. Kellel on andmebaaside ja maailma selle valdkonna trendide vastu sügavam huvi, soovitan lugeda.
Erki Eessaar: Tarkvara
05.09.2016 PostgreSQL andmebaasiga töötamiseks võib kasutada tasuta pakutavat programmi pgAdmin. Kuna serveris on PostgreSQLi kõige viimane stabiilne versioon, siis koostöö saavutamiseks kasutage ka PgAdmin'i (generatsioon 3) viimast stabiilset versiooni (1.22).

Oracle andmebaasiga töötamiseks soovitan kasutada Oracle poolt pakutavat programmi Oracle SQL Developer (ülikooli serveriga ühenduse loomisel SID= orcl). Tarkvara on tasuta, kuid selle allalaadimiseks tuleb ennast registreerida.

apex.ttu.ee serveriga SSH ühenduse loomiseks võib kasutada programmi PuTTY või Bitvise SSH Client. Samuti võib mitte-kommerts otstarbel kasutada SSH Secure Shell klienti versiooni 3.2, kuid see on juba üsna vana ja ebaturvaline. Selles lõigus nimetatud programmidest piisab ühest!

apex.ttu.ee serverisse failide ülekandmiseks ja sealt failide allalaadimiseks võib kasutada programmi WinSCP. Tegelikult sisaldavad ka Bitvise ja SSH Secure Shell programmid sellist funktsionaalsust ja siis poleks WinSCPd vajagi.

Lähtekoodiga (sh SQL lausetega) töötamiseks sobib hästi tekstiredaktor SciTe või Notepad++.

Valikuline

PostgreSQL andmebaasisüsteemi kasutava kahekihilise klient-server süsteemi loomiseks läheb vaja PostgreSQL ODBC draivereid. Valige kõige hilisem versioon. Milline draiver valida ja kuidas andmeühendust seadistada lugege palun teatele lisatud failist.

PHP rakenduste genereerimiseks võib kasutada SQL Maestro koodigeneraatorit PostgreSQL jaoks või SQL Maestro koodigeneraatorit Oracle jaoks.

Kui PostgreSQLiga suhtlemiseks pakutud vahenditest väheks jääb, siis siit leiab veel alternatiive.

ODBC_IDU0230.pdf
Erki Eessaar: Registreerimine
05.09.2016 Lehele ligipääsemiseks tuleb ennast registreerida.
  • Kui kasutate http://maurus.ttu.ee keskkonda esmakordselt, siis valige õppeaine lehelt menüüst Üldist=> Registreerumine. Täitke vorm ja vajutage nupule "Registreeri".
  • Kui juba olete õpikeskkonnas mingile lehele registreerunud, siis siis valige Mauruse esilehel menüüst Üldist=>Minu konto ja lisage enda aktiivsete lehtede hulka: "Andmebaasid II (IDU0230)(sügis 2016)" Ärge unustage vajutada "registreeri".

Registreerumise järel peate ootama kuni õppejõud teie juurdepääsu õiguse kinnitab.