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 19/20
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
NastavniciNositelji: Dalibor Bužić, pred., Suzana Divić, pred.
PreduvjetiNema
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)
  1. 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.
  2. 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.
  3. 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
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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
  9. 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.
  10. PLSQL osnove - deklaracija varijabli, tipovi podataka, osnovni delimiteri, struktura PL/SQL bloka. Primjeri: deklaracija i postavljanje varijabli.
  11. 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.
  12. 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
  13. 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.
  14. 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.
  15. Koncept transakcije. Transakcije u Oraclu - commit, rollback, savepoint naredbe. Optimizacija i indeksi. Primjeri: primjeri transakcija. Kreiranje indeksa.
laboratorijske vježbe (L)
  1. 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.
  2. Spajanje tablica. Kreiranje tablice s podacima iz upita. Jednostavno grupiranje i sortiranje. Primjeri: Dual, sysdate, rownum. Razne vrste spajanja tablica. Grupiranje i agregiranje.
  3. 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.
  4. Join, pod-upiti i skupovne operacije. Primjeri analitičke funkcije, demonstracija razlike ROW_NUMBER, RANK i DENSE_RANK, primjeri podupita s različitim operatorima.
  5. 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.
  6. 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.
  7. Korištenje hijerarhijskih upita. Multitable insert naredba (uvjetna i bezuvjetna). Primjeri: Hijerarhijski upiti, multitable insert.
  8. 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
  9. Pisanje jednostavnih PL/SQL programa u neimenovanom bloku. Kontrola toka programa. Primjeri: nekoliko osnovnih neimenovanih programa
  10. 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.
  11. Obrada iznimaka. Kursori. Primjeri: obrada iznimaka, korištenje raznih vrsta petlji, kursorska petlja
  12. Kreiranje i korištenje korisnički definiranih funkcija. Primjeri: funkcije, pozivanje funkcija.
  13. Kreiranje i korištenje procedura. Primjeri: nekoliko procedura, izvršavanje procedura.
  14. Kreiranje okidača. Primjeri: okidači različitih vrsta
  15. Korištenje naredbi za transakcijsku kontrolu u programu. Primjeri: primjeri transakcija. Kreiranje indeksa. Korištenje plana izvršavanja.
kolokvij - teorija (KP)
  1. 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.
  2. 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)
  1. Polaže se čitavo gradivo, pismeni ispit. Uvjet za prolaz je minimalno 50% bodova.
samostalno učenje (SU)
  1. testovi i kolokviji, konzultacije, samostalni rad i samostalno učenje