Rühmatöö
Rühmatöö koosneb erinevatest osadest, mis kõik tuleb sooritada samas rühmas. Ühes rühmas võib olla 2-3 liiget. Erandjuhul, kes väga tahab tööd teha üksinda, see võib ka üksinda teha, kuid eelistud on siiski rühmas esitatud projektid. Kõikide etappide tulemused peavad olema fikseeritud failis, mille link esitatakse 26. õppenädalal Moodle foorumisse. Järgmised etapid ja I etappi tehtud parandused on vaja märkida teise värviga. Projekti eesmärgiks on demonstreerida, et olete omandanud andmebaaside aine põhilised oskused ja mõisted. Tähtajast hiljem esitatud etapi eest võetakse punkte maha sõltuvalt sellest, kui palju on hilinetud!
I etapp sooritada 26. õppenädalal (täpsem aeg Moodle keskkonnas)
- Valige valdkond, mille jaoks te koostate oma andmebaasi projekti. Valdkonna valimisel arvestage, et vähemalt üks meeskonna liige tunneb seda valdkonda hästi. Valdkond võib olla seotud teie hobidega (spordivõistluste korraldamine, laulukooride esinemiskavade koostamine, fotonäituste korraldamine, millegi kollektsioneerimine jne.), huvidega (arvutivõrkude ehitamine, tarkvara haldamine, mõne lauamängu mängimine jne) või tööga (ajutise või alalisega). Palun ärge valige valdkonnaks loengute-praktikumide näidetes toodud andmebaaside valdkondi ega nende analooge (näiteks male asemel kabet). Valdkonda valides arvestage ka, et kolmeliikmelise meeskonna puhul oleks võimalik sealt leida ca kümmekond tabelit/relatsiooni, kaheliikmelisel – 5-8, ja üksinda tehes 4-6 tabelit/relatsiooni, mis on ka omavahel seotud. Relatsioonilise mudeli loengus näete, kuidas m:n seosed lisavad tabeleid/relatsioone, seega olemitüüpe võib olla vähem nõutust kui nende vahel on n:m seoseid. Tabelite relatsioonide arvu võite arvutada viisil: olemitüüpide arv + n:m seoste arv
- Kirjeldage valdkonda ja selle mõisteid – teie valitud valdkond ei pruugi igale teie projekti lugejale olla tuntud.
- Milles on valitud valdkonna probleem? Milliseid kitsaskohti see andmebaas likvideerib?
- Kes on selle andmebaasi kasutajad? Kirjeldage kõiki olulisi kasutajagruppe ja millistele küsimustele need kasutajad andmebaasi abil vastuseid soovivad saada?
- Millised on ärireeglid ning nendest tulenevad seoste aarsused selle andmebaasi korral?
- Koostage olem-seose diagramm oma ülesande jaoks, kasutades mõnda veebipõhist vahendit (näiteks https://gitmind.com/er-diagram-tool.html) või joonistades ja pildistades. Olemitüüpide, atribuutide ja seoste nimed olgu tähenduslikud. Olem-seose diagrammiga koos esitage selgitus, kus kirjeldate olemitüüpe ja nende atribuute, näidates, millistele reaalsuses eksisteerivatele objektidele või nähtustele nad vastavad. Lisage diagramm tekstifaili pildina. Jälgi järgnevat:
- arusaadavalt nimetatud olemitüübid (üldiselt üks olemitüüp on vastavuses mingi ühe päris-elu objekti või nähtusega)
- olemitüüpide vahel on seosed
- on näha seoste aarsus (üks-ühele, üks-mitmele, mitu-mitmele)
- atribuudid on iga olemitüübi juures loetletud (need on tavaliselt nende päris-elu objektide omadused)
- atribuutide hulgas ei ole id-sid (id-d ehk kunstlikud võtmed teeme hiljem, kui füüsilist mudelit teeme, loengus tuleb juttu)
- määratud on primaarvõti
- andmetüübid atribuutide juures võivad olla, aga ei pea
Punktide jagunemine (täpsem hindamismaatriks on Moodles):
- Valdkonna ja selle mõistete kirjeldus ning probleemi väljatoomine - 0.5 punkt
- Kasutajate ja nende vajaduste kirjeldamine - 0.5 punkt
- Ärireeglitest tulenevate seoste ja seoste aarsuse põhjendamine - 1 punkt
- Olem-seose diagrammi esitamine - 1 punkt
- Kokku selle etapi eest maksimaalselt 3 punkti
II etapp sooritada 31. õppenädalal
- Parandage ja täiendage oma mudelit saadud kommentaaride põhjal.
- Lisage atribuutidele metaandmed (andmetüüp, kas võib olla sisestamata (NULL), vaikeväärtused vajadusel jms).
- Teisendage oma olem-seose mudel relatsioonilisele kujule ja esitage see mõne graafilise vahendi abil. Näiteks https://www.dbdesigner.net/
- Pange mudel kirja ka relatsioonidena R(a1, a2, a3,..., an), loobudes kunstlikest võtmetest (id).
- Kontrollige, et kõik teie andmebaasi relatsioonid oleks vähemalt kolmandal normaalkujul. Selleks kirjutage välja iga relatsiooni korral selle relatsiooni olulised funktsionaalsed sõltuvused ja kontrollige, mitmenal normaalkujul on relatsioon. Kui relatsioon ei ole 3. noormaalkujul, tehke selelle dekompositsioon või põhjendage argumenteeritult, miks teie andmemudeli korral on efektiivsem kasutada madalamat normaalkuju.
- Kui andmebaas on normaliseeritud lisage kunstlikud võtmed (id).
Punktide jagunemine (täpsem hindamismaatriks on Moodles):
- I etapi paranduste ja täienduste sisseviimine - 1 punkt
- Relatsioonilisele kujule teisendamine - 2 punkti
- Normaalkuju kontrollimine ja vajadusel kolmandale normaalkujule viimine - 1 punkt
- Kokku selle etapi eest maksimaalselt 4 punkti
III etapp sooritada 35. õppenädalal
- Kasutades graafilise mudeli koostamise vahendit, eksportige SQL-skript. Lisage saadud SQL-laused oma töö teksti. Tehke vajadusel käsitsi (teksti redaktori abil) parandused eksporditud Create lausetesse. Dokumenteerige parandused.
- Realiseerige saadud andmebaas andmebaasisüsteemis PostgreSQL. Kui olete ühes arvutis andmebaasi loonud, saate backup'i abil seda jagada oma rühmakaaslastele.
- Sisestage igasse relatsiooni 4-5 kirjet fiktiivsete andmetega.
- Formuleerige SQL’is 4 mõttekat päringut ja 2 tegevust oma andmebaasi kohta (näiteks andmete lisamine või muutmine). NB! Vaadake oma esimeses etapis toodud kasutajate vajadusi ja püüdke neile leida lahendusi! Päringud vormistage vaadetena või parametriseeritud vaadete ehk funktsioonidena. Kõik tegevused vormistage protseduuridena. Lisage aruandesse nii süntaktiliselt korrektne päring, kui ka saadud vastus (tegevus ja tulemus). Ka siin pidage silmas selle ülesande põhieesmärki: demonstreerida oma teadmisi ja oskusi. Seega peaks need päringud kajastama teie SQL oskuste taset. Vähemalt 2 päringut peavad hõlmama enam kui kahte relatsiooni. Kõigi päringute ja tegevuste kohta esitage:
- sõnaline sisuline lühikirjeldus, mida vastav päring või tegemus peaks tegema;
- vastav protseduur või funktsioon SQL või protseduurilise SQL keeles (süntaktiliselt korrektsel kujul);
- tulemuse kuvapilt (kui andmebaasis on palju andmeid ja vastus on mahukas, siis esitage ainult osa tulemusest; aga nii, et oleks aru saada, et osa vastusest on välja jäetud)
Punktide jagunemine (täpsem hindamismaatriks on Moodles):
- II etapi (ja vajadusel ka I etapi) paranduste ja täienduste sisseviimine - 1 punkt
- Oma mudelile vastava andmebaasi loomine - 1 punkt
- Päringute esitamine vaadete või funktsioonidena koos tulemuste kuvapiltidega - 3 punkti
- Tegevuste kohta protseduuride koostamine koos selgituste ja tulemuste kuvapiltidega - 2 punkti
- Kokku selle etapi eest maksimaalselt 7 punkti
Hindamine
Kokku on võimalik koguda rühmatöö kolme etapiga 14 punkti, millele lisanduvad maksimaalselt 1 punkt teiste rühmade I etapi kommenteerimise ning 2 punkti oma mudeli seminaris oma mudeli relatsioonilise skeemi esitlemise eest (iga rühmaliige, kes soovib saada selle eest punkte peab osalema esitlemisel). Seega kokku on võimalik saada 17 punkti, eksamile pääsemise lävend on 9 punkti. Kui lävend saavutatakse juba teise etapi ja seminari ning kommenteerimisega, siis ikka on vajalik kolmanda etapi esitamine!