Subject name | Data base programming |
Details | Code VSITE271 Abbrev. PBAP ECTS 5 Year 1 Semester Summer semester Type major obligatory NQF Level 7 Master's study E-Learning 0% |
Activities | DIT zg - Win 24/25 ECTS Units Hours Total T 1 15 2 30
N 0 0 0 0
L 1 13 2 30
S 0 0 0 0
PN 0 0 0 0
PT 0 2 2 0
PR 0 0 0 0
EN 0 0 0 0
ET 0 1 2 0
AL 3 1 90 90
|
Teachers | Leaders: Dalibor Bužić, v. pred., Siniša Tkalčec, pred. |
Prerequisits | None |
Content | Napredni SQL na Oracle bazi podataka. Pregled osnova jezika (ključne riječi, osnovne naredbe, join, grupiranje). Oracle SQL funkcije, procesiranje datuma i vremena u Oracle bazi, operatori IN, LIKE, EXISTS. Naredbe složene od više osnovnih upita. Skupovne operacije s upitima. Translate, decode, case. Hijerarhijske upiti. Analitičke funkcije. Naredba merge. Transakcije. Kreiranje tablice, particija, indeksa. Optimizacija. No-SQL baze podataka. Koncept key-value.
|
Learning objectives | Osposobiti studenta za programiranje složenih baza podataka.
|
Learning outcomes | 1. Apply SQL to the Oracle database, create tables and indices. 2. Apply basic statements and functions, use complex statements, set operations. 3. Handle date and time, create hierarchical queries. 4. Use analytical functions, define transactions. 5. Optimize alternative databases, implement the key-value concept.
|
Competencies | Studenti se obučavaju za napredno korištenje baza podataka.
|
Recommended Literature | 1. Jason Price: Oracle Database 11g SQL (Osborne ORACLE Press Series), McGraw-Hill Osborne Media; 1 edition (November 5, 2007)
2. Michael McLaughlin: Oracle Database 11g PL/SQL Programming (Osborne ORACLE Press Series), McGraw-Hill Osborne Media; 1 edition (March 21, 2008).
|
Additional Literature | 1. Rick Greenwald, Robert Stackowiak, Jonathan Stern: Oracle Essentials: Oracle Database 11g, O'Reilly Media; 4th edition
|
lectures (T) | - Definicija baze podataka i relacijske baze podataka. Coddova pravila. Arhitektura baze podataka. Baza vs instanca baze. SGA. Memorijske strukture i pozadinski procesi Oracle instance.
Životni ciklus baze podataka. Entitet, element entiteta, atributi entiteta, veze među entitetima.
- Modeliranje i prelazak iz ER u relacijski model. Primarni ključ, strani ključ i ostala ograničenja. Sekvenca. Kreiranje i izmjene stupaca i ograničenja. Konvencije o nazivima objekata.
Dual. Dohvat trenutnog datuma/vremena. Pseudo-stupci. Osnovni SQL.
Primjeri: Dual, sysdate, rownum. Razne vrste spajanja tablica. Grupiranje i agregiranje.
- Spajanje tablica. Spoj temeljen na jednakost i spoj temeljen na ostalim operatorima usporedbe. Unutarnji i lijevi/desni/potpuni spoj. Refleksivna veza. Kartezijev produkt tablica.
Grupiranje i agregatne funkcije. ROLLUP, CUBE i grouping.
Primjeri: različite vrste spoja tablica, demonstracija razlike vanjskog i unutrašnjeg spoja, grupiranje uz ROLLUP i CUBE opciju
- Grupiranje i agregatne funkcije; ROLLUP, CUBE i grouping.
Analitičke funkcije. ROW_NUMBER, RANK i DENSE_RANK.
Podupiti. Samostalni i korelirani podupiti. Skalarni podupiti.
Operatori (NOT) IN, (NOT) EXISTS, ANY/ALL.
Primjeri analitičke funkcije, demonstracija razlike ROW_NUMBER, RANK i DENSE_RANK, primjeri podupita s različitim operatorima.
- Korištenje podupita u DML naredbama.
Skupovni operatori. Unija - UNION i UNION ALL. Presjek - INTERSECT. Razlika - MINUS. Kombiniranje skupovnih upita.
Primjeri: Podupiti u DML-u, korištenje operatora IN, EXISTS, ANY, ALL, skupovne operacije UNION, UNION ALL, INTERSECT, MINUS.
- Glavni tipovi podataka u Oracle SQL-u i ugrađene funkcije za rad s brojevima, tekstom i datumima.
Primjeri korištenja funkcija za rad s datumima, brojevima, te tekstualnim atributima.
- Općenite ugrađene funkcije. NVL, DECODE, CASE, LIKE.
Hijerarhijski upiti (connect by prior, start with, korištenje pseudostupca level, sys_connect_by_path,...).
Primjeri: korištenja naredbi NVL, CASE, DECODE i LIKE operatora. Hijerarhijski upiti.
- Istovremeno ubacivanje podataka u više tablica ili uvjetno ubacivanje podataka (multitable insert). MERGE naredba.
Primjeri: "merge" podataka, uvjetni i bezuvjetni insert u više tablica istovremeno
- Pogled. Koncept materijaliziranog pogleda. Primjene u skladištima podataka i replikaciji baza.
Primjeri: pogled - READ ONLY pogledi i pogledi s opcijom provjere podataka, i materijalizirani pogled.
- PLSQL osnove - deklaracija varijabli, tipovi podataka, osnovni delimiteri, struktura PL/SQL bloka.
Primjeri: deklaracija i postavljanje varijabli.
- Kontrola toka programa - IF, ELSIF, CASE.
Postavljanje vrijednosti varijablama korištenjem CASE izraza.
Postavljanje vrijednosti varijablama iz upita.
Primjeri: postavljanja varijabli iz SQL upita, primjeri obrade najčešćih iznimki.
- Obrada iznimaka; najčešće ugrađene iznimke.
Kontrola iteracija u programu - petlje. Osnovna petlja, WHILE, FOR.
Primjeri: obrada iznimaka, korištenje raznih vrsta petlji
- Složeni tipovi podataka - zapisi i kolekcije.
Kursori i zapisi.
Kursorska FOR petlja.
Kolekcije. Koncept ključ-vrijednost i indeksirane tablice.
Primjeri: Korištenje kursora, kursorska FOR petlja.Deklariranje, punjenje i korištenje kolekcija.
- Imenovani blokovi - Funkcije, procedure, paketi. Okidači, vrste okidača (okidači koji se okidaju za svaki zapis ili za čitavu naredbu, okidači koji se okidaju prije ili poslije naredbe. Okidači na pogledu.
Primjeri: funkcije, procedure i paketi. Pozivanje funkcija i procedura. Primjeri okidača.
- Koncept transakcije. Transakcije u Oraclu - commit, rollback, savepoint naredbe.
Optimizacija i indeksi.
Primjeri: primjeri transakcija. Kreiranje indeksa.
|
laboratory exercises (L) | - Instalacija i upoznavanje s okruženjem, pregled HR baze. Kreiranje korisnika i dodjela prava. Jednostavni upiti. Sekvenca.
Primjeri: Pregled HR baze. Katalog baze i pozadinski procesi. Osnovni upiti i sekvenca.
- Spajanje tablica. Kreiranje tablice s podacima iz upita. Jednostavno grupiranje i sortiranje.
Primjeri: Dual, sysdate, rownum. Razne vrste spajanja tablica. Grupiranje i agregiranje.
- Napredno grupiranje, ROLLUP, CUBE, grouping.
Korištenje analitičkih funkcija.
Primjeri: različite vrste spoja tablica, demonstracija razlike vanjskog i unutrašnjeg spoja, Grupiranje uz ROLLUP i CUBE opciju.
- Join, pod-upiti i skupovne operacije.
Primjeri analitičke funkcije, demonstracija razlike ROW_NUMBER, RANK i DENSE_RANK, primjeri podupita s različitim operatorima.
- Korištenje ugrađenih funkcija. Formatiranje ispisa datuma.
Primjeri: Podupiti u DML-u, korištenje operatora IN, EXISTS, ANY, ALL, skupovne operacije UNION, UNION ALL, INTERSECT, MINUS. Primjeri korištenja ugrađenih funkcija.
- Korištenje ugrađenih funkcija s fokusom na NVL, DECODE, CASE i LIKE.
Primjeri korištenja funkcija za rad s datumima, brojevima, te tekstualnim atributima. Primjeri korištenja NVL, DECODE, CASE naredbi i LIKE operatora.
- Korištenje hijerarhijskih upita. Multitable insert naredba (uvjetna i bezuvjetna).
Primjeri: Hijerarhijski upiti, multitable insert.
- Merge naredba. Pogledi (with read only, with check option).
Primjeri: "merge" podataka, uvjetni i bezuvjetni insert u više tablica istovremeno, primjeri kreiranja i korištenja pogleda
- Pisanje jednostavnih PL/SQL programa u neimenovanom bloku. Kontrola toka programa.
Primjeri: nekoliko osnovnih neimenovanih programa
- Korištenje case izraza i postavljanje vrijednosti varijabli iz upita.
Petlje.
Primjeri: jednostavni PL/SQL programi - neimenovani blok. Korištenje IF, ELSIF, CASE i petlji.
- Obrada iznimaka. Kursori.
Primjeri: obrada iznimaka, korištenje raznih vrsta petlji, kursorska petlja
- Kreiranje i korištenje korisnički definiranih funkcija.
Primjeri: funkcije, pozivanje funkcija.
- Kreiranje i korištenje procedura.
Primjeri: nekoliko procedura, izvršavanje procedura.
- Kreiranje okidača.
Primjeri: okidači različitih vrsta
- Korištenje naredbi za transakcijsku kontrolu u programu.
Primjeri: primjeri transakcija. Kreiranje indeksa. Korištenje plana izvršavanja.
|
preliminary exam - theory (PT) | - SQL upiti na Oracle bazi (1. do 8. jedinice)
Kolokvij se polaže pismeno. Prolaz na kolokviju: 50% minimalno.
U slučaju jednog nepoloženog kolokvija moguće su dvije nadoknade (ispravci) kolokvija na redovnim ispitnim rokovima.
- PL/SQL programiranje na Oracle bazi (9. do 15. jedinice)
Kolokvij se polaže pismeno. Prolaz na kolokviju: 50% minimalno.
U slučaju jednog nepoloženog kolokvija moguće su dvije nadoknade (ispravci) kolokvija na redovnim ispitnim rokovima.
|
exam - theory (ET) | - Polaže se čitavo gradivo, pismeni ispit. Uvjet za prolaz je minimalno 50% bodova.
|
autonomus learning (AL) | - testovi i kolokviji, konzultacije, samostalni rad i samostalno učenje
|