Naziv predmeta | Programiranje baza podataka |
Detalji | Kod VSITE271 Skr. PBAP ECTS 5 Godina 1 Semester Ljetni semestar Vrsta obvezatni smjera Razina HKO 7 Diplomski studiji E-Learning 0% |
Aktivnosti | DIT zg - Zim 24/25 ECTS Jedinice Sati Svega P 1 15 2 30
A 0 0 0 0
L 1 13 2 30
S 0 0 0 0
KA 0 0 0 0
KP 0 2 2 0
PR 0 0 0 0
IP 0 0 0 0
IU 0 1 2 0
SU 3 1 90 90
|
Nastavnici | Nositelji: Dalibor Bužić, v. pred., Siniša Tkalčec, pred. |
Preduvjeti | Nema |
Sadržaj | 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.
|
Ciljevi učenja | Osposobiti studenta za programiranje složenih baza podataka.
|
Ishodi učenja | 1. Primijeniti SQL na Oracle bazi, kreirati tablice i indekse. 2. Primijeniti osnovne naredbe i funkcije, koristiti složene naredbe, skupovne operacije. 3. Obraditi datum i vrijeme, kreirati hijerarhijske upite. 4. Koristiti analitičke funkcije, definirati transakcije. 5. Optimizirati alternativne baze, primijeniti koncept ključ-vrijednost.
|
Sposobnosti | Studenti se obučavaju za napredno korištenje baza podataka.
|
Preporučena literatura | 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).
|
Dodatna literatura | 1. Rick Greenwald, Robert Stackowiak, Jonathan Stern: Oracle Essentials: Oracle Database 11g, O'Reilly Media; 4th edition
|
predavanja (P) | - 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.
|
laboratorijske vježbe (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.
|
kolokvij - teorija (KP) | - 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.
|
ispit - teorija (IU) | - Polaže se čitavo gradivo, pismeni ispit. Uvjet za prolaz je minimalno 50% bodova.
|
samostalno učenje (SU) | - testovi i kolokviji, konzultacije, samostalni rad i samostalno učenje
|