**Andmebaasid II (ITI0207)** _Eesmärk:_ Anda teadmisi andmebaasisüsteemide arhitektuurist ja tõõpõhimõtetest ning süvendada SQL-andmebaaside projekteerimise ning programmeerimise oskust. _Õpiväljundid:_ Aine läbinud tudeng: * teab, kuidas toimub andmebaaside projekteerimine ja realiseerimine koskstiilis ja iteratiivsel viisil süsteemiarenduse korral; * teab SQL-andmebaasisüsteemide arhitektuure ja tõõpõhimõtteid; * teab SQL-andmebaaside turvalisuse tagamiseks kasutatavaid meetmeid; * teab meetmeid, mida SQL-andmebaasisüsteemid rakendavad, et võimaldada andmebaasi kasutamist korraga paljude kasutajate poolt; * teab SQL-andmebaasides andmebaasioperatsioonide tõõkiiruse parandamiseks kasutatavaid meetmeid; * tunneb algtasemel objektorienteeritud, NoSQL ja objekt-relatsioonilisi andmebaasisüsteemide põhimõtteid; * tunneb algtasemel hajusaid andmebaase, andmeaitu ja andmevakku ning on tuttav nende projekteerimise iseärasustega; * oskab disainida tehingutõõtluseks mõeldud paksu jagatud SQL-andmebaasi ja programmeerida andmebaasi kasutades serveri andmebaasisüsteemi (andmebaasisüsteemide valik esitatakse semestri alguses). Lisaks oskab luua andmebaasi kasutava rakenduse ühes enda valitud vahendis. _Hindamiskriteeriumid_ (arvud näitavad, milliste kriteeriumite abil hinnatakse milliseid õpitulemusi): * Õpiväljundite 1, 3-5, 8 kontrollimine - Iseseisev tõõ (projekt), mille eesmärgiks on andmebaasi projekteerimine ning realiseerimine. Üliõpilased peavad täiendama õppeaines "Andmebaasid I" koostatud iseseisvat tõõd. Kellel seda ei ole või kes ei taha tehtud "Andmebaasid I" iseseisva tõõga jätkata, saab selle valida õppejõu poolt välja pandud "Andmebaasid I" iseseisvate tõõde hulgast. Tegemist on eksamieeldusega. Annab kõikidele nõuetele vastates kuni 60 punkti. Soovijad võivad teha projekti nõutust mahukamaks ning suurendada sellega projekti eest saadavate punktide arvu. Täpsem info on hindamismudelis. * Õpiväljundite 1, 3-5, 8 kontrollimine - Iseseisva tõõ kohta praktikumides ülesannete lahendamine. Annab aktiivsuspunkte. * Õpiväljundite 6 ja 8 kontrollimine - SQL ülesannete lahendamine. Võimalik on lahendada vähemalt 67 ülesannet ja saada kokku vähemalt 67 punkti (iga ülesande õigesti lahendamine annab ühe punkti). * Õpiväljundite 1 ja 8 kontrollimine - UML ülesannete lahendamine. Võimalik on lahendada vähemalt 20 ülesannet ja saada kokku vähemalt 20 punkti (iga ülesande õigesti lahendamine annab ühe punkti). * Kõikide õpiväljundite kontrollimine - Eksam. Valikvastustega test, kus on 30 küsimust, kus iga õige vastus annab ühe punkti. Küsimused valitakse juhuslikult suurema hulga küsimuste seast. Annab kuni 30 punkti. Järgnevalt nimetatavad vahetestid võimaldavad teenida eksamile juurde kuni 18 punkti. Seega kokku võib eksami punktisumma olla kuni 30+18=48 punkti. * 8ndal õppenädalal vabatahtlik vahetest õpiväljundi 1 hindamiseks, kus on 12 valikvastustega küsimust, millest iga iga õige vastus annab 0.5 punkti. * 13ndal õppenädalal vabatahtlik vahetest õpiväljundi 2 hindamiseks, kus on 12 valikvastustega küsimust, millest iga iga õige vastus annab 0.5 punkti. * 16ndal õppenädalal vabatahtlik vahetest õpiväljundite 3-5 hindamiseks, kus on 12 valikvastustega küsimust, millest iga iga õige vastus annab 0.5 punkti. _Täiendavad võimalused punktide saamiseks:_ * Arvepidamine õppeainega seotud tegevustele kulutatud aja üle ning tulemuse määratud viisil, ajal ja kohas esitamine, annab 10 punkti. * Lisaks praktikumides projektiga tegelemisele on võimalik saada ka muid aktiivsuspunkte (vigade leidmine ja paranduste pakkumine, probleemidele lahenduste pakkumine, huvitavad lahendused ülesannetele jms). _Märkused_: * Vahetestide punktid, SQL punktid, UML punktid, tõõmahu logimise punktid ja aktiivsuspunktid lähevad arvesse ainult saamise semestril. * Kui iseseisev tõõ esitada esmakordelt ühe nädala jooksul peale tõõ esitamise tähtaega, siis vähendab see tõõ punktisummat viie punkti võrra. * Kui iseseisev tõõ esitada esmakordselt rohkem kui üks nädal peale esitamise tähtaega VÕI peale parandamist teistkordselt, siis väheneb tõõ punktisumma kümne punkti võrra (sellisel juhul eelmises punktis nimetatud viiepunktilist vähendamist ei rakendata). * Kui iseseisev tõõ esitada esmakordselt rohkem kui kaks nädalat peale esitamise tähtaega või tuleb esitada iseseisva tõõ parandatud versioon uuesti hindamiseks, siis iseseisva tõõ autorite praktikumide aktiivsuspunkte lõpphinde panemisel ei arvestata. * Haiguse või haiguskahtluse korral saab kokkuleppel õppejõuga teha tegevusi füüsiliselt ülikooli kohale tulemata (aktiivsuspunktide kogumine, eksam) või saab neid järgi teha (vahetestid). **Lävendi ületamiseks on vajalik saada iseseisva tõõ eest vähemalt 30 punkti ja eksami eest vähemalt 20 punkti. lõpphinde arvutamise aluseks olevad punktid = iseseisva tõõ punktid + aktiivsuspunktid + SQL punktid + UML punktid + tööaja logimise punktid + ümardatud eksami punktid** Ümardamise näide: 24.5 => 25 Saadud punktid taandatakse hindamisskaalale. * 49 punkti või vähem – hinne 0 (puudulik) * 50–79 punkti – hinne 1 (kasin) * 80–109 punkti – hinne 2 (rahuldav) * 110–139 punkti – hinne 3 (hea) * 140–169 punkti – hinne 4 (väga hea) * 170 punkti või rohkem – hinne 5 (suurepärane) Võimalikku lõpphinnet sõltuvalt vahetulemusest saab arvutada [hindekalkulaatoriga](https://maurus.ttu.ee/hindekalkulaator/ITI0207_2025/). _Teemad:_ Andmebaaside disain erinevate arendusmetoodikate korral. Serveri SQL-andmebaasisüsteemide võimalused. Andmebaasisüsteemide arhitektuurid. Andmebaasi turvalisuse tagamine. Transaktsioonide haldus. SQL andmekäitluskeele lausete tõõtlemine ja optimeerimine. Objektorienteeritud andmebaasid. NoSQL süsteemid. Objekt-relatsioonilised andmebaasisüsteemid. Hajusad andmebaasid. Andmeaidad ja andmevakad. Praktikumides kasutatakse serveri andmebaasisüsteeme Oracle ja PostgreSQL. [Siit võite vaadata teemade mõistekaarte](http://staff.ttu.ee/~erki.eessaar/andmebaasid_2/) ** > 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.** _Õppekirjandus:_ (sulgudes kursuse teemad, mille kohta annavad need lisainfot) * Burns, L., 2011. [Building the Agile Database. How to Build a Successful Application Using Agile Without Sacrificing Data Management](https://www.ester.ee/record=b4425682*est), Technics Publications. 276 p. **(kursuse teemad 1, 4)** * Connolly, T. M., Begg, C. E., 2001. Database systems. [A Practical Approach to Design, Implementation and Management](https://www.ester.ee/record=b1679294*est), Third Edition, Pearson Education. 1236 p. **(kõik kursuse teemad peale NoSQLi)** * Date, C. J., 2003. [An Introduction to Database Systems](https://www.ester.ee/record=b1463904*est), Eighth Edition, Addison Wesley. 983 p. **(kõik kursuse teemad peale NoSQLi)** * Karwin, B., 2010. [SQL Antipatterns: Avoiding the Pitfalls of Database Programming](https://www.ester.ee/record=b2888667*est), Pragmatic Bookshelf. 333 p. **(kursuse iseseisev tõõ)** * Seda saab ka lugeda O'Reilly digitaalse platvormi kaudu [elektrooniliselt](https://learning.oreilly.com/library/view/sql-antipatterns-volume/9798888650011/?ar). **[Kuidas kasutada O'Reilly digitaalset platvormi?](https://maurus.ttu.ee/vaata_kysimust.php?kysimus=684) * Lisaks on olemas raamatu alusel loodud [slaidid](https://www.slideshare.net/billkarwin/sql-antipatterns-strike-back). * Kleppmann, M., 2017. [Designing Data-intensive Applications : the Big Ideas Behind Reliable, Scalable, and Maintainable Systems](https://www.ester.ee/record=b4688715*est), O'Reilly. 590 p. **(kursuse teemad 3, 4, 6, 7, 9, 12)** * Seda saab ka lugeda O'Reilly digitaalse platvormi kaudu [elektrooniliselt](https://learning.oreilly.com/library/view/designing-data-intensive-applications/9781491903063/?ar). **[Kuidas kasutada O'Reilly digitaalset platvormi?](https://maurus.ttu.ee/vaata_kysimust.php?kysimus=684) * Kuznetsov, A., 2010. [Defensive Database Programming with SQL Server](https://www.red-gate.com/library/defensive-database-programming), Simple Talk Publishing. 389 p. **(kursuse teemad 4, 5, 6; kursuse iseseisev tõõ)** * Lightstone, S.S., Teorey, T.J., Nadeau, T., 2010. Physical Database Design : the database professionals guide to exploiting indexes, views, storage, and more. Morgan Kaufmann. 448 p. **(kursuse teema 4)** * Seda saab lugeda O'Reilly digitaalse platvormi kaudu [elektrooniliselt](https://learning.oreilly.com/library/view/physical-database-design/9780123693891/?ar). **[Kuidas kasutada O'Reilly digitaalset platvormi?](https://maurus.ttu.ee/vaata_kysimust.php?kysimus=684) * [Kättesaadav ka Tallinna Tehnikaülikooli raamatukogu vahendusel EBL : Ebook Library platvormilt](https://ebookcentral.proquest.com/lib/tuee/home.action) * Meyer, B., 2014. [Agile! : The Good, the Hype and the Ugly](https://www.ester.ee/record=b4604870*est), Springer. 170 p. **(kursuse teema 1)** * Sadalage, P.J., Fowler, M., 2013. [NoSQL Distilled : A Brief Guide to the Emerging World of Polyglot Persistence](https://www.ester.ee/record=b3046556*est), Addison-Wesley. 164 p. **(kursuse teema 9 NoSQLi osa)** * Seda saab ka lugeda O'Reilly digitaalse platvormi kaudu [elektrooniliselt](https://learning.oreilly.com/library/view/nosql-distilled-a/9780133036138/?ar). **[Kuidas kasutada O'Reilly digitaalset platvormi?](https://maurus.ttu.ee/vaata_kysimust.php?kysimus=684) Lisamaterjalide lehel (kasutajanimi: SIS2 ja parool: SIS2) leiab [SIIT](https://maurus.ttu.ee/download.php?aine=346&document=32345&tyyp=do) viiteid suurele hulgale raamatutele. Rõhutan, et nende lugemine pole kohustuslik. _Õppejõud:_ Erki Eessaar **_meiliaadress:_ Erki.Eessaar{ät}taltech.ee