Informacioni sistemi 2
Informacioni sistemi 2 je izborni predmet u sedmom semestru, kao nastavak Informacionih sistema 1.
Korisne veze
- Ovom odeljku fale informacije. Pomozite SI Wiki tako što ćete dodati potrebne informacije.
Nastava
Oblasti se na sledeći način obrađuju po blokovima (Napomena: svaki kolokvijum na predmetu se radi u vežbanci):
- K1 (15p):
- Predavanja (videi 2-5): BPMN dijagrami procesa. Na kolokvijumu se dobija jedan zadatak gde se traži crtanje dijagrama procesa na osnovu opisa poslovnog procesa i drugi zadatak gde se traži analiza poslovnog procesa i modifikacija tog procesa.
- K2 (15p):
- Predavanja (videi 7-9): BPMN dijagrami koreografije, BPMN dijagrami konverzacije, Servisi. Ko ne želi da ulazi u detalje dovoljno je prvih 20ak minuta P7 i poslednjih 30 minuta P9 (gde se rade zadaci). Na kolokvijumu se dobija jedan zadatak gde treba da se crta dijagram koreografije ili konverzacije i drugi zadatak gde se definišu API-jevi servisa i crta dijagram sekvence koji prikazuje kako se ti API-jevi koriste.
- K3 (30p):
- Predavanja (videi 10-12): Skladišta podataka. Na ispitu dolazi jedan zadatak gde treba projektovati skladište na osnovu date šeme i opisa podataka koje su od interesa za skladište i drugi zadatak gde treba dodati nova polja u tabele, opisati potrebne trigere i izvršiti punjenje skladišta u pseudo-SQL koji se radi na predavanjima.
Laboratorijske vežbe
Od školske 2025/2026 godine, labovi više ne postoje na ovom predmetu. Oblasti koje se rade na laboratorijskim vežbama:
- Lab1 (12p)
- Vežbe (1-2) BPMN. Pravi se dijagram opisanog procesa, ali za razliku od K1, gde se radi na papiru, ovde se radi u alatu Adonis.
- Lab2 (8p)
- Vežbe (7-8.1) Skladišta podataka. Uglavnom bude samo pisanje upita mada može da dođe i pravljenje šeme.
Projekat(20p)
Vežbe (8.2-9) su relevantne isključivo za projekat, ali da bi se uspešno uradio potrebno je i znanje za K3 i lab2.
Radi se u alatima MySql Workbench, Spoon i Schema-Workbench. U projektu je data šema operacione baza podataka i treba isprojektovati i implementirati skladište podataka na osnovu postavke zadatka. Projekat se može podeliti u 4 faze: pravljenje operacione baze, projektovanje skladišta, pravljenje punjenja i pisanje MDX upita.
Napomene za SQL skripte:
- Pošto se tokom projekta koriste dve sheme - jedna za operacionu bazu, a druga za skladište, topla preporuka je da se u skriptama koristi kvalifikovani naziv tabela da bi se izbegla potreba da se konstantno menja default schema u Workbenchu. Dakle tabelu Lekar u shemi ordinacija_operativna ćemo uvek referencirati sa ordinacija_operativna.Lekar, a ne samo Lekar.
- Takođe, u skriptama za kreiranje tabela dodati na početku DROP TABLE IF EXISTS za svaku od tabela da bi se olakšalo testiranje jer će verovatno biti potrebno da više puta praznimo i ponovo punimo skladište tokom testiranja punjenja.
Napomena za Spoon na odbrani
- Iz nekog razloga funkcija YEAR() ne radi na fakultetskom Spoonu, ali je moguće koristiti SUBSTR(Datum, 1, 4) da se dobije godina iz datuma, pa je okej to odmah staviti u transformacije.
1. Pravljenje operacione baze podataka (MySql Workbench): Na osnovu date šeme treba napisati SQL skriptu koja pravi tabele operacione baze podataka. Zatim treba napisati još jednu skriptu koja popunjava operacionu bazu dovoljnim brojem podataka (bar 10 redova u svakoj tabeli). Takođe je potrebno napisati skriptu koja dodaje podatke u bazu, da bi se testiralo i inkrementalno punjenje. Ova skripta može da dodaje po red-dva u svaku od tabela.
2. Projektovanje skladišta (MySql Workbench): Na osnovu opisanih tabela fakata treba isprojektovati skladište podataka. Za skladište je potrebno napisati SQL skriptu koja će da kreira relevantne tabele. Obratiti pažnju da je za inkrementalno punjenje potrebno čuvati datum poslednjeg punjenja. Ovo je najlakše postići tako što će skladište imati tabelu koja ima jedan red gde čuva pomenuti datum, koji će se pri svakom punjenju ažurirati. Da bi mogle da se koriste iste Spoon transformacije i za totalno i za inkrementalno punjenje, dobro je ovoj tabeli dati inicijalnu vrednost '1000-01-01 00:00:00' (najraniji mogući datum)
3. Pravljenje punjenja (Spoon): Potrebno je napraviti dva Spoon posla - totalno punjenje i inkrementalno punjenje. Totalno punjenje se pokreće da bi se svi relevantni podaci iz operacione baze preneli u tabele skladišta. Inkrementalno punjenje služi da dopremi samo one redove koji su upisani posle poslednjeg punjenja i odnosi se samo na one podatke koji su vezani za neki datum (na primer tabela Mesto će se popuniti jednom tokom totalnog punjenja jer se smatra da se ne dodaju konstantno nova mesta).
Na vežbama 8.2 i 9 su pokazane stvari poput dblink i merge joini, ali to nije zapravo potrebno. Dovoljno je koristiti Table input, koja ima konekciju na operativnu bazu, i Table output, koja ima konekciju na skladište, i povezati ih. Ako u upitu koji se vrši u Table input želimo da pristupimo tabeli iz skladišta, dovoljno je da tu tabelu pozovemo kvalifikovanim imenom (npr. ordinacija_skladise.Poslednje_Punjenje). Svi upiti u transformaciji se vrše istovremeno, tako da ako postoji neka zavisnost, treba odvojiti u različite transofmacije i kasnije povezati u poslu, gde se transformacije vrše sekvencijalno (npr. prvo prebacujemo Mesto, pa onda Korisnik).
4. Pisanje MDX upita (Schema-Workbench): Treba se povezati na skladište i napraviti šemu u Schema-Workbench. Kako se to radi je objašnjeno na vežbama 8.1. Nakon što se šema napravi potrebno je napisati nekoliko prostih upita koji su zadati u domaćem. Predaje se i xml fajl šeme i sami upiti.
Odbrana: Na odbrani nema modifikacija. Prvo se pokreće skripta za pravljenje operacione šeme, zatim skripta za popunjavanje iste, zatim totalno punjenje, zatim skripta za dodavanje podataka u operacionu šemu i na kraju inkrementalno punjenje. Nakon oba punjenja se radi neki prost SQL upit nad skladištem da bi asistent video da punjenja rade. Posle ovoga mogu da traže da im se pokažu i MDX upiti i šema, ali i ne moraju.
- Odbrana 2025/2026: Na odbrani ove godine došle su 2 modifikacije (jedna za grupu A i jedna za grupu B). Modifikacija za grupu A je bila da se doda jedan MDX upit koji prikazuje broj ocena za svaku kategoriju, za svako mesto prodavca (Veoma slično 4. upitu koji je dolazio uz tekst zadatka: Prikazati prosečnu ocenu za svaku kategoriju, za svako mesto prodavca). Dovoljno je bilo da se doda samo jedan novi Measure kako bi se došlo do rešenja.
Ispitni rokovi
Ispitni rokovi se ne objavljuju na stranici predmeta, ali se u odeljku za prepis rokova mogu naći neki rokovi od prethodnih godina.
Kolokvijum 1
Kolokvijum 2
Ispit
Način ocenjivanja
Slično kao na IS1, osim što su bodovi sa laboratorijskih vežbi zamenjeni.
- — Bodovi sa kolokvijuma (0-15). Na svaki kolokvijum je moguće izaći samo jednom. Nadoknada kolokvijuma moguća je u terminu januarskog ispita.
- — Bodovi sa prve laboratorijske vežbe (0-12). Moguće je izaći samo jednom. Nadoknada moguća u februarskom ispitnom roku.
- — Bodovi sa druge laboratorijske vežbe (0-8). Moguće je izaći samo jednom. Nadoknada moguća u februarskom ispitnom roku.
- — Bodovi sa projekta (0-20). Projekat se može braniti samo jednom. Nadoknada moguća u februarskom ispitnom roku.
- — Bodovi sa ispita (0-30).
- Ukupni bodovi:
| Bodovi | ||||||
|---|---|---|---|---|---|---|
| Ocena | 5 | 6 | 7 | 8 | 9 | 10 |
Računanje
- :
- :
- :
- :
- :
- :
- :
- Ocena:
Potrebna pomoć
- Na ovom predmetu fale postavke rokova. Pomozite vikiju pamćenjem/prepisivanjem rokova i postavljanjem na viki.
- Na ovom predmetu postoje stariji rokovi lošeg kvaliteta. Pomozite vikiju prepisivanjem tih rokova na viki.