Täna on teisipäev 01.07.2025.
Teated ja oluline info
Aine uus kodulehekülg koos aktuaalse informatsiooniga asub http://maurus.ttu.ee/368
Lisainfot leiab Martin Kleppmanni ajaveebist.
Sügisel jätkame õppeainega "Andmebaasid II". "Andmebaasid I" saab deklareerida uuesti 2018. aasta kevadel.
Minult on küsitud, kas "Andmebaasid II" saab deklareerida, kui "Andmebaasid I" on tegemata. Üks on teise sisuliseks ja vajalikuks eelduseks. Siiski luban vastutulekuna "Andmebaasid II" deklareerida ka siis, kui eeldusaine on tegemata. Deklareerija võtab sellega teadliku riski ja peab tegema vajalikku lisatööd. Kui eeldusaine pole selge, on jätkuainest kindlasti raskem aru saada. Õppeaines "Andmebaasid II" teeme edasi aines "Andmebaasid I" alustatud projekti. Tegijate rühm võib jääda samaks, kuid seda võib ka muuta. Endiselt on rühma maksimaalne suurus kolm inimest.
Kellel on "Andmebaasid I" projekt tegemata võiks sügise alguses või isegi mõnel vihmasel suvepäeval proovida eeldusaine projekti valmis teha. Uue semestri alguses võiks seda võimalikult kiiresti mulle mõnel vastuvõtuajal ette näidata ning saades heakskiitva peanoogutuse jätkata juba soojaks joostud kehaga "Andmebaasid II" projekti tegemisega.
Seoses jätkuaine projektiga võib ka olla kasulik vaadata neid küsimusi ja vastuseid.
Kes tahab piiluda, millega "Andmebaasis II" tegeletakse, siis juurdepääs 2016. aasta kodulehele on Teil olemas (kasutajanimi SIS2 ja parool SIS2). 2017. aasta sügiseks tuleb Mauruses uus leht, kuhu juba oma nime all registreeruda.
Projektide näitamise ajad lisaeksamisessioonil (teisipäeval ja mõned ajad ka esmaspäeval) panen välja 9. juuni õhtul.
Mauruses on avatud registreerimine kolmandale järeltööle, mis toimub 12. juunil 2017. See on selle semestri kõige viimane SQL kontrolltöö järeltöö. Kui saate seal SQL töö positiivsele hindele sooritatud ning ka projekt on saanud arvestuse, siis saate teha 14. juunil 2017 lisaeksami. Kolmanda SQL järeltöö tingimused on samad, mis teisel järeltööl. Need on leitavad 25.05.2017 teatest.
SQL kontrolltöö positiivne hinne ning projekti arvestus on eksamieeldused ning ilma nendeta eksamit teha ei saa.
Mauruses on avatud registreerimine teisele järeltööle, mis toimub 29. mail 2017.
Reeglid.
- Osaleda võivad kõik soovijad. Kõigil järeltööl osalejatel läheb lõpphinde arvutamisel arvesse järeltöö hinne, sõltumata sellest, kas see on parem või halvem kui eelmise töö hinne. NB! Nagu ka põhitööl kehtib reegel, et kui tullakse kohale võetakse ülesanne vastu, aga vastust ei esitata, on hinne "0".
- Mingeid abimaterjale (kaasa arvatud A4 leht) pole lubatud kasutada.
- Lisapunktid enam arvesse ei lähe (see kehtib ka nendele, kes tulevad tööd esmakordselt tegema).
Muus osas kehtivad samad reeglid kui SQL kontrolltööd esimest korda tehes.
2017-05-25 11:15 (N)
2017-05-25 13:00 (N)
SQL kontrolltöö teine järeltöö toimub 29. mail kell 10:00 ja 12:00. Registreerimine saab võimalikuks peale seda, kui olen pannud välja selle järeltöö kõik tulemused (hiljemalt 26. mail).
Samuti öelge nimede kontrollimisel, kui olite nende üliõpilaste seas, kes registreerisid Mauruses, et tulevad SQL tööd esmakordselt tegema 16ndal õppenädalal ja saavad siis A4 lehte kasutada.
2017-05-11 14:00 (N)
2017-05-11 15:00 (N)
2017-05-11 16:30 (N)
2017-05-11 16:45 (N)
Ärajäänud ülevaatamise ajad on asendatud 11. mail 2017 kell 14:00-15:30 toimuvate ülevaatustega ruumis ICT-627. Sinna pealtvaatajaid kahjuks ei mahu.
2017-05-11 16:30 (N)
2017-05-11 16:45 (N)
2017-05-12 15:00 (R)
2017-05-10 14:45 (K)
2017-05-11 14:00 (N)
2017-05-04 12:30 (N)
2017-05-04 13:00 (N)
Ühtlasi kutsun Teid veelkord üles tulema vaatama, mida teised üliõpilased on teinud. Neile antavast tagasisidest võib olla Teie projekti juures palju kasu - vead kipuvad korduma.
Kataloogis Aine korraldus on info esimese järeltöö kohta, mis toimub 17. mail 2017 kuni 19. mail 2017. Mauruses on avatud sellele registreerumine. Kui soovite osaleda, siis registreerumine on kohustuslik!
- Teiseks näiteprojektiks on kataloogis Iseseisva töö projekti tegemine/Projekt loengus olev hotelli infosüsteemi tubade arvestuse allsüsteemi projekt. Selle tegemiseks on kasutatud töövihikut. Viidatud kataloogist leiate nii Enterprise Architecti faili, SQL lausete faili kui ka MS Accessis realiseeritud prototüübi.
- Kutsun Teid üles tulema arvutiklassis toimuvaid ettenäitamisi vaatama (ükskõik kas sellel päeval oma tööd näitate või mitte), et teiste üliõpilaste tehtud tööst ja minu tagasisidest õppida ning saadud teadmisi enda projekti juures kasutada.
- Juba üleslaetud projekti versiooni võib enne oma ettenäitamise aega parandada ja uue versiooni üles laadida.
PostgreSQLis saan luua baastabeli, kus on null veergu (aste on null) ja lisada sinna null või rohkem rida (tabeli võimsus on null või rohkem).
CREATE TABLE on_avatud();
INSERT INTO on_avatud DEFAULT VALUES;
Saan selliseid tabeleid kasutada tõeväärtustüüpi juhtparameetrite realiseerimiseks. Need on disainitaseme abitabelid, mis kontseptuaalses andmemudelis ei kajastu.
SELECT Count(*) AS cnt FROM on_avatud;
- Kui süsteem on avatud, siis cnt>=1
- Kui süsteem on suletud, siis cnt=0
Alates PostgreSQL 9.4 saab kirjutada SELECT lauseid (ilma DISTINCT operatsioonita), kus SELECT klauslis olev veergude hulk on tühihulk.
SELECT FROM on_avatud;
- Kui süsteem on avatud, siis leitud ridade arv >=1
- Kui süsteem on suletud, siis leitud ridade arv =0
Tühja SELECT klausliga päringuid saab kasutada jah/ei küsimuste formuleerimiseks.
Kas osakonnas 10 on mõni töötaja?
SELECT FROM Emp WHERE empno=10;
- Kui jah, siis leitud ridade arv >=1
- Kui ei, siis leitud ridade arv =0
Erinevused relatsioonilisest mudelist.
- Ei saa luua nimega tuletatud tabeleid (vaateid, hetktõmmiseid), mille aste on null.
- Sellise tabeli võimsus võib olla ühest suurem.
SQLis üldiselt peab tabelis olema vähemalt üks veerg.
Samuti on on võimalik kuni 18. aprilli 2017 hilisõhtuni (kell 23:59) teada anda, et Te ei osale 12nda nädala kontrolltöös, vaid tulete 16nda nädala järeltööle. AINULT SIIS, kui selleks ajaks sellest mulle Mauruse kaudu teatate, saate 16ndal nädalal kasutada A4 abipaberit. Sellest mulle teatamiseks tuleb minna samasse kohta, kus registreeritakse ennast kontrolltöödele ning leida alajaotuses Kontrolltöö selleks otstarbeks tekitatud aeg, mille juures ennast registreerida.
Kellel on SQL kontrolltööks 17 või rohkem lisapunkti, sellel on SQL kontrolltöö hindeks automaatselt 5. Ülejäänud peavad tegema kontrolltöö. Registreerimine kontrolltööle toimub Mauruses ja see on avatud. Palun ärge viivitage registreerimisega, sest arvutikohtade arv klassides on piiratud! Kui saite kontrolltöö hindeks tänu lisapunktidele automaatselt 5, siis kustutage palun oma registreerumine.
Lisapunktid lähevad arvesse 12nda õppenädala põhitööl ja 16nda nädala järeltööl. Lisapunktid liituvad kontrolltöö ülesannete vastuste eest saadavatele punktidele (kuus ülesannet, mis annavad kokku kuni 100 punkti; 51-60 punkti annab hinde 1; 61-70 punkti hinde 2;... 91 punkti või rohkem annab hinde 5).
Lisamaterjalide lehel on kataloogis Andmebaasid 1 => Iseseisev SQLi harjutamine => Lahendused väljas nuputamisülesannete vastused. SQL kontrolltööks õppimiseks soovitan proovida lahendada iseseisvalt lisamaterjalide lehelt kataloogist Andmebaasid 1 => Iseseisev SQLi harjutamine ülesandeid 5 ja 6. Need katavad kõiki kontrolltöös küsitavaid SQL lausete tüüpe.
Tulles nädalas esimest korda tundi on vaja lahendada tekstifaili välja pandud ühepunktilisi ülesandeid. Kui saate need tunni jooksul valmis ja jääb aega, siis saate lahendada nuputamisülesandeid.
Kui peaksite peale seda veelkord samal nädalal harjutustundi tulema, siis saate kohe lahendada nuputamisülesandeid.
Huvilised leiavad kirjutise: http://maurus.ttu.ee/346
Kataloog: Andmebaasid 1 => Loengud => Lisamaterjalid => fail 8
Kirjutises viidatakse ka sellele artiklile.
Kui süsteem peaks võimaldama kasutajaliidese keelt muuta, siis lõppkasutaja jaoks peaks keele muutmisel muutuma nii kasutajaliidese kui klassifikaatori nimetuste keel. Viimase saavutamiseks on erinevaid SQL-andmebaasi disaine.
- Kasutate arvutiklassi arvutit - see seab kohtade arvule kindlad piirid.
- Registreerimine on kohustuslik.
- Registreerimisel - kes ees, see mees.
- Pildiga isikut tõenava dokumendi esitamine on kohustuslik (lisaks aktsepteerin ka autojuhilube).
- Avatud Ülikooli üliõpilastele on kindlad ajad.
- Kui olete aine varem deklareerinud, siis uuesti deklareerides tuleb SQL töö uuesti teha.
Kontrolltööle registreerimine on nüüd avatud.
Palun vaadake ka kindlasti kataloogis SQL/Iseseisvaks ettevalmistuseks lõpus olevat kommentaaride faili, kus juhitakse tähelepanu paljudele kontrolltöödes esinevatele tüüpilistele probleemidele ning nende lahendustele.
11nda õppenädala harjutustundides saab veel ülesandeid lahendada. Harjutustunnis on kolm ühepunktilist ülesannet + nuputamisülesanded.
Kui Te ei saa kontrolltööd automaatselt hinnet 5, siis lähevad kogutud lisapunktid arvesse 12nda õppenädala põhitööl ja 16nda õppenädala järeltööl.
Neljapäeval 13. aprillil 2017 toimuvad "Andmebaasid I" aines kõik tunniplaanis ettenähtud harjutustunnid. Kell 12:00 toimuv harjutustund on üle viidud suuremasse ruumi ICT-501. Ülejäänud harjutustunnid toimuvad tunniplaanijärgses ruumis. Kell 16:00 algama pidanud harjutustundi alustame kell 15:45 ja siis ka lõpetame 15 minutit varem.
Rühma IAPB45 üliõpilased võiksid tulla kell 8:00 või 12:00 algavasse harjutustundi.
Rühmade IABB41 ja IABB42 üliõpilased võiksid tulla kell 15:45 algavasse harjutustundi (või ka mõnda muusse selle nädala sobivasse tundi).
Lisaks viidatakse kataloogis SQL/Iseseisvaks ettevalmistuseks punktis 12 täiendavatele SQL ülesannetele ja nende lahendustele. Enamik nendest on magajate andmebaasi põhjal, kus on tabelid Magaja - Magamine - Ase. Nende struktuur on sarnane hotelli andmebaasi tabelitega Külaline - Reserveerimine - Hotell.
Nende ülesannete hulgas on analoogid kõigile harjutustunni ülesannetele.
Nendel, kes kontrolltööd automaatselt hinnet 5 ei saa, lähevad lisapunktid SQL töö hinde arvutamisel arvesse aprillis (põhikatse) ja mai keskel (esimene järeltöö) toimuvatel SQL töödel.
Miks nad seda teevad? 2017. aasta märtsi seisuga on kümne kõige populaarsema andmebaasisüsteemi hulgas seitsmes kasutusel SQL. Sellest tulenevalt on lisaks arendajatele SQL hädavajalik keel andmeteadlastele. Nad peavad kuidagi enda uurimismaterjalile e andmetele ligi pääsema ja sageli on selleks vaja kasutada SQLi.
Näiteks üleeuroopalisel suurandmete töötlemise maratonil 2017. aastal kolmanda koha saanud meeskonna liige kommenteeris, et sisendandmed olid SQL-andmebaasis, hierarhiatena, Adjacency List (külgnevusnimistu) mudeli alusel. Ta ütles SQLi kasutamise kohta: "asi kisub vist hoopis sql hackathoniks. /.../ eeltöötlus ja andmebaasides ringirändamine ja avastamine on 80-90% ajast."
Osalejatele anti vahendite valik vabaks. Eesti meeskond otsustas esmajoones kasutada PostgreSQLi. See tähendab, et andmed laaditi PostgreSQLi tabelitesse ja otsiti vastuseid küsimustele kasutades SQL päringuid.
Ainult siis, kui PostgreSQL jäi töökiiruse mõttes hätta ("5+ JOINiga päringutel kulus tulemusteni üle 15 minuti (võtmeveergude indekseerimised jm. "hügieenilised" tegevused olid eelnevalt tehtud)"), laaditi andmed päringu tegemiseks Hadoop klastrisse. Ka seal läks vaja SQLi oskust, sest läbi Hive pakutava liidese saab klastris olevate andmete poole pöörduda kasutades SQL-laadset keelt HiveQL. PostgreSQL päringuid polnud vaja palju muuta, kuid töökiiru paranes kuni 10 korda. Samas kommenteeris üks meeskonna liikmetest, et "Kui Hackathlonil poleks ajapiirangut olnud, siis selle andmestiku puhul oleks saanud ka ilma Hiveta."
Samuti kasutati hajusarvutuste platvormi Spark, kuid ka selle kasutamiseks on kasulik SQLi tunda.
Arvatavasti olete kuulnud NoSQL (kes interpreteerib seda kui "No to SQL", kes aga "Not only SQL") süsteemidest. Need süsteemid sõitsid 2010ndatel suure hurraaga turule, kui järjekordsed printsid valgel hobusel, mis pidid andmebaaside maailma kõigist hädadest päästma. Eriti alguses vastandusid need (nagu nimigi viitab) kõvasti SQLile. Nüüdseks aga on üha rohkemates sellistes süsteemides kasutusele võetud kõrgtaseme (deklaratiivne) päringukeel, mis kangesti meenutab SQLi. Nii et kui "päris" SQLi oskate, siis pole keeruline ka neid uusi keeli suhu saada. Näited:
- CQL (Cassandra Query Language, andmebaasikeel veergude perekondade põhises andmebaasisüsteemis Cassandra).
- N1QL (päringukeel dokumendipõhises andmebaasisüsteemis Couchbase).
- SPARQL (standardiseeritud päringukeel andmebaasisüsteemidele, mis põhinevad RDF (Resource Description Framework, ressursside kirjeldamise karkass) andmemudelil).
- PGQL (katse pakkuda graafipõhistele süsteemidele välja ühtlustatud SQLi-laadset päringukeelt).
- Cypher (päringukeel graafipõhises andmebaasisüsteemis Neo4J).
- Slaidikomplekti "SQL‑andmebaaside projekteerimise põhimõisteid" teine osa (alajaotis "SQL-andmebaasi disain" - kuni slaidikomplekti lõpuni) (kataloogis SQL/Iseseisvaks ettevalmistuseks).
- Slaidikomplekt "Kontseptuaalne andmemudel" (kataloogis Teooria testideks (vahetestid, eksam) valmistumine).
- Kõik loengutes ja harjutustes iseseisva töö projektist räägitu + iseseisva töö juhendid.
Testil osalemiseks on kohustuslik registreerida. Registreerimine toimub Mauruse kaudu: Üldist => Teadmiste kontroll. Registreerimisel pole vaja kommentaari välja midagi kirjutada. Testil osalemiseks peab olema kaasas isikut tõendav dokument (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 ja SQL kontrolltööst, mis toimub ainult arvutiklassi arvutites). Küsimustele vastamiseks materjale kasutada ei või. Testis on kümme juhuslikult valitud küsimust, vastamiseks on aega 20 minutit. Küsimused on valikvastustega ning ainult üks vastuse variant on õige. Tulemuse saate teada kohe, kuid vastuste õigsust saab vaadata üheteistkümnenda nädala harjutustundides. Nädala jooksul saab testi teha maksimaalselt ühe korra. Kui Te ei soovi testi teha, siis tulge palun tundi 25 minutit peale tunni algust.
Testi saab teha ette, kuid mitte järgi.
Kuna Maurus kasutab PostgreSQL andmebaasisüsteemi, siis tegi PostgreSQLi pakutav täisteksti otsingu funktsionaalsus selle funktsionaalsuse realiseerimise lihtsamaks.
Järgnevalt esitan koodinäite.
Näiteks oletame, et tahan lisada teadete otsimise võimaluse ning et andmebaasis on tabel Avalik_teade, üle mille veergude pealkiri ja sisu peaks otsing toimuma.
Avalik_teade(avalik_teade_id, pealkiri, sisu)
Primaarvõti(avalik_teade_id)
Lisan tabelisse veeru tsv, mis hakkab iga teate korral sisaldama spetsiaalset pealkirja ning sisu kokkuvõtet ja on ühtlasi aluseks nende alusel otsingute tegemisele. See veerg on tüüpi tsvector. See on spetsiifiline PostgreSQLi andmetüüp.
ALTER TABLE Avalik_teade ADD COLUMN tsv tsvector;
Loon tabeliga seotud trigeri, mis andmete tabelisse lisamisel või muutmisel värskendab veergudes pealkiri ja sisu olevate andmete põhjal veerus tsv olevaid andmeid. Kahjuks ei toeta kasutatav PostgreSQL versioon võimalust määrata, et triger peaks käivituma ainult siis, kui andmeid muudetakse (UPDATE) mingis kindlas veerus. Kahjuks ei ole täistektiotsingutel eesti keele tuge, tänu millele oskaks andmebaasisüsteem otsingu tegemisel arvestada keele eripäradega. Seega kasutan inglise keele (pg_catalog.english) reegleid.
CREATE TRIGGER teade_tsv_iu BEFORE INSERT OR UPDATE
ON Avalik_teade FOR EACH ROW EXECUTE PROCEDURE
tsvector_update_trigger(tsv, 'pg_catalog.english', pealkiri, sisu);
Teen andmemuudatuse, mis tänu eelnevale trigerile tingib andmete lisamise veergu tsv.
UPDATE Avalik_teade SET pealkiri=pealkiri;
Veerus tsv on nüüd andmed nagu: 26,231,261 'segamini':253 'sell':24 'sellel':100 'sellest':91 'sellis':132 '
Loon veerule tsv otsingu kiirendamiseks indeksi.
CREATE INDEX teade_tsv_idx ON Teade USING gin(tsv);
Muudan veeru tsv kohustuslikuks.
ALTER TABLE Teade ALTER COLUMN tsv SET NOT NULL;
Järgnev päring leiab tabelist Avalik_teade sellised teated, mis sisaldavad sõna "SQL". Päring väljastab teate identifikaatori, pealkirja, sisu ning pealkirja ja sisu põhjal moodustatud kokkuvõtte, kus on otsisõna esile tõstetud. Päringu tulemus on sorteeritud tulemuse relevantsuse hinnangu alusel kahanevalt.. Päringu tulemuses on maksimaalselt 10 rida..
SELECT avalik_teade_id, pealkiri, sisu, ts_headline(pealkiri || ' ' || sisu, q) AS fragment
FROM (SELECT avalik_teade_id, pealkiri, sisu, q, ts_rank_cd(tsv,q) AS rank
FROM Avalik_teade, to_tsquery('SQL') AS q
WHERE tsv @@ q
ORDER BY rank DESC LIMIT 10) AS foo;
Samal põhimõttel faile lisandub kõigil järgnevatel nädalatel kuni SQL kontrolltööni (12. õppenädal). Eraldi teateid selle kohta ma enam ei saada.
Organisatsioonile võivad teha ettekirjutusi erinevad riiklikud ja kohaliku omavalitsuse organisatsioonid. Seega on üks põhiobjekt Ettekirjutus. Toon näiteid.
- Toitlustusasutustele võib teha ettekirjutusi Terviseamet.
- Kui organisatsioon töötleb isikuandmeid, siis nende töötlemise nõuete vastu eksimisel teeb ettekirjutusi Andmekaitse inspektsioon.
Kui organisatsioon (nt kauplus, teenindusasutus, toitlustusasutus, majutusasutus) esitab avalikult muusikapalasid (isegi raadiost või TV-st), siis tuleb selle eest maksta autoritasu. Eesti Autorite Ühingu kodulehel tuleb täita repertuaari aruandlust. See tähendab, et põhiobjektide hulgas peaks olema:
- Leping (organisatsioon sõlmib "ühe Eesti Autorite Ühinguga ja teise (olenevalt valdkonnast, kus muusikat kasutatakse) kas Eesti Esitajate Liidu või Eesti Fonogrammitootjate Ühinguga. Eesti Esitajate Liit ja Eesti Fonogrammitootjate Ühing teostavad oma õiguseid selles valdkonnas ühiselt." (viide)).
- Muusikapala esitus
- Võibolla ka Muusikapala ja Autor.
Kaupade arvestuse teema korral tuleb mõelda, kuidas näiteks kõik sellised andmed andmebaasis ära registreerida. Lahendusi pakuvad kataloogis Iseseisva töö projekti tegemine/Juhendid ja töö harjutustunnis olevad kaupade registri olemi-suhte diagrammide näited.
Kui infosüsteemi põhiobjektide hulgas on Töögraafik ja Töötamine, siis vastavate funktsionaalsete allsüsteemide ning registrite ise realiseerimise asemel võib näiteks kasutada seda tarkvara.
Selle raamatu ideed kehtivad ning on olulised ka andmebaaside ja infosüsteemide ainete jaoks. See raamat jagab juhiseid vastutustundlikule arendajale.
Täpselt nii nagu vastutustundlik arendaja loob ainult puhast rakenduse koodi, loob ta ka ainult puhast andmebaasikeele koodi ja puhtaid mudeleid. Üldine idee on täpselt sama! Suure tõenäosusega hakkate neid ise tulevikus lugema. Või kui ei hakka ise, siis hakkab keegi teine. Puhast artefakti (tehist) on hea ja meeldiv lugeda, sellest saab kergesti aru ning kokkuvõttes on tehist tänu sellele lihtsam edasi arendada. Samal ajal "räpane" tehis võib küll oma hetke eesmärki täita (hetkel see "töötab" nagu vaja), aga halva arusaadavuse ning loetavuse tõttu on seda raske parandada ja edasi arendada. Sellised tehised vajavad refaktoreerimist. Refaktoreerimist vajavad kohad leiab üles halva lõhna järgi. Täpselt nagu on olemas halvasti lõhnav lähtekood, leidub ka halvasti lõhnavaid disaine, halvasti lõhnavaid andmebaasi disaine ja halvasti lõhnavaid mudeleid. Kui Te ei taga enda loodavate artefaktide puhtust, siis te kogute tehnilist võlga. Tehniline võlg tähendab, et tehise muutmiseks on vaja liigselt pingutada. Nagu me kõik inimeste elust teame, siis võlg võib kiiresti kasvada ja kontrolli alt väljuda. Laenu võtta (võlgu jääda), võib teadlikult - lootuses, et see tasub ennast ära, aga see on risk.
Halvasti lõhnava mudeli illustratsiooniks on teatele lisatud ekraanipilt Enterprise Architect abil loodud modelleerimise projektist. Mudeli elemendid on seal süsteemitult segamini nagu puder ja kapsad ning mida suuremaks see projekt kasvab seda raskem oleks sealt vajalikku üles leida.
- Räpane_mudel.jpg [150 KB]
- Taotlused, mis on esitatud 9. märtsiks 2017 kell 23:59.
- Taotlused, mis on esitatud 14. aprilliks 2017 kell 23:59.
Lisaks asendage palun tabelis 5 (Olemitüüpide sõnalised kirjeldused) X_kategooria_tyyp => X_kategooria_tüüp
Diagrammil ja diagrammi elementide tekstikirjeldustes tuleb kasutada ühesuguseid nimesid!
- Errata_CRUD.jpg [20 KB]
- Päikese rollis on organisatsiooni eesmärgid. Kõik mis organisatsioonis IT vallas (sh andmebaasidega) tehakse, peab olema nende eesmärkide teenistuses, mitte vastupidi. Seega planeedid (andmebaasi osad) tiirlevad ümber päikese (organisatsiooni eesmärkide), mitte vastupidi.
- Päikese ümber tiirlevad planeedid vastavad põhiobjektidele e põhiolemitüüpidele.
- Nende ümber tiirlevad omakorda kaaslased e kuud, mis vastavad mitte-põhiobjektidele.
- Iga planeet-planeedi kaaslased süsteem vastab andmebaasi äriarhitektuuris ühele registrile. Nii nagu iga kuu tiirutab ümber kindla planeedi on ka iga mitte-põhiobjekt kindla registri tiiva all. Igal planeedil on null või rohkem kuud; igal põhiobjektil on null-või rohkem samasse registrisse kuuluvat mitte-põhiobjekti.
- Lisaks planeetidele tiirutavad ümber päikese ka asteroidid. Neist võib andmebaaside analoogias mõelda, kui andmestruktuuridest, mis on vajalikud ühe või teise rakenduse töö hõlbustamiseks, kuid mis ei kuulu ühtegi registrisse (nt disainitaseme abitabelid).
- Ümber planeetide (hetkel teadaolevalt ainul Maa, aga hiljem miks mitte ka mõni teine planeet) tiirutavad kunstlikud tehiskaaslased, mis on sinna planeedi asukate poolt saadetud, kuid mingil hetkel planeedile tagasi langevad ja selle käigus ära põlevad. Need on nagu registris olevad ajutiste andmetega andmestruktuurid, mida läheb vaja mingi konkreetse ülesande (nt konkreetse päringu) täitmiseks, kuid mis millalgi oma otstarbe kaotavad ja seega võib eemaldada.
- Nii nagu andmebaas või meie arusaam selle ülesehitusest ajas muutub, muutub ka päikesesüsteem (nt planeet püüab gravitatsiooni mõjul kinni mõne pisitaevakeha, mis muutub selle planeedi kuuks) või meie arusaam sellest (nt muutub arusaam sellest, millised taevakehad kuuluvad planeetide hulka).
- Nii nagu kunagi kustub päike, nii saab kunagi otsa ka organisatsiooni ja selle IT süsteemide (sh andmebaasisüsteemi toega andmebaasi) elukaar.
Võimalik lahendus on, et iga majutusasutuse infosüsteem realiseerib klientide andmeid pakkuva veebiteenuse. Majutusasutuste külastajate registri tarkvara pöördub regulaarselt selle veebiteenuse poole ja "tõmbab" majutusasutuste andmebaasidest külastajate andmeid kesksesse registrisse (näiteks JSON või XML dokumendina). Sellisel juhul on majutusasutuste külastajate register majutusasutuse infosüsteemi üks väline tegutseja.
Võimalik on ka see, et majutusasutuse infosüsteemi tarkvara võtab ise regulaarselt külastajate registri tarkvaraga ühendust ja "lükkab" sinna külastajate andmeid. Sellisel juhul ei ole majutusasutuste külastajate register majutusasutuse infosüsteemi üks väline tegutseja. Selline lahendus oleks majutusasutuste jaoks keerulisem ja kulukam realiseerida.
Pange selle uudise puhul tähele ka seda, et seadustega võivad olla ette nähtud reeglid, milliseid andmeid võib/peab kui kaua säilitama. Kui hakkate mistahes infosüsteemis mõtlema funktsionaalsusele "Kustuta X", siis tuleb selliste nõuetega arvestada. "Kuigi automaatsest registrist kustuvad inimese andmed üldjuhul ööpäevaga, siis majutusasutused ise peavad plaani kohaselt inimeste infot hoidma alles kaks aastat, et ametkonnad saaks vajadusel seda hiljem kontrollida."
Rääkides keskse külastajate registri tehnilisest realisatsioonist, siis järgnev pakub välja ühe võimaliku lahenduse. Andmebaasisüsteem PostgreSQL toetab JSON ja JSONB andmetüüpe (tabelites võivad olla seda tüüpi veerud ja nendes veergudes võivad olla JSON dokumendid). Külastajate andmed laetakse veebiteenuse poolt alla ja salvestatakse dokumentidena PostgreSQL andmebaasi. Nende andmete põhjal tehakse päringuid. Kui leitakse huvipakkuv isik, siis tema andmed kirjutatakse eraldi tabelisse, kus võibolla ei ole enam JSON/JSONB tüüpi veergu, vaid selle asemel, on isiku atribuutidele vastavad andmed (eesnimi, perenimi, isikukood, ...) eraldi veergudes. Huvipakkuvate isikute otsimiseks, nende andmete eraldi tabelisse tõstmiseks ja ülevaadatud külastajate andmete kustutamiseks luuakse andmebaasis funktsioonid. Neid funktsioone on vaja regulaarselt käivitada.
Kui soovite teha regulaarselt mingit tööd PostgreSQL andmebaasis (näiteks käivitada regulaarselt funktsiooni), siis tuleb selleks kasutada operatsioonisüsteemi vahendeid. Näiteks UNIXI-laadsetes operatsioonisüsteemides saab kasutada deemonit Cron, mis vastutab automaatsete operatsioonide eest. "Deemon on tagaplaanil jooksev programm, mis teostab teatud ettemääratud operatsioone kindlate ajavahemike tagant või vastuseks mingitele sündmustele." (Vallaste, 2001-2017, http://www.vallaste.ee/)
Majutusasutuse infosüsteemi klientide funktsionaalses allsüsteemi kirjelduses oleks kasutusjuht "Lae alla külastajate andmed", mis on seotud tegutsejaga Majutusasutuste külastajate register.
Projekti tegemist tuleks jätkata vastavalt loengus räägitule ning vastavalt juhendi sammudele, mille leiate dokumendist Iseseisva töö projekti tegemine => Juhendid ja töö harjutustunnis => Projekti juhend, mis on ühtlasi tööjuhend harjutustundideks 3-6.
Teen ettepaneku, et peale seda kui olete kirja pannud põhiobjektide ja tegutsejate nimekirja, vaataksite naaberrühmaga vastastiku üksteise nimekirjad üle ja arutaksite üheskoos läbi.
Selle nädala harjutustunnid, kuhu võite samuti tulla.
- Kolmapäeval kell 12:00 ruumis ICT-402
- Neljapäeval kell 08:00 ruumis ICT-404
- Neljapäeval kell 12:00 ruumis ICT-501
IASM üliõpilased võivad muidugi tulla ka kolmapäeval kell 10:00 toimuvasse ingliskeelsesse harjutustundi ruumis ICT-401.
Vabandan võimalike probleemide või ebamugavuse pärast!
Paljude infosüsteemide arendamisel tekib kahjuks olukord, et arendus läheb oodatust kallimaks ja võtab eeldatust rohkem aega. Selles artiklis on sellise olukorra tekkimise ja põhjuste väga ilmekas kirjeldus Eesti pensionide ja sotsiaaltoetuste maksmise infosüsteemi näitel. Seda infosüsteemi kasutatakse igapäevaselt 110 erinevat liiki toetuse ja pensioni maksmiseks kokku 700 000 inimesele. Kokkuvõtlikult:
- Arenduse valmimine lükkub edasi vähemalt 1,5 aastat.
- Projekt läheb kallimaks vähemalt 1,5 miljonit.
- Arendajad on maksnud riigile 180 000 eurot trahve.
Otsene seos käesoleva aine temaatikaga tekib sellest, et algselt asuti kogu keerulist süsteemi arendama tervikuna. See oli närimiseks liiga suur suutäis. Tõmmake paralleele sellega, et võtate suu täis mingit kõva maiustust ja siis ei saa isegi hambaid liigutada.
Nüüdseks on otsustatud arendamist jätkata osade kaupa. Need osad vastavad funktsionaalsetele allsüsteemidele. Süsteemi jagamine allsüsteemideks võimaldab allsüsteemide arendamist järk-järgult, arenduse tellimist erinevate hangetega ja võimalik, et erinevatelt firmadelt - täpselt nii nagu nüüd plaanitakse. Kuna iga hanke tulemusena tuleb teha valmis väiksem "tükk", siis on ka tähtajad paremini saavutatavad.
- Slaidikomplekti SQL‑andmebaaside projekteerimise põhimõisteid esimene osa (alajaotised "Sissejuhatus" ja "SQL") (kataloogis SQL/Iseseisvaks ettevalmistuseks).
- Teise õppenädala harjutustunni ülesanne.
Testil osalemiseks on kohustuslik registreerida. Registreerimine toimub Mauruse kaudu: Üldist => Teadmiste kontroll. Registreerimisel pole vaja kommentaari välja midagi kirjutada. Testil osalemiseks peab olema kaasas isikut tõendav dokument (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 ja SQL kontrolltööst, mis toimub ainult arvutiklassi arvutites). Küsimustele vastamiseks materjale kasutada ei või. Testis on kümme juhuslikult valitud küsimust, vastamiseks on aega 20 minutit. Küsimused on valikvastustega ning ainult üks vastuse variant on õige. Tulemuse saate teada kohe, kuid vastuste õigsust saab vaadata kuuenda nädala harjutustundides. Nädala jooksul saab testi teha maksimaalselt ühe korra. Kui Te ei soovi testi teha, siis tulge palun tundi 25 minutit peale tunni algust.
Testi saab teha ette, kuid mitte järgi.
- Kell 8:00 algav harjutustund rühmale IAPB46 toimub nagu tavaliselt.
- Kell 12:00 algav harjutustund rühmale IAPB44 toimub ruumis ICT-501. See on suurem ruum, et soovi korral saaksid osaleda ka rühmade IABB41, IABB42 ja IABB43 üliõpilased.
- Kell 16:00 algav harjutustund rühmale IABB43 jääb ära.
Ärajäävates harjutustundides käijad võivad tulla ka mõnda teise harjutustundi (v.a. kolmapäev kell 10:00, sest siis on tund inglise keeles).
Edaspidi toimub Microsoft Imagine keskkonnale juurdepääsu andmine jätkuvalt portsude kaupa (järgmine taotluste esitamise tähtaeg on 9. märts 2017) ning loodetavasti tõrgeteta.
Kui olete tööle saanud Enterprise Architect või Rational Rose CASE vahendi, siis laadige töövihiku malli kataloogist alla mudelite malli fail ning tehke süstemaatiline suurtähe X asendus ka seal.
Jaotises 2.2.2 Andmebaasioperatsioonide lepingud jätke väiketäht x asendamata. See on olemi eksemplari tähis ja võib jääda selliseks nagu see on.
Mida rutem seda teete, seda rutem saate aru, milline on projekti struktuur, modelleeritavad protsessid ning kuhu see töö lõpuks välja jõuab. Nii on ka palju lihtsam loengutest aru saada.
Autode sensorite abil kogutavad andmed kuuluvad suurandmete kategooriasse.
Kokkuvõtteks võib öelda, et suurandmeid iseloomustamiseks kasutatakse järgnevaid kriteeriume.
- Volume – koguhulk on suur.
- Velocity – uute saabuvate andmete hulk on suur – andmeid tulvab nagu kosest juurde ja nende põhjal on vaja kohe midagi järeldada. Näiteks ennustuste kohaselt on aastal 2020 arvutisüsteemides loodavate andmete hulk 44 korda suurem kui aastal 2009.
- Variety – andmestruktuuride varieeruvus on suur – erinevad formaadid, muutuv struktuur.
- Veracity – andmed peaksid olema usaldusväärsed.
- Value – andmete uurimine annab väärtust.
- Nikolai Lomaško: rewarty@gmail.com (autorendiettevõtte autode arvestus)
- Gerli Eltermaa: gerlieltermaa@hot.ee (ürituste korraldamise ettevõtte ürituste arvestus)
- Evelin Tamm: evelin.tamm@tallinnlv.ee (ilusalongi teenuste arvestus)
Teema valikut, tegemise viisi (töövihik vs omalooming), rühmade koosseisu ja kasutatavaid vahendeid võib muuta ka peale 10. veebruari. Palun muutke sellisel juhul ka teema registreerimise ülesande vastust, et teaksin muudatuse toimumisest.
Teise õppenädala harjutustund toimub plaanipäraselt. Arvutiklassi arvutites on MS Access olemas, samuti on see osadel olemas eeldusaine õppimise ajast. Kui Teie arvutis pole MS Accessi, siis tasub tulla tundi, kus on ilmselt vähem rahvast (vt eelmine teade), et loodetavasti arvutiklassi arvuti taha mahtuda. Kui Teie arvutis on LibreOffice Base, siis suurem osa lisapunktide ülesandest on võimalik ka selle põhjal lahendada (ja saada osa punktidest).
- Avatud Ülikooli kaudu deklareerijad
- Kursuse kordajad (olete varem selle aine tundides käinud)
- Õppeaine vabaainena õppijad (aine ei ole Teie õppekavas)
- Üliõpilased, kellele ei sobi tunniplaani järgne harjutustunni aeg
Te EI SAA käia (ja lisapunkte koguda) järgnevates harjutustundides.
- Kolmapäeviti kell 10:00 (inglise keeles)
- Kolmapäeviti kell 14:00 (liiga väike ruum)
- Neljapäeviti kell 16:00 (liiga palju rahvast)
Kõige sobivamad on käimiseks järgmised ajad, millal vähemalt esimesel nädalal oli tunnis eriti vähe üliõpilasi.
- Neljapäeviti kell 8:00
- Reedeti kell 14:00
Lisapunktide ülesannete lahendamise tundides ei saa toole ruumi juurde tuua, sest siis istuvad osalejad liiga tihedalt ja see kaotab individuaaltöö mõtte.
Iseseisva töö registreerimiseks valige õppekeskkonna vasakpoolsest menüüst "Tudeng=>Ülesanded" ning avanenud leheküljelt ülesanne "Iseseiseva töö teema registreerimine".
Kui teete iseseisvat tööd rühmatööna, siis peab teema registreerima üks rühma liige (iseseisvat tööd võib teha 1-3 liikmelistes rühmades).
Enne vastamist on kindlasti vaja tutvuda ülesande püstitusega, mille leiate kataloogist Aine korraldus.
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.
Kellel pole oma arvutis MS Accessi (sobivad ka vanemad versioonid kui 2016), siis saate selle Microsoft Imagine keskkonna kaudu. Selleks on vaja esitada taotlus Microsoft Imagine keskkonnaga ühinemiseks. Seda tuleb teha hiljemalt 2. veebruaril 2017 kell 23:59 selle lehe kaudu (leht ei kasuta UNI-ID süsteemi ega pole ka seotud Maurusega - seega tuleb teha uus konto).
- 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 I (IDU0220) (kevad 2017)" Ärge unustage vajutada "registreeri".
Registreerumise järel peate ootama kuni õppejõud teie juurdepääsu õiguse kinnitab.
Palun vaadake üle oma konto andmed ning registreerige seal selline meiliaadress, mida Te igapäevaselt loete. Sellele aadressile hakkab saabuma aine korralduslik ja muu info. Seda võib vaja minna õppejõul, et Teiega ühendust võtta.