Kodulehed
[347] - Andmebaasid II (IDU0230) (sügis 2015)
Esiletöstetud Kiirvalik
Lisainfo Kõige olulisemate tegevuste kiirvalik. Failide saatmiseks valige Vastamine alt sobiv ülesanne.
Avaleht

Valik materjalidest
   Minu lemmikud

Vastamine
Üldist
Materjalid
LisainfoMaterjalide kataloogid
Isiklik
Lisainfo Info ainult Sulle - teised kasutajad seda ei näe
Mitmesugust
Kiirvalik / Avaleht

Täna on esmaspäev 17.06.2024.
Esiletöstetud
Erki Eessaar:
Lehekülg on suletud

24.08.2016 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/354

    Erki Eessaar:
    Lisaeksam 27. jaanuar 2016

    19.01.2016 Üliõpilased, kes soovivad tulla 27.01.2016 lisaeksamile, peaksid (juhul kui pole seda veel teinud) oma projekti esitama hiljemalt 23.01.2016 kell 23:59.

    Lisaeksamile saab hakata registreeruma alles peale hinde sissekandmist põhieksami lehele või üliõpilase mitteilmunuks märkimist (mis juhtub hiljemalt 22-24 jaanuar 2016).

      Erki Eessaar:
      Parandatud tööde esitamine

      16.01.2016 Palun neil, kes pidid oma tööd parandama, laadida see Maurusesse, mitte saatma seda mulle meilile.

        Erki Eessaar:
        Projektidest

        14.01.2016 Kurvastusega pean tõdema, et paljud üliõpilased on jätmas projekti esitamist väga viimasele minutile või peavad esitama parandatud projekte.

        Pean ka tõdema seda, et 19. jaanuar ja 20. jaanuar on mul kogu päeva eksamid ja nende päevade jooksul on minu võimalused projekte üle vaadata väga piiratud, et mitte öelda olematud. Seega - vaatan saadetud projektid üle esitamise järjekorras, niipalju kui jõuan. Kelle tööd ei jõua üle vaadata, see peab eksamit tegema 27. jaanuaril (eeldusel, et projekt ületab lävendi). Mida varem oma töö esitate, seda suurem on tõenäosus, et jõuan selle siiski järgmise nädala eksamiks üle vaadata.

        Kui tunnete, et ei jõua järgmisel nädalal eksamile, siis võtke palun ÕISist enda registreerumine maha.

          Erki Eessaar:
          Vastuvõtuaja muudatus

          11.01.2016 Seoses ettenägematute asjaoludega (koosolek õppeserverite üle) lükkub teisipäeval 12. jaanuaril 2015 vastuvõtuaeg varasemaks ja toimub 12:30-13:30 ICT-627. Kell 14:00-15:00 vastuvõtuaeg jääb ära.

            Erki Eessaar:
            Soovitus

            10.01.2016 Soovitan kõigil üliõpilased, kes pole veel projekti esitanud (ja seega kaotavad projekti esitamisel hilinemise tõttu 10 punkti), vaadata hindamismudelis olevaid lisapunktide saamise võimalusi ning teha oma töö nii, et neid saada.

              Erki Eessaar:
              PostgreSQL 9.5

              07.01.2016 PostgreSQL 9.5 on ametlikult väljas. Lisandunud on näiteks UPSERT operatsioon (kombineerib INSERT ja UPDATE operatsiooni), reatasemel turvalisuse tagamise võimalus (ilma, et selleks peaks kasutama vaateid või funktsioone), uus indeksi tüüp ning võimalus teha päringutes CUBE, ROLLUP ja GROUPING SETS operatsioone.

              INSERT INTO Isik AS I (isikukood, perenimi) VALUES ('39909090123','Mets')
              ON CONFLICT (isikukood) DO UPDATE
              SET perenimi = EXCLUDED.perenimi
              WHERE I.isikukood = '39909090123';

              Lisa isik. Kui on sellise isikukoodiga isik, siis muuda perenime.

                Erki Eessaar:
                Andmebaasitehnoloogiate kaart

                31.12.2015 Suur pilt (1. juuni 2015 seisuga) erinevatest andmebaasitehnoloogiatest ning neid realiseerivatest tarkvarasüsteemidest.

                  Erki Eessaar:
                  Oracle andmebaasi disaini kontrollimine

                  30.12.2015 PostgreSQLi jaoks kasutasime kontrollipäringuid. Nüüd olen Oracles tehtud projektide kiirema ülevaatamise jaoks samuti portsu kontrollpäringuid valmis teinud. 990999 tuleb asendada oma matrikli numbriga.

                  Erki Eessaar:
                  Facebook

                  27.12.2015 Harjutustundides tegid 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.

                  Erki Eessaar:
                  Readings in Database Systems, 5th Edition

                  25.12.2015 Üle kümne aasta uus väljaanne. 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:
                    Kordamisküsimused

                    22.12.2015 Väljas on viimane versioon kordamisküsimustest, koos infoga, kui palju tuleb mingi teema kohta küsimusi. Samuti on väljas kõik loengute materjalid.

                    Soovin kõigile kauneid pühi!

                      Erki Eessaar:
                      Projektidest ja eksamist

                      20.12.2015 Tänan kõiki, kes tähtajaks projekti esitasid.

                      Tuletan meelde, et projekti esitamise võimalus pole sellega lõppenud.

                      • 20. detsember 2015 – 26. detsember 2015 esitatud töö saab hilinemise eest 5 miinuspunkti
                      • 27. detsember 2015 – semestri lõpp esitatud töö saab hilinemise eest 10 miinuspunkti

                      Palun pange ennast ÕISis sobivale eksamiajale kirja. Projektide ülevaatamisel vaatan esimeses järjekorras nende projekte, kes tulevad varasematele eksamitele.

                      Projekti vaatan ise üle ja saate minult täidetud hindamismudeli faili.

                      Kõige viimase versiooni kordamisküsimustest panen välja hiljemalt 22. detsembril.

                      Soovin kõigile ilusat pühadeootust!

                        Erki Eessaar:
                        MongoDB

                        20.12.2015 Kindlasti olete lugenud, kuidas NoSQL, sh MongoDB on uus cool tehnoloogia. Siin on Teile veidi mõtteainet edasiseks eluks. 20.12.2015 on MongoDB andmebaasisüsteemide populaarsuse indeksis neljandal kohal! Kui mitte muul põhjusel, siis laske pilk hetkeks sellest artiklist üle, nägemaks, kuidas andmete hajutatud paiknemine komplitseerib süsteemide käitumist. See artikkel on osa projektist Jepsen, mis testib erinevaid hajussüsteemide loomiseks mõeldud vahendeid.

                        Tsitaat: "In this post, we’ll see that Mongo’s consistency model is broken by design: not only can “strictly consistent” reads see stale versions of documents, but they can also return garbage data from writes that never should have occurred. The former is (as far as I know) a new result which runs contrary to all of Mongo’s consistency documentation. The latter has been a documented issue in Mongo for some time. We’ll also touch on a result from the previous Jepsen post: almost all write concern levels allow data loss."

                        Mis on sellise või teiste samalaadsete süsteemide kasutamise tulemus? NoSQL Meets Bitcoin and Brings Down Two Exchanges: The Story of Flexcoin and Poloniex.

                        Lõpetuseks veel mõtteavaldusi MongoDB kohta. Pange tähele, et paljudel arvajatel leidub häid sõnu PostgreSQLi kohta.

                          Erki Eessaar:
                          Hajusatest andmebaasidest

                          20.12.2015 Hea ülevaade hajusate andmebaaside eelistest rahvusvaheliste meedia- ja meelelahutusettevõtete näite varal.

                          Kokkuvõte: Artikkel kirjutab, miks on hajusal andmebaasil põhinevad infosüsteemid kasulikud globaalse haardega meedia või meelelahutusettevõtetele (televisiooni või filmikompaniid, mängude tootjad jne). Saateid salvestakse, filmivõtteid tehakse või mänge kirjutatakse üle maailma ja ka osalised paiknevad ümber maailma. Samamoodi paiknevad ümber maailma nende ettevõtete toodangu kasutajad. Artiklis intervjueeritakse meediaettevõtetele ja meelelahutustööstusele teenuseid pakkuva firma TransLattice asutajat. Intervjueeritav on seisukohal, et selliste globaalse haardega ettevõtete korral on hajus andmebaas õige lähenemine ning pakub ettevõttele konkurentsieelist. Andmed saab paigutada lõppkasutajatele lähemale. Seetõttu paraneb süsteemi reaktisooniaeg ning on lihtsam salvestada kõiki lõppkasutaja tegevusi. Vajadusel saab andmetest teha erinevatesse asukohtadesse koopiaid või siis otsustada, et mingeid andmed ei sobi tundlikuse tõttu hoida mingis ühes geograafilises asukohas ja tuleks paigutada kuhugi mujale. Või siis vastupidi, mingid andmed on nii tundlikud, et neid saab hoida vaid tekkimise kohas. Koopiad andmetest parandavad käideldavust, võimalus hoida andmeid ainult ühes kohas võimaldab tegeleda privaatsuse küsimustega, andmete paigutamine lõppkasutajatele lähedale võimaldab parandada süsteemi jõudlust. Ettevõte saab paljude eraldiseisvate andmebaaside "kohale" globaalse vaate üle kõigi nende andmebaaside. TransLattice näeb hajusa andmebaasi kasutamise suure eelisena seda, et väga detailsete transaktsiooniliste andmete salvestamisel saab need paigutada tekkimiskohale lähedal asuvasse andmebaasi. Süsteemi reaktsiooniaeg on parem ning kuna andmed on laiali erinevates kohtades, siis ei teki ka ühte kohta töötlemiseks ja hoidmiseks liiga suurt andmehulka. Kui soovitakse neid transaktsioonilisi andmeid analüüsida, siis saab koormuse jagada erinevate serverite vahel.

                            Erki Eessaar:
                            Maailma esimene süsteem, mis brändis ennast nime all NoSQL

                            19.12.2015 Pole päris see, mida ootate/arvate.

                            Kuigi NoSQL süsteemide kohta ei tule eksamil küsimusi, siis kui tahate kiiret ülevaadet, on see päris hea materjal. Sama mees on üks selle raamatu autoritest ja viidatud artikkel on põhimõtteliselt selle raamatu lühikokkuvõte.

                              Erki Eessaar:
                              Väike sissevaade PostgreSQLi populaarsusesse

                              19.12.2015 Selles aines õppisite tundma lahedat tarkvara, mille najal näiteks oma idufirma püsti panna :-)

                                Erki Eessaar:
                                Accessi VBA

                                18.12.2015 Kui keegi üritab Accessi VBA abil kutsuda välja serveris olevat funktsiooni, millel on tekstitüüpi parameeter, siis järgnevast võib Teile kasu olla.

                                Kui andmebaasis on funktsiooni parameeter tekstitüüpi ning sellel on maksimaalne väljapikkus määratud (nt kauba kood – 7 märki), siis tuleb VBA koodis parameetri deklareerimisel määrata ka see väljapikkus. Näide:

                                Juhul kui Serveris oleva funktsiooni parameeter on tüüpi CHAR(7)
                                .Parameters.Append .CreateParameter("kauba_kood", adChar, adParamInput, 7)

                                Serveris oleva funktsiooni parameeter on tüüpi VARCHAR(7)
                                .Parameters.Append .CreateParameter("kauba_kood", adVarChar, adParamInput, 7)

                                  Erki Eessaar:
                                  Täiendavate testandmete lisamine (Oracle)

                                  18.12.2015 Lisasin ülesande 11 teise osasse mõtteid selle kohta, kuidas esitada täiendavate testandmete lisamise alajaotuses soola ja selle abil leitud parooli räsiväärtuseid.

                                    Erki Eessaar:
                                    Hindamismudeli muudatus

                                    16.12.2015 Raske südamega lisasin nii vähe enne projekti esitamise tähtaega hindamismudelisse kaks punkti. Need puudutavad ainult PostgreSQLi (domeenid) ning kõik kes on tööd harjutustunni ülesande 5 alusel teinud, peaksid sellisest veast vabad olema. Muudatusi saab näha hindamismudeli juures olevast tekstifailist.

                                    Järgnev päring leiab PostgreSQL andmebaasist kõik veerud, kus NOT NULL kitsendus on kahekordselt - domeeni kaudu ja otse veerule. Kui see mõne veeru välja toob, siis tuleks otse veerule lisatud NOT NULL kustutada.

                                    Kommentaar 2015-12-18: päringus oli viga, mis nüüd on parandatud

                                    WITH columns_not_null AS (SELECT pg_namespace.nspname AS table_schema, pg_class.relname AS table_name, pg_attribute.attname AS column_name FROM pg_catalog.pg_class, pg_catalog.pg_attribute, pg_catalog.pg_namespace WHERE pg_class.oid = pg_attribute.attrelid AND pg_namespace.oid = pg_class.relnamespace AND pg_attribute.attnotnull = TRUE), domains_not_null AS (SELECT pg_namespace.nspname AS domain_schema, pg_type.typname AS domain_name FROM pg_catalog.pg_type, pg_catalog.pg_namespace WHERE pg_namespace.oid = pg_type.typnamespace AND pg_type.typnotnull = TRUE) SELECT table_schema, table_name, column_name FROM INFORMATION_SCHEMA.columns WHERE (table_schema, table_name) IN (SELECT table_schema, table_name FROM INFORMATION_SCHEMA.tables WHERE table_type='BASE TABLE') AND table_schema NOT IN (SELECT schema_name FROM INFORMATION_SCHEMA.schemata WHERE schema_name<>'public' AND schema_owner='postgres' AND schema_name IS NOT NULL) AND (domain_schema, domain_name) IN (SELECT domain_schema, domain_name FROM domains_not_null) AND (table_schema, table_name, column_name) IN (SELECT table_schema, table_name, column_name FROM columns_not_null) ORDER BY table_schema, table_name, ordinal_position;

                                    Päring, millega saate vaadata, kas Teie baasis on veerul korduvaid CHECK kitsendusi. Kui on, siis kordused tuleb eemaldada. Korduste probleemid on põhimõtteliselt samad, kui andmete liiasuse probleemid, mida aitas vähendada normaliseerimine - koodi haldamise ja muutmise korral tuleb muudatusi teha mitmes kohas.

                                    WITH checks AS (SELECT ccu.table_schema, ccu.table_name, ccu.column_name, cc.check_clause AS check_clause FROM INFORMATION_SCHEMA.constraint_column_usage AS ccu INNER JOIN INFORMATION_SCHEMA.check_constraints AS cc USING (constraint_schema, constraint_name) WHERE cc.check_clause NOT LIKE '%IS NOT NULL' AND ccu.table_schema NOT IN (SELECT schema_name FROM INFORMATION_SCHEMA.schemata WHERE schema_name<>'public' AND schema_owner='postgres' AND schema_name IS NOT NULL) UNION ALL SELECT cdu.table_schema, cdu.table_name, cdu.column_name, regexp_replace(cc.check_clause, 'VALUE', cdu.column_name) AS check_clause FROM ((INFORMATION_SCHEMA.column_domain_usage AS cdu INNER JOIN INFORMATION_SCHEMA.tables AS t USING (table_schema, table_name)) INNER JOIN INFORMATION_SCHEMA.domain_constraints AS dc USING (domain_schema, domain_name)) INNER JOIN INFORMATION_SCHEMA.check_constraints AS cc USING (constraint_catalog, constraint_schema, constraint_name) WHERE t.table_type='BASE TABLE' AND cc.check_clause NOT LIKE '%IS NOT NULL' AND cdu.table_schema NOT IN (SELECT schema_name FROM INFORMATION_SCHEMA.schemata WHERE schema_name<>'public' AND schema_owner='postgres' AND catalog_name IS NOT NULL AND schema_name IS NOT NULL) ORDER BY table_schema, table_name, column_name) SELECT DISTINCT table_schema, table_name, column_name, check_clause FROM (SELECT table_schema, table_name, column_name, check_clause, Count(*) OVER (PARTITION BY table_schema, table_name, column_name, check_clause) AS cnt FROM checks) AS foo WHERE cnt>1;

                                      Erki Eessaar:
                                      Teeme koos maailma paremaks

                                      07.12.2015 Palun Teid aidata kaasa ühe bakalaureuseõppe üliõpilase lõputöö valmimisele. Ühtlasi aitab Teie vastuste analüüs tulevikus TTÜ süsteemianalüüsiga seotud õppeaineid paremaks muuta ning üksteisega paremini siduda.

                                      Selleks palun Teid vastata anonüümsele küsimustikule ja teha seda hiljemalt 18. detsembriks 2015

                                        Erki Eessaar:
                                        Ülesanne 11

                                        14.12.2015 Lisasin ülesandesse 11 osa 4, mis võiks olla abiks kõigile, kes teevad projekti PostgreSQL+MS Access platvormil.

                                          Erki Eessaar:
                                          16s õppenädal

                                          11.12.2015 Kui tahate kindlasti midagi küsida/ette näidata, kuid kardate, et ei pääse suure hulga huviliste pärast löögile, siis tulge esmaspäeval kell 14:00 ICT-404 toimuvasse harjutustundi. Seal on viimasel ajal vähe rahvast käinud.

                                            Erki Eessaar:
                                            SQL SELECT lausetest

                                            10.12.2015 Selles aines õppisime üsna vähe SQL SELECT lausete lisavõimalusi, mida PostgreSQL ja Oracle võrreldes MS Accessiga pakuvad. Veendumaks, et selliseid lisavõimalusi on olemas, vaadake siia, kerige veidi allapoole, et leida PostgreSQLile pühendatud osa ning proovige seal olevaid SELECT lauseid nt phpPgAdmin abil käivitada.

                                            Need laused on panus projekti, mis üritab illustreerida erinevaid programmeerimiskeeli ühe ülesande lahenduse abil. Ülesandeks on genereerida ühe õllelaulu sõnad.

                                              Erki Eessaar:
                                              Lisalugemist huvilistele

                                              08.12.2015 Vaadete kasutamine mõjutab täitmisplaanide valikut ja võib mõnikord viia ebaotstarbekate plaanide valimiseni.

                                              Kašnikova, D., 2015. Vaadete mõju päringute täitmisplaanide koostamisele kahe andmebaasisüsteemi näitel. Magistritöö. TTÜ Informaatikainstituut. [WWW] http://digi.lib.ttu.ee/i/?3676 (08.12.2015)

                                              Tsiteerin: Uuringu tulemused näitasid, et kuigi Oracle andmebaasisüsteemis põhjustab vaate põhjal päringu tegemine sageli teistsuguse täitmisplaani valimise kui otse baastabelite põhjal päringuid tehes, siis sellest tulenevad töökiiruse erinevused ei ole kuigi märgatavad. PostgreSQLis koostab andmebaasisüsteem (ilma turvabarjäärita) vaate põhjal tehtud päringule ning otse baastabelil tehtud päringule suurema tõenäosusega ühesuguse täitmisplaani. Kuid probleem on selles, et võrreldes Oraclega on see täitmisplaan mõnikord lihtsalt halb, olgu päring tehtud vaate põhjal või mitte. PostgreSQLis tuleks andmete turvalisuse tõstmiseks kasutada vaadetes turvabarjääre, kuid see võib tingida vaate põhjal tehtud päringule mitteoptimaalse (ja seega aeglaselt täidetava) täitmisplaani valimise.

                                                Erki Eessaar:
                                                System Thinking and Creating Value

                                                03.12.2015 Juba HOMME, sellel reedel, 4. detsembril kell 16.00 on kõigil erakordne võimalus tulla TTÜ aulatagusesse auditooriumisse (U01-202) kuulama Massachusettsi Tehnoloogiainstituudi (MIT) professori Edward Crawley tasuta loengut teemal „System Thinking and Creating Value“ .

                                                Massachusettsi Tehnoloogiainstituut on maailma ülikoole reastavas edetabeli QS World University Rankings 2015. aasta andmetel maailma number üks ülikool. Professor Edward Crawley aga sealne aeronautika ja astronautika ning engineering systems professor. Ta on töötanud NASA-s ning on ka NASA avaliku teenistuse medali omanik.

                                                Loeng toimub inglise keeles.

                                                Oodatud on kõik huvilised!

                                                Everyone thinks that System Thinking is important – companies crave it, policy makers think they use it, engineers view it as a cornerstone of their profession, and Defense acquisition studies decry the loss of it. Yet what is it? Is it something that you only learn through the school of hard knocks?

                                                In fact, System Thinking is the subject of centuries of scholarship, writing and documented practice. This lecture identifies arguably the central feature of System Thinking – the emergence that occurs when elements come together to form a system. In engineering systems, this emergence is closely linked with the creation of value.

                                                How do you become a system thinker? The lecture presents a rational task-based approach to thinking of a set of entities as a system, and ultimately extrapolating to emergence. Brief examples of System Thinking applied to human systems (teams), product systems, process systems and even political systems will be presented.

                                                Lisainfo

                                                Andres Kütt
                                                andres.kutt@ria.ee

                                                  Erki Eessaar:
                                                  Erakorraline harjutustunni aja muutus

                                                  01.12.2015 Neljapäeval 3. detsembril 2015 kell 14:00 rühmale IAPB52 toimuv harjutustund algab erakorraliselt kell 13:40 ja lõpeb kell 15:00.

                                                    Erki Eessaar:
                                                    Rakenduse Javas tegemine

                                                    01.12.2015 Tean, et mõned Teist teevad oma iseseisva töö projekti rakenduse Javas. Teile lugemiseks:
                                                    1. 10 tavalist viga, mida Java arendajad teevad SQLi kirjutamisel
                                                    2. Veel 10 tavalist viga, mida Java arendajad teevad SQLi kirjutamisel

                                                      Erki Eessaar:
                                                      Eksam

                                                      01.12.2015 Kataloogis Aine korraldus on dokumendis Eksam_IDU0230_2015.pdf väljas informatsioon eksami kohta.

                                                      NB! Ärge registreerige ennast palun kaugõppe eksamiaegadele (õhtul kell 15:30) - nendel aegadel päevase õppe üliõpilased eksamit teha ei saa!!!

                                                        Erki Eessaar:
                                                        Iseseisva töö esitamine

                                                        01.12.2015 Iseseisva töö esitamise tähtaeg on 19. detsember 2015 (kaasa arvatud). Esitamine toimub Mauruse kaudu. Enne failide saatmist lugege palun ülesandest, mis kujul tuleb vastused saata.

                                                          Erki Eessaar:
                                                          Räsiväärtuste arvutamise algoritmidest

                                                          30.11.2015 Cybernetica AS, 2013. Krüptograafiliste algoritmide kasutusvaldkondade ja elutsükli uuring. Aruanne Versioon 3.1 31. detsember 2013. a. [WWW] https://www.ria.ee/public/PKI/kruptograafiliste_algoritmide_elutsukli_uuring_II.pdf

                                                          Teatavasti ei luba ülesande püstitus (ja ka kaine mõistus) hoida andmebaasis paroole avatekstina, vaid tuleb hoida paroolide soolatud räsi. Selle dokumendi jaotises 2.3 kirjutatakse erinevate räsifunktsioonide turvalisusest. 2013. aasta detsembri lõpu seisuga kirjutab dokument muuhulgas räsifunktsioonide kohta:

                                                          5 aasta jooksul turvalised primitiivid: Blowfish, AES (kõik standardsed võtmepikkused), RSA-2048 (ja diskreetse logaritmi põhised süsteemid mooduli pikkusega 2048 bitti), SHA-2, SHA-3, RIPEMD-160

                                                          Nende hulgast tulekski leida oma projektis kasutatav räsifunktsioon.

                                                            Erki Eessaar:
                                                            Inimesed lekitavad teadmatusest enda delikaatseid isikuandmeid

                                                            30.11.2015 Isikuandmete kaitse seaduse kohaselt kuuluvad andmed tervisliku seisundi kohta delikaatsete isikuandmete hulka, mille töötlemisele on ranged nõuded. Tänapäeva nutiseadmete ja enese-eksponeerimise ajastul lekitavad paljud inimesed teadmatusest või hoolimatusest enda sellekohaseid andmeid osapooltele, kelle puhul pole võimalik kontrollida, kes ja mida nende andmetega teeb. Nendeks andmeteks on kantavate seadmete poolt kogutud tervisenäitajad, mis edastatakse teenusepakkujale, kes omakorda võimaldab vaadata nende andmete kohta aruandeid või pakub soovitusi.

                                                            Tsitaat artiklist "Andmekaitse Inspektsioon töötas välja uue juhise «Kantavad seadmed ja privaatsus», milles selgitatakse kantavate seadmete (wearable computing) olemust ja nende kasutamise mõju inimese eraelule. Samuti jagatakse juhises soovitusi kasutajate privaatsuse paremaks tagamiseks."

                                                              Erki Eessaar:
                                                              Oracle bind variables

                                                              19.11.2015 Hea selgitus, mikspärast on Oracles vaja eelistada rutiinides bind variables kasutamist.

                                                                Erki Eessaar:
                                                                Eesti isikukoodist

                                                                17.11.2015 Huvitav ülevaade Eesti isikukoodi loomise taustast ja kaalutlustest. Muuhulgas väärib tähelepanu tsitaat:

                                                                Although it has served Estonia well, the system was not perfect. To the extent that, in fact, in the early days several people received the same identification code and it was too deep in the registries before the mistake was discovered. Thus, technically, the id-code in Estonia can not be assumed to be unique.

                                                                Hea näide, miks on parem asju kohe hästi teha, mitte loota sellele, et hiljem midagi parandada õnnestub.

                                                                  Erki Eessaar:
                                                                  Miks peab ka veebi/rakenduste programmeerija andmebaase hästi tundma?

                                                                  17.11.2015 Väga eluline näide (seostub teemaga 6 - transaktsioonid ja lukustamine).

                                                                    Erki Eessaar:
                                                                    Projekti täiendus

                                                                    15.11.2015 Isikuandmete kaitse seadus § 12, lõige 1.

                                                                    (5) Andmesubjektil on õigus igal ajal keelata teda käsitlevate andmete töötlemine tarbijaharjumuste uurimiseks või otseturustuseks ja andmete üleandmine kolmandatele isikutele, kes soovivad neid kasutada tarbijaharjumuste uurimiseks või otseturustuseks.

                                                                    Eelnevast tulenevalt võiksid kõik üliõpilased, kelle projektis on olemitüüp/tabel Klient ning kes koguvad klientide kontaktandmeid plaaniga näiteks tulevikus reklaami saata, lisada sellesse tõeväärtustüüpi atribuudi/veeru: on_nous_otseturustusega Alternatiiv on kirjutada ärireeglitesse järgmine lause: Kogutud kliendiandmeid ei kasutata kunagi tarbijaharjumuste uurimiseks või otseturustuseks ja ei anta üle kolmandatele isikutele, kes soovivad neid kasutada tarbijaharjumuste uurimiseks või otseturustuseks.

                                                                      Erki Eessaar:
                                                                      PostgreSQL andmebaasi disaini kontrollimine

                                                                      15.11.2015 Kõik Teie, kes Te teete oma iseseisva töö projekti PostgreSQLis. 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).

                                                                      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 2015)". 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.

                                                                        Erki Eessaar:
                                                                        Oluliselt muudetud teade Oracle regulaaravaldiste kohta.

                                                                        12.11.2015 Kirjutasin sellele lehele paari päeva eest Oracle regulaaravaldise probleemist. Selgub, et probleem võib hoopis olla SQL Developeris. Meil on tegemist regulaaravaldisega riikide ISO klassifikaatori koodide kontrollimiseks, mille kohaselt peab kood koosnema täpselt kolmest suurtähest.

                                                                        DECLARE
                                                                        result BOOLEAN;
                                                                        BEGIN
                                                                        result:=REGEXP_LIKE('EST', '^[A-Z]{3}$');
                                                                        IF (result=true) THEN
                                                                        dbms_output.put_line('TRUE');
                                                                        ELSE
                                                                        dbms_output.put_line('FALSE');
                                                                        END IF;
                                                                        END;
                                                                        /

                                                                        Oracle APEXis ja SQL*Plusis annab see test tulemuseks TRUE, Oracle SQL Developeris (versioon 4.1.1) annab see tulemuseks FALSE.

                                                                        Kui tabelis on selline CHECK kitsendus (nt veerul riigi_kood), siis Oracle APEXis ja SQL Plusis õnnestub sellise CHECK kitsendusega tabelisse kenasti andmeid lisada. Samas SQL Developeris öeldakse andmete lisamisel (nt riik koodiga EST), et CHECK kitsenduse viga - nii INSERT lauseid käivitades, kui otse tabelisse andmeid lisades.

                                                                        Üha rohkem hakkab tunduma, et see on mingi SQL Developeri mulle tundmatu eripära.

                                                                        Soovi korral võite kasutada regulaaravaldise mustrit '^[[:upper:]]{3}$', mis toimib tõrgeteta kõigis minu kasutatud Oracle andmebaasisüsteemiga suhtlemiseks mõeldud keskkondades.

                                                                        Pange tähele, et mustrid '^[[:upper:]]{3}$' ja '^[A-Z]{3}$' pole samaväärsed, sest esimene lubab ka täpitähti (ÕÄÖÜ), kuid teine mitte. Kuna riikide koodides pole selliseid täpitähti, siis oleks mustrina eelistatud '^[A-Z]{3}$'.

                                                                        PostgreSQLis toimib regulaaravaldis '^[A-Z]{3}$' nii nagu peab.

                                                                          Erki Eessaar:
                                                                          Iseseisev ülesanne

                                                                          04.11.2015 Panin kataloogis Harjutustunnid/Slaidid slaidikomplekti andmebaasi kapseldamise kohta. Palun see hiljemalt 16. novembriks iseseisvalt üle vaadata.

                                                                            Erki Eessaar:
                                                                            Milliseid andmeid koguda ja milliseid mitte

                                                                            01.11.2015 Koguma peaks ainult selliseid andmeid, mida tööülesannete täitmiseks vaja läheb. Spordiklubid koguvad mõistliku põhjuseta isikuandmeid.

                                                                              Erki Eessaar:
                                                                              Kasulik allikas

                                                                              31.10.2015 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.

                                                                                Erki Eessaar:
                                                                                Tagasiside küsitlus

                                                                                24.10.2015 Kataloogis Aine korraldus on 20. oktoobril 2015 toimunud tagasiside küsitluse tulemused.

                                                                                Kohese korraldusliku muudatusena teen ettepaneku, et alates 26. oktoobri harjutustundidest toimuks harjutustundides projektide ülevaatamine nii, et kui vaatan üle ühe üliõpilaste grupi projekti, siis tulevad seda vaatama ka teiste projektide liikmed. Vead on sageli korduvad ning võõrale projektile antud tagasiside aitab ka enda projekti paremaks teha.

                                                                                  Erki Eessaar:
                                                                                  Tabelite loomise lausete genereerimine Enterprise Architect vahendiga

                                                                                  22.10.2015 Enterprise Architect (EA) 11 CASE vahendis tabelite loomise lausete genereerimine annab tulemuseks koodi, kus eraldi on tabelite loomise laused (CREATE TABLE) ja kitsenduste lisamise laused (ALTER TABLE). Selline kood on õppejõu hinnangul väga halvasti loetav.

                                                                                  Kui kasutate oma arvutis EA11, siis kui vähegi võimalik, genereerige kood arvutiklassi arvutis kasutades EA12, et eelnimetatud probleemi vältida! EA12 vahendis saate koodi genereerimisel valida Separate Constraints from Tables = False

                                                                                    Erki Eessaar:
                                                                                    Enterprise Architect ja CHECK kitsendused

                                                                                    15.10.2015 Selgub, et minu poolt ülesande 3 juurde pandud teade

                                                                                    Tuleb välja, et EA 12 jätab genereeritud CREATE TABLE lausetesse lisamata mudelis defineeritud CHECK kitsenduste loogikaavaldised. Kui kasutate EA 12, siis tuleb CHECK kitsendused mudelis ikkagi kirjeldada, kuid genereeritud koodi tuleb käsitsi täiendada.

                                                                                    ON EKSLIK. Genereerimise probleem esines minu arvutis, kuid mitte teistes arvutites. Vabandan segaduse ja valeinfo eest!

                                                                                      Erki Eessaar:
                                                                                      Seitsmenda õppenädala ülesanne

                                                                                      09.10.2015 Seitsmenda õppenädala ülesandeks on harjutustunnis lõpetada ülesanded 2 ja 3.

                                                                                        Erki Eessaar:
                                                                                        WITH CHECK OPTION kitsendus

                                                                                        06.10.2015 Loengus kerkis küsimus, kas uuendatavate vaadete puhul on ikka vaja WITH CHECK OPTION kitsendust kasutada. Näiteks, kui juhataja rollis kasutaja näeb vaate kaudu kinnitamata tellimusi, siis saaks ta käivitada lause:

                                                                                        UPDATE kinnitamata_tellimuste_vaade SET tellimuse_seisundi_kood=3 WHERE tellimuse_kood='XX';

                                                                                        Selle tulemusena kaob tellimus XX kinnitamata tellimuste nimekirjast ära.

                                                                                        Miks ma leian, et see vaade vajab WITH CHECK OPTION kitsendust, mis keelab sellise muudatuse tegemise?

                                                                                        Süsteemi õpitavuse, kasutamise efektiivsuse, meeldejäävuse, ja arusaadavuse seisukohalt on oluline, et süsteemi osade käitumine on ootuspärane, järjekindel ja võimalikult väheste eranditega - kokkuvõtlikult järgiks ortogonaalse disaini printsiipi. Olen ortogonaalse disaini printsiibist kirjutanud "Andmebaasid I" materjalides. Tarkvarakeelkeel, mis on kavandatud ortogonaalse disaini printsiipi arvestades:

                                                                                        • pakub suhteliselt väikese hulga keelekonstruktsioone
                                                                                        • koos terviklike ja järjekindlate reeglitega nende konstruktsioonide kombineerimise kohta
                                                                                        • ning iga konstruktsioonide kombinatsioon on legaalne ja sisulist tähendust omav.

                                                                                        SQL on näide keelest, mis paraku paljudes kohtades RIKUB ortogonaalse disaini printsiibi põhimõtteid ning nagu on näha käesolevast näitest, siis võimaldab ka luua süsteeme, mis omakorda seda printsiipi rikuvad.

                                                                                        Baastabel, virtuaalne tabel e vaade, kitsendus, UPDATE ja INSERT operatsioon kuuluvad SQLi põhiliste konstruktsioonide hulka. Ortogonaalse disaini printsiibi mõtte kohaselt:

                                                                                        • INSERT ja UPDATE operatsioonid toimivad ühtemoodi nii baastabelitel kui virtuaalsetel tabelitel (seega, näiteks, kuna UPDATE lause baastabelist ridu ei kustuta, siis ei tee see seda ka virtuaalsete tabelite korral).
                                                                                        • Kitsendusi jõustatakse ühtemoodi nii baastabelitel kui virtuaalsetel tabelitel, st ei lubata nendes teha muudatusi, mis lähevad vastuollu neile defineeritud kitsendustega. Virtuaalse tabeli alampäringus olev piirang (predikaat) on selle tabeli kitsendus, mis ütleb, millistele tingimustele vastavad read selles tabelis sisalduvad.

                                                                                        Tulles tagasi jutu alguses olnud näite juurde, siis siin tuleks lisaks vaatele teha funktsioon, mille sisuks on etteantud koodiga tellimuse kinnitamine.

                                                                                          Erki Eessaar:
                                                                                          Lisapunktid

                                                                                          02.10.2015 Kataloogis Tulemused on lisapunktide aruanne. Täiendan seda iga nädala lõpus. Kui seal on infot puudu, midagi on valesti - siis palun andke teada.

                                                                                            Erki Eessaar:
                                                                                            Rational Rose kasutamisest - teadmiseks

                                                                                            28.09.2015 Kui kasutate Rational Rose (RR) CASE vahendit, siis võib esineda mudelite faili riknemist. Selle väljenduseks on, et mudeli (kas kõiki või osasid) elemente ei saa enam muuta ning ei saa genereerida tabelite kirjeldusest SQL lauseid.

                                                                                            Ühel üliõpilaste rühmal probleem (vähemalt ajutiselt) kadus, kui mudelis eemaldati skeemi (schema) nimest ##. Seega, palun ärge igaks juhuks kasutage skeemi nimedes # märke. Näiteks skeemi nime C##TUD2 asemel kasutage nime TUD2.

                                                                                            Kui kasutate RR, siis tehke palun iga kord enne mudeliga tööle hakkamist failist koopia ja tehke tööd koopias. Originaal nimetage ümber ja säilitage. Kui töö käigus selgub, et fail on riknenud, siis originaal on alles ja kaotsi ei lähe kogu töö, vaid ainult viimasel korral tehtu.

                                                                                            Kui riknemise võimalus kõrvale jätta, siis pole RR (võrreldes Enterprise Architectiga [EAga]) üldse paha ja mõni asi on seal ka parem/mugavam kui EAs. Seega nii RR kui EA sobivad antud aines kasutamiseks.

                                                                                              Erki Eessaar:
                                                                                              Ettevalmistus viienda õppenädala harjutustunniks

                                                                                              22.09.2015 Kuna alates sellest nädalast algab harjutustunnis oma iseseisva töö projekti tegemine (mille eest saab ka punkte), siis harjutustunnis peab olema kaasas oma iseseisva töö projekti kõige viimane versioon (dokumendifail, mudelite fail/failid).

                                                                                                Erki Eessaar:
                                                                                                Teema registreerimine

                                                                                                19.09.2015 Olen mõnede vastuste juurde kirjutanud kommentaare. Need on seotud hindamismudeli punktiga Rakenduse tegemiseks kasutatakse sisuliselt ebasobivat vahendit (kahekihiline klient/server süsteem olukorras kus tingimata on vajalik veebipõhine (n-kihiline; n>2) süsteem.

                                                                                                Soovi korral võite muuta tegijate grupi liikmeskonda, tehnoloogiaid, realiseeritavat töökohta - kui seda teete, siis palun registreerige muudatus Mauruses.

                                                                                                  Erki Eessaar:
                                                                                                  Lisaks loengule 3

                                                                                                  15.09.2015 1. Mainisin kolmandas loengus, et mõnedel inimestel on ainult eesnimi (võib koosneda ühest või mitmest sõnast) ning puudub perenimi. See on küllaltki levinud Indoneesias. Kuidas selliseid andmeid registreerida, kui andmebaasis on väljad eesnimi ja perenimi? Kui muuta need väljad mittekohustuslikuks, siis võib teistpidi jääda registreerimata ees- ja perenimed inimestel, kellel need on olemas. USAs lahendatakse probleem lühendi FNU kasutamisega Sõltuvalt kontekstist võib see tähendada (First Name Used) või (First Name Unknown). Eraldi väljad eesnimi ja perenimi võimaldavad registreerida, et inimesel on eesnimi olemas ja perenimi puudub. Ainult välja "nimi" korral pole selge, kas selles väljas on ainult eesnimi, ainult perenimi, nende kombinatsioon ning milline osa esitab eesnime ja milline perenime. Kohe hästi teha (andmebaasis eesnime ja perenime eristada) on lihtsam, kui hakata tagantjärgi selgeks tegema, milline sõna nime väljas tähistab millist nime osa.

                                                                                                  2.Kui tahate teada rohkem paindmetoodikatest, siis soovitan vaadata seda Bertrand Meyeri ettekannet (osa 1 ja osa 2), mis põhineb tema uuel raamatul.

                                                                                                  3.Video Enterprise Architect 12 täiendustest seoses andmebaaside arendamisega.

                                                                                                    Erki Eessaar:
                                                                                                    EA mudeliteisenduse täiendus on arvutiklassides installeeritud

                                                                                                    12.09.2015 Esimeses harjutustunnis tutvustatud EA täiendatud kontseptuaalse andmemudeli teisendus on nüüdseks installeeritud ka arvutiklassidesse. Kuna laienduse autor ei teadnud installeerimise programmi loomisel kõiki tsentraalse installeerimise eripärasid, siis on selle laienduse korrektseks töölehakkamiseks vaja arvutiklassi arvutis üks kord käivitada reg.reg fail, mis on kataloogis Tarkvara - kuidas saada?/CASE: Enterprise Architect (ver 11 baasil) õppevideod/EA mudeliteisenduse täiendus. Seda saavad üliõpilased oma konto alt ise teha. Pärast seda, peale EA taaskäivitamist, hakkab laiendus tööle. Kui arvutis on see fail korra käivitatud, siis rohkem pole seda vaja enam teha. Isiklikule arvutile installeerides seda pole vaja teha - peaks koheselt töötama, kui olete juhendis olevat installeerimise protseduuri järginud.

                                                                                                      Erki Eessaar:
                                                                                                      Hackatroni üritus Soomes

                                                                                                      10.09.2015 Ehk on mõned teist huvitatud osalemisest Soome Aalto Ülikooli organiseeritud hackatronil. See sündmus on omataoliste hulgas suurim Euroopas. Osalejatel avaneb võimalus arendada nädalavahetuse jooksul oma tarkvara ning õppida selle käigus mitmetelt juhtivatelt tarkvarafirmadelt.

                                                                                                      Korraldajad lubavad aidata väljastpoolt Soomet tulijatel reisikulusid kanda - huvi korral tuleb nendega otse suhelda.

                                                                                                      Lugege ka:

                                                                                                      Erki Eessaar:
                                                                                                      Iseseisva töö teema registreerimine

                                                                                                      10.09.2015 Tähtajaga 18. september 2015 tuleb registreerida iseseisva töö teema, rakenduses realiseeritav töökoht, esialgne kasutatavate vahendite valik ja üliõpilased, kes seda tööd üheskoos teevad.

                                                                                                      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 teema ja tegijate andmed registreerima ainult üks tegijatest. Kutsun üles kõiki, kes teevad projekti üksinda, koonduma ja tegema projekti kahekesi või kolmekesi. 15. septembri loengus on üksinda tegijatel võimalus püsti tõusta ja enda huvist mõne projektiga liituda märku anda.

                                                                                                      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.
                                                                                                      5. Oracle SQL Developer ei ole rakenduse tegemise vahend, vaid on andmebaasi haldamise/programmeerimise vahend.

                                                                                                        Erki Eessaar:
                                                                                                        Juurdepääs serverile

                                                                                                        31.08.2015 Saamaks juurdepääsu serverile apex.ttu.ee, tuleb täita esimene punkt ülesandest "Ülesanne 1", mis on kataloogis Harjutustunnid.

                                                                                                          Erki Eessaar:
                                                                                                          Üliõpilase töökeskkond

                                                                                                          31.08.2015

                                                                                                          Ü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/

                                                                                                          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)

                                                                                                          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.
                                                                                                          3. Erinevad tarkvaravahendid PostgreSQL andmebaaside projekteerimiseks, programmeerimiseks ja haldamiseks. Nimekirjas on nii vaba tarkvara kui ka kommertstarkvara.
                                                                                                          4. Iseseisvas töös nõutud tehnilise arhitektuuri joonise võib esitada kui UML evitusskeemi (deployment diagram). Kataloogis Rational Rose õppevideod on video kuidas seda Rational Rose abil luua. Selle joonise võib aga ka koostada kasutades vaba tarkvara Archi, mis on mõeldud ettevõtete arhitektuuri modelleerimiseks.

                                                                                                          Dokumentatsioon:

                                                                                                          1. Tigu lahkamas, ehk ekskursioon UNIXi maailma
                                                                                                          2. PostgreSQL (9.4) 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

                                                                                                            Erki Eessaar:
                                                                                                            PostgreSQL vs. MySQL

                                                                                                            31.08.2015 Iseseisva töö projekti tegemiseks võib kasutada PostgreSQL andmebaasisüsteemi, kuid ei või kasutada MySQL andmebaasisüsteemi. Mõlemad on väga populaarsed andmebaasisüsteemid. Kindlasti tekib Teil küsimus, millised on PostgreSQL eelised võrreldes MySQLiga.

                                                                                                            Internetis on väljas 2012. aasta juunis Rob Conery poolt Norwegian Developers Conference konverentsil peetud ettekande salvestus. Ettekande esimesed 15 minutit demonstreerivad väga ilmekalt MySQLi puuduseid. SIIN ja SIIN on videos välja toodud puuduste jätkuarutelu.

                                                                                                            Soovitan vaadata kogu ettekannet, sest seal tutvustatakse mõningaid huvitavaid PostgreSQLi pakutavaid võimalusi.

                                                                                                            • Alates 14:30 Multiversioon konkurentsjuhtimine (selle kohta on ka üks eksami küsimus).
                                                                                                            • Alates 20:30 Tabelite loomine pärimise kaudu ja selle kasutamine suure tabeli sektsioonideks jagamiseks.
                                                                                                            • Alates 26:30 Foreign Data Wrapper (võimalus teha päringuid paljudest välistest andmeallikatest).
                                                                                                            • Alates 29:30 Andmetüübid (näitena käsitleti timestamp with timezone tüüpi, massiivitüüpe, liittüüpide loomise võimalust).
                                                                                                            • Alates 44:30 on kokkuvõtte PostgreSQLi eelistest - hind (PostgreSQL on tasuta; vaadake võrdluseks Oracle hinnapakkumist), jõudlus, salvestusruumi kokkuhoid, väljalasete sagedus, sobivus ettevõtte infosüsteemides kasutamiseks.

                                                                                                            Siin on veel üks värskem (aastast 2015) arutelu selle üle, miks tasub PostgreSQLi eelistada MySQL või MariaDB kasutamisele.

                                                                                                            Kokkuvõttes tuleb tõdeda, et PostgreSQLi näol on tegemist andmebaasisüsteemiga, mis pakub Oracle ja Microsofti andmebaasisüsteemidele väärikat konkurentsi ning mida saab väga edukalt kasutada ka suurtes ettevõtte infosüsteemides ning riigi infosüsteemides.

                                                                                                            PostgreSQLi kasutab näiteks Skype. Veel üheks PostgreSQLi heaks omaduseks on laiendatavus - SIIT leiate ülevaate laiendustest, mida Skype kasutab/arendab.

                                                                                                              Erki Eessaar:
                                                                                                              Tarkvara

                                                                                                              31.08.2015 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.

                                                                                                              PostgreSQL andmebaasiga töötamiseks võib kasutada tasuta pakutavat programmi pgAdmin. Kuna serveris on PostgreSQL (9.4), siis tuleks kasutada pgAdmin versiooni 1.20.

                                                                                                              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.

                                                                                                              Juhul, kui teete iseseisvat tööd Oracle andmebaasisüsteemi põhjal, võib andmebaasi projekteerimiseks kasutada Oracle SQL Developer Data Modeler tarkvara. See vahend on palju võimalusterohkem kui Rational Rose. Tarkvara on tasuta, kuid selle allalaadimiseks tuleb ennast registreerida.

                                                                                                              apex.ttu.ee serveriga SSH ühenduse loomiseks võib kasutada programmi PuTTY. Samuti võib mitte-kommerts otstarbel kasutada SSH Secure Shell klienti versiooni 3.2.

                                                                                                              apex.ttu.ee serverisse failide ülekandmiseks ja sealt failide allalaadimiseks võib kasutada programmi WinSCP.

                                                                                                              Programmikoodiga töötamiseks sobib hästi tekstiredaktor SciTe või Notepad++.

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

                                                                                                              Erki Eessaar:
                                                                                                              Registreerimine

                                                                                                              31.08.2015 Leheküljele ligipääsemiseks tuleb ennast registreerida.
                                                                                                              • Kui kasutate http://maurus.ttu.ee lehekülge esmakordselt, siis valige õppeaine leheküljel menüüst Üldist=> Ainele registreerumine. Täitke vorm ja vajutage nupule "Registreeri".
                                                                                                              • Kui juba olete õpikeskkonnas mingile ainele registreerunud, siis siis valige Mauruse esilehel menüüst Üldist=>Minu konto ja lisage enda aktiivsete lehekülgede hulka õppeaine: "Andmebaasid II (IDU0230) ja Andmebaaside programmeerimine (IDU0120) (sügis 2015)" Ärge unustage vajutada "registreeri ainele".

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