Teated
Aine uus kodulehekülg koos aktuaalse informatsiooniga asub http://maurus.ttu.ee/347
- Kolmapäeval 1. aprillil 2015 kell 12:00-13:00 ruumis ICT-627
- Kolmapäeval 22. aprillil 2015 kell 12:00-13:00 ruumis ICT-627
Selle asemel toimuvad vastuvõtud:
- Teisipäeval 31. märtsil 2015 kell 14:00-15:00 ruumis ICT-627
- Teisipäeval 21. aprillil 2015 kell 14:00-15:00 ruumis ICT-627
Seega toimub vastuvõtuaeg tegelikult esmaspäeval 9. mätsil 2015 kell 12:00-13:00 ICT-627. Esmaspäeval 9. märtsil kell 14 ja teisipäeval 10. märstil kell 14 vastuvõttu ei toimu.
Vabandan segaduse eest!
Iseseisva töö esitamise tähtaeg 17. mai 2015.
18. mai 2015 – 24. mai 2015 esitatud töö saab hilinemise eest 5 miinuspunkti
25. mai 2015 – 15. juuni 2015 esitatud töö saab hilinemise eest 10 miinuspunkti
Peale seda kuupäeva ma tööd enam vastu ei võta. Palun Teid töö esitamist mitte viimasele hetkele jätta.
Kellel on esitamata projekt, siis selleks, et jõuaksin selle õigeks ajaks üle vaadata on kõige viimane esitamise aeg pühapäev 25. jaanuar 2015 kell 23:59. Kui vähegi võimalik, siis palun esitada varem.
Lisaeksamil lähevad lisapunktid endiselt arvesse.
Tuletan meelde, et alates sellest õppeaastast kehtiva korra kohaselt kehtib deklaratsioon ühe semestri. Uuesti deklareerimise eest tuleb raha maksta ja kaotate lisapunktid.
Kui teete 28. jaanuaril eksamit esimest korda, siis soovitan soojalt registreeruda kella 11:00 eksamile, et ebaõnnestumise korral oleks võimalik samal päeval veelkord eksamit teha.
Kui keegi seda kasutab ja leiab puuduseid/probleeme või on ettepanekuid, kuidas seda veel paremaks teha, siis kirjutage mulle palun selle kohta! Igasugune tagasiside on väga teretulnud.
Uue veebiliidese autor on Marko Vanaveski, kes teeb seda oma bakalaureusetööna.
Täpsemalt lugege selle lingi tagant.
Vaadake ka kataloogist Lõputööd hästi kirjutatud andmebaaside-teemaliste lõputööde näiteid.
Lõputöö juhendamine on kahepoolne protsess. Juhendatavale peab teema südamest huvi pakkuma ja ta peaks soovima tööd teha maksimaalselt heale tulemusel. Juhendaja peab seda huvi nägema ning olema ka näinud varasema õppetöö ajal. Kui sellist "keemiat" ei ole, siis ei saa kahjuks ka juhendamisest asja.
Kataloogis Tulemused on tundides saadud lisapunktide viimane seis. Kui leiate vigu, siis andke palun teada.
Kordan üle, et Mittekohustuslikud materjalid alamkataloogides olevaid materjale ei pea eksamiks valmistudes lugema.
PostgreSQL 9.4 täiendab näiteks JSON tüüpi andmetega seotud funktsionaalsust ning nendega tehtavate operatsioonide jõudlust. Samuti tõstan täiendustest esile suurenenud võimalusi vaadete kaudu andmeid muuta ning muudatusi kontrollida.
Stiilinäide näiteprojektist: Andmebaasisüsteemiga ühenduse loomiseks kasutatav kasutajanimi (oppejoud_vastuvotud) on kirjutatud mooduli Refreshing algusesse (konstandi username väärtuseks).
Kui Teie rakendus on vaja installeerida kasutaja arvutisse, siis see on probleem, sest minu tööarvutisse uue tarkvara lisamine on õiguste piirangute tõttu aeganõudev ja takistatud. Seega, kui rakendus vajab kasutaja arvutis mingeid lisaprogramme pole kahjuks muud teha, kui peate tulema rakendust eksamisessiooni ajal vastuvõtuajal ette näitama. Oma projekti tulemuse saate teada alles pärast seda.
Ükskõik millises vahendis on rakendus tehtud - tähtajaks tuleb Maurusesse üles laadida selle rakenduse lähtekood (Oracle APEXi korral eksportimise tulemus). Muidu pole tõestatud, et rakendus oli õigeks ajaks valmis. MS Accessi puhul ei saa lähtekoodi saata - saadate rakenduse faili. Accessi puhul tuleb mulle saata *.mdb või *.accdb laiendiga fail, mitte *.mde või *.accde laiendiga fail.
apex.ttu.ee serveris tuleb veebirakenduse failid 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/
lõplikud punktid =
projekti punktid (max 60 punkti + hindamismudelist tulenevad lisapunktid) +
testi punktid (max 40 punkti) +
tundides saadud lisapunktid.
Lõplikud punktid taandatakse TTÜ hindamisskaalale.
Eksisteerib kaks lävendit, mis tuleb positiivse hinde saamiseks ületada:
- projekti punktid - peab saama 31 punkti või rohkem
- testi punktid - peab saama 20 punkti või rohkem
Tundides saadud lisapunktid ei aita otseselt neid lävendeid ületada (aitavad kaudselt, sest mida rohkem olete semestris kaasa töötanud ja tagasisidet saanud, seda paremaks muutub projekt). Need lisapunktid lähevad arvesse eraldi komponendina ja aitavad tõsta lõplikku punktisummat (eeldusel, et lävendid on ületatud).
Relatsiooniline andmemudel (mitte ajada segi SQLiga)
Date, C.J., Darwen, H. (2007). Databases, types, and the relational model. 3rd ed. China Machine Press
NoSQL süsteemid
Sadalage, P.J., Fowler, M. (2013) NoSQL distilled : a brief guide to the emerging world of polyglot persistence. Upper Saddle River (N.J.)
Moodulis Refreshing on deklareeritud globaalne muutuja sisseloginu.
See muutuja väärtustatakse VBA koodis, mis käivitub vormil Sissereg nupule Jätka vajutamisel (sündmus On Click)
Vormil nagu näiteks Loo_vastuvott on sündmusprotseduur On Activate, mis käivitub vormi aktiveerumisel ning mis kirjutab muutuja sisseloginu väärtuse vormil olevasse tekstivälja (Sisseloginud kasutaja).
Vormi Loo_vastuvott taga on kood, mis demonstreerib kuidas kutsuda välja andmebaasis loodud funktsiooni. Sellele antakse ühe argumendina ette sisseloginud kasutaja kasutajanimi.
Kui soovite apex.ttu.ee serveril asuva PostgreSQL andmebaasi poole pöörduda väljastpoolt TTÜ võrku, siis peate kasutama porti 7301. Seega, kui teete oma arvutis ODBC andmeühenduse spetsifikatsiooni, siis viidake seal pordile 7301.
Seega üliõpilased, kes teevad rakenduse Oracle APEXis, ei pea oma projekit jaoks looma looma rakendusele vastavat kasutajat ning jagama sellele õiguseid.
Enda projektis kirjutate jaotistesse: 6.14Rollid ja kasutajad 6.15Õiguste jagamine
, et töö spetsiifikast tulenevalt ei ole vaja rolle/kasutajaid luua ning õiguseid jagada.
Dekanaadi poole pöörduti Myjar ettevõttest ja nad otsivad IT teadmistega inimest, kes tunneks hästi Pythonit ja Javascripti ning teaks, kuidas koostada keerulisi ja optimeeritud päringuid SQL andmebaasides.
MyJar on alustamas aruandluslahenduse arendamist. Meie soov on seda teha kasutades Python Django ja JS Highcharts vahendeid. Kuigi meil on kompetents olemas, ei ole meie inimestel piisavalt muude tööde kõrvalt aega, et kogu uut lahendust ise teostada. Sellest tulenevalt otsime me mõneks kuuks inimest(inimesi), kes saavad meid selles aidata. Üheks heaks võimaluseks oleks seda projekti teha koostöös TTÜ-ga, kus mõni üliõpilane võiks projekti kasutada praktikas või baasiks oma diplomitööle. Projekti esimese etapi hinnanguline kestvus on 2-3 kuud ja meil on soov sellega alustada uue aasta algusest. Meil on omalt poolt andmeanaüütikud, kes oskavad kasutada neid platvorme ja juhendavad kogu projekti teostust. Samuti on võimalus osaleda scrum arendustiimi igapäevases töös.
Kellel on huvi, siis pöörduge TTÜs Elena Kirt poole, kes on karjääri- ja nõustamistalituses praktika- ja töövahenduse koordinaator
Tel. 620 3583 / 5656 8035
elena.kirt@ttu.ee
Minge vormi Sissereg disainivaatesse, kustutage sellelt üleliigne informatsioon ja tõmmake vormi väiksemaks (jalust (footer) ülespoole), et lõpuks näeks vorm välja umbes selline nagu teatele lisatud failis. Kasutajanimesid ja paroole ärge sellele vormile kirjutage – need tuleb panna kirja projekti sissejuhatusse.
Kui kasutaja on mitteaktuaalne (nt seetõttu, et talle vastav isik on töölt lahkunud), siis ei peaks see kasutaja saama süsteemi sisse logida (funktsioon peaks tagastama FALSE). Seega, kui olete andmebaasi disaininud nii, et selles saab registreerida iga kasutaja (või sellele vastava isiku) hetke seisundi, siis arvestage kasutaja tuvastamise funktsioonis ka sellega. Olgem ausad, "päriselus" peaks andmebaas olema disainitud nii, et selliste andmete registreerimine on võimalik. Siiski ei saa välistada, et projekti andmebaasis selliseid andmeid ei ole – selle aine kontekstis pole vaja hakata seda võimalust juurde lisama. Kui andmebaasis saab märkida kasutajaid mitteaktuaalseks, tuleb funktsioonis sisalduvas päringus otsida kasutajaid, kes ei ole "mitteaktuaalne" seisundis.
Burns, L. (2011). Building the agile database : how to build a successful application using agile without sacrificing data management. Westfield (N.J.) : Technics Publications.
See on hea raamat. Soovitan! Paljud seal kirjeldatavad põhimõtted on Teile andmebaaside ainetest tuttavad. Loodan, et selle raamatu lugemine annab Teile kinnitust ja julgustust, et nende jälgimine on mõistlik, võimalik ja kasulik ka tänapäeva moodsa agiilse (paindliku) süsteemiarenduse käigus.
Raamatus palju käsitlemist leidev loogiline andmemudel on sisuliselt sama kui andmebaaside ainetes käsitletud detailne kontseptuaalne andmemudel.
Sarnase probleemiga puutuvad kokku paljud ajaloouurijad. Toon näiteks tsitaate:
- "Omaette tõsiseks probleemiks on isikunimede moonutamine vene keelde transkribeerimisel, kuna nimed said tihti üleskirjutatud vaid kuulmise järgi." (allikas).
- "Kalmisturaamatusse kanti andmeid sageli mitte dokumendi alusel vaid kuulmise järgi, seega võis viga olla juba kalmisturaamatus" (allikas).
Soundex algoritmi kasutatakse mõnedes (ingliskeelsetes) riikides piiriturvalisuse tagamisel. Inimesel võib olla võltsitud dokument, millel kasutatakse tema pärisnimele (mis võib olla huvipakkuvate isikute nimekirjas) kõlalt lähedast nime. See võib viia väga kummaliste tagajärgedeni nagu kirjutatakse siin.
Foneetilisi algoritme saab ka kasutada selleks, et otsida ühes ja samas süsteemis või üle erinevate süsteemide inimesi, kes esinevad ja teevad seal tegusi veidi erinevate nimede all (nt broneerivad mitme erineva, kuid üsna sarnase nime all lennupileteid - viide). Veel üheks näiteks on, et süsteemis, kus klient ei pea tellimuse tegemiseks ennast identifitseerima, vaid sisestab iga kord isikuandmed uuesti, võib ta erinevate tellimuste puhul kogemata või meelega teha nime sisestamisel vea. Mõnda foneetilist allgoritmi realiseerivat funktsiooni kasutava päringu abil saab need erinevad tellimused omavahel "kokku viia".
NB! Ärge registreerige ennast palun kaugõppe eksamiaegadele (õhtul kell 15:30 ja 16:00) - nendel aegadel päevase õppe üliõpilased eksamit teha ei saa!!!
- Kui kasutate töös PostgreSQLi, siis PostgreSQL andmebaasi nimi - ma eeldan ja ootan, et andmebaas on pandud apex.ttu.ee serverisse.
- Kui kasutate töös Oraclet, siis Oracle skeemi nimi (st Teie kasutajanimi C##TUD...) ning Teie Oracle parool - ma eeldan ja ootan, et kasutate apex.ttu.ee Oracle andmebaasi.
- Veebirakenduse korral selle URL.
- Kui teete rakenduse kasutades MS Accessi, siis millises MS Accessi versioonis on rakendus loodud. NB! Esitatav MS Accessi rakendus peab töötama ingliskeelse MS Access 2013 keskkonnas (kui teete oma rakenduse mõne muu MS Accessi versiooniga tuleks seda TTÜ arvutiklassis testida)!!
- Kui teete veebirakenduse kasutades Oracle APEXit, siis ka tööruumi (workspace) nimi, rakenduse nimi ning samuti rakenduse URL.
- Kui tegemist on kasutaja arvutisse pandava rakendusega, mis pole tehtud MS Accessis, siis selle täpne installeerimise juhend.
- Loodud rakendusse sisselogimiseks vajalik kasutajanimi ja parool.
- Kommentaar, millise kasutaja töökoha Te realiseerisite.
- Kirjeldus selle kohta, kus ja millal pöördub Teie loodud rakendusprogramm andmebaasis loodud protseduuride/ funktsioonide poole.
- Info selle kohta, millises rakenduse failis/moodulis on kasutajanimi, mille abil rakendus loob ühenduse andmebaasisüsteemiga ja milline kasutajanimi see on. Oracle APEX korral ei pea seda tegema, sest APEX kasutab sisemist kasutajat.
NB! Palun ODBC andmeühendust kasutava rakenduse puhul kasutada andmeühenduse spetsifikatsiooni (ingl data source) nimena PostgreSQL_yhendus. See on sama nimi, mis arvutiklassides.
Iseseisev töö tuleb esitada elektrooniliselt kasutades aine veebipõhist õppekeskkonda. Tuleb saata nii dokumentatsioon, CASE vahendi (näiteks Rational Rose) failid (mitte pildifailid) kui ka rakenduse failid (vajalikud on nii käivitatavad failid kui ka lähtekood!!). Kui teete tööd mitmekesi, siis peab dokumendi saatma üks üliõpilane! Iseseisva töö esitamiseks valige õppekeskkonna parempoolsest menüüst "Tudeng->Ülesanded" ning avanenud leheküljelt ülesanne "Iseseisva töö esitamine". Lugege enne failide saatmist ülesande tekst korralikult läbi ja järgige täpselt juhiseid!
Saadetavad iseseisva töö dokumendid tuleb zipiga kokku pakkida. Eraldi tuleks saata iseseisva töö dokument, CASE vahendiga koostatud mudelid ja rakenduse fail(id). Oracle APEXi kasutamise korral tuleks saata rakenduse importimisel saadav fail. Iseseisva töö dokument võib olla *.doc, *.docx või *.rtf (ärge palun pdf-e saatke).
Kui teete tööd mitmekesi, siis peab iseseisva töö failid saatma üks üliõpilane. Ühe saadetava faili suurus võib maksimaalselt olla umbes 1,5MB! Kui fail on suurem, võib failid kuhugi serverisse üles riputada ja saata õppejõule vaid veebiaadressi.
Peale faili saatmist kontrollige, kas faili saatmine õnnestus!!! Peale faili saatmist tekib leheküljele sellele failile viitav hüperlink. Klõpsake selle parempoolse hiire nupuga ja valige "Save Target As". Salvestage fail tagasi oma arvutisse. Kui see õnnestub ja faili saab seejärel avada, siis on ka saatmine õnnestunud.
Failide korrektne õppejõule saatmine on üliõpilase vastutus. Kui failid pole serverile jõudnud, siis tähendab see, et tööd pole esitatud. Töö loetakse esitatuks peale kõigi nõutud failide korrektset saatmist
Iseseisva töö punktisummad pannakse lehele, mille kaudu saadeti dokumendid.
- 21. detsember 2014 – 27. detsember 2014 esitatud töö saab hilinemise eest 5 miinuspunkti
- 28. detsember 2014 – 31. jaanuar 2015 esitatud töö saab hilinemise eest 10 miinuspunkti
Juhul, kui iseseisva töö rakendus on tehtud kasutades vahendeid, mis nõuavad täiendava tarkvara installeerimist õppejõu arvutisse või mõnel muul põhjusel õppejõu arvutis korrektselt ei tööta, siis võib osutuda vajalikuks rakenduse oma arvutist ette näitama tulemine (ingliskeelse MS Access abil tehtud rakenduse või veebirakenduse korral ei ole selline ette näitama tulemine vajalik). Rakendust saab näidata eksamisessiooni ajal, vastuvõtuaegadel ning selles tuleb eelnevalt õppejõuga kokku leppida. Kõik nõutud failid peavad olema ikkagi eelnevalt esitatud, et õppejõud saaks need üle vaadata. Kui töö failid on esitatud õigeaegselt, siis ei põhjusta selline hilisem näitamine punktide arvu vähendamist hilinemise eest.
Iseseisva töö hindamine toimub kasutades hindamismudelit, mis on kataloogis Aine korraldus. Õppejõud täidab Exceli faili ja saadab selle autoritele (palun pange e-maili aadressid tiitellehele).
Tahaksin eriti juhtida tähelepanu järgmisele hindamismudeli punktile:
Dokumendis on tsitaadid, mis pole pandud jutumärkidesse ja viidatud. Selle eest saab 5 miinuspunkti.
TTÜ raamatukogu poolt pakutav juhendmaterjal kasutatud materjalidele viitamise kohta.
Kellele see tundub vähe, või kes arvab, et tänu suurele lisapunktide arvule võib ta esitada projekti hilinemisega ja kaotada punkte, siis neile tuletan meelde, et projekt peab ületama lävendi (31 punkti või rohkem) ja tundides saadud lisapunktid seal arvesse ei lähe. Lisapunktid aitavad Teil (võibolla märkimisväärselt) tulemust parandada, kui lävendid on ületatud.
NB! 2014-11-24 lisatud kaks arvamust "Andmebaasid II" projekti kohta.
Tõstsin seal esile mõtte, et kõige kohta, mis on materjalides mittearusaadav või raske peab küsima.
- PostgreSQL_operaatorid_funktsioonid_1_IDU0230_2014.ppt
- PostgreSQL_funktsioonid_2_IDU0230_2014.ppt
- Oracle_rutiinid_PL_SQL_keel_IDU0230_2014.ppt
- Andmebaasi_kapseldamine_IDU0230_2014.ppt
Juhin tähelepanu, et harjutustunni slaidikomplektides on koodinäited enamasti slaidiga seotud märkmete lehel. Uurida tuleb nii slaide kui märkmelehtedel olevat infot.
Seega palun ärge igaks juhuks kasutage skeemi nimedes # märke. Näiteks skeemi nime C##TUD5 asemel kasutage nime TUD5.
Lugege näiteks täpsustust Oracle andmepuhvri kohta. Võibolla ma ei seletanud seda teemat loengus piisavalt arusaadavalt.
- Domeenid, vaated, sünonüümid.
- SQL andmekäitluskeele lausete näiteid Oracle ja PostgreSQL põhjal.
Juhin tähelepanu, et harjutustunni slaidikomplektides on koodinäited enamasti slaidiga seotud märkmete lehel. Uurida tuleb nii slaide kui märkmelehtedel olevat infot.
- 3.2.1.2Tabelite kirjeldus
- 3.2.1.3Domeenide detailsed kirjeldused
- 3.2.1.4Tabelite detailsed kirjeldused
- 4Süsteemi tehniline arhitektuur
- 5.2Andmemahtude hinnang
- 5.5Indeksid
- 5.1Transaktsioonanalüüs (ühe Teie arvates sagedasti käivituva transaktsiooni kohta; lõppu on kohustuslik kirjutada analüüsist tulenevad soovitused; Soovitustest tulenevalt võite soovida täiendada nt indekseid)
- 3.1.1Realiseeritavad töökohad
- 3.1.2Reaalsete kasutusjuhtude kirjeldused (tuleb kirja panna omal valikul üks kasutusjuht; ekraanipildid võite võtta kevadisest prototüübist)
Saate täiendavalt punkte vastavalt sellele, kui palju valmis jõuate. Selleks, et võimalikult palju valmis jõuda, soovitan jagada ülesanded projekti osaliste vahel ja teha neid dokumente paralleeltööna.
NB!Andmebaasis loodavad domeenid ei pea olema üks-ühele vastavuses domeenidega, mis on kirjeldatud "3.2.1.3Domeenide detailsed kirjeldused". Sellest tulenevalt võivad dokumendis domeene kirjeldada ka üliõpilased, kes teevad projekti Oracles. Domeeni mõte dokumendis on samasugune nagu domeeni mõte andmebaasis – aitab spetsifikatsiooni lühemalt kirja panna ning tekib üks koht, kus muudatuse tegemine mõjutab kõiki sarnaste omadustega veerge.
NB!Hindamismudelis on kirjeldatud viga "Dokumendis on tsitaadid, mis pole pandud jutumärkidesse ja viidatud", mille eest saab 5 miinuspunkti. Arvesage palun sellega oma projekti tegemise juures.
PostgreSQL
SELECT 'Õnne Pärl'~'^([a-zA-Z]|[[:space:]])+$' AS tulemus;
Tulemus: FALSE
SELECT 'Õnne Pärl'~'^([[:alpha:]]|[[:space:]])+$' AS tulemus;
Tulemus: TRUE
Oracle
DECLARE
result BOOLEAN;
BEGIN
result:=REGEXP_LIKE('Õnne Pärl', '^([a-zA-Z]|[[:space:]])+$');
IF (result=true) THEN
dbms_output.put_line('TRUE');
ELSE
dbms_output.put_line('FALSE');
END IF;
END;
/
Tulemus: FALSE
DECLARE
result BOOLEAN;
BEGIN
result:=REGEXP_LIKE('Õnne Pärl', '^([[:alpha:]]|[[:space:]])+$');
IF (result=true) THEN
dbms_output.put_line('TRUE');
ELSE
dbms_output.put_line('FALSE');
END IF;
END;
/
Tulemus: TRUE
Sellega aitate Te kaasa ühe üliõpilase magistritöö koostamisele ning ühtlasi aitate kaasa selle valdkonna kohta paremate teadmiste tekkimisele, mis pikas perspektiivis võiks ka ühiskonda paremaks muuta.
- miks tundlike andmetega infosüsteemis ei tohiks paroolid olla andmebaasis avatekstina,
- mida kujutab endast SQL süstimise (SQL injection) rünnak,
- miks MD5 ei sobi enam paroolide räsiväärtuste leidmiseks,
- miks on parooli räsiväärtuse leidmisel vaja kasutada soola ja pipart.
Kui plaanite hoida paroole andmebaasis, siis ei tohi need olla avatekstina, leidmiseks ei tohiks kasutada tavalist MD5 algoritmi ning tuleks kasutada soola.
Selles artiklis selgitatakse, mida kujutab endast "vikerk aare tabelil" põhinev rünnak paroolide räsiväärtuste vastu. Selle lugemine peaks aitama veel paremini mõista, miks on parooli räsiväärtuse leidmisel oluline kasutada soola!
Veel parem aga on andmebaasipõhine andmete turvalisuse tagamise lahendus, mille korral igale rakenduse kasutajale vastab andmebaasi kasutaja. See on näiteks realiseeritud siin.
Esimese korra puhul sai punkte rohkem. Edaspidi näeb punktide jaotamine välja nii, et need, kes lahendavad tunniks mõeldud ülesande tunni lõpuks täielikult ja korralikult ära saavad kolm punkti, kes ei lahenda, kuid töötavad kogu tunni korralikult saavad kaks punkti. Kes lahendab ülesande kiiresti ja õieti ära, saab õppejõult suuliselt täiendavaid ülesandeid seoses oma projektiga, mille lahendamine annab omakorda punkte.
Vastus: Jah saab, kasutades SQL*Loader vahendit.
Milleks on hea Oracle kitsenduse seisund DISABLE VALIDATE?
Vastus: Kui kitsendus luuakse sellises seisundis, siis andmemuudatuste korral kitsenduse kontrolli ei toimu, kuid tabelis olemasolevad andmed peavad olema kitsendusega kooskõlas - vastasel juhul kitsendust ei looda.
Tsitaat Oracle dokumentatsioonist: "This feature is most useful in data warehousing situations, because it lets you load large amounts of data while also saving space by not having an index. This setting lets you load data from a nonpartitioned table into a partitioned table using the exchange_partition_subpart clause of the ALTER TABLE statement or using SQL*Loader. All other modifications to the table (inserts, updates, and deletes) by other SQL statements are disallowed."
Ühesõnaga, tabelis olevad andmed peavad kitsendusele vastama, kuid uute andmete lisamisel kontrolli ei teostata. Andmeid saab sellisesse tabelisse lisada just SQL*Loader abil.
Samuti on täiendatud kataloogi esimest faili, kus on nüüd info kuidas migreerida Rational Rose abil tehtud mudelid Enterprise Architect abil tehtud projekti. Pean ütlema, et just andmebaasi tehnilise kavandamise seisukohalt on RR Data Modeler vahendis mitmed asjad mugavamad kui EAs. Seega pole üleminek kindlasti mitte kohustuslik.
ERROR:Unable to process language file located at: language/ru.xml
The file is either missing or corrupt.
, siis ilmselt on probleem selles, et veebilehitseja on vene keelne. Lahendus oleks kasutada inglise keelset veebilehitseja. Ehk siis peaksite ära muutma keele sätted.
GoogleChromes saaks korda kui võtta Настройка и управление Google Chrome Настройки ->Показать дополнительные настройки -> Языки ->Настройка языков и способов ввода ja võtate kasutusse inglise keele (англиский (США)).
Praktikaid nagu kiire leidmine, kontseptuaalse andmemudeli mustripõhine loomine, kasutusjuhtude tuletamine olemitüüpide elutsüklite kirjeldustest, kontseptuaalsest andmemudelist teisendusreeglite abil loogilise andmemudeli genereerimine, loogilisest andmemudelist füüsilise andmemudeli genereerimine, füüsilisest andmemudelist koodi genereerimine, saab edukalt rakendada nii kose mudeli kui iteratiivse mudeli järgimise korral ja teha seda väga erinevates arendusmetoodikates (sealhulgas paindmetoodikad). Ma ei paku konkreetset metoodikat, vaid praktikaid, mida saab kasutada väga erinevates metoodikates.
"Andmebaasid I" ja "Andmebaasid II" ainetes kipub töö kulgema nii nagu läbiksite kummaski aines ühe iteratsiooni. Iteratsiooni sees kulgevad tegevused umbes nii nagu näeb ette kose mudel, selle vahega, et varasematesse etappidesse saab tagasi pöörduda ja nõuded võivad iteratsiooni jooksul täpsustuda. Rõhutan, see ei pea nii olema. Kui soovite, võite oma projekti viia läbi Scrumi või mõne muu paindmetoodika põhimõtetest lähtuvalt. See on projektimeeskonna sisene otsus.
Mis puudutab dokumentatsiooni hulka, siis jah, seda on ilmselt rohkem kui peate oma töökohal koostama. Põhjus on hariduslik - erinevaid mudeleid "läbikirjutades" saate nendest ettekujutuse ja saate ka parema ettekujutuse kavandatavast süsteemist. Kui infosüsteemi kavandamine ja realiseerimine on Teile suhteliselt uus asi, siis see on kindlasti kasulik. Tulevikus oma projekte tehes saate teha nendest mudelitest oma valiku. Mina soovitan Teil kindlasti leida äriarhitektuuri (allsüsteemid), luua kontseptuaalse- ja füüsilise (andmebaasisüsteemi-spetsiifilise) andmemudeli ning põhiolemitüüpide elutsüklite kirjeldused (seisundidiagrammid). Samuti soovitan vähemalt andmete modelleerimiseks kasutada CASE vahendit, kuna kontseptuaalsest andmemudelist füüsilise andmemudelini jõudmine ja füüsilisest andmemudelist andmebaasikeele lausete genereerimine on hästi arenenud ja see aitab reaalselt aega kokku hoida.
Harjutustunnis peab olema kaasas oma iseseisva töö projekti kõige viimane versioon (dokumendifail, mudelite fail/failid).
Guernsey III, M., 2013. Test-Driven Database Development. Unlocking Agility. Addison-Wesley. 315 p.
Sellele raamatule lisa pakkuv veebileht on siin. Seal on koodinäited ja viited teemakohasele artiklile ning ettekandele.
Uus 2014-09-17 lisas Tarmo Veskioja (tema koordineerib litsentside jagamist), et litsentsi laenamiseks peaks arvuti olema kaabliga TTÜ võrgus. Wifi abil võibolla ei tööta.
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. 18. septembri loengus üritan üksinda projekti tegijaid teiste projektidega kokku viia.
Nimetan järgnevalt ka mõningaid tüüpilisi probleeme vastustes ja loodan, et Te väldite neid.
- Teisi andmebaasisüsteeme peale PostgreSQL ja Oracle iseseisva töö tegemiseks kasutada ei saa.
- Oraclet ja MS Accessi on raske koos kasutada ja seega ei sobi MS Access Oracle andmebaasi rakenduse tegemiseks.
- Oracle Application Express vahendi abil ei saa teha PostgreSQL andmebaasi kasutamiseks mõeldud veebirakendust.
- Rational Rose ei ole rakenduse tegemise vahend, vaid on modelleerimisvahend.
- Oracle SQL Developer ei ole rakenduse tegemise vahend, vaid on andmebaasi haldamise/programmeerimise vahend.
1. TTÜ raamatukogu pakub juurdepääsu EBL : Ebook Library kataloogi kuuluvatele raamatutele (viidatud lehelt saate lugeda kuidas raamatutele ligi pääseda).
IT Akadeemia toel on järgnevad andmebaaside teemalised EBL e-raamatud TTÜ-le päriseks ostetud! Olen neid kõiki ise lugenud ja julgen soovitada! Leiate need raamatud kui keskkonda logimise järel sisestate otsingusse raamatu nime.
- Lightstone, S.S., Teorey, T.J., Nadeau, T., 2010. Physical Database Design : the database professional's guide to exploiting indexes, views, storage, and more.
- Molinaro, A., 2009. SQL Cookbook.
- Celko, J., 2010. Joe Celko's SQL for Smarties : Advanced SQL Programming.
2. Sellest keskkonnast võib leida hulgaliselt kursuse teemasid käsitlevaid e-raamatuid (raamatud Oracle, PostgreSQL, andmebaaside (füüsilise) disaini kohta).
Üliõpilaste töökeskkond:
- Oracle Application Express (Oracle APEX): http://apex.ttu.ee:8000/apex/apex_login
- PostgreSQL phpPgAdmin: http://apex.ttu.ee/andmebaas/
Application Express abil tehtud rakenduste näiteid:
- Töötajate andmebaas (rakenduse tegemiseks kulus umbes 30 minutit)
(kasutajanimi: testkasutaja
parool: 1234) - Koristajate andmebaas
(kasutajanimi: testkasutaja
parool: 1234) - Seisundimuudatuste realiseerimise näide
- APEXiga kaasa tulev näiterakendus
(kasutajanimi: testkasutaja
parool: 1234)
PHP rakenduse näide:
- 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:
- 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.
- apex.ttu.ee serveris olevate PostgreSQL andmebaaside kvaliteedi kontroll - sisselogimiseks on vaja kasutada apex.ttu.ee PostgreSQL kasutajanime ja parooli.
- Erinevad tarkvaravahendid PostgreSQL andmebaaside projekteerimiseks, programmeerimiseks ja haldamiseks. Nimekirjas on nii vaba tarkvara kui ka kommertstarkvara.
- 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:
- Tigu lahkamas, ehk ekskursioon UNIXi maailma
- PostgreSQL (9.3) dokumentatsioon
- Oracle 12c Release 1 dokumentatsioon
- Ask Tom on koht kust leiab vastuseid paljudele küsimustele Oracle kohta. Ühtlasi on see keskkond näide Oracle Application Express kasutamise kohta.
- Oracle Application Express
- Oracle Application Express foorum
- Pistikprogrammid e pluginad, mida saab kasutada Oracle APEXI abil tehtud rakenduste funktsionaalsuse suurendamiseks.
- Mõned videod, mis demonstreerivad APEX 4.1 kasutamist.
Lisainfo:
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.
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.
PostgreSQL andmebaasiga töötamiseks võib kasutada tasuta pakutavat programmi pgAdmin. Kuna serveris on PostgreSQL (9.3), siis tuleb kasutada pgAdmin versiooni 1.18. Varasemad versioonid ei sobi.
Oracle andmebaasiga töötamiseks soovitan kasutada Oracle poolt pakutavat programmi Oracle SQL Developer (arvutiklassides on versioon 4.0; ü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 (arvutiklassides on versioon 4.0). 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.
Uute õppekavade (IABB02/09, IAPB02/09, IASM02/09) järgi õppijad peavad deklareerima õppeaine Andmebaasid II (IDU0230).
Õppeaine Andmebaaside programmeerimine (IDU0120) peavad deklareerima üliõpilased, kes õpivad vanade õppekavade (IABB02/02, IAPB02/02, IASM02/02) järgi.
- 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 2014)" Ärge unustage vajutada "registreeri ainele".