Kodulehed
[382] - Andmebaasid I (ITI0206) (kevad 2022)
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 / Tutvustus

Lühitutvustus: Õ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.

Ainekaart (ainekava) ÕISis

Tunniplaan ÕISis
Loeng esmaspäeviti kell 10:15 ja praktikum esmaspäeviti kell 12:00 on inglise keeles ja eestikeelsetel õppekavadel õppijad seal käia ei saa.

Tegevuskava nädalate kaupa

Hüppa aine kirjelduse juurde

Olulised kuupäevad:
TähtaegKirjeldus
31.01.2022 Kevadsemestri õpingukava esitamise lõpptähtaeg vastavalt akadeemilisele kalendrile
04.02.2022 Iseseisva töö teema registreerimine. Täpsem info
04.02.2022 Enne teise nädala praktikumi algust võiks oma sülearvutisse installeerida MS Accessi ja enne teise nädala loengu algust võiks oma sülearvutisse installeerida CASE vahendi. Juhendid on SIIN
04.02.2022 Enne teise nädala praktikumi võiks üle vaadata slaidid 167-207 failist SQL-andmebaaside ja nende projekteerimise põhimõisteid. Ei tee paha, kui jõuaksite ka vaadata slaide 1-101. 
13.02.2022 Lugeda mõttega läbi muster "Põhiolemite hetkeseisundi registreerimise vajadus"
24.01.2022-18.02.2022 Esimeseks vabatahtlikuks eksami vahetestiks harjutamine SIIN keskkonnas
14.02.2022-18.02.2022 Esimene vabatahtlik eksami lisapunktide test. Osavõtuks on registreerimine KOHUSTUSLIK ja see toimub SIIN
20.02.2022 Lugeda mõttega läbi muster "Põhiolemite hetkeseisundi registreerimine SQL-andmebaasis"
07.02.2022-25.02.2022 Iseseisva töö tegemine praktikumides vastavalt juhendile
27.02.2022 Lugeda mõttega läbi muster "Põhiolemite seisundimuudatuste võimaldamine graafilises kasutajaliideses"
03.03.2022 Kell 12:15-13:45 SQL ülesannete avalik lahendamine (SQLi loengu eest) Teamsis. 
04.03.2022 Kuuenda õppenädala praktikumiks võiks üle vaadata slaidikomplekti lihtsamate SELECT lausete kohta. Andmebaasid lausete proovimiseks: MS Access, LibreOffice Base, PostgreSQL
10.03.2022 Kell 12:40-14:10 SQL ülesannete avalik lahendamine (SQLi loengu eest) Teamsis. 
11.03.2022 Seitsmenda õppenädala praktikumiks võiks üle vaadata slaidikomplekti keerukamate SELECT lausete kohta. Andmebaasid lausete proovimiseks: MS Access, LibreOffice Base, PostgreSQL
17.03.2022 Kell 12:15-13:45 SQL ülesannete avalik lahendamine (SQLi loengu eest) Teamsis. 
21.02.2022-18.03.2022 Teiseks vabatahtlikuks eksami vahetestiks harjutamine SIIN keskkonnas
18.03.2022 Kaheksanda õppenädala praktikumiks võiks üle vaadata slaidikomplekti alampäringute kohta SELECT lausetes. Andmebaasid lausete proovimiseks: MS Access, LibreOffice Base, PostgreSQL
14.03.2022-18.03.2022 Teine vabatahtlik eksami lisapunktide test. Osavõtuks on registreerimine KOHUSTUSLIK ja see toimub SIIN
20.03.2022 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. 
24.03.2022 Kell 12:15-13:45 SQL ülesannete avalik lahendamine (SQLi loengu eest) Teamsis. 
25.03.2022 Üheksanda õppenädala praktikumiks võiks üle vaadata slaidikomplekti ebaotstarbekate SQL lausete kohta. Andmebaasid lausete proovimiseks: MS Access, LibreOffice Base, PostgreSQL
31.03.2022 Kell 12:15-13:45 MS Accessi andmebaasirakenduse loomise demonstratsioon Teamsis. 
01.04.2022 Kümnenda õppenädala praktikumiks võiks üle vaadata slaidikomplekti andmete muutmise lausete, vaadete ja transaktsioonide kohta. Andmebaasid lausete proovimiseks: MS Access, LibreOffice Base, PostgreSQL
25.03.2022-01.04.2022 "Mudaste kaartide" anonüümne tagasiside küsitlus. Tagasisidele andmiseks vajutage palun SIIA lingile. 
08.04.2022 Üheteistkümnenda õppenädala praktikumiks võiks üle vaadata slaidikomplekti andmekirjelduskeele lausete kohta
01.04.2022-08.04.2022 SQLi lisapunktide kogumine tehes SIIN korduvalt (minimaalselt 20 korda) testi küsimustega SQLi kohta. Alustamiseks võite ka minna testisüsteemi pealehele ja vajutada nupule "Alusta hindelist mitme vastamise teadmiste kontrolli". Testi nimi on "2022. aasta SQLi harjutamise test aines ITI0206"
09.04.2022 Pannakse paika lävend, mille ületamisel saab SQL kontrolltöö automaatselt hindeks 5. 
14.04.2022 Kaheteistkümnenda õppenädala praktikumiks võiks üle vaadata slaidikomplekti tüüpiliste probleemide kohta SQL lausetes ning soovituste kohta kontrolltööks. Andmebaasid lausete proovimiseks: MS Access, LibreOffice Base, PostgreSQL
28.02.2022-14.04.2022 SQLi harjutamine praktikumides. 
22.04.2022 Tähtaeg andmaks teada oma mitteosalemisest 13nda nädala kontrolltööl. See annab võimaluse kasutada abimaterjali (kahe A4 lehekülje mahus) 16nda nädala järeltööl. Selleks teatamiseks tuleb ennast registreerida Mauruses selleks ajaks selleks otstarbeks loodud teadmiste kontrollile
21.04.2022-22.04.2022 SQL kontrolltöö. Osalemiseks on kohustuslik registreeruda ja registreeruda tuleb SIIN
24.01.2022-22.04.2022 Periood, mille jooksul projekti eest arvestuse saamine tähendab lõpphinde arvutamise valemis kordajat 1.3. Projekti näitamiseks tuleb tulla minu vastuvõtule (enne 12ndat õppenädalat) või registreerida Mauruses selleks välja pandud ajale (12.-13. õppenädal). Kogu projektide ettenäitamine/konsulteerimine toimub kasutades MS Teams'i.

Kordaja 1.3 on neile väga kiiretele üliõpilastele, kes saavad sisuliselt projekti veatult valmis enneaegselt - projektide vaatamise periood, kui kõik praktikumid ja lisaajad on sellele ülesandele pühendatud, algab 14. õppenädalal (siis on kordaja 1.2) ja kestab kuni 8. juunini (siis on kordaja 0.9). Ma ei oska prognoosida varakult näidata soovijate hulka, kuid vabade vastuvõtuaegade pärast on vaja konkureerida teiste projektidega. Seega kes ees, see võitja.
 
25.04.2022-06.05.2022 Periood, mille jooksul projekti eest arvestuse saamine tähendab lõpphinde arvutamise valemis kordajat 1.2
13.05.2022 SQL kontrolltöö esimene järeltöö. Osalemiseks on kohustuslik registreeruda ja registreeruda tuleb SIIN
09.05.2022-13.05.2022 Periood, mille jooksul projekti eest arvestuse saamine tähendab lõpphinde arvutamise valemis kordajat 1.1
25.04.2022-13.05.2022 Periood, mille jooksul kõik praktikumid on pühendatud iseseisvate tööde ülevaatamisele. 
26.05.2022 SQL kontrolltöö teine järeltöö. 
16.05.2022-27.05.2022 Periood, mille jooksul projekti eest arvestuse saamine tähendab lõpphinde arvutamise valemis kordajat 1.0
06.06.2022 SQL kontrolltöö kolmas järeltöö. 
24.01.2022-06.06.2022 SQLi enesekontroll ja täiendav harjutamine SIIN keskkonnas.

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. 
30.05.2022-07.06.2022 Periood, mille jooksul projekti eest arvestuse saamine tähendab lõpphinde arvutamise valemis kordajat 0.9
25.04.2022-07.06.2022 Iseseisvate tööde ülevaatamise periood. Tööd võib esitada ja ette näidata ka varem - õppejõu vastuvõtuaegadel. Töö arvestuse saamise aeg mõjutab lõpphinnet - mida varem, seda parem hindele. 
07.06.2022 Kõige viimane päev, kui 2021/2022 õppeaasta kevadsemestril saab näidata iseseisvat tööd e projekti. 
21.03.2022-08.06.2022 Eksamiks harjutamine SIIN keskkonnas
08.06.2022 Viimane eksam käesoleval semestril. 

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 tudeng:

  1. teab erinevaid andmemudeleid, nende alusel andmete organiseerimise erinevusi ning ülesandeid, mille lahendamiseks need sobivad ja ei sobi;
  2. teab andmebaasikeele SQL kasutusvõimalusi ja puudusi;
  3. teab tehingutöötluseks mõeldud SQL-andmebaaside kontseptuaalse, loogilise ja füüsilise projekteerimise ühte võimalikku metoodikat;
  4. teab algtasemel andmebaasisüsteemide ülesehtitust ja funktsionaalsust;
  5. oskab tükeldada andmekeskseid tehingutöötlusele orienteeritud infosüsteeme allsüsteemideks;
  6. oskab projekteerida tehingutöötlusele orienteeritud SQL-andmebaasi ning koostada süsteemi prototüüpi, kasutades selleks UML keelt, CASE vahendit ja vabalt valitud SQL-andmebaasisüsteemi/rakenduse loomise vahendit;
  7. oskab kasutada SQL andmebaasikeelt päringute ja andmemuudatuste läbiviimiseks andmebaasis ning andmebaasi struktuuri (tabelite) ja käitumise (tabelitega seotud deklaratiivsete kitsenduste) loomiseks.

Hindamiskriteeriumid:

  • Õpiväljundite 2, 7 kontrollimine - Kontrolltöö; eksamieeldus.
  • Õpiväljundite 3, 5, 6 kontrollimine - Iseseisev töö - andmebaasi projekteerimine ja prototüüpimine; eksamieeldus.
  • Kõikide õpiväljundite kontrollimine - Teoreetiliste ja praktiliste küsimustega kirjalik (veebipõhine) test e eksam.

Lävendi ületamiseks on vajalik saada iseseisva töö eest arvestus ning nii SQL kontrolltöö kui ka eksami eest vähemalt hinne 1.

lõpphinne = Ümarda ja kärbi((a*0.6 + b*0.4)*c)

Ümardamise näide: 4.4 => 4; 4.5 => 5
Kärpimine tähendab, et kui valemi järgi tuleb hinne üle viie, siis taandatakse see hindeks viis.

a - SQL kontrolltöö hinne

  • 0-50 punkti hinne 0
  • 51-60 punkti hinne 1
  • 61-70 punkti hinne 2
  • 71-80 punkti hinne 3
  • 81-90 punkti hinne 4
  • 91-... punkti hinne 5

Märkused:

  • Praktikumides 2, 6-12 toimub SQL ülesannete lahendamine, mis annab lisapunkte SQL kontrolltööle. Kõik punktide arvuga teatud lävendi ületanud üliõpilased saavad kontrolltöö hindeks automaatselt 5, st ei pea kontrolltööd tegema. Lävend sõltub kursuse tasemest ja määratakse kindlaks üheteistkümnenda õppenädala lõpuks.
  • Kontrolltöö ülesannete lahendamise eest saadav võimalik maksimaalne punktisumma on 100.
  • Semestri praktikumides kogutud SQL lisapunktid lähevad kontrolltöö hinde arvutamisel arvesse põhitööl (13ndal õppenädalal) ja esimesel järeltööl (16ndal õppenädalal).
  • SQLi kontrolltöö hinne kehtib ainult saamise semestril. Seega uuesti deklareerides tuleb SQLi kontrolltöö uuesti teha või saada tulemus lisapunktidega.
  • Lisapunktid lähevad arvesse ainult saamise semestril.

b - eksami hinne

  • 0-50 punkti hinne 0
  • 51-60 punkti hinne 1
  • 61-70 punkti hinne 2
  • 71-80 punkti hinne 3
  • 81-90 punkti hinne 4
  • 91-... punkti hinne 5

Märkused:

  • Eksami küsimustele vastamise eest saadav võimalik maksimaalne punktisumma on 100. Eksami testis on 25 küsimust, iga õige vastus annab neli punkti. Eksamile on võimalik lisapunktide testidega kaasa võtta kuni 20 lisapunkti.
    • Neljandal õppenädalal praktikumi ajal toimuv lisapunktide test võimaldab eksamile juurde saada kuni 10 punkti. Testis on kümme küsimust, iga õige vastus annab ühe punkti.
    • Kaheksandal õppenädalal praktikumi ajal toimuv lisapunktide test võimaldab eksamile juurde saada kuni 10 punkti. Testis on kümme küsimust, iga õige vastus annab ühe punkti.
  • SQL lisapunktid, mis ületavad üheteistkümnenda õppenädala lõpuks määratavat SQL lisapunktide lävendit (lävendi ületamine annab SQL kontrolltöö hindeks automaatselt 5), lähevad eksami lisapunktideks.
  • Eksami hinne kehtib ainult saamise semestril. Seega uuesti deklareerides tuleb eksam uuesti teha.
  • Lisapunktid lähevad arvesse ainult saamise semestril.

c - iseseisva töö projekti kordaja

Kui iseseisva töö projekt arvestatakse:

  • 1.-13. õppenädalal, siis 1.3
  • 14.-15. õppenädalal, siis 1.2
  • 16. õppenädalal, siis 1.1
  • 17.-18. õppenädalal (eksamisessioon), siis 1.0
  • 19.-20. õppenädalal (eksamisessioon), siis 0.9

Märkused:

  • Varasematel semestritel saadud projekti arvestused kehtivad. Hindamisel kasutatav kordaja määratakse kindlaks vastavalt jooksval semestril kehtivatele reeglitele.

Lävend

  • Kui a väätus puudub või a=0, siis eksamit tegema ei pääse ja lõpphinnet ei saa.
  • Kui c väätus puudub (projekt arvestamata), siis eksamit tegema ei pääse ja lõpphinnet ei saa.
  • Kui b=0, siis on lõpphinne 0.

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