Teated ja oluline info
Aine uus kodulehekülg koos aktuaalse informatsiooniga asub http://maurus.ttu.ee/347
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).
INSERT INTO Isik AS I (isikukood, perenimi) VALUES ('399090901234','Mets')
ON CONFLICT (isikukood) DO UPDATE
SET perenimi = EXCLUDED.perenimi
WHERE I.isikukood = '399090901234';
Lisa isik. Kui on sellise isikukoodiga isik, siis muuda perenime.
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)
Selleks palun Teid vastata anonüümsele küsimustikule ja teha seda hiljemalt 18. detsembriks 2015
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.
(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.
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.
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.
Kataloogi 2015/Harjutustunnid on välja pandud PostgreSQL ja Oracle CHECK kitsenduste näiteid.
Oleks väga kena, kui Te võtaksite 14. novembri tundi kaasa oma senitehtud töö, et seda oleks võimalus tunnis koos vaadata ja edasi teha!
Samas, kuna õppematerjalid ja juhendid on olemas, siis ei tohiks see suurt probleemi tekitada. Minu plaan on selline, et peale deklareerimise perioodi lõppu (peale 14. septembrit) vaatan ma ÕISist järgi, millised kaugõppurid on selle aine deklareerinud ning saadan neile kirjaga täpse juhendi, mida edasi teha.
Koduleht on olemas. Kaugõppe kursuse tutvustuse dokument on olemas. Päevase õppe loengud lindistatakse. Näiteprojekt on olemas. Eksami küsimused ja nende väljakirjutatud vastused on olemas. Ülikooli server, kus projekti teha, on olemas. Seega saab selle aine õppimisega hakata pihta palju varem kui novembri keskel.
Saamaks nendele materjalidele kohe juurdepääsu 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) (KAUGÕPE)" Ärge unustage vajutada "registreeri ainele".
Registreerumise järel peate ootama kuni õppejõud teie juurdepääsu õiguse kinnitab.
Ü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.4) 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.
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.
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.
- 27. mai 2015 kell 15:30, ICT-627
- 17. juuni 2015 kell 15:30, ICT-627
Registreerimine toimub ÕISis.
- 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!
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.
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/
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.
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.
Allikad, mida leidsin, väidavad, et pole vahet. Salted Password Hashing - Doing it Right kirjutab:
Should the salt come before or after the password? It doesn't matter, but pick one and stick with it for interoperability's sake. Having the salt come before the password seems to be more common.
Samal seisukohal ollakse ka selles StackOverflow arutelus.
Iseseisva töö alguses PEAB olema peatükk "Sissejuhatus", kus on järgmised punktid (vaadake palun ka näidet vastuvõtuaegade näiteprojekti algusest).
- 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.
- 12. jaanuar 2015 – 18. jaanuar 2015 esitatud töö saab hilinemise eest 5 miinuspunkti
- 19. jaanuar 2015 – 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 Kursuse tutvustus. Õ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.
Seega palun ärge igaks juhuks kasutage skeemi nimedes # märke. Näiteks skeemi nime C##TUD5 asemel kasutage nime TUD5.
Palun Teid! Lugege dokumente Iseseisva töö näited/ Samm-sammuline juhend ja tehke oma tööd selle järgi. Dokumendid täienevad seal jooksvalt.
Lugege näiteks täpsustust Oracle andmepuhvri kohta. Võibolla ma ei seletanud seda teemat loengus piisavalt arusaadavalt.
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.
- Vaheülesannete eest saadud lisapunktid lähevad arvesse kõigil projekti tegijatel.
- Lisapunktid lähevad arvesse ainult lisapunktide saamise semestril.
Vastuse saatmisel pole vaja saata kogu töö dokumentatsiooni - piisab ülesandes nõutud osast. Vastuse juures peab olema kirjas, kes on töö autorid (nimed, matrikli numbrid). Minu kommentaaride alusel parandatud vastust ei ole vaja uuesti üles laadida.
19. oktoober 2014 Tuleb esitada loogilise disaini täpsusega andmebaasi kirjeldus - andmebaasi diagramm ja domeenide, tabelite, veergude ja võtmete kirjeldused.
02. november 2014 Selle ülesande vastusena tuleb esitada:
- CREATE TABLE laused. Peavad olema loodud tabelite ja veergudega seotud kitsendused. Juhul kui kasutate PostgreSQLi, siis soovitav oleks kasutada veergude kirjeldamisel domeene. Sellisel juhul tuleb esitada ka CREATE DOMAIN laused.
- Arvujada generaatorite loomise laused.
- Tabelite ja arvujada generaatorite sidumine. (Näiteks trigerite loomise laused). PostgreSQL puhul võib ka kasutada SERIAL notatsiooni ning Oracle puhul identiteedi veerge. Siis pole eraldi arvujada generaatorite ja trigerite loomise lauseid vaja.
4. detsember 2014 Tuleb luua järgmised laused:
- Vähemalt üks vaate loomise lause.
- Vähemalt üks funktsiooni või protseduuri loomise lause. Lisatingimus on, et funktsioon ega protseduur ei tohi olla seotud trigeriga.
- Vähemalt üks trigeri loomise lause. (Kui kasutate PostgreSQL, siis ka trigeri poolt välja kutsutava funktsiooni loomise lause).
14. detsember 2014 Tuleb esitada esimene versioon andmebaasi kasutavast rakendusest. Kui teete veebirakenduse, siis tuleb saata link. Koos rakendusega tuleb saata sisselogimiseks mõeldud kasutajanimi ja parool.
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.
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.
Praktikaid nagu äriarhitektuuri 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.
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.
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.
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.
- Võite soovi korral külastada kaugõppe loenguid/harjutusi. Soovitan siiski leida aega külastada päevase õppe loenguid/harjutusi.
- NB! Hinde saate vastavalt TTÜ päevase õppe üliõpilastele kehtivatele reeglitele (vastavalt nendele esitatavatele tähtaegadele, nõudmistele ning ajagraafikule). Selleks, peate ennast registreerima ka päevase õppe koduleheküljel - [328] Andmebaasid II (IDU0230) ja Andmebaaside programmeerimine (IDU0120) (sügis 2014) ning viima ennast nende nõudmistega kurssi.
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).
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.
Ü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:
Kellele on veel eksamil arvesse minemata lisapunkte - see on viimane võimalus need ära kasutada.
Uskuge mind, kui hakkate eksamiks valmistuma kevadel või hiljem, siis mäletate ainest üha vähem ja vähem ning valmistumine on aina raskem ja raskem.
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. Need raamatud on täienduseks nii "Andmebaasid I" kui ka "Andmebaasid II" õppeainete teemadele.
- Date, C. J., 2011. SQL and Relational Theory : How to Write Accurate SQL Code.
- Molinaro, A., 2009. SQL Cookbook.
- Celko, J., 2010. Joe Celko's SQL for Smarties : Advanced SQL Programming.
- Blaha, M., 2010. Patterns of Data Modeling.
- Lightstone, S.S., Teorey, T.J., Nadeau, T., 2010. Physical Database Design : the database professional's guide to exploiting indexes, views, storage, and more.
ORA-30667: cannot drop NOT NULL constraint on a DEFAULT ON NULL column
Andmete lisamine tabelitesse ebaõnnestub. Siin on tegemist Oracle programmiveaga, millele juhitakse tähelepanu ka selles arutelus. Näib, et see viga on seotud identiteedi veeru defineerimise võimalusega, mis lisandus Oracle 12c.
apex.ttu.ee serveris ilmnenud vigade korral on aidanud see, kui probleemses skeemis käivitada prügikasti tühjendamise lause.
PURGE recyclebin;
Selle lause käivitamise õigus on ka kõigil üliõpilastel ja peaksite seda probleemi ilmnemisel esimese asjana proovima.
Täiendus 2013-12-27. Ilmneb, et mõnikord tuleb eelnimetatud probleemi tekkimisel skeemis A tühjendada prügikast skeemis B. Milline on skeem B on ebaselge. Näib, et abi on sellest kui sysdba tühjendab kõik prügikastid. Selleks peab ta andma käsu:
PURGE dba_recyclebin;
Üliõpilastel ei ole sysdba õiguseid.
Täiendus 2013-12-27 (2). Andsin sysdba õigustes käsu prügikast täiesti välja lülitada. See tähendab, et nüüd pole võimalik kustutatud objekti prügikastist taastada. Näis kas sellest on selle õnnetu programmivea tekkimise vältimisel abi. Lootkem parimat!
ALTER SYSTEM SET recyclebin = OFF DEFERRED;
Varase juurutaja (early adopter) valud ja vaevad. Sellised olukorrad on kindlasti oluliseks põhjuseks, miks ettevõtted sageli uue tarkvara versiooni kasutusele võtmisega viivitavad.
Juhin Teie tähelepanu, et kui olete saanud punkte ja tahate, et need ka lõpphinde arvutamisel arvesse läheks, siis peate eksami selle semestri jooksul ära tegema.
Probleemi lahendamiseks laadige Mauruse õppekeskkonnast faili uus versioon (olen kõigis näidetes selle vea parandanud) või tehke ise pisike muudatus rakenduse koodis. Selleks avage Accessi rakenduses olev moodul (selle nimi võib olla Turvalisus, Refreshing vms). Mooduli alguses on defineeritud globaalse konstandina ühendusstring. Asendage selles ühendusstringis port 5432 pordiga 7301.
Enne:
Global Const connect_post = "DSN=" & dsn & ";DATABASE=" & database & ";SERVER=" & server & ";PORT=5432;"
Pärast:
Global Const connect_post = "DSN=" & dsn & ";DATABASE=" & database & ";SERVER=" & server & ";PORT=7301;"
Vabandan tekkinud probleemide eest!
Kataloogis Päevase õppe harjutusülesanded oleva faili Ülesanne 13 lõpus on juhend, kuidas parandada MS Accessis loodud rakenduse turvalisust. Sellisel viisil täiustatud rakenduse näite leiate kataloogi Päevase õppe harjutusülesanded/Lahendused failist Ülesande 13 lõpus esitatud juhendi alusel täiustatud MS Accessi fail..
Väide: Kui rakenduse tasemel andmeid valideeritakse, siis andmebaasi tasemel pole seda enam vaja teha, sest see on liiga keeruline.
Vastus: Kõik sõltub sellest kui oluliseks
andmete korrektsust peetakse. Muidugi ei taga kontrollid, et andmed on alati sisuliselt õiged, kuid aitavad vähendada andmebaasi sattuvate ebaõigete andmete hulka. Kui kontroll realiseerida n rakenduses (mida on pidevalt vaja edasiarendada), mis on tehtud m firma poolt (igaühel oma CASE vahendid, dokumenteerimise standardid ja tavad - probleem: kuidas neile kitsenduste olemasolu kõige paremini kommunikeerida) kasutades y erinevat keelt ja kus on z vormi mille kaudu saab andmeid muuta ning kõigele lisaks on veel g skripti, mis laadivad andmebaasi regulaarselt uusi andmeid, siis kontrolli veelkordne teostamine andmebaasi tasemel ei tundugi enam nii suur täiendav pingutus - pealegi kui sellest tõuseb olulist täiendavat kasu.
Teemast hetkeks kõrvale kaldudes - deklaratiivsete reeglite jõustamine pole suurem pingutus kui Java koodi kirjutamine. See võib olla pingutus indiviididele, kes kahe tabeli ühendamise päringu kirjutamiseks peavad pool tundi googeldama. Siinkohal on abiks oma tööjõu parem valimine ja koolitamine. Elav klassik hr. Leo Võhandu on öelnud, et umbes 1/3-le inimestest on võimatu deklaratiivset, hulkade töötlemisel põhinevat keelt korralikult selgeks õpetada - nad ei saa sellest aru ja ei hakkagi kunagi korralikult aru saama. Õpetamise praktikuna võin seda väidet kinnitada.
Andmebaasi taseme kontrollidest pole võimalik meelega mööda hiilida või kogemata "mööda tuigerdada".
Ma ei ole kindlasti andmete rakenduse tasemel valideerimise vastu, sest see võimaldab anda kasutajale kiiremat ja selgemat tagasisidet ning vähendada võrguliiklust, sest leitud ebakorrektseid andmeid ei hakata üle võrgu saatma. Kuid kaitse (kui kaitstavat objekti tahetakse tõesti kogu hingest kaitsta) peaks olema mitmekihiline - kui üks kiht veab alt, siis on veel vähemalt üks kiht, mis löögi vastu võtab ja tagasi põrgatab. Autol panete uksed lukku, panete eraldi rooliluku panete kõigele lisaks veel signalisatsiooni peale. Mõni jätab isegi kurja koera autosse. Keegi ei tule selle pealegi, et seda oleks "liiga palju". Kui rakenduses x jäi vormile y kontroll peale panemata, siis testimisel tekib veateade ja kohe on selge, et vormi juures on jäänud midagi tegemata.
Lisaks andmete valideerimisele on veel põhjuseid, miks andmebaasi tasemel deklareeritud kitsendused osutuvad kasulikuks. Möönan, et järgnevate võimaluste kasutuselevõtu osas on tänapäeva tarkvarasüsteemidel veel palju ära teha.
- Andmekäitluskeele lausete (päringud ja andmemuudatused) optimeerimine ja automaatne lihtsustamine. Eesmärgiks on saavutada lausete kiirem täitmine. Kitsendused annavad andmebaasisüsteemile infot andmebaasis olevate andmete tähenduse kohta ja selle info alusel saaks andmebaasisüsteem asendada nii mõnegi käivitatava lause oluliselt lihtsama kuid semantiliselt samaväärse lausega. Sellise semantilise teisendamise esimeseks pääsukeseks on tabelite elimineerimise teisendus, mida muuhulgas toetavad PostgreSQL ja Oracle.
- Arendussüsteemides, mille puhul genereeritakse rakendus andmebaasi põhjal (nagu näiteks Oracle APEX), saaks põhimõtteliselt teha nii, et andmebaasi tasemel jõustatud ja süsteemikataloogis talletatud kitsenduste põhjal luuakse automaatselt rakenduse kood, mis samuti kitsenduse täidetust kontrollib. Näiteks APEX puhul võiks automaatselt tekkida tabeli alusel loodud lehega seotud Valideerimised (validations). Omaette keerukus tõuseb muidugi sellest, kuidas taolises olukorras kitsenduste muudatusi sünkroniseerida.
- Kitsendused aitavad andmebaasisüsteemil mõista andmete tähendust ja aitavad seda teha ka arendajatel. Sisuliselt dokumenteerivad need andmetele esitatavaid nõudeid - see on eriti kasulik olukorras kus dokumentatsiooni peaaegu ei ole või on sellel lastud vananeda.
- Samuti annavad kitsendused olulist infot, mille alusel otsida andmebaasi skeemist automaatselt mitmesuguseid disainivigu (näiteks erinevate SQL-andmebaasi disaini antimustrite esinemisi). Vigu saab otsida päringutega andmebaasi süsteemikataloogi põhjal.
Vastus: Tõsi - kui kasutada trigereid keerukamate reeglite kontrollimiseks, siis on nendesse lihtne teha vigu nii, et teatud olukorras laseb kontroll läbi ebakorrektseid andmeid. Samu vigu saab muide teha ka rakenduses. Deklaratiivsete kitsenduste puhul selliseid probleeme ei teki, sest ütlete süsteemile mida on vaja kaitsta ning süsteem ise valib parima algoritmi kuidas kontrolli läbi viia. See, et tänapäeva SQL-andmebaasisüsteemid ei võimalda luua üldiseid deklaratiivseid kitsendusi (CREATE ASSERTION) on minu hinnangul üks tänapäeva SQL-andmebaasisüsteemide suuremaid puuduseid. Abi on generaatorsüsteemidest nagu RuleGen.
Väide: Andmete valideerimine andmebaasi tasemel on halb, sest muudatuste sisseviimiseks peab andmebaasi töö peatama.
Vastus: Võimalused nagu näiteks Online Table Redefinition ja Edition-Based Redefinition aitavad seda probleemi leevendada.
Tänapäeva andmebaasisüsteemid võimaldavad kitsendusi kiiresti sisse ja välja lülitada ning sama saab teha trigeritega. Olen nõus, et paljugi on veel vaja ära teha. Samas mõelge ka sellele, et kitsendus, mille jõustate andmebaasis jõustub kohe loomise järel ja rakendub kõigile muudatustele sõltumata sellest, millisest allikast (rakendusest, skriptist, administreerimise programmist) need pärinevad. Kas see kui jõustatava reegli muutumise tõttu tuleb korraga asendada kõik rakendused uue versiooniga on kuidagi olemuslikult lihtsam ja parem? Kas see kui erinevates sama baasi kasutavates rakendustes on realiseeritud erinevad versioonid andmete kontrolli reeglitest (üks rakendus leiab, et isikukood peab olema Eesti isikukood; teist rakendust on juba uuendatud ja see lubab Eesti ning Läti isikukoode) on olemuslikult hea? Toodi näide selle kohta, et on vaja hakata registreerima ka Läti ja Leedu isikukoodiga isikuid. Kena! Andmebaasist kitsenduse kustutamine või kitsenduse väljalülitamine võtab vaid hetke. Kas tõesti leiate, et sama asja tegemine m rakenduse z vormis ja lisaks veel g skriptis võtab sama vähe aega?!
Ma võin andmebaasis muuta tabelite struktuuri ja see, et mõne kitsenduse rakenduse tasemel kontroll seetõttu enam ei toimi tuleb välja alles testimisel. Samas andmebaasis on andmebaasiobjektide vahelised seosed andmebaasisüsteemi jälgimise all, info nende kohta on süsteemikataloogis ja a) süsteem ei lase mul teha struktuurimuudatusi, mis viivad mõne teise objekti ebakorrektsesse seisu või b) ma saan nende seoste kohta vähemalt süsteemikataloogist päringutega infot otsida.
Väide: Andmete valideerimine andmebaasi tasemel mõjub halvasti jõudlusele.
Vastus: Suure hulga andmete tabelisse laadimisel on sõltuvalt süsteemist võimalik kitsendusi ajutiselt välja lülitada ning laadimise lõppedes uuesti sisse lülitada. Kui Teil on ühe tabeli mitut rida või mitme tabeli ridu hõlmavad kontrollid (näiteks välisvõtme kitsenduse kontroll) siis selle rakenduse tasemel realiseerimine tähendab ikkagi päringuid baasi vastu, vajadusel andmeelementide lukustamist. Mille alusel arvatakse, et selline lahendus on kuidagi jõudluse poolest parem?!
Panin kataloogi Praktika juhendid lõputöö Ärireeglite realiseerimine PHP ja PostgreSQLi abil. Tsiteerin selle töö lõppjäreldusi: "Nende uuringute tulemuste põhjal jõuti järeldusele, et enamuse ärireegli tüüpide realiseerimise puhul on PostgreSQLi kasutamine realisatsiooniks mõistlikum, mis tähendab, et kood on seal lihtsam, kompaktsem ja muudatuste sisseviimisel mugavam. Ka süsteemi töökiirus ärireegli kontrolli läbiviimisel ja realiseerimisel oli suurem. Vigade parandus oli PostgreSQLi puhul tihtipeale kergem, kuid mõningatel juhtudel ei olnud mõlemad süsteemid võimelised arusaadavalt vea põhjust kuvama. Muudatuste sisseviimine on andmebaasi tasandil kergem selles osas, et siis ei pea muutmist vajavat kohta kaua otsima ning pole vaja ka rakendust toimingusse kaasata: kõik muudatused saab andmebaasis ära teha. Lisaks pakub andmebaas palju võimalusi ärireeglite realiseerimiseks, mida PHPs teha ei saa: vaated, domeenid, klassist klassi pärimine (disjoint), trigerid ja muud. Ainult realisatsiooni arendamise käigus kasutatud abiinfo maht oli mõlema realiseerimisviisi puhul piisav ning ka kood oli üldiselt arusaadav."
Lõpetuseks - tänapäeval on populaarsust kasvatamas ärireeglite mootorid. Nende kasutamisel on sama eesmärk, mis kitsenduste andmebaasis defineerimisel - võtta süsteemi tööd juhtivad reeglid tarkvarast välja ning muuta need reeglid tsentraalselt hallatavaks. Reeglite muutmine mõjutab kõiki nende reeglite alusel töötavaid rakendusi.
Kokkuvõttes ma jään enda juurde - kitsenduste andmebaasi tasemel jõustamine on kasulik. Alati on erandeid, aga need kinnitavad reeglit erandiga mitte kaetud juhtudel.
- 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 serveril asuvate protseduuride/ funktsioonide poole.
NB! Palun ODBC andmeühendust kasutava rakenduse puhul kasutada andmeühenduse spetsifikatsiooni (ingl. k. 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.
- 13. jaanuar 2014 – 19. jaanuar 2014 esitatud töö saab hilinemise eest 5 miinuspunkti
- 20. jaanuar 2014 – 31. august 2014 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 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öö projekti hinnatakse tervikuna - st arvestatakse ka strateegilise ja detailanalüüsi osa. Seega kui seal on vigu, siis need tuleb parandada ning samuti tuleb tagada nende töö osade kooskõla ülejäänud töö osadega.
- Kõik mudelid peavad olema loetavad dokumendi 100% suurenduse korral (st. ärge kasutage liiga väikest fonti või liiga suure elementide ja seoste hulgaga diagramme).
- Loogilise disaini tabelite definitsioonide koostamisel ärge unustage kirjeldada alternatiivvõtmeid. Nendest tulenevad andmebaasis hiljem UNIQUE kitsendused. Samuti tuleb alternatiivvõtmetesse kuuluvatele veergudele deklareerida NOT NULL kitsendused.
- Loogilise disaini andmebaasi diagrammil ning selle juurde käivates tabelite tekstikirjeldustes esitatav informatsioon peab langema kokku (samad võtmed, tüübid, väljapikkused jne.).
- Tehnilise prototüübi kirjelduse juures tuleb alajaotuses "Esmane prototüüp" kirjeldada eeldusaines "Andmebaasid I"/"Andmebaaside projekteerimine" koostatud prototüüpi.
- Vaadake palun, et kirjutate projekti õiged tarkvara versioonid (apex.ttu.ee serveris on PostgreSQL 9.3 ja Oracle 12c Enterprise Edition Release 1).
- Ärge unustage kasutada tabelite veergude vaikimisi väärtuseid (DEFAULT values). Need väärtused tuleb esitada juba loogilise andmebaasi disaini mudelis ning ka andmebaasis realiseerida.
- Kui tabel (näiteks Tellimus) on seotud seisundi klassifikaatorite tabeliga (näiteks Tellimuse_seisundi_liik), siis tuleb vastavale välisvõtme veerule deklareerida vaikimisi väärtus - selle seisundi kood, millesse registreeritav olem peale loomist esimesena läheb.
- Klassifikaatorite koodide genereerimiseks ei kasutata arvujada generaatoreid. Klassifikaatorite koodid on sisulise tähendusega väärtused, mis registreeritakse vastavate õigustega kasutajate poolt. Pange tähele, et Te peate klassifikaatorite väärtused (sealhulgas nende koodid) oma töös dokumenteerima.
- Kui klassifikaatori kood on täisarvu tüüpi, siis vastava veeru tüübina tuleks kasutada SMALLINT (eeldusel, et klassifikaatori väärtuste prognoositav hulk ei ületa 32767).
- Kõik kontseptuaalses andmemudelis kirjeldatud kitsendused tuleb andmebaasis jõustada (deklaratiivselt, kasutades trigereid või kasutades mõnda andmebaasisüsteemi-spetsiifilist võimalust).
- PostgreSQL andmebaasis tuleks tabelites, kus toimuvad sagedased olemasolevate ridade muutmised, määrata FILLFACTOR salvestusparameetri väärtuseks väiksem väärtus kui 100 (vaadake teemat nr. 4).
- Kui kasutate lahendust, mille kohaselt hoitakse kasutajate paroole andmebaasi tabelis, siis peab parool olema salvestatud räsiväärtusena, mitte avatekstina.
- Räsiväärtuse leidmiseks peab kasutama mõnda turvalisemat algoritmi kui MD5 (näiteks SHA-2 perekonna funktsioonid) ja peaks kasutama soola (näiteks juhuslikult leitud 32 märgi pikkune string).
- Rakendus peab andmebaasisüsteemiga suhtlema kui kasutaja, millel on minimaalne tööks vajalik hulk õiguseid (ei ole selliseid õiguseid, mida tööülesannete jaoks vaja ei lähe).
- Näiteprojektist või õppematerjalidest kopeeritud funktsioonid/protseduurid, kus pole tehtud muudatusi või on tehtud vaid kosmeetilisi muudatusi (muudetud identifikaatoreid), ei lähe mahuliste nõuete täidetuse hindamisel arvesse.
- "Teisest allikast võetud diagrammide, teksti, programmikoodi või muude vaimse töö tulemuste kasutamine muutmata või muudetud, aga äratuntavalt sarnasel kujul, ilma algallikale viitamata, on plagiaat. Algallikale viitamisel peab olema selge, milline osa tööst pärineb algallikast ja milline on töö autorite omapoolne panus. Teisest allikast võetud ja viidatud osi loetakse võrdseks tegemata tööga või osaliselt tehtud tööga, vastavalt autori omapoolsele panusele." (definitsioon hr. Ants Torimilt)
Kuidas seda tehniliselt teostada? Võimalikud on vähemalt kaks varianti. Neid variante kirjeldatakse pikemalt teema nr. 5 materjalides (pika teksti dokumendis punkt 3.3.6 - lk. 37-40).
- Igale rakenduse kasutajale vastab andmebaasis loodud andmebaasi kasutaja. Sellisest andmebaasi turvalisuse tagamise mudelist räägitakse pikemalt siin. Seda lähenemist kasutab lihtne teadetetahvli süsteem. Sellesse süsteemi sisenemiseks tuleb kasutada oma apex.ttu.ee kasutajanime ja parooli (PostgreSQLis on loodud selline andmebaasi kasutaja). Samuti on see lähenemine kasutusel õpingukavade näiteprojektis, kui süsteem realiseeritakse PostgreSQL põhjal.
Kui soovite rakenduse luua MS Accessis, siis kataloogis "Praktika juhendid" olevas failis Sisselogimise_naide_andmebaasi_kasutaja_ver3.accdb on realiseeritud sellisel viisil sisselogimise võimalus. Võite võtta selle faili oma rakenduse loomisel aluseks. Kui teete faili lahti, siis esmalt avanevas vormis kirjeldatakse, mida peate tegema, et seda faili enda süsteemi realiseerimiseks kasutada.
- Hoida kasutajate kasutajanimesid ja paroole andmebaasi tabelis. Selleks, et rakendus saaks andmebaasi poole pöörduda, tuleb luua üks rakendusele vastav andmebaasi kasutaja. Rakendusele vastavale kasutajale tuleb anda ainult sellised õigused, mida rakendusel on tööks vaja. Sellist lähenemist on kasutatud vastuvõtuaegade näiteprojektis.
Kui hoiate paroole andmebaasi tabelis, siis ei tohi paroole seal hoida avatekstina, vaid andmebaasis tuleb talletada parooli räsiväärtus. Õppekeskkonnas on väljas näited, kuidas seda PostgreSQL ja Oracle korral teha.
Räsiväärtuste leidmiseks mõeldud funktsioonidest on MD5 küll laialt levinud, kuid seda peetakse ebaturvaliseks ning õige oleks kasutada mõnda teist algoritmi (SHA-2 perekonna algoritmid). Sõnastikrünnete raskendamiseks tuleks räsiväärtuse arvutamisel kasutada soola. PostgreSQL ja Oracle jaoks välja pakutud lahendused arvestavad nende nõuetega.
- PostgreSQL: Soovitan kasutada PostgreSQL lisamoodulit pgcrypto.
Vaadake selle kohta teema 5 pika teksti faili lk. 88-91. Vaadake vastuvõtuaegade näiteprojekti ning vastuvõtuaegade näiteprojekti rakendust.
Kui soovite rakenduse luua MS Accessis, siis kataloogis "Praktika juhendid" olevas failis Sisselogimise_naide_kasutajate_tabel_ver3.accdb on realiseeritud sellisel viisil sisselogimise võimalus. Võite võtta selle faili oma rakenduse loomisel aluseks. Kui teete faili lahti, siis esmalt avanevas vormis kirjeldatakse, mida peate tegema, et seda faili enda süsteemi realiseerimiseks kasutada.
- Oracle: Kataloogis "Oracle APEX õppevideod (APEX 4.2 baasil)" on failis 15 näidatud, kuidas realiseerida parooli räsiväärtuse leidmine kasutades SHA-2 algoritmi. Sama kataloogi failis 14 on video, mis demonstreerib, kuidas muuta Oracle APEX abil loodud rakendust nii, et see kasutaks andmebaasis loodud kasutaja tuvastamise funktsiooni. Loodud APEXi rakendust saab proovida siin (kasutajanimi: testkasutaja parool: 1234).
Oracle lahenduse korral on loodud kasutajate tabelis eraldi veerg soola hoidmiseks. Miks mitte kasutada kasutanime soolana? Lugege selle kohta siit ja siit.
apex.ttu.ee serveris pole Teil Oracle andmebaasis õigust kasutajaid luua. Kui soovite oma iseseisva töö projekti jaoks rakendusele vastava kasutaja loomist, siis kirjutage sellest soovist palun õppejõule - kirjas peab olema loodava kasutaja kasutajanimi (luuakse üldine kasutaja ja selle nimi algab c##) ja parool. Loodud kasutaja nimi hakkab sisaldama Teie matriklinumbrit - kirjas peab sisalduma ka Teie matriklinumber. Õiguseid kasutajale peate ise jagama.
- Elektrooniliste kontaktandmete kasutamine otseturustuses (Peatükis 6 on soovitused, kuidas vältida spämmisaajate nimistusse sattumist).
- Isikukoodi kasutamise juhis (Isikukoodi ei pea rohkem varjama, kui inimese nime või muid mittedelikaatseid isikuandmeid. Kuid alati peab kaaluma, kas seda on vaja kasutada).
- Soovitused seoses kliendikaartide saamisel küsitavate isikuandmetega.
- Isikuandmete töötlemine töösuhetes.
Threatsaurus - hea kõrgtaseme ülevaade ohtudest, mis ähvaravad arvutisüsteeme.
Mõtlema panev artikkel paroolide kasutamisega seotud probleemidest.
Departmental seminar:
Monday, November 25, at 14.00 in room ICT-507AB
Prof. Dr. J. Rod Franklin:
Event Prediction in the Cloud: Using agent based CEP to anticipate the future
Kühne+Nagel
With more than 63,000 employees at 1,000 locations in over 100 countries, the Kuehne + Nagel Group is one of the world's leading logistics companies. Its strong market position lies in the seafreight (Global no 1), airfreight (Global no 2), contract logistics (Global no 3) and overland businesses, with a clear focus on providing IT-based supply chain management services.
Kühne+Nagel Tallinn IT Center was established in August 2012. The Kühne+Centre is providing IT solutions and services to Group worldwide ranging from architecture, application design, Java development, testing, and infrastructure & application support. Over the past year, Kühne+Nagel has recruited almost 10 people each month, more than 115 people have been employed . On top IT Center capabilities, there will be new services added all the time and extensive growth planned in coming years.
- 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 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.
Veel parem aga on andmebaasipõhine andmete turvalisuse tagamise lahendus, mille korral igale rakenduse kasutajale vastab andmebaasi kasutaja. See on näiteks realiseeritud siin.
Oracles kasutatakse protseduuride/funktsioonide/trigeri protseduuride kirjutamiseks PL/SQL keelt. Teatele lisatud failis on viited mõningatele Internetis leiduvatele materjalidele/näidetele PL/SQL kasutamise kohta.
Kui soovite apex.ttu.ee serveril asuva PostgreSQL andmebaasi poole pöörduda väljastpoolt TTÜ võrku
(
- näiteks on Teie kodu/töökoha arvutis pgAdmin ning soovite selle abil töötada apex.ttu.ee serveris oleva PostgreSQL andmebaasiga,
- loote kodu/töökoha arvutis ODBC andmeühenduse spetsifikatsiooni, et kasutada apex.ttu.ee serveris olevat PostgreSQL andmebaasi,
- soovite veebirakenduse panna oma serverile ja kasutada apex.ttu.ee serveris olevat PostgreSQL andmebaasi
- Vaheülesannete eest saadud lisapunktid lähevad arvesse kõigil projekti tegijatel.
- Lisapunktid lähevad arvesse üks kord eksamihinde arvutamisel – siis, kui teete esimest korda eksamit.
- Kui semestri jooksul pole tehtud eksamit kus lisapunktid arvesse läheks, kaotavad need punktid semestri lõppedes kehtivuse.
Vastuse saatmisel pole vaja saata kogu töö dokumentatsiooni - piisab ülesandes nõutud osast. Vastuse juures peab olema kirjas, kes on töö autorid (nimed, matrikli numbrid). Minu kommentaaride alusel parandatud vastust ei ole vaja uuesti üles laadida.
21. oktoober 2013 Tuleb esitada loogilise disaini täpsusega andmebaasi kirjeldus - andmebaasi diagramm ja domeenide, tabelite, veergude ja võtmete kirjeldused.
04. november 2013 Selle ülesande vastusena tuleb esitada:
- CREATE TABLE laused. Peavad olema loodud tabelite ja veergudega seotud kitsendused. Juhul kui kasutate PostgreSQLi, siis soovitav oleks kasutada veergude kirjeldamisel domeene. Sellisel juhul tuleb esitada ka CREATE DOMAIN laused.
- Arvujada generaatorite loomise laused.
- Tabelite ja arvujada generaatorite sidumine. (Näiteks trigerite loomise laused). PostgreSQL puhul võib ka kasutada SERIAL notatsiooni ning Oracle puhul identiteedi veerge. Siis pole eraldi arvujada generaatorite ja trigerite loomise lauseid vaja.
2. detsember 2013 Tuleb luua järgmised laused:
- Vähemalt üks vaate loomise lause.
- Vähemalt üks funktsiooni või protseduuri loomise lause. Lisatingimus on, et funktsioon ega protseduur ei tohi olla seotud trigeriga.
- Vähemalt üks trigeri loomise lause. (Kui kasutate PostgreSQL, siis ka trigeri poolt välja kutsutava funktsiooni loomise lause).
16. detsember 2013 Tuleb esitada esimene versioon andmebaasi kasutavast rakendusest. Kui teete veebirakenduse, siis tuleb saata link. Koos rakendusega tuleb saata sisselogimiseks mõeldud kasutajanimi ja parool.
Alternatiivne lahendus on kasutada tabel-orienteeritud programmeerimist.
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 3 inimest. Kui teete tööd mitmekesi, siis peab teema ja tegijate andmed registreerima ainult üks tegijatest.
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.
- Võite soovi korral külastada kaugõppe loenguid/harjutusi. Soovitan siiski leida aega külastada päevase õppe loenguid/harjutusi.
- NB! Hinde saate vastavalt TTÜ päevase õppe üliõpilastele kehtivatele reeglitele (vastavalt nendele esitatavatele tähtaegadele, nõudmistele ning ajagraafikule). Selleks, peate ennast registreerima ka päevase õppe koduleheküljel - [309] Andmebaasid II (IDU0230) ja Andmebaaside programmeerimine (IDU0120) (sügis 2013) ning viima ennast nende nõudmistega kurssi.
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.
Installeerige draiverid. Kasutage ODBC Data Source loomiseks programmi "odbcad32", mis asub kataloogis "C:\Windows\SysWOW64". Lugege lisaks siit.
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.
PHP rakenduste genereerimiseks võib kasutada SQL Maestro koodigeneraatorit PostgreSQL jaoks ja SQL Maestro koodigeneraatorit Oracle jaoks.
Üliõpilaste töökeskkond:
- Oracle Application Express (Oracle APEX): http://apex.ttu.ee:8000/apex/
- 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 (See on loodud APEX 4.2 abil)
(kasutajanimi: testkasutaja
parool: 1234) - Koristajate andmebaas (See on loodud APEX 4.1 abil)
(kasutajanimi: testkasutaja
parool: 1234) - Koristajate andmebaas (See on loodud vanemas APEXi versioonis, kuid töötab ka uuemates versioonides)
(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:
NB! Alates 2013. aasta sügisest muutub oluliselt õppeainetes "Andmebaasid II" ja "Andmebaaside programmeerimine" hinde panemise algoritm. ÕISis on õppeaine IDU0230 kirjelduse juures uued hindamiskriteeriumid välja pandud (õppeaines IDU0120 on kriteeriumid samad). 2013/2014 õppeaasta sügissemestri eksamisessioonil toimub hinnete panek juba täielikult uute kriteeriumite alusel (ka nendele, kes selle aine on varem deklareerinud). Seega on Teil praegu võimalik valida, kas tahate teha eksamit vana moodi või uut moodi. Käesolev eksam toimub veel vanade kriteeriumite alusel (suuline eksam; lävend sõltub projekti suurusest). Uutes kriteeriumites nimetatud lisapunkte on võimalik koguda kõigil – ka nendel, kes on aine varem deklareerinud.
Alates 2. aprillist 2013 toimuvad minu vastuvõtud ruumis ICT-628 (uus IT maja). Vastuvõttude aeg ei muutu.
Üliõpilastel, kes deklareerisid selle õppeaine 2011. aasta sügisel, lõppes deklaratsioon koos talvise eksamisessiooni lõpuga ja nemad ei saa sellel ajal eksamit teha.
NB!Lisaeksamile tuleb ennast registreerida. Registreerunud üliõpilastele tellitakse eksamileht ja vaid eksamilehega üliõpilased saavad teha eksamit. Vastavalt TTÜ õppetegevuse eeskirjale toimub eksamile registreerumine läbi õppeinfosüsteemi (Sooritused => Teadmiste kontrollidele registreerumine).
Registreerumisel jälgige, et Te valite kaugõppe eksamiaja, mitte päevase õppe eksamiaja.
ÕISis saab lisaeksamile registreeruda peale hinde sisestamist või üliõpilase mitteilmunuks märkimist - st. alates 22. jaanuari hilisõhtust!
Nendele, kes peavad oma arvutist rakendust demonstreerima, ei ole välja pandud lõplikku punktisummat. Saan seda teha peale rakenduse vaatamist.
NB!! Palun pange eksamile tulle soojalt riidesse, sest IT maja neljanda korruse koridoris on külm!
- Animatsioonid vaadete ja hetktõmmiste kohta Oracle andmebaasides
- Animatsioonid andmebaasitrigerite kasutusvõimaluste kohta
- Animatsioonid andmete samaaegse kasutamise probleemide kohta (illustreerib, miks peab transaktsioonide puhul olema täidetud isoleerituse omadus)
- Animatsioonid B-puu indeksite kohta
- Animatsioonid tehnikate kohta, mida Oracle andmebaasisüsteem võib kasutada andmete otsimiseks
Tulenevalt konkreetses andmebaasis (hektor3 andmebaas) kasutatavatest märgistikest ning neile vastavates kodeeringutest saan ma nii VARCHAR2 kui ka NVARCHAR2 tüüpi veerus registreerida "eksootilisi" märke sisaldavaid stringe. Kuid nende tüüpide korral kasutatakse märkide kodeerimiseks erinevaid kodeeringuid. Juhul kui kasutatavateks märkideks on vaid Euroopas kasutatavad märgid, siis on salvestamise mõttes efektiivsem tüübile VARCHAR2 vastav kodeering ja ma peaksin stringe hoidma seda tüüpi veergudes. Juhul kui kasutatavateks märkideks on Aasias kasutatavad märgid, siis on salvestamise mõttes efektiivsem tüübile NVARCHAR2 vastav kodeering ja ma peaksin stringe hoidma seda tüüpi veergudes.
Täpsemalt lugege viidatud dokumendist. Seal on ka näiteid.
Kataloogis 2012/Päevase õppe harjutusülesanded oleva faili Ülesanne 13 lõpus on juhend, kuidas parandada MS Accessis loodud rakenduse turvalisust. Sellisel viisil täiustatud rakenduse näite leiate sama kataloogi failist Ülesande 13 lõpus esitatud juhendi alusel täiustatud MS Accessi fail..
MS Accessis loodud rakenduse kasutamiseks ei pea kasutaja arvutis olema ilmtingimata installeeritud MS Accessi täisversioon. Piisab, kui kasutaja arvutis on installeeritud MS Accessi käituskeskkond (MS Access Runtime). Alates MS Access 2007 saab selle Microsofti kodulehelt tasuta alla laadida.
Detailne ülevaade MS Accessi käituskeskkonnast: http://www.hitechcoach.com/index.php?option=com_content&view=article&id=62
MS Access 2010 käituskeskkonna allalaadimine: http://www.microsoft.com/en-us/download/details.aspx?id=10910
MS Accessi käituskeskkonnast mõeldes võib tõmmata paralleele tasuta pakutava Adobe Reader programmiga, mille abil saab avada ja vaadata PDF faile. Samas ei saa selle programmi abil PDF faile luua ega muuta. Samal viisil võimaldab MS Accessi käituskeskkond kasutada ("vaadata") MS Accessi arenduskeskkonnas loodud rakendusi, kuid mitte neid rakendusi luua ega muuta.
Kui Teie arvutis on installeeritud MS Accessi täisversioon (arenduskeskkond), siis saate simuleerida rakenduse avamist käituskeskkonnas nii, et määrate MS Accessis tehtud rakendust sisaldava faili laiendiks accdr. Peale faili ümbernimetamist tehke failil avamiseks topeltklõps.
faili_nimi.mdb => faili_nimi.accdr
faili_nimi.mde => faili_nimi.accdr
faili_nimi.accdb => faili_nimi.accdr
faili_nimi.accde => faili_nimi.accdr
Kuidas muuta faili laiendit Windowsi keskkonnas? http://www.mediacollege.com/microsoft/windows/extension-change.html
Kui simuleerite MS Accessi täisversiooni (arenduskeskkonna) puhul käituskeskkonda, siis on tulemus käituskeskkonnale sarnane, aga mitte 100% ühesugune. Leidub funktsionaalsuseid, mis sellise simuleerimise korral töötavad, kuid tegelikus käituskeskkonnas ei tööta.
Arvestage ka sellega, et rakenduse käituskeskkonnas avamisel ei saa kasutada mitmeid MS Accessi täisversioonis realiseeritud süsteemi‑defineeritud funktsionaalsuseid (näiteks vormi alusel filtreerimine). Vastav funktsionaalsus tuleb sellisel juhul rakendusse sisse ehitada, mitte jääda lootma süsteemi-defineeritud võimalustele.
- 10. jaanuar 2013 kell 16:00 IT-409
- 17. jaanuar 2013 kell 16:00 IT-409
- 21. jaanuar 2013 kell 16:00 IT-409
Iseseisev töö peab olema esitatud hiljemalt 72 tundi enne eksami algust (range tähtaeg!). Kui võimalik, siis esitage palun oma töö veelgi varem!
Iseseisva töö võib laadida üles õppekeskkonda (Tudeng => Ülesanded => Iseseisva töö esitamine) või panna mingisse serverisse ja saata õppejõule link (Erki.Eessaar@ttu.ee). Töö failid võib saata e-mailile vaid siis, kui eelnimetatud kahte varianti ei saa mingil põhjusel kasutada.
Eksamile tuleb ennast registreerida. Registreerunud üliõpilastele tellitakse eksamileht ja vaid eksamilehega üliõpilased saavad teha eksamit. Vastavalt TTÜ õppetegevuse eeskirjale toimub eksamile registreerumine läbi õppeinfosüsteemi (Sooritused => Teadmiste kontrollidele registreerumine). Eksamile registreerumine lõpeb kaks tundi enne eksami algust.
Palun jälgige registreerumisel väga tähelepanelikult, et Te valite ühe kaugõppe eksamiaja, mitte päevase õppe eksamiaja. Kaugõppe üliõpilased ei saa päevase õppe eksami ajal eksamit teha (ja vastupidi).
Eksam on suuline. Eksamil võidakse esitada küsimusi iseseisva töö kohta, millest sõltub kas töö saab arvestatud või mitte. Eksam annab kuni 40 punkti. Eksamipiletil on kolm küsimust (10+15+15 punkti). Eksamiküsimusi on 21, millest panen kokku 7 piletit.
Eksami küsimused ja vastused on kirjas kataloogis "Eksami küsimused ja vastused" olevas dokumendis. Samuti on küsimused kursuse tutvustuse slaididel (slaidid 42-46) ja loengu slaididel. Eksami edukaks sooritamiseks piisab loengu slaididega tutvumisest (Kataloog: "2012/Slaidid") kuid julgustan kõiki ka vaatama loengute pikki tekste. Kõik slaidid on õppekeskkonda välja pandud.
NB! Eksamiruumi ukse taga on jahe. Pange ennast kindlasti soojalt riidesse.
- Kui kasutate töös PostgreSQLi, siis PostgreSQL andmebaasi nimi.
- Kui kasutate töös Oraclet, siis Oracle skeemi nimi (st. Teie kasutajanimi TUD...) ning Teie Oracle parool.
- 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 2010 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.
- Kõik loodud rakendustesse sisselogimiseks vajalikud kasutajanimed ja paroolid.
- Kui andmebaasid on loodud mõnes muus serverarvutis kui hektor3.ttu.ee, siis juhend, kuidas on võimalik neile andmebaasidele ligi pääseda.
- Kommentaar, millise kasutaja töökoha Te realiseerisite PostgreSQL ja/või millise Oracle baasil.
- Kirjeldus selle kohta, kus ja millal pöördub Teie loodud rakendusprogramm serveril asuvate protseduuride/ funktsioonide poole.
NB! Palun MS Accessis tehtud rakenduse puhul kasutada andmeühenduse (ingl. k. data source) nimena PostgreSQL_yhendus. See on sama nimi, mis arvutiklassides.
- Iseseisva töö projekti hinnatakse tervikuna - st. arvestatakse ka strateegilise ja detailanalüüsi osa. Seega kui seal on vigu, siis need tuleb parandada ning samuti tuleb tagada nende töö osade kooskõla ülejäänud töö osadega.
- Kõik mudelid peavad olema loetavad dokumendi 100% suurenduse korral (st. ärge kasutage liiga väikest fonti või liiga suuri diagramme).
- Loogilise disaini tabelite definitsioonide koostamisel ärge unustage kirjeldada alternatiivvõtmeid. Nendest tulenevad andmebaasis hiljem UNIQUE kitsendused. Samuti tuleb alternatiivvõtmetesse kuuluvatele veergudele deklareerida NOT NULL kitsendused.
- Loogilise disaini andmebaasi diagrammil ning tabelite tekstikirjeldustes esitatav informatsioon peab langema kokku (samad võtmed, tüübid, väljapikkused jne.).
- Tehnilise prototüübi kirjelduse juures tuleb alajaotuses "Esmane prototüüp" kirjeldada eeldusaines "Andmebaasid I"/"Andmebaaside projekteerimine" koostatud prototüüpi.
- Vaadake palun, et kirjutate projekti õiged tarkvara versioonid (hektor3.ttu.ee serveris on PostgreSQL 9.2 ja Oracle 11g Enterprise Edition Release 2).
- Ärge unustage kasutada tabelite veergude vaikimisi väärtuseid (DEFAULT values). Need väärtused tuleb esitada juba loogilise andmebaasi disaini mudelis ning ka andmebaasis realiseerida.
- Kui tabel (näiteks Tellimus) on seotud seisundi klassifikaatorite tabeliga (näiteks Tellimuse_seisundi_liik), siis tuleb vastavale välisvõtme veerule deklareerida vaikimisi väärtus - selle seisundi kood, millesse registreeritav olem peale loomist esimesena läheb.
- Klassifikaatorite koodide genereerimiseks ei kasutata arvujada generaatoreid. Klassifikaatorite koodid on sisulise tähendusega väärtused, mis registreeritakse vastavate õigustega kasutajate poolt.
- Kui klassifikaatori kood on täisarvu tüüpi, siis vastava veeru tüübina tuleks kasutada SMALLINT (eeldusel, et klassifikaatori väärtuste prognoositav hulk ei ületa 32767).
- Kõik kontseptuaalses andmemudelis kirjeldatud kitsendused tuleb andmebaasis jõustada (deklaratiivselt, kasutades trigereid või kasutades mõnda andmebaasisüsteemi-spetsiifilist võimalust).
- PostgreSQL andmebaasis tuleks tabelites, kus toimuvad sagedased olemasolevate ridade muutmised, määrata FILLFACTOR salvestusparameetri väärtuseks väiksem väärtus kui 100 (vaadake teemat nr. 4).
- Kui kasutate lahendust, mille kohaselt hoitakse kasutajate paroole andmebaasi tabelis, siis peab parool olema salvestatud räsiväärtusena, mitte avatekstina.
- Räsiväärtuse leidmiseks peab kasutama mõnda turvalisemat algoritmi kui MD5 ja peaks kasutama soola.
- Rakendus peab andmebaasisüsteemiga suhtlema kui kasutaja, millel on minimaalne tööks vajalik hulk õiguseid (ei ole selliseid õiguseid, mida tööülesannete jaoks vaja ei lähe).
- Näiteprojektist või õppematerjalidest kopeeritud funktsioonid/protseduurid, kus pole tehtud muudatusi või on tehtud vaid kosmeetilisi muudatusi (muudetud identifikaatoreid), ei lähe mahuliste nõudmiste täidetuse hindamisel arvesse.
- "Teisest allikast võetud diagrammide, teksti, programmikoodi või muude vaimse töö tulemuste kasutamine muutmata või muudetud, aga äratuntavalt sarnasel kujul, ilma algallikale viitamata, on plagiaat. Algallikale viitamisel peab olema selge, milline osa tööst pärineb algallikast ja milline on töö autorite omapoolne panus. Teisest allikast võetud ja viidatud osi loetakse võrdseks tegemata tööga või osaliselt tehtud tööga, vastavalt autori omapoolsele panusele." (definitsioon hr. Ants Torimilt)
28.11.2012 kell 14:00 vastuvõttu ei toimu.
Vabandan kõigi ees, kellele selline muudatus võib probleeme valmistada!
Mõtlema panev artikkel paroolide kasutamisega seotud probleemidest.
Samuti tuletan meelde, et kataloogis 2012/Slaidid sisaldab kõige esimene fail viiteid selle õppeaasta päevase õppe loengute lindistustele.
- Serveri nimi ei ole muutunud.
- Kasutajakontod ja töövahendite/näidete aadressid ei ole muutunud.
- Serveri seaded, installeeritud tarkvara ja kasutajate õigused ei ole muutunud.
- Vanast serverist õnnestus üle tuua Linuxi kontod ja nende kodukataloogid, PostgreSQL andmebaasid, Apache /htdocs kataloogi sisu.
- Üle ei õnnestunud kahjuks tuua Oracle andmebaasi ja Oracle APEXi veebirakendusi. Seega tuleb Oracle andmebaasis andmebaasiobjektid uuesti luua.
Kui avastate, et mingi asi vanas serveris töötas, aga uues serveris ei tööta, siis palun andke mulle sellest kohe teada.
Vabandan veelkord kõigi tekkinud ebamugavuste/probleemide eest!
Uues serverarvutis võtab näidete/õiguste taastamine natukene aega. Loodan, et Teil on olemas koopia kogu tehtud tööst, et saaksite selle alusel kiiresti oma töö taastada.
Vabandan tekkinud probleemide pärast!!!
Vabandan ebamugavuste pärast!
Kuidas seda tehniliselt teostada? Võimalikud on vähemalt kaks varianti. Neid variante kirjeldatakse pikemalt teema nr. 5 materjalides (pika teksti dokumendis punkt 3.3.6 - lk. 36-38).
- Igale rakenduse kasutajale vastab andmebaasis loodud andmebaasi kasutaja. Sellisest andmebaasi turvalisuse tagamise mudelist räägitakse pikemalt siin. Seda lähenemist kasutab lihtne teadetetahvli süsteem. Sellesse süsteemi sisenemiseks tuleb kasutada oma hektori kasutajanime ja parooli. Samuti on see lähenemine kasutusel õpingukavade näiteprojektis, kui süsteem realiseeritakse PostgreSQL põhjal.
Kui soovite rakenduse luua MS Accessis, siis kataloogis "Praktika juhendid" olevas failis Sisselogimise_naide_andmebaasi_kasutaja.accdb on realiseeritud sellisel viisil sisselogimise võimalus. Võite võtta selle faili oma rakenduse loomisel aluseks. Kui teete faili lahti, siis esmalt avanevas vormis kirjeldatakse, mida peate tegema, et seda faili enda süsteemi realiseerimiseks kasutada.
- Hoida kasutajate kasutajanimesid ja paroole andmebaasi tabelis. Selleks, et rakendus saaks andmebaasi poole pöörduda, tuleb luua üks rakendusele vastav andmebaasi kasutaja. Rakendusele vastavale kasutajale tuleb anda ainult sellised õigused, mida rakendusel on tööks vaja. Sellist lähenemist on kasutatud vastuvõtuaegade näiteprojektis.
Kui hoiate paroole andmebaasi tabelis, siis ei tohi paroole seal hoida avatekstina, vaid andmebaasis tuleb talletada parooli räsiväärtus. Õppekeskkonnas on väljas näited, kuidas seda PostgreSQL ja Oracle korral teha.
Räsiväärtuste leidmiseks mõeldud funktsioonidest on MD5 küll laialt levinud, kuid seda peetakse ebaturvaliseks ning õige oleks kasutada mõnda teist algoritmi. Sõnastikrünnete vältimiseks tuleks räsiväärtuse arvutamisel kasutada soola. PostgreSQL ja Oracle jaoks välja pakutud lahendused arvestavad nende nõuetega.
- PostgreSQL: Soovitan kasutada PostgreSQL lisamoodulit pgcrypto.
Vaadake selle kohta teema 5 pika teksti faili lk. 81-83. Vaadake vastuvõtuaegade näiteprojekti ning vastuvõtuaegade näiteprojekti rakendust.
Kui soovite rakenduse luua MS Accessis, siis kataloogis "Praktika juhendid" olevas failis Sisselogimise_naide_kasutajate_tabel_ver2.accdb on realiseeritud sellisel viisil sisselogimise võimalus. Võite võtta selle faili oma rakenduse loomisel aluseks. Kui teete faili lahti, siis esmalt avanevas vormis kirjeldatakse, mida peate tegema, et seda faili enda süsteemi realiseerimiseks kasutada.
- Oracle: Kataloogis "Oracle APEX õppevideod (APEX 4.1 baasil)" on failis 16 näidatud, kuidas realiseerida parooli räsiväärtuse leidmine kasutades SHA-1 algoritmi (NB! varem oli seal kasutatud MD5 algoritmi, kuid asendasin selle SHA-1 kasutamisega. Seda peaksite ka Teie tegema). Failis 17 on video, mis demonstreerib, kuidas muuta Oracle APEX abil loodud rakendust nii, et see kasutaks andmebaasis loodud kasutaja tuvastamise funktsiooni. Loodud APEXi rakendust saab proovida siin (kasutajanimi: testkasutaja parool: 1234).
Oracle lahenduse korral on loodud kasutajate tabelis eraldi veerg soola hoidmiseks. Miks mitte kasutada kasutanime soolana? Lugege selle kohta siit ja siit.
- Elektrooniliste kontaktandmete kasutamine otseturustuses (Peatükis 6 on soovitused, kuidas vältida spämmisaajate nimistusse sattumist).
- Isikukoodi kasutamise juhis (Isikukoodi ei pea rohkem varjama, kui inimese nime või muid mittedelikaatseid isikuandmeid. Kuid alati peab kaaluma, kas seda on vaja kasutada).
- Soovitused seoses kliendikaartide saamisel küsitavate isikuandmetega.
- Soovitused paroolikaitseks.
See raamat on täienduseks Hugh Darweni poolt kirjutatud raamatule relatsiooniliste andmebaaside kohta.
Vastuse saatmisel pole vaja saata kogu töö dokumentatsiooni - piisab ülesandes nõutud osast. Vastuse juures peab olema kirjas, kes on töö autorid (nimed, matrikli numbrid). Minu kommentaaride alusel parandatud vastust ei ole vaja uuesti üles laadida.
22. oktoober 2012 Loogilise disaini täpsusega andmebaasi kirjeldus - andmebaasi diagramm ning domeenide, tabelite, veergude ja võtmete kirjeldused.
05. november 2012
- CREATE TABLE laused. Peavad olema loodud tabelite ja veergudega seotud kitsendused. Juhul kui kasutate PostgreSQLi, siis soovitav oleks kasutada veergude kirjeldamisel domeene.
- Arvujada generaatorite loomine.
- Tabelite ja arvujada generaatorite sidumine (näiteks trigerite loomise laused). NB! PostgreSQL puhul võib kasutada SERIAL andmetüüpi ja ei pea arvujada generaatori objekte ise looma.
26. november 2012
- Vähemalt üks vaate loomise lause.
- Vähemalt üks funktsiooni või protseduuri loomise lause. Lisatingimus on, et funktsioon ega protseduur ei tohi olla seotud trigeriga.
- Vähemalt üks trigeri loomise lause. Kui kasutate PostgreSQLi, siis ka trigeri poolt välja kutsutava funktsiooni loomise lause. PostgreSQL puhul võib trigeri asemel esitada ka reegli.
10. detsember 2012 Esimene versioon andmebaasi kasutavast rakendusest. Kui teete veebirakenduse, siis võib saata lingi.
NB!! Hea uudis on, et hektor3.ttu.ee serveris on nüüdsest samuti PostgreSQL 9.2. Kõik Teile saadetud kasutajanimed/paroolid kehtivad endiselt.
Programmist PgAdmin tuleb installeerida versioon 1.16, mis toetab PostgreSQL versiooni 9.2.
Ära maga maha võimalust valida välja enda tulevane tööandja ja saada aru IKT firmade hingeelust.
Ootame Teid teisipäeval, 2. oktoobril kell 17:00 vastavatud Tehnomeedikumi maja (Mäealuse 2/1, Tehnopol) II korruse saali tudengiüritusele Mida tööandaja minust tahab?.
Ürituse raames moodustavad Skype´i tegevjuht Tiit Paananen, Nortali tegevjuht Taavi Kotka, EMT tehnikadirektor Tiit Tammiste ja Ericsson Eesti personalijuht Sigrid Vilborn koos Tallinna Tehnikaülikooli, Tallinna Ülikooli ja IT Kolledži üliõpilastega ühise vestlusringi, et selgitada välja mida tööandjad kõrgkooli lõpetajatelt eelkõige ootavad ja kuidas nende värbamispoliitika praktikas toimib. Laval ei ole mitte ainult ettevõtjad, vaid ka esindajad teie endi seast, et küsitud saaksid ikka teile olulised küsimused.
Peamised küsimused, millele vestlusring vastuseid otsib, on järgnevad:
- Mida ootab tööandja kõrgkooli lõpetavalt tudengilt?
- Kuidas pääseb noor spetsialist mainekasse IKT ettevõttesse tööle?
- Milline on silmapaistvate Eesti IKT firmade värbamispoliitika?
- Mida ettevõtjad hindavad töötajas kõige enam?
- Keda soovivad ettevõtted palgata?
- Kas raha mängib tööjõuturul võtmerolli?
Interaktiivset vestlusringi, kus oma osa etendavad ka kõik saalis istuvad tudengid omapoolsete küsimuste ja kommenteeridega, modereerib Indrek Petersoo.
Üritusele järgneb vabas vormis suhtlemine koos söögi ja joogiga, mille käigus saavad tudengid otse ettevõtete esindajatelt neid huvitavaid küsimusi küsida.
Oodatud on IKT erialade tudengid. Registreeru üritusele SIIN.
Lisainfo www.itl.ee kodulehe kalendrist.
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.
- Võite soovi korral külastada kaugõppe loenguid/harjutusi. Soovitan siiski leida aega külastada päevase õppe loenguid/harjutusi.
- NB! Hinde saate vastavalt TTÜ päevase õppe üliõpilastele kehtivatele reeglitele (vastavalt nendele esitatavatele tähtaegadele, nõudmistele ning ajagraafikule). Selleks, peate ennast registreerima ka päevase õppe koduleheküljel - [290] Andmebaasid II (IDU0230) ja Andmebaaside programmeerimine (IDU0120) (sügis 2012) ning viima ennast nende nõudmistega kurssi.
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, IAPB02, IASM02) järgi.
Installeerige draiverid. Kasutage ODBC Data Source loomiseks programmi "odbcad32", mis asub kataloogis "C:\Windows\SysWOW64". Lugege lisaks siit.
PostgreSQL andmebaasiga töötamiseks võib kasutada tasuta pakutavat programmi pgAdmin.
Oracle andmebaasiga töötamiseks soovitan kasutada Oracle poolt pakutavat programmi Oracle SQL Developer (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.
hektor3.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.
hektor3.ttu.ee serverisse failide ülekandmiseks ja sealt failide allalaadimiseks võib kasutada programmi WinSCP.
Programmikoodiga töötamiseks sobib hästi tekstiredaktor SciTe.
PHP rakenduste genereerimiseks võib kasutada SQL Maestro koodigeneraatorit PostgreSQL jaoks ja SQL Maestro koodigeneraatorit Oracle jaoks.
Üliõpilaste töökeskkond:
- Oracle Application Express (Oracle Apex): http://hektor3.ttu.ee:8080/apex/apex_login
- PostgreSQL phpPgAdmin: http://hektor3.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 (See on loodud vanemas APEXi versioonis, kuid töötab ka uuemates versioonides)
(kasutajanimi: testkasutaja
parool: 1234) - Seisundimuudatuste realiseerimise näide
- APEXiga kaasa tulev näiterakendus
(kasutajanimi: testkasutaja
parool: 1234) - UUS! Koristajate andmebaas (See on loodud APEX 4.1 abil)
(kasutajanimi: testkasutaja
parool: 1234)
PHP rakenduse näide:
- Teadetetahvel - sisselogimiseks on vaja kasutada Hektori kasutajanime ja parooli.
NB! hektor3 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://hektor3.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.
- Hektor3 serveris olevate PostgreSQL andmebaaside kvaliteedi kontroll - sisselogimiseks on vaja kasutada Hektori kasutajanime ja parooli.
Dokumentatsioon:
- Tigu lahkamas, ehk ekskursioon UNIXi maailma
- PostgreSQL (9.2) dokumentatsioon
- Oracle 11g Release 2 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.
- UUS! Mõned videod, mis demonstreerivad APEX 4.1 kasutamist.
Lisainfo:
Lisaeksamile tuleb ennast registreerida. Registreerunud üliõpilastele tellitakse eksamileht ja vaid eksamilehega üliõpilased saavad teha eksamit. Vastavalt TTÜ õppetegevuse eeskirjale toimub eksamile registreerumine läbi õppeinfosüsteemi (Sooritused => Teadmiste kontrollidele registreerimine). Registreerimine lõpeb kaks tundi enne eksami algust.
Registreerimisel jälgige, et Te valite kaugõppe eksamiaja, mitte päevase õppe eksamiaja.
Iseseisev töö peab olema esitatud hiljemalt 17. märtsil 2012. Kui võimalik, siis esitage palun oma töö veelgi varem!
Üliõpilastel, kes deklareerisid selle õppeaine 2010. aasta sügisel lõpeb deklaratsioon koos talvise eksamisessiooni lõpuga ja nemad ei saa sellel ajal eksamit teha.
NB!Lisaeksamile tuleb ennast registreerida. Registreerunud üliõpilastele tellitakse eksamileht ja vaid eksamilehega üliõpilased saavad teha eksamit. Vastavalt TTÜ õppetegevuse eeskirjale toimub eksamile registreerumine läbi õppeinfosüsteemi (Sooritused => Teadmiste kontrollidele registreerumine).
Registreerumisel jälgige, et Te valite kaugõppe eksamiaja, mitte päevase õppe eksamiaja.
ÕISis saab lisaeksamile registreeruda peale hinde sisestamist või üliõpilase mitteilmunuks märkimist - st. loodetavasti hiljemalt 21. jaanuarist või 22. jaanuarist 2012!
Iseseisev töö peab olema esitatud 72 tundi enne eksami algust (range tähtaeg!). Kui võimalik, siis esitage palun oma töö veelgi varem!
- Kui kasutate töös PostgreSQLi, siis PostgreSQL andmebaasi nimi.
- Kui kasutate töös Oraclet, siis Oracle skeemi nimi (st. Teie kasutajanimi TUD...) ning Teie Oracle parool.
- 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 MS Access 2007 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 ja rakenduse nimi.
- Kõik loodud rakendustesse sisselogimiseks vajalikud kasutajanimed ja paroolid.
- Kui andmebaasid on loodud mõnes muus serverarvutis kui hektor8.ttu.ee, siis juhend, kuidas on võimalik neile andmebaasidele ligi pääseda.
- Kommentaar, millise kasutaja töökoha Te realiseerisite PostgreSQL ja/või millise Oracle baasil.
- Kirjeldus selle kohta, kus ja millal pöördub Teie loodud rakendusprogramm serveril asuvate protseduuride/ funktsioonide poole.
NB! Palun MS Accessis tehtud rakenduse puhul kasutada andmeühenduse (ingl. k. data source) nimena PostgreSQL_yhendus. See on sama nimi, mis arvutiklassides.
Seoses sellega pikendatakse neljanda vaheülesande esitamise tähtaega 13. detsembri õhtuni kell 23:59.
Täiendus 12.12.2011 - hektor8 server on jälle töökorras.
19. detsembril 2011 kell 14:00-15:00 vastuvõtuaega ei toimu!! Vabandan segaduse eest!
- 12. jaanuar 2012 kell 16:00 IT-409
- 19. jaanuar 2012 kell 16:00 IT-409
Iseseisev töö peab olema esitatud hiljemalt 72 tundi enne eksami algust (range tähtaeg!). Kui võimalik, siis esitage palun oma töö veelgi varem!
Iseseisva töö võib laadida üles õppekeskkonda (Tudeng => Ülesanded => Iseseisva töö esitamine) või panna mingisse serverisse ja saata õppejõule link (Erki.Eessaar@ttu.ee). Töö failid võib saata e-mailile vaid siis, kui eelnimetatud kahte varianti ei saa mingil põhjusel kasutada.
Eksamile tuleb ennast registreerida. Registreerunud üliõpilastele tellitakse eksamileht ja vaid eksamilehega üliõpilased saavad teha eksamit. Vastavalt TTÜ õppetegevuse eeskirjale toimub eksamile registreerumine läbi õppeinfosüsteemi (Sooritused => Teadmiste kontrollidele registreerumine). Eksamile registreerumine lõpeb kaks tundi enne eksami algust.
Palun jälgige registreerumisel väga tähelepanelikult, et Te valite ühe kaugõppe eksamiaja, mitte päevase õppe eksamiaja. Kaugõppe üliõpilased ei saa päevase õppe eksami ajal eksamit teha (ja vastupidi).
Eksam on suuline. Eksamil võidakse esitada küsimusi iseseisva töö kohta, millest sõltub kas töö saab arvestatud või mitte. Eksam annab kuni 40 punkti. Eksamipiletil on kolm küsimust (10+15+15 punkti). Eksamiküsimusi on 21, millest panen kokku 7 piletit.
Eksami küsimused on kirjas kursuse tutvustuse slaididel (slaidid 35-39) ja loengu slaididel. Eksami edukaks sooritamiseks piisab loengu slaididega tutvumisest (Kataloog: "2011/Slaidid") kuid julgustan kõiki ka vaatama loengute pikki tekste. Kõik slaidid on õppekeskkonda välja pandud.
NB! Eksamiruumi ukse taga on jahe. Pange ennast kindlasti soojalt riidesse.
- Iseseisva töö projekti hinnatakse tervikuna - st. arvestatakse ka strateegilise ja detailanalüüsi osa. Seega kui seal on vigu, siis need tuleb parandada ning samuti tuleb tagada nende töö osade kooskõla ülejäänud töö osadega.
- Kõik mudelid peavad olema loetavad dokumendi 100% suurenduse korral (st. ärge kasutage liiga väikest fonti või liiga suuri diagramme).
- Loogilise disaini tabelite definitsioonide koostamisel ärge unustage kirjeldada alternatiivvõtmeid. Nendest tulenevad andmebaasis hiljem UNIQUE kitsendused.
- Loogilise disaini andmebaasi diagrammil ning tabelite tekstikirjeldustes esitatav informatsioon peab langema kokku (samad võtmed, tüübid, väljapikkused jne.).
- Tehnilise prototüübi kirjelduse juures tuleb alajaotuses "Esmane prototüüp" kirjeldada eeldusaines "Andmebaasid I"/"Andmebaaside projekteerimine" koostatud prototüüpi.
- Vaadake, et kirjutate projekti õiged tarkvara versioonid (hektor8.ttu.ee serveris on PostgreSQL 9.0 ja Oracle 11g Enterprise Edition Release 1).
- Ärge unustage kasutada tabelite veergude vaikimisi väärtuseid (DEFAULT values). Need väärtused tuleb esitada juba loogilise andmebaasi disaini mudelis ning ka andmebaasis realiseerida.
- Klassifikaatorite koodide genereerimiseks ei tohiks kasutada arvujada generaatoreid. Need väärtused lisatakse vastavate õigustega kasutajate poolt.
- Kui klassifikaatori kood on täisarvu tüüpi, siis vastava veeru tüübina tuleks kasutada SMALLINT (eeldusel, et klassifikaatori väärtuste prognoositav hulk ei ületa 32767).
- Kõik kontseptuaalses andmemudelis kirjeldatud kitsendused tuleb andmebaasis jõustada (deklaratiivselt või kasutades trigereid).
- PostgreSQL andmebaasis tuleks tabelites, kus toimuvad sagedased olemasolevate ridade muutmised, määrata FILLFACTOR salvestusparameetri väärtuseks väiksem väärtus kui 100 (vaadake teemat nr. 4).
- Näiteprojektist või õppematerjalidest kopeeritud funktsioonid/protseduurid, kus pole tehtud muudatusi või on tehtud vaid kosmeetilisi muudatusi (muudetud identifikaatoreid), ei lähe mahuliste nõudmiste täidetuse hindamisel arvesse.
- "Teisest allikast võetud diagrammide, teksti, programmikoodi või muude vaimse töö tulemuste kasutamine muutmata või muudetud, aga äratuntavalt sarnasel kujul, ilma algallikale viitamata, on plagiaat. Algallikale viitamisel peab olema selge, milline osa tööst pärineb algallikast ja milline on töö autorite omapoolne panus. Teisest allikast võetud ja viidatud osi loetakse võrdseks tegemata tööga või osaliselt tehtud tööga, vastavalt autori omapoolsele panusele." (definitsioon hr. Ants Torimilt)
IBM viib läbi rahvusvahelist uuringut, millest palub osa võtta oma tarkvara kasutavatel üliõpilastel. Soovijad saavad SIIN vastata selle uuringu küsimustele.
Teise kohtumise harjutustunnis tutvume Oracle andmebaasisüsteemi kasutamisega.
7. november 2011 Loogilise disaini täpsusega andmebaasi kirjeldus - andmebaasi diagramm ning domeenide, tabelite, veergude ja võtmete kirjeldused.
21. november 2011
- CREATE TABLE laused. Peavad olema loodud tabelite ja veergudega seotud kitsendused. Juhul kui kasutate PostgreSQLi, siis soovitav oleks kasutada veergude kirjeldamisel domeene.
- Arvujada generaatorite loomine.
- Tabelite ja arvujada generaatorite sidumine (näiteks trigerite loomise laused). NB! PostgreSQL puhul võib kasutada SERIAL andmetüüpi ja ei pea arvujada generaatori objekte ise looma.
5. detsember 2011
- Vähemalt üks vaate loomise lause.
- Vähemalt üks funktsiooni või protseduuri loomise lause. Lisatingimus on, et funktsioon ega protseduur ei tohi olla seotud trigeriga.
- Vähemalt üks trigeri loomise lause. Kui kasutate PostgreSQLi, siis ka trigeri poolt välja kutsutava funktsiooni loomise lause. PostgreSQL puhul võib trigeri asemel esitada ka reegli.
12. detsember 2011 Esimene versioon andmebaasi kasutavast rakendusest. Kui teete veebirakenduse, siis võib saata lingi.
Kell 14:00-15:00 konsultatsiooniaeg jääb sellel päeval ära.
Installeerige draiverid. Kasutage ODBC Data Source loomiseks programmi "odbcad32", mis asub kataloogis "C:\Windows\SysWOW64". Lugege lisaks siit.
- Võite soovi korral külastada kaugõppe loenguid/harjutusi. Soovitan siiski leida aega külastada päevase õppe loenguid/harjutusi.
- NB! Hinde saate vastavalt TTÜ päevase õppe üliõpilastele kehtivatele reeglitele (vastavalt nendele esitatavatele tähtaegadele, nõudmistele ning ajagraafikule). Selleks, peate ennast registreerima ka päevase õppe koduleheküljel - [269] Andmebaasid II (IDU0230) ja Andmebaaside programmeerimine (IDU0120) (sügis 2011) ning viima ennast nende nõudmistega kurssi.
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, IAPB02, IASM02) järgi. Vajadusel konsulteerige õppejõuga!
PostgreSQL andmebaasiga töötamiseks võib kasutada tasuta pakutavat programmi pgAdmin III.
Oracle andmebaasiga töötamiseks soovitan kasutada Oracle poolt pakutavat programmi Oracle SQL Developer (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.
hektor8.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.
hektor8.ttu.ee serverisse failide ülekandmiseks ja sealt failide allalaadimiseks võib kasutada programmi WinSCP.
Programmikoodiga töötamiseks sobib hästi tekstiredaktor SciTe.
PHP rakenduste genereerimiseks võib kasutada SQL Maestro koodigeneraatorit PostgreSQL jaoks ja SQL Maestro koodigeneraatorit Oracle jaoks.
Üliõpilaste töökeskkond:
- Oracle Application Express (Oracle Apex): http://hektor8.ttu.ee:7500/apex/apex_login
- PostgreSQL phpPgAdmin: http://hektor8.ttu.ee/andmebaas/index.php
Application Express abil tehtud rakenduste näiteid:
- Koristajate andmebaas
(kasutajanimi: testkasutaja
parool: 1234) - Töötajate andmebaas
(kasutajanimi: Teile antud Oracle kasutajanimi
parool: Teile antud Oracle parool) - Apexiga kaasa tulev näiterakendus (parool: ylikool)
PHP rakenduse näide
- Teadetetahvel - sisselogimiseks on vaja kasutada Hektori kasutajanime ja parooli.
Dokumentatsioon:
- Tigu lahkamas, ehk ekskursioon UNIXi maailma
- PostgreSQL (9.0) dokumentatsioon
- Oracle 11g 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
Lisainfo:
Lisaeksamile tuleb ennast registreerida. Registreerunud üliõpilastele tellitakse eksamileht ja vaid eksamilehega üliõpilased saavad teha eksamit. Vastavalt TTÜ õppetegevuse eeskirjale toimub eksamile registreerumine läbi õppeinfosüsteemi (Sooritused => Teadmiste kontrollidele registreerumine).
Registreerumisel jälgige, et Te valite kaugõppe eksamiaja, mitte päevase õppe eksamiaja.
Iseseisev töö peab olema esitatud hiljemalt 19. märtsil 2011. Kui võimalik, siis esitage palun oma töö veelgi varem!
Soovijad võivad selle asemel tulla vastuvõtuajale esmaspäeval 21.02.2011 kell 16:00-17:00 ruumis IT-409. Samuti on vastuvõtuaeg teisipäeval 22.02.2011 kell 12:00-13:00 ruumis IT-409.
Lisaeksamile tuleb ennast registreerida. Registreerunud üliõpilastele tellitakse eksamileht ja vaid eksamilehega üliõpilased saavad teha eksamit. Vastavalt TTÜ õppetegevuse eeskirjale toimub eksamile registreerumine läbi õppeinfosüsteemi (Sooritused => Teadmiste kontrollidele registreerumine).
Registreerumisel jälgige, et Te valite ühe kaugõppe eksamiaja, mitte päevase õppe eksamiaja.
Iseseisev töö peab olema esitatud 72 tundi enne eksami algust (range tähtaeg!). Kui võimalik, siis esitage palun oma töö veelgi varem!
Kui keegi soovib veel 13. jaanuari või 19. jaanuari eksamile registreeruda, siis saatke mulle palun selle kohta kiri: eessaar@staff.ttu.ee
Vabu kohti on!
Vabandan segaduse ja ebamugavuse pärast!!
- 13. jaanuar 2011 kell 16:30 IT-409,
- 19. jaanuar 2011 kell 16:30 IT-409.
Iseseisev töö peab olema esitatud hiljemalt 72 tundi enne eksami algust (range tähtaeg!). Kui võimalik, siis esitage palun oma töö veelgi varem!
Iseseisva töö võib laadida üles õppekeskkonda (Tudeng => Ülesanded => Iseseisva töö esitamine) või panna mingisse serverisse ja saata õppejõule link (eessaar_ät_staff.ttu.ee). Töö failid võib saata e-mailile vaid siis, kui eelnimetatud kahte varianti ei saa mingil põhjusel kasutada.
Eksamile tuleb ennast registreerida. Registreerunud üliõpilastele tellitakse eksamileht ja vaid eksamilehega üliõpilased saavad teha eksamit. Vastavalt TTÜ õppetegevuse eeskirjale toimub eksamile registreerumine läbi õppeinfosüsteemi (Sooritused => Teadmiste kontrollidele registreerumine).
Registreerumisel jälgige, et Te valite ühe kaugõppe eksamiaja, mitte päevase õppe eksamiaja.
Eksam on suuline. Eksamil võidakse esitada küsimusi iseseisva töö kohta, millest sõltub kas töö saab arvestatud või mitte. Eksam annab kuni 40 punkti. Eksamipiletil on kolm küsimust (10+15+15 punkti). Eksamiküsimusi on 21, millest panen kokku 7 piletit.
Eksami küsimused on kirjas kursuse tutvustuse slaididel (slaidid 25-29) ja loengu slaididel. Eksami edukaks sooritamiseks piisab loengu slaididega tutvumisest (Kataloog: "2010/Slaidid") kuid julgustan kõiki ka vaatama loengute pikki tekste. Kõik slaidid on õppekeskkonda välja pandud.
NB! Eksamiruumi ukse taga on jahe. Pange ennast soojalt riidesse.
8. november 2010 Loogilise disaini täpsusega andmebaasi kirjeldus andmebaasi diagramm ja domeenide, tabelite, veergude ja võtmete kirjeldused.
22. november 2010
- CREATE TABLE laused. Peavad olema loodud tabelite ja veergudega seotud kitsendused.
- CREATE SEQUENCE laused.
- Tabelite ja arvujada generaatorite sidumine (näiteks trigerite loomise laused). NB! PostgreSQL puhul võib kasutada SERIAL andmetüüpi ja ei pea arvujada generaatori objekte ise looma.
6. detsember 2010
- Vähemalt üks vaate loomise lause.
- Vähemalt üks funktsiooni või protseduuri loomise lause. Lisatingimus on, et funktsioon ega protseduur ei tohi olla seotud trigeriga.
- Vähemalt üks trigeri loomise lause. (Kui kasutate PostgreSQL, siis ka trigeri poolt välja kutsutava funktsiooni loomise lause. PostgreSQL puhul võib trigeri asemel esitada ka reegli).
13. detsember 2010 Esimene versioon andmebaasi kasutavast rakendusest. Kui teete veebirakenduse, siis võib saata lingi.
- Võite soovi korral külastada kaugõppe loenguid/harjutusi. Soovitan siiski leida aega külastada päevase õppe loenguid/harjutusi.
- NB! Hinde saate vastavalt TTÜ päevase õppe üliõpilastele kehtivatele reeglitele (vastavalt nendele esitatavatele tähtaegadele, nõudmistele ning ajagraafikule). Selleks, peate ennast registreerima ka päevase õppe koduleheküljel - [253] Andmebaaside programmeerimine (IDU0120) (sügis 2010) ning viima ennast nende nõudmistega kurssi.
PostgreSQL andmebaasiga töötamiseks võib kasutada tasuta pakutavat programmi pgAdmin III.
Oracle andmebaasiga töötamiseks võib kasutada Oracle poolt tasuta pakutavat programmi SQL Developer (SID= orcl).
hektor8.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.
hektor8.ttu.ee serverisse failide ülekandmiseks ja sealt failide allalaadimiseks võib kasutada programmi WinSCP.
Programmikoodiga töötamiseks sobib hästi tekstiredaktor SciTe.
PHP rakenduste genereerimiseks võib kasutada SQL Maestro koodigeneraatorit PostgreSQL jaoks ja SQL Maestro koodigeneraatorit Oracle jaoks.
Üliõpilaste töökeskkond:
- Oracle Application Express (Oracle Apex): http://hektor8.ttu.ee:7500/apex/apex_login
- PostgreSQL phpPgAdmin: http://hektor8.ttu.ee/andmebaas/index.php
Application Express abil tehtud rakenduste näiteid:
- Koristajate andmebaas
(kasutajanimi: testkasutaja
parool: 1234) - Töötajate andmebaas
(kasutajanimi: Teile antud Oracle kasutajanimi
parool: Teile antud Oracle parool) - Apexiga kaasa tulev näiterakendus (parool: ylikool)
PHP rakenduse näide
- Teadetetahvel - sisselogimiseks on vaja kasutada Hektori kasutajanime ja parooli.
Dokumentatsioon:
- Tigu lahkamas, ehk ekskursioon UNIXi maailma
- PostgreSQL (8.3) dokumentatsioon
- Oracle 11g 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
Lisaeksamile tuleb ennast registreerida. Registreerunud üliõpilastele tellitakse eksamileht ja vaid eksamilehega üliõpilased saavad teha eksamit. Vastavalt TTÜ õppetegevuse eeskirjale toimub eksamile registreerumine läbi õppeinfosüsteemi (Sooritused => Teadmiste kontrollidele registreerumine).
Registreerumisel jälgige, et Te valite kaugõppe eksamiaja, mitte päevase õppe eksamiaja.
Iseseisev töö peab olema esitatud hiljemalt 15. märts 2010 kell 15:00 (range tähtaeg!). Kui võimalik, siis esitage palun oma töö veelgi varem!
Lisaeksamile tuleb ennast registreerida. Registreerunud üliõpilastele tellitakse eksamileht ja vaid eksamilehega üliõpilased saavad teha eksamit. Vastavalt TTÜ õppetegevuse eeskirjale toimub eksamile registreerumine läbi õppeinfosüsteemi (Sooritused => Teadmiste kontrollidele registreerumine).
Registreerumisel jälgige, et Te valite ühe kaugõppe eksamiaja, mitte päevase õppe eksamiaja.
Iseseisev töö peab olema esitatud hiljemalt kolm päeva enne eksamit (range tähtaeg!). Kui võimalik, siis esitage palun oma töö veelgi varem!
- 14. jaanuar 2010 kell 16:30 IT409
- 20. jaanuar 2010 kell 16:30 IT409
Iseseisev töö peab olema esitatud hiljemalt kolm päeva enne eksamit (range tähtaeg!). Kui võimalik, siis esitage palun oma töö veelgi varem!
Iseseisva töö võib laadida üles õppekeskkonda (Tudeng => Ülesanded => Iseseisva töö esitamine) või panna mingisse serverisse ja saata õppejõule link (eessaar_ät_staff.ttu.ee). Töö failid võib saata e-mailile vaid siis, kui eelnimetatud kahte varianti ei saa mingil põhjusel kasutada.
Eksamile tuleb ennast registreerida. Registreerunud üliõpilastele tellitakse eksamileht ja vaid eksamilehega üliõpilased saavad teha eksamit. Vastavalt TTÜ õppetegevuse eeskirjale toimub eksamile registreerumine läbi õppeinfosüsteemi (Sooritused => Teadmiste kontrollidele registreerumine).
Registreerumisel jälgige, et Te valite ühe kaugõppe eksamiaja, mitte päevase õppe eksamiaja.
Eksam on suuline. Eksamil võidakse esitada küsimusi iseseisva töö kohta, millest sõltub kas töö saab arvestatud või mitte. Eksam annab kuni 40 punkti. Eksamipiletil on kolm küsimust (10+15+15 punkti). Eksamiküsimusi on 20, millest panen kokku 7 piletit.
Eksami küsimused on kirjas kursuse tutvustuse slaididel ja loengu slaididel. Eksami edukaks sooritamiseks piisab loengu slaididega tutvumisest (Kataloog: "2009/Slaidid") kuid julgustan kõiki ka vaatama loengute pikki tekste. Kõik slaidid on õppekeskkonda välja pandud.
Andmebaaside programmeerimise teine loeng ja harjutus olid ära 10. oktoobril.
Seoses sellega ei saa nimetatud ajal kasutada Mauruse ja Hektor8 serverit.
9. november 2009 Loogilise disaini täpsusega andmebaasi kirjeldus andmebaasi diagramm ja domeenide, tabelite, veergude ja võtmete kirjeldused.
23. november 2009
- CREATE TABLE laused. Peavad olema loodud tabelite ja veergudega seotud kitsendused.
- CREATE SEQUENCE laused.
- Tabelite ja arvujada generaatorite sidumine. (Näiteks trigerite loomise laused) NB!PostgreSQL puhul võib kasutada SERIAL andmetüüpi ja ei pea arvujada generaatori objekte ise looma.
7. detsember 2009
- Vähemalt üks vaate loomise lause.
- Vähemalt üks funktsiooni või protseduuri loomise lause.
- Lisatingimus on, et funktsioon ega protseduur ei tohi olla seotud trigeriga.
- Vähemalt üks trigeri loomise lause. (Kui kasutate PostgreSQL, siis ka trigeri poolt välja kutsutava funktsiooni loomise lause. PostgreSQL puhul võib trigeri asemel esitada ka reegli).
14. detsember 2009 Esimene versioon andmebaasi kasutavast rakendusest. Kui teete veebirakenduse, siis võib saata lingi.
- 12.00-13.30, IDU0110, Organisatsiooni digitaalstrateegia ja äriprotsesside model. prof. E.Õunapuu, Loeng, IT-137A
- 14.00-15.30, IDU0110, Organisatsiooni digitaalstrateegia ja äriprotsesside model. prof. E.Õunapuu, Praktikum, IT-111
NB!!! Selle asemel toimub 10. oktoobril 2009 "Andmebaaside programmeerimine" (IDU0120) teine kohtumine - loeng ja praktikum:
- 10. oktoober 2009 kell 12.00-13.30, IDU0120, Andmebaaside programmeerimine dots. E.Eessaar, Loeng, IT-137A
- 10. oktoober 2009 kell 14.00-15.30, IDU0120, Andmebaaside programmeerimine dots. E.Eessaar, Praktikum, IT-111
"Andmebaaside programmeerimine" ja "Organisatsiooni digitaalstrateegia ja äriprotsesside modelleerimine" teine kohtumine vahetasid tunniplaanis oma kohad.
See tähendab, et reedel, 20. novembril, kui tunniplaani järgi on "Andmebaaside programmeerimine" tunnid, neid tunde ei toimu. Nende tundide asemel toimuvad siis "Organisatsiooni digitaalstrateegia ja äriprotsesside modelleerimine" tunnid. Võimalik, et hr. Õunapuu soovib neid ärajäänud tunde mingil teisel ajal läbi viia - siis võtab ta Teiega ise ühendust.
- Võite soovi korral külastada kaugõppe loenguid/harjutusi. Soovitan siiski leida aega külastada päevase õppe loenguid/harjutusi.
- NB! Hinde saate vastavalt TTÜ päevase õppe üliõpilastele kehtivatele reeglitele (vastavalt nendele esitatavatele tähtaegadele, nõudmistele ning ajagraafikule). Selleks, peate ennast registreerima ka päevase õppe koduleheküljel - [232] Andmebaaside programmeerimine (IDU0120) (sügis 2009) ning viima ennast nende nõudmistega kurssi.
PostgreSQL andmebaasiga töötamiseks võib kasutada tasuta pakutavat programmi pgAdmin III.
Oracle andmebaasiga töötamiseks võib kasutada Oracle poolt tasuta pakutavat programmi SQL Developer (SID= orcl).
hektor8.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.
hektor8.ttu.ee serverisse failide ülekandmiseks ja sealt failide allalaadimiseks võib kasutada programmi WinSCP.
Programmikoodiga töötamiseks sobib hästi tekstiredaktor SciTe.
PHP rakenduste genereerimiseks võib kasutada SQL Maestro koodigeneraatorit PostgreSQL jaoks ja SQL Maestro koodigeneraatorit Oracle jaoks.
Üliõpilaste töökeskkond:
- Oracle Application Express (Oracle Apex): http://hektor8.ttu.ee:7500/apex/apex_login
- PostgreSQL phpPgAdmin: http://hektor8.ttu.ee/andmebaas/index.php
Application Express abil tehtud rakenduste näiteid:
- Koristajate andmebaas
(kasutajanimi: testkasutaja
parool: 1234) - Töötajate andmebaas
(kasutajanimi: Teile antud Oracle kasutajanimi
parool: Teile antud Oracle parool) - Apexiga kaasa tulev näiterakendus (parool: ylikool)
PHP rakenduse näide
- Teadetetahvel - sisselogimiseks on vaja kasutada Hektori kasutajanime ja parooli.
Dokumentatsioon:
- Tigu lahkamas, ehk ekskursioon UNIXi maailma
- PostgreSQL (8.3) dokumentatsioon
- Oracle 11g dokumentatsioon
- Ask Tom on koht kust leiab vastuseid paljudele küsimustele Oracle kohta. Ühtlasi on see keskkond näide Application Express kasutamise kohta.
- Application Express
- Application Express kasutamise juhendid (HOWTO)
- Application Express foorum
Kui olete ajavahemikul 27. mai - 28. mai laadinud Maurusesse faile, siis tehke seda uuesti, sest Teie saadetud failid on kaotsi läinud.
Iseseisva töö teostamiseks saab kasutada hektor8.ttu.ee serverit. Oracle ja Application Express kasutamiseks mõeldud kasutajanimed/paroolid on seal samasugused kui hektor4 serveris.
NB! Kui soovite kevadsemestril kasutada hektor8 serveris PostgreSQL andmebaasisüsteemi ja/või laadida serverisse rakenduste jaoks vajalikke faile, siis saatke õppejõule vastava palvega kiri (subject: IDU0120 parool). Selles kirjas peab olema Teie eesnimi, perenimi, matrikli number, rühm ning parool, mida soovite hektor8 serverisse logimiseks kasutada.
- 15. jaanuar 2009 kell 16:30 IT409
- 21. jaanuar 2009 kell 16:30 IT409
Iseseisev töö peab olema esitatud hiljemalt kolm päeva enne eksamit. Iseseisva töö võib saata õppejõu e-mailile (eessaar_ät_staff.ttu.ee) või laadida üles õppekeskkonda.
Eksamile tuleb ennast registreerida. Registreeruda saab ainult antud keskkonnas paikneva teadmiste kontrollile registreerimise lehe kaudu! Selleks tuleb aine pealehel valida alajaotus Üldist/Teadmiste kontroll. Kui sellist alajaotist pole näha, siis tuleb kõigepealt valida Üldist/Indeks. Seejärel tuleb valida sobiv teadmiste kontrolli aeg. Tuleb vajutada hüperlingile "registreeri". Seejärel avaneb vorm kus Te saate oma valikus veelkord veenduda.
Kui teete lisaeksamit, siis tuleb kirjutada märkuste välja "Lisaeksam".
Lisaeksami tegija ei pea tellima ise eksamilehte, sest uues õppeinfosüsteemis teeb seda õppejõud.Väga tähtis! - Registreerumiseks peate Te vormil vajutama nupule "Registreerin". Alles siis olete Te registreeritud. Valitud aja juurde peab tekkima punase värviga teade "Olete registreeritud!" ja võimalus registreerimine kustutada.
Registreerimise saab kustutada samal lehel kus saab registreerida. Kui Te otsustate mingil põhjusel mitte eksamile tulla, siis kustutage oma registreerumine, et Teie asemel saaks tulla keegi teine!
Eksam on suuline. Eksamil võidakse esitada küsimusi iseseisva töö kohta, millest sõltub kas töö saab arvestatud või mitte. Eksam annab kuni 40 punkti. Eksamipiletil on kolm küsimust (10+15+15 punkti). Eksamiküsimusi on 20, millest panen kokku 7 piletit.
Eksami küsimused on kirjas kursuse tutvustuse slaididel ja loengu slaididel. Eksami edukaks sooritamiseks piisab loengu slaididega tutvumisest (Kataloog: "2008/Slaidid"). Kõik slaidid on õppekeskkonda välja pandud. Loengute täistekstidega tutvumine ei ole kohustuslik.
Täpsem informatsioon on kataloogis "Kursuse korraldus" failis "Uus server".
10. november 2008 Loogilise disaini täpsusega andmebaasi kirjeldus andmebaasi diagramm ja domeenide, tabelite, veergude ja võtmete kirjeldused.
24. november 2008
- CREATE TABLE laused. Peavad olema loodud tabelite ja veergudega seotud kitsendused.
- CREATE SEQUENCE laused.
- Tabelite ja arvujada generaatorite sidumine. (Näiteks trigerite loomise laused) NB!PostgreSQL puhul võib kasutada SERIAL andmetüüpi ja ei pea arvujada generaatori objekte ise looma.
8. detsember 2008
- Vähemalt üks vaate loomise lause.
- Vähemalt üks funktsiooni või protseduuri loomise lause.
- Lisatingimus on, et funktsioon ega protseduur ei tohi olla seotud trigeriga.
- Vähemalt üks trigeri loomise lause. (Kui kasutate PostgreSQL, siis ka trigeri poolt välja kutsutava funktsiooni loomise lause. PostgreSQL puhul võib trigeri asemel esitada ka reegli).
15. detsember 2008 Esimene versioon andmebaasi kasutavast rakendusest. Kui teete veebirakenduse, siis võib saata lingi.
Üliõpilaste töökeskkond:
- Oracle Application Express (serveril hektor4.ttu.ee): http://hektor4.ttu.ee:7500/apex/apex_login
- PostgreSQL phpPgAdmin: http://hektor4.ttu.ee/andmebaas/index.php
- Oracle Application Express (serveril hektor8.ttu.ee): http://hektor8.ttu.ee:7500/apex/apex_login
Application Express abil tehtud rakenduste näiteid:
- Koristajate andmebaas
(kasutajanimi: testkasutaja
parool: 1234) - Töötajate andmebaas
(kasutajanimi: Teile antud Oracle kasutajanimi
parool: Teile antud Oracle parool) - Apexiga kaasa tulev näiterakendus (parool: ylikool)
PHP rakenduse näide
- Teadetetahvel - sisselogimiseks on vaja kasutada Hektori kasutajanime ja parooli.
Dokumentatsioon:
- Tigu lahkamas, ehk ekskursioon UNIXi maailma
- PostgreSQL (8.3) dokumentatsioon
- Oracle 11g dokumentatsioon
- Ask Tom on koht kust leiab vastuseid paljudele küsimustele Oracle kohta. Ühtlasi on see keskkond näide Application Express kasutamise kohta.
- Application Express
- Application Express (vana nimega HTMLDB) kasutamise juhendid (HOWTO)
- Application Express (vana nimega HTMLDB) foorum
PostgreSQL andmebaasiga töötamiseks võib kasutada tasuta pakutavat programmi pgAdmin III.
Oracle andmebaasiga töötamiseks võib kasutada Oracle poolt tasuta pakutavat programmi SQL Developer (SID= orcl).
hektor4.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.
hektor4.ttu.ee serverisse failide ülekandmiseks ja sealt failide allalaadimiseks võib kasutada programmi WinSCP.
Programmikoodiga töötamiseks sobib hästi tekstiredaktor SciTe.
PHP rakenduste genereerimiseks võib kasutada SQL Maestro koodigeneraatorit.
- 9. jaanuar 2008 kell 16:30 ruumis IT409
- 16. jaanuar 2008 kell 16:30 ruumis IT409
Iseseisev töö peab olema esitatud hiljemalt kaks päeva enne eksamit. Iseseisva töö võib saata õppejõu e-mailile (eessaar_ät_staff.ttu.ee).
Eksamile tuleb ennast registreerida. Registreeruda saab ainult antud keskkonnas paikneva teadmiste kontrollile registreerimise lehe kaudu! Selleks tuleb aine pealehel valida alajaotus Üldist/Teadmiste kontroll. Kui sellist alajaotist pole näha, siis tuleb kõigepealt valida Üldist/Indeks. Seejärel tuleb valida sobiv teadmiste kontrolli aeg. Tuleb vajutada hüperlingile "registreeri". Seejärel avaneb vorm kus Te saate oma valikus veelkord veenduda. Märkuste välja pole vaja midagi kirjutada. Väga tähtis! - Registreerumiseks peate Te vormil vajutama nupule "Registreerin". Alles siis olete Te registreeritud. Valitud aja juurde peab tekkima punase värviga teade "Olete registreeritud!" ja võimalus registreerimine kustutada.
Registreerimise saab kustutada samal lehel kus saab registreerida. Kui Te otsustate mingil põhjusel mitte kontrolltööle tulla, siis kustutage oma registreerumine, et Teie asemel saaks tulla keegi teine!
NB!Lisaeksami tegijad peaksid lisaks eksami tegemiseks tellima eksamilehe. Ilma eksamileheta ei saa eksamit teha (TTÜ reegel)!
Eksam on suuline. Eksamil võidakse esitada küsimusi iseseisva töö kohta, millest sõltub kas töö saab arvestatud või mitte. Eksam annab kuni 40 punkti. Eksamipiletil on kolm küsimust (10+15+15 punkti). Eksamiküsimusi on 20, millest panen kokku 7 piletit.
Eksami küsimused on kirjas kursuse tutvustuse slaididel ja loengu slaididel. Eksami edukaks sooritamiseks piisab loengu slaididega tutvumisest (Kataloog: "2007/Slaidid"). Kõik slaidid on õppekeskkonda välja pandud. Loengute täistekstidega tutvumine ei ole kohustuslik.
12. november 2007 Loogilise disaini täpsusega andmebaasi kirjeldus andmebaasi diagramm ja domeenide, tabelite, veergude ja võtmete kirjeldused.
03. detsember 2007
- CREATE TABLE laused. Peavad olema loodud tabelite ja veergudega seotud kitsendused. Soovitav oleks kasutada veergude kirjeldamisel domeene.
- CREATE SEQUENCE laused.
- Tabelite ja arvujada generaatorite sidumine. (Näiteks trigerite loomise laused) NB!PostgreSQL puhul võib kasutada SERIAL andmetüüpi ja ei pea arvujada generaatori objekte ise looma.
10. detsember 2007
- Vähemalt üks vaate loomise lause.
- Vähemalt üks funktsiooni või protseduuri loomise lause.
- Lisatingimus on, et funktsioon ega protseduur ei tohi olla seotud trigeriga.
- Vähemalt üks trigeri loomise lause. (Kui kasutate PostgreSQL, siis ka trigeri poolt välja kutsutava funktsiooni loomise lause. PostgreSQL puhul võib trigeri asemel esitada ka reegli).
17. detsember 2007 Esimene versioon andmebaasi kasutavast rakendusest. Kui teete veebirakenduse, siis võib saata lingi.
Vastuvõtuajad, mis peaksid toimuma 9. oktoober 2007 ja 10. oktoober 2007 jäävad ära! Ärajäänud aegade asemel on vastuvõtt:
- 8. oktoober 2007 kell 16:00-17:00 IT409
- 15. oktoober 2007 kell 16:00-17:00 IT409
Üliõpilaste töökeskkond:
- Oracle iSQL*Plus: http://hektor.ttu.ee:5560/isqlplus/
- Oracle HTML DB: http://hektor.ttu.ee:7777/pls/htmldb/htmldb_login
- PostgreSQL phpPgAdmin: http://hektor.ttu.ee/andmebaas/index.php
- Oracle HTML DB: http://hektor.ttu.ee:7777/pls/htmldb/htmldb_login
HTMLDB abil tehtud rakenduste näiteid:
- Koristamiste andmebaasi näide 1 (ise ehitatud)
(kasutajanimi: testkasutaja
parool: 1234) - Koristamiste andmebaasi näide 2 (HTML DB versiooniga 1.6 genereeritud)
(kasutajanimi: testkasutaja
parool: 1234) - HTML DB-ga kaasa tulev näiterakendus (parool: ylikool)
- Kollektsioonide kasutamise näide
(kasutajanimi: testkasutaja
parool: 1234) - Esimeses harjutustunnis genereeritud näide
(kasutajanimi: testkasutaja
parool: 1234)
PHP rakenduse näide
- Teadetetahvel - sisselogimiseks on vaja kasutada Hektori kasutajanime ja parooli.
- PHP koodigeneraatoriga genereeritud PHP rakenduse näide - sisselogimiseks on vaja kasutada Hektori kasutajanime ja parooli. Sellise rakenduse eest maksimumpunkte ei saa.
Dokumentatsioon:
Iseseisvat tööd näidata ja eksamit teha on võimalik ka 21. august - 24. august. Kirjutage ja lepime aja kokku.
NB! Kuna 28.august - 01. september olen välislähetuses, siis eelnädala eksam ja konsultatsioon saab toimuda ainult 27. augustil. Konsultatsiooni on võimalik saada ja iseseisvat tööd ette näidata ka 21. august - 24. august - soovijad peaksid kirjutama, et aeg kokku leppida.
- 10. jaanuar 2007 kell 17:00 ruumis IT409
- 17. jaanuar 2007 kell 17:00 ruumis IT409
Iseseisev töö peab olema esitatud hiljemalt kaks päeva enne eksamit. Iseseisva töö võib saata õppejõu e-mailile (eessaar_ät_staff.ttu.ee). Palun saata hiljemalt eksamipäeva hommikul kella 12:00-ks õppejõule meil selle kohta, et tulete õhtul eksamile - siis tean palju inimesi oodata.
Eksam on suuline. Eksamil võidakse esitada küsimusi iseseisva töö kohta, millest sõltub kas töö saab arvestatud või mitte. Eksam annab kuni 40 punkti. Eksamipiletil on kolm küsimust (10+15+15 punkti). Eksamiküsimusi on 20, millest panen kokku 7 piletit.
Eksami küsimused on kirjas kursuse tutvustuse slaididel ja loengu slaididel. Eksami edukaks sooritamiseks piisab loengu slaididega tutvumisest (Kataloog: "2006/Loenuteemade täistekstid/Slaidid"). Kõik slaidid on õppekeskkonda välja pandud. Loengute täistekstidega tutvumine ei ole kohustuslik.
13. november 2006 Loogilise disaini täpsusega andmebaasi kirjeldus andmebaasi diagramm ja domeenide, tabelite, veergude ja võtmete kirjeldused.
04. detsember 2006
- CREATE TABLE laused. Peavad olema loodud tabelite ja veergudega seotud kitsendused. Soovitav oleks kasutada veergude kirjeldamisel domeene.
- CREATE SEQUENCE laused.
- Tabelite ja arvujada generaatorite sidumine. (Näiteks trigerite loomise laused) NB!PostgreSQL puhul võib kasutada SERIAL andmetüüpi ja ei pea arvujada generaatori objekte ise looma.
11. detsember 2006
- Vähemalt üks vaate loomise lause.
- Vähemalt üks funktsiooni või protseduuri loomise lause.
- Lisatingimus on, et funktsioon ega protseduur ei tohi olla seotud trigeriga.
- Vähemalt üks trigeri loomise lause. (Kui kasutate PostgreSQL, siis ka trigeri poolt välja kutsutava funktsiooni loomise lause. PostgreSQL puhul võib trigeri asemel esitada ka reegli).
18. detsember 2006 Esimene versioon andmebaasi kasutavast rakendusest. Kui teete veebirakenduse, siis võib saata lingi.
Kuna 2006-10-28 toimub semestri sees meie teine ja viimane kohtumine, siis on sellel võimalik ka esitada küsimusi mis on tekkinud iseseisva töö tegemisel ning näidata ette, mida Te olete juba teinud.
Kataloogis "Praktika juhendid/PostgreSQL ja Accessi õppevideod" on väljas video, kuidas luua ODBC Data Source.
Üliõpilaste töökeskkond:
- Oracle iSQL*Plus: http://hektor.ttu.ee:5560/isqlplus/
- Oracle HTML DB: http://hektor.ttu.ee:7777/pls/htmldb/htmldb_login
- PostgreSQL phpPgAdmin: http://hektor.ttu.ee/andmebaas/index.php
- Oracle HTML DB: http://hektor.ttu.ee:7777/pls/htmldb/htmldb_login
HTMLDB abil tehtud rakenduste näiteid:
- Koristamiste andmebaasi näide 1 (ise ehitatud)
(kasutajanimi: testkasutaja
parool: 1234) - Koristamiste andmebaasi näide 2 (HTML DB versiooniga 1.6 genereeritud)
(kasutajanimi: testkasutaja
parool: 1234) - HTML DB-ga kaasa tulev näiterakendus (parool: ylikool)
- Kollektsioonide kasutamise näide
(kasutajanimi: testkasutaja
parool: 1234)
PHP rakenduse näide
- Teadetetahvel - sisselogimiseks on vaja kasutada serveri kasutajanime ja parooli.
Dokumentatsioon:
- Kui kasutate http://maurus.ttu.ee lehekülge esmakordselt, siis valige menüüst "Üldist" alt "Ainele registreerumine". Täitke vorm ja vajutage nupule "Registreeri".
- Kui juba olete õpikeskkonnas mingile ainele registreerunud, siis siis valige peamenüüst Üldist=>Minu konto ja registreerige endale lisaks aine: "Andmebaaside programmeerimine (IDU0120) (sügis 2005, 2006) (KAUGÕPE)".
Praegusel hetkel pole seal HTML-DB-d, aga seda proovitakse sinna installeerida.
Kui soovite seda serverit kevadel aine sooritamiseks kasutada, siis peate minult küsima juurdepääsu. Kirjutage eessaar_ät_staff.ttu.ee. Kirjas peab olema Teie nimi, matrikli number, rühm ja serverisse logimiseks mõeldud parool.
Eksam on suuline. Eksamil võidakse esitada küsimusi iseseisva töö kohta, millest sõltub kas töö saab arvestatud või mitte. Eksam annab kuni 40 punkti. Eksamipiletil on kolm küsimust (10+15+15 punkti). Eksamiküsimusi on 21, millest panen kokku 7 piletit.
Eksami küsimused on kirjas kursuse tutvustuse slaididel ja loengu slaididel. Eksami edukaks sooritamiseks piisab loengu slaididega tutvumisest (Kataloog: "Loenuteemade täistekstid/Slaidid"). Kõik 3 slaidide komplekti on õppekeskkonda välja pandud. Loengute täistekstidega tutvumine ei ole kohustuslik (ka kõik täistekstid on praeguseks välja pandud).
Lisaks on täiendav konsultatsiooniaeg 08.12.2005 kell 12:00-13:00 ruumis IT409.
Lahendus: Aitab .NET Framework redistributable installeerimine (ver. 1.1). Selles saab Microsofti kodulehelt tasuta alla laadida. Installeerige enne .NET ja siis Rational.
Loodud alamkataloogi tuleb paigutada oma PHP failid.
Aadressil http://hektor.ttu.ee/messages/ on näiterakendus. Sisselogimiseks kasutajanimi: Hektori kasutajanimi ja parool: Hektori parool
See on näide, kuidas PHP-s realiseerida süsteemi sisselogimine kasutades andmebaasi kasutaja (loodud CREATE USER abil) kasutajanime ja parooli. Samuti demonstreeritakse, kuidas pöörduda PHP koodis funktsioonide ja vaadete poole. Kokkupakitud PHP failid on kataloogis Harjutustunnid.
7. november 2005 Loogilise disaini täpsusega andmebaasi kirjeldus andmebaasi diagramm ja domeenide, tabelite, veergude ja võtmete kirjeldused.
28. november 2005
- CREATE TABLE laused. Peavad olema loodud tabelite ja veergudega seotud kitsendused. Soovitav oleks kasutada veergude kirjeldamisel domeene.
- CREATE SEQUENCE laused.
- Tabelite ja arvujada generaatorite sidumine. (Näiteks trigerite loomise laused) NB!PostgreSQL puhul võib kasutada SERIAL andmetüüpi ja ei pea arvujada generaatori objekte ise looma.
5. detsember 2005
- Vähemalt üks vaate loomise lause.
- Vähemalt üks funktsiooni või protseduuri loomise lause.
- Lisatingimus on, et funktsioon ega protseduur ei tohi olla seotud trigeriga.
- Vähemalt üks trigeri loomise lause. (Kui kasutate PostgreSQL, siis ka trigeri poolt välja kutsutava funktsiooni loomise lause. PostgreSQL puhul võib trigeri asemel esitada ka reegli).
12. detsember 2005 Esimene versioon andmebaasi kasutavast rakendusest.
Muuhulgas on Accessi põhiseid rakendusi täiendatud nii, et veaolukorra tekitamisel andmebaasis talletatud funktsioonis kuvatakse veateade ka kasutajale. Selleks tuleb deklareerida vea objekt ning pöörduda selle poole veahalduse protseduuris.
Dim objErr As ADODB.Error
'ADO Error objekt sisaldab andmepöörduse operatsiooni poolt
'põhjustatud vea kirjeldust
'Andmepöördus on pöördumine andmete lugemiseks või kirjutamiseks
'ADO genereerib iga tekkinud vea kohta ühe Error objekti
'Tuleb käsitleda kõiki kollektsiooni kuuluvaid ADO Error objekte
'Vea kohta informatsiooni saamiseks tuleb viidata kindlale ühendusele
'Vaadake ka: http://www.w3schools.com/ado/ado_ref_error.asp
For Each objErr In Cn.Errors
MsgBox objErr.Description, vbCritical, "Viga koodiga " & objErr.SQLState
Next
Muusikaplaatide pood koos muusikaandmebaasiga
Autorid: Ago Luberg ja Ivor Lõõbas
Kasutajanimi: roobert
Parool: roobert
Interneti raamatupoe kliendi töökoht
Autorid: Krista Einola, Krete Jalakas
Kasutajanimi: testkasutaja
Parool: 1234
Filmide teabebaasi administraatori töökoht
Autorid: Martti Remmelgas ja Aivo Niine
Kasutajanimi: admin
Parool: admin
Üliõpilaste töökeskkond:
- Oracle iSQL*Plus: http://hektor.ttu.ee:5560/isqlplus/
- Oracle HTML DB: http://hektor.ttu.ee:7777/pls/htmldb/htmldb_login
- PostgreSQL phpPgAdmin: http://hektor.ttu.ee/phpPgAdmin/index.php
- Oracle HTML DB: http://hektor.ttu.ee:7777/pls/htmldb/htmldb_login
HTML DB näiterakendused (sisselogimiseks
kasutajanimi: testkasutaja2
parool:1234
)
- Koristamiste andmebaasi näide 1 (ise ehitatud)
- Koristamiste andmebaasi näide 2 (HTML DB poolt genereeritud)
- HTML DB-ga kaasa tulev näiterakendus
- Issue Tracker - veel üks näide
Dokumentatsioon:
- PostgreSQL (v. 8.0) dokumentatsioon: http://www.postgresql.org/docs/8.0/interactive/index.html
- Oracle 10g dokumentatsioon: http://www.oracle.com/pls/db10g/portal.portal_demo3?selected=1
- Näide HTML DB abil rakenduse koostamise kohta
- HTML DB kasutamise juhendid (HOWTO) http://www.oracle.com/technology/products/database/htmldb/howtos/index.html
Kui te juba olete õppekeskkonnas mingile ainele registreerunud ja link selle õppeaine kodulehele on Mauruse pealehel nähtav, siis logige sellesse ainesse sisse ning valige "Tudeng" -> "Oma andmed". Seejärel lisage "Andmebaaside programmeerimine (IDU0120) (sügis 2005) (KAUGÕPE)" enda õppeainete nimekirja. Ärge unustage vajutada "registreeri ainele".
Kui olete mõnel eelmisel aastal registreerinud õppeaine "Andmebaaside programmeerimise" leheküljel, siis peate uuesti registreeruma. Tegemist on lehekülje uue versiooniga.
Registreerumise järel peate ootama kuni õppejõud teie registreerimise kinnitab. Senikaua pole teil võimalik süsteemi siseneda.
Kasutajanime ja parooli sisestamisel pidage meeles, et süsteem eristab suuri ja väikesi tähti.
Kui Te peaks kunagi unustama oma kasutajanime/parooli siis palun ärge registreeruge uuesti vaid pöörduge õppejõu poole.