Kodulehed
[388] - Andmebaasid I (ITI0206) (kevad 2025)
Esiletöstetud Kiirvalik
Lisainfo Kõige olulisemate tegevuste kiirvalik. Failide saatmiseks valige Vastamine alt sobiv ülesanne.
Üldist
Materjalid
LisainfoMaterjalide kataloogid
Isiklik
Lisainfo Info ainult Sulle - teised kasutajad seda ei näe
Abi
Lisainfo Võimalus küsida õppejõult abi (nagu foorum, kus saab küsida küsimusi ja kommenteerida vastuseid)
Mitmesugust
Üldist / Aine tutvustus

Eesmärk: Õppeaine eesmärgiks on anda teadmisi erinevate andmemudelite (sh relatsiooniline, SQL, hierarhiline ja võrkmudel) põhimõtetest ning teadmisi ja oskuseid andmebaasikeelest SQL ning UML keele abil tehingutöötluse SQL-andmebaaside ja nende andmebaasirakenduste projekteerimisest.

Nii loengute kui praktikumide läbiviijaks on Erki Eessaar (Erki.Eessaar@taltech.ee).

Ainekaart (ainekava) ÕISis

Tunniplaan ÕISis

Koduleht Moodles

Tegevuskava nädalate kaupa

Hüppa aine kirjelduse juurde

Olulised kuupäevad:

TähtaegKirjeldus
10.02.2025 Kevadsemestri õpingukava esitamise lõpptähtaeg vastavalt akadeemilisele kalendrile
14.02.2025 Enne teise nädala praktikumi algust võiks oma sülearvutisse installeerida MS Accessi või küsida juurdepääsu serverile kus on PostgreSQL ja enne teise nädala loengu algust võiks oma sülearvutisse installeerida CASE vahendi. Juhendid on SIIN
14.02.2025 Iseseisva töö teema registreerimine. Täpsem info
03.02.2025-15.02.2025 Palun vastake SIIN anonüümsele küsitlusele Teie andmebaaside alase tausta ja kursusele seatud ootuste kohta. 
03.02.2025-23.02.2025 Esimeseks vabatahtlikuks teooria vahetestiks harjutamine SIIN keskkonnas
24.02.2025-01.03.2025 Esimene vabatahtlik teooria punktide test, mis toimub SIIN keskkonnas. Perioodi jooksul tuleb seal testi teha vähemalt etteantud arv kordi. Testi tulemus leitakse tegemiskordade keskmisena. 
02.03.2025-23.03.2025 Teiseks vabatahtlikuks teooria vahetestiks harjutamine SIIN keskkonnas
24.03.2025-28.03.2025 Teine vabatahtlik teooria punktide test, mis toimub SIIN keskkonnas. Perioodi jooksul tuleb seal testi teha vähemalt etteantud arv kordi. Testi tulemus leitakse tegemiskordade keskmisena. 
30.03.2025 Kuupäev, peale midagi ei saa projekti tegija liituda olemasoleva rühmaga (kaks üliõpilast), et nende projekti edasi teha. Endiselt on lubatud projektist eraldumine ja projekti üksinda tegemine, projekti liikme projektist väljaarvamine teiste liikmete poolt ning samuti kahe või kolme üksinda projekti tegija üheks tegijate rühmaks liitumine. 
30.03.2025 Kui soovite tööaja arvestuse eest eksamile lisapunkte, siis tuleb vahetulemus SIIA vastava ülesande vastusena üles laadida. 
10.03.2025-20.04.2025 Kolmandaks vabatahtlikuks teooria vahetestiks harjutamine SIIN keskkonnas
21.04.2025-25.04.2025 Kolmas vabatahtlik teooria punktide test, mis toimub SIIN keskkonnas. Perioodi jooksul tuleb seal testi teha vähemalt etteantud arv kordi. Testi tulemus leitakse tegemiskordade keskmisena. 
03.02.2025-02.05.2025 Periood, mille jooksul projekti eest arvestuse saamine tähendab, et projekt annab 130 punkti (sellele lisandub 40 punkti, kui projekt pole tehtud töövihiku põhjal). Projekti näitamine toimub praktikumide ajal. 
03.02.2025-11.05.2025 SQL põhitöö periood, mille käigus saab SIIN keskkonnas lahendada punktidele ülesandeid (kogum 2025_ITI0206). 
05.05.2025-16.05.2025 Periood, mille jooksul projekti eest arvestuse saamine tähendab, et projekt annab 120 punkti (sellele lisandub 40 punkti, kui projekt pole tehtud töövihiku põhjal). Projekti näitamine toimub praktikumide ajal. 
15.05.2025-16.05.2025 SQL kontrolltöö esimene järeltöö. Toimub neljapäeval 15.05.2025 kell 15:45 ja reedel 16.05.2025 kell 15:45. Osalemiseks on kohustuslik registreeruda ja registreeruda tuleb SIIN
19.05.2025-23.05.2025 Periood, mille jooksul projekti eest arvestuse saamine tähendab, et projekt annab 110 punkti (sellele lisandub 40 punkti, kui projekt pole tehtud töövihiku põhjal). Projekti näitamine toimub praktikumide ajal. 
26.05.2025-30.05.2025 Periood, mille jooksul projekti eest arvestuse saamine tähendab, et projekt annab 100 punkti (sellele lisandub 40 punkti, kui projekt pole tehtud töövihiku põhjal). Projekti näitamiseks tuleb registreerida Mauruses selleks välja pandud ürituse ajale
02.06.2025-06.06.2025 Periood, mille jooksul projekti eest arvestuse saamine tähendab, et projekt annab 90 punkti (sellele lisandub 40 punkti, kui projekt pole tehtud töövihiku põhjal). Projekti näitamiseks tuleb registreerida Mauruses selleks välja pandud ürituse ajale
11.06.2025 Viimane eksam käesoleval semestril. 
29.03.2025-11.06.2025 Eksamiks harjutamine SIIN keskkonnas
09.06.2025-11.06.2025 Periood, mille jooksul projekti eest arvestuse saamine tähendab, et projekt annab 70 punkti (sellele lisandub 40 punkti, kui projekt pole tehtud töövihiku põhjal). Projekti näitamiseks tuleb registreerida Mauruses selleks välja pandud ürituse ajale
26.04.2025-11.06.2025 SQLi enesekontroll ja täiendav harjutamine SIIN keskkonnas. Need on kolmanda teooria testi küsimused, mida saab harjutada ka peale seda, kui testi tegemine tulemusele on lõppenud.

Kõik selle testi küsimused on ka küsimuste hulgas, millest valitakse hindelise lõpptesti küsimused. Kuigi osad küsimused on teooria kohta, on paljud ka praktilise kallakuga - konkreetsete SQL ülesannete ja nende lahenduste kohta. Küsimustele hästi vastamiseks tasub vaadata teemade 3-6 materjale. 

Aine kirjeldus:

Andmebaasid I Andmebaasid I (ITI0206)

Eesmärk: Anda teadmisi erinevate andmemudelite (sh relatsiooniline, SQL, hierarhiline ja võrkmudel) põhimõtetest ning teadmisi ja oskuseid andmebaasikeelest SQL ning UML keele abil tehingutöötluse SQL-andmebaaside ja nende andmebaasirakenduste projekteerimisest.

Õpiväljundid: Aine läbinud üliõpilane:

  1. selgitab relatsioonilist andmemudelit;
  2. tükeldab andmekeskseid tehingutöötlusele orienteeritud infosüsteeme allsüsteemideks;
  3. projekteerib ja prototüübib kõrge tasemeni normaliseeritud tehingutöötlusele orienteeritud SQL-andmebaasi ning selle andmebaasirakendust, kasutades selleks UML keelt, CASE vahendit ja vabalt valitud SQL-andmebaasisüsteemi/rakenduse loomise vahendit;
  4. kasutab SQL andmebaasikeelt päringute ja andmemuudatuste läbiviimiseks andmebaasis ning andmebaasi struktuuri (tabelite) ja käitumise (tabelitega seotud deklaratiivsete kitsenduste) loomiseks, arvestades sealjuures SQLi puudustega.

Hindamiskriteeriumid:

  • Õpiväljundi 4 kontrollimine - Kontrolltöö; eksamieeldus.
  • Õpiväljundite 2 ja 3 kontrollimine - Iseseisev töö (projekt) - andmebaasi projekteerimine ja prototüüpimine; eksamieeldus.
  • Kõikide õpiväljundite kontrollimine - Teoreetiliste ja praktiliste küsimustega kirjalike (veebipõhine) testide tegemine.

Lävendi ületamiseks on vajalik saada:

  • iseseisva töö eest arvestus (ja seega vähemalt 70 punkti),
  • SQL kontrolltöö eest vähemalt 50 punkti,
  • teooria testide eest kokku vähemalt 50 punkti.

Kui lõpptesti järel selgub, et teooria eest ei tule kokku vähemalt 50 punkti, siis on lõpphinne 0 ja lõpptest tuleb uuesti teha.

Kui lõpptesti järel selgub, et teooria eest tuleb kokku vähemalt 50 punkti, siis lõpphinne = liidetakse kõik kogutud punktid ja taandatakse hindamisskaalale.

  • 170-214 punkti hinne 1
  • 215-259 punkti hinne 2
  • 260-304 punkti hinne 3
  • 305-349 punkti hinne 4
  • 350-... punkti hinne 5
SQL kontrolltöö
  • Põhitöö: SQL ülesannete lahendamine keskkonnas, mis kontrollib automaatselt vastuseid. Välja on pakutud 100 ülesannet, iga ülesande lahendamine nii, et süsteem tunnistab vastuse õigeks, annab 2 punkti - kokku võib saada kuni 200 punkti. Lahendamine on avatud kuni 14nda õppenädala lõpuni.
  • Järeltöö: Nendele, kes põhitöölt ei saa vähemalt 50 punkti või pole rahul oma 50 punkti ületava tulemusega. Kuue ülesande lahendamine 1 tunni ja 40 minuti jooksul. Võimalik on saada kuni 100 punkti. Osalejad on oma asukohas, kuid liituda tuleb Teamsi kohtumisega.
    • 15.nda õppnädala neljapäeval ja reedel kell 15:45.
    • Kaks tükki veel eksamisessiooni ajal.

Iseseisev töö

Kui iseseisva töö projekt arvestatakse:

  • 1.-13. õppenädalal, siis 130 punkti
  • 14.-15. õppenädalal, siis 120 punkti
  • 16. õppenädalal, siis 110 punkti
  • 17. õppenädalal (eksamisessioon), siis 100 punkti
  • 18. õppenädalal (eksamisessioon), siis 90 punkti
  • 19. õppenädalal (eksamisessioon), siis 70 punkti

Märkused:

  • Kui iseseisev töö tehakse ilma töövihikut kasutamata, siis annab see arvestuse saamisel lisaks 40 punkti.
  • Varasematel semestritel saadud projekti arvestused kehtivad. Hindamisel kasutatavad punktid määratakse kindlaks vastavalt jooksval semestril kehtivatele reeglitele.

Teooria

  • Neljanda õppenädala jooksul toimuv vahetest võimaldab saada kuni 10 punkti. Testis on kümme küsimust, iga õige vastus annab ühe punkti. Punktide saamiseks tuleb testi etteantud ajaperioodi jooksul teha (koos vastuste esitamisega) vähemalt kolm korda.
  • Kaheksanda õppenädala jooksul toimuv vahetest võimaldab saada kuni 10 punkti. Testis on kümme küsimust, iga õige vastus annab ühe punkti. Punktide saamiseks tuleb testi etteantud ajaperioodi jooksul teha (koos vastuste esitamisega) vähemalt kolm korda.
  • Kaheteistkümnenda õppenädala jooksul toimuv vahetest võimaldab saada kuni 10 punkti. Testis on kümme küsimust, iga õige vastus annab ühe punkti. Punktide saamiseks tuleb testi etteantud ajaperioodi jooksul teha (koos vastuste esitamisega) vähemalt kolm korda.
  • Lõpptesti küsimustele vastamise eest saadav võimalik maksimaalne punktide arv on 100. Lõpptestis on 25 küsimust, iga õige vastus annab neli punkti. Lõpptest on arvutiklassis.

Täiendavad võimalused punktide saamiseks:

  • Sissejuhatava ülesande lahendamine teisel õppenädalal annab kuni 5 punkti.
  • Arvepidamine õppeainega seotud tegevustele kulutatud aja üle ning tulemuse määratud viisil, ajal ja kohas esitamine, annab 5 punkti.
  • 3.-12. õppenädalal projektiga praktikumis füüsiliselt kohal olles tegelemine või nädala lõpus nädala jooksul tehtud töö individuaalselt raporteerimine annab nädala kohta ühe aktiivsuspunkti - kokku on võimalik saada kuni 10 punkti.
    • Punkti saamiseks tuleb projektiga nädala jooksul tegeleda vähemalt 90 minutit.

Teemad: Andmebaas. Andmebaasisüsteem. Andmemudelid, sh NoSQL süsteemides kasutatavad andmemudelid. Relatsiooniline andmemudel. Relatsioonialgebra. SQL andmebaasikeel ja selle abil loodavad andmebaasiobjektid. SQLi puudused. Tehingutöötluseks mõeldud SQL-andmebaasi projekteerimise võimalik metoodika, sh selle käigus loodavad UML mudelid. Strateegiline analüüs. Detailanalüüs. Olemi-suhte diagrammid ja nende loomine UMLi abil. Andmete modelleerimise mustrid. Normaliseerimine. Denormaliseerimine. Transaktsioonilise SQL-andmebaasi loogiline ja füüsiline disain. CASE vahendi kasutamine andmebaasi projekteerimiseks.

Siit võite vaadata teemade mõistekaarte

Märkus: Selle õppeaine edukaks läbimiseks ei ole mitte mingit kohustust ega vajadust ühtegi järgnevatest allikatest lehitseda ega lugeda. Õppeaine edukaks sooritamiseks on piisav, kui õppida sellel kodulehel olevate materjalide alusel.

Siiski pakun välja kursuse põhiteemade kaupa ühe võimaliku kombinatsiooni raamatutest, mida sügavama huvi korral lugeda. Mõned nendest raamatutest on e-raamatud, mida saab lugeda Tallinna Tehnikaülikooli raamatukogu kaudu. Siin on informatsioon, kuidas pääseb nendele raamatutele ligi väljastpoolt Tallinna Tehnikaülikooli võrku.

  • SQL: Head First SQL (e-raamat O'Reilly digitaalse platvormi kaudu. Kuidas kasutada O'Reilly digitaalset platvormi?) või SQL Queries for Mere Mortals. (e-raamat O'Reilly digitaalse platvormi kaudu. Kuidas kasutada O'Reilly digitaalset platvormi?)

    Siit saab Downloads saki alt "SQL Queries for Mere Mortals" raamatu jaoks näidistabelitega andmebaasid, mis sisaldavad ka Queridena ära salvestatud ülesannete lahendusi.

    Suur tänu üliõpilasele, kes "SQL Queries for Mere Mortals" raamatut soovitas. Ta kirjutas: "Tekst on konkreetne, seletused tõhusad. Õpikut pole koormatud lisainfot sisaldavate artiklitega nagu mõnedel ingliskeelsetel õpikutel standardiks (nõnda on lihtsam tekstile keskenduda). Iga SQL süntaksiga tegeleva peatüki lõppu paigutatud ülesanded aitavad materjali kinnistada. Parima tulemuse jaoks võiks tudeng ka Sample Statements sektsioonides püstitatud ülesandeid lahendada üritada (enne ülesannete juurde asumist). Pärast Access'is SQL Server Compatible Syntax'i kasutuselevõttu võivad mõned näidisandmebaasides valmis kirjutatud päringud vajada ümber kirjutamist, kuid see vast pole mitte kellegi jaoks üle jõu."

    Minult on küsitud Head First sarja ja Head First SQL raamatu kohta. Oskan öelda, et see raamat on kirjutatud omapärase stiilis ning huumorit kasutades. Leian, et seda saab SQLiga esmatutvuse tegemiseks väga edukalt kasutada. Näiteks lk 44 on hea kirjeldus NULLi olemusest.

    Samas on raamatus ka ebatäpseid väiteid. Näiteks väide "A database is a container that holds tables and other SQL structures related to those tables" jätab lugejale vale mulje, et tabelid on ainsad võimalikud andmebaaside ehitusplokid. Tegelikult see nii ei ole ja on palju erinevaid andmemudeleid, mis pakuvad kasutamiseks erinevaid andmebaaside ehitusplokke. Õigem oleks öelda "A SQL database is a container that holds tables and other SQL structures related to those tables".

  • Relatsiooniline mudel: Database in Depth (e-raamat O'Reilly digitaalse platvormi kaudu. Kuidas kasutada O'Reilly digitaalset platvormi?) või An Introduction to Relational Database Theory
  • Tehingutöötluse SQL-andmebaaside kavandamine: Andmebaaside projekteerimine ja SQL Antipatterns. (e-raamat O'Reilly digitaalse platvormi kaudu. Kuidas kasutada O'Reilly digitaalset platvormi?) (Kellele meeldib raamatut peos hoida, see leiab antimustrite raamatu vanema versiooni ka Tallinna Tehnikaülikooli raamatukogust. Samuti on olemas selle raamatu alusel koostatud slaidikomplekt.)

Käesolevas kursuses kasutame andmebaaside projekteerimiseks UML modelleerimiskeelt. Kui raamatukogus, antikvariaadis või sõbra riiulis näete raamatut UMLi kontsentraat. 3. redaktsioon. Objektmodelleerimise standardkeele UML2.0 lühijuhend, siis see on hea eestikeelne allikas selle keelega esmatutvuse tegemiseks või tutvuse värskendamiseks.

Kui Te seda raamatut kätte ei saa, siis Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, Third Edition (e-raamat O'Reilly digitaalse platvormi kaudu. Kuidas kasutada O'Reilly digitaalset platvormi?) annab põhaliku ülevaate UMList ja selle kasutamisest arendusprotsessi käigus.

Eraldi tõstan esile ja soovitan raamatut Building the agile database : how to build a successful application using agile without sacrificing data management.

Kui seda andmebaaside kursuste ajal või järel loete, siis peaksid paljud seal kirjeldatavad põhimõtted Teile andmebaaside ainetest tuttavad olema. 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.

Rõhutan, et see on ainult üks, kuid sugugi mitte ainus võimalik kombinatsioon. Häid raamatuid on hulgaliselt ja paljud nendest on ka Teile kättesaadavad. Lisamaterjalide lehel (kasutajanimi: SIS2 ja parool: SIS2) leiab SIIT viiteid suurele hulgale raamatutele. Rõhutan, et nende lugemine pole kohustuslik.

Õppejõud: dotsent Erki Eessaar
meiliaadress: Erki.Eessaar(ät)taltech.ee