**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. * 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. _Märkused_: * Vahetestide 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 31 punkti ja eksami eest vähemalt 20 punkti. lõpphinde arvutamise aluseks olevad punktid = iseseisva töö punktid + aktiivsuspunktid + ümardatud eksami punktid** Ümardamise näide: 24.5 => 25 Saadud punktid taandatakse Tallinna Tehnikaülikooli üldisele hindamisskaalale. 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, **rohkem kui 91 punkti - hinne 5. _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/9781680500073/?ar). **[Kuidas kasutada O'Reilly digitaalset platvormi?](https://maurus.ttu.ee/helpdesk.php?kysimus=684&aine=346) * 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/helpdesk.php?kysimus=684&aine=346) * 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/helpdesk.php?kysimus=684&aine=346) * [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/helpdesk.php?kysimus=684&aine=346) 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