You are on page 1of 25

Osnove baza podataka

Skup poznatih injenica koje mogu biti zapisane i imaju implicitno znaenje. Kroz
vrijeme se nain pohranjivanja podataka mijenjao, pa je od buenih papirnih traka i
kartica dolo do diskova, CD-ova, DVD-ova.. Ona omoguava da razliiti korisnici vide
razliite slike baze podataka (konkurentan rad), tako da sistem za upravljanje bazom
mora omoguiti korektno auriranje podataka.
Podaci se mogu pisati u klasinim datotekama i datotekama koje su organizovane u
baze podataka.
Baza podataka je dizajnirana i napunjena podacima za specifinu namjenu.
Za svaki skup podataka potrebno je definisati osnovne elemente.
- DBMS: Database management system(softverski sistem za upravljanje bazom podataka)
je skup programa koji omoguavaju nama korisnicima definisanje, kreiranje i koritenje
baze podataka.
- Definisanje baze: specificiranje tipova podataka, struktura podataka i uslova koje
podaci moraju zadovoljavati
- Konstrukcija baze: priprema za pohranjivanje podataka
- Manipulisanje bazom: pretraivanje, auriranje(izmjena, brisanje i upisivanje)

Prednosti baze u odnosu na datoteke:


U datotekama se nalaze samo podaci, a opis podataka u programima. To nije problem kod
baze podataka, gdje se uvaju opisi kao i podaci unutar same baze.
Ako kod datoteka doe do promjene, onda se moraju mjenjati i svi programi koji koriste
tu datoteku, to i nije ba praktino. U bazama podataka, opis podataka smjeten je u emi,
tako da postoji neovisnost programa od podataka.Kod datoteka se ne uvaju podaci o
vezama izmeu podataka, dok se u bazi uvaju.
U datotekama nemamo ni karakteristike nekih podataka, u bazi imamo. Nemogue uvati
nedefinisane podatke u datoteci ali ne i u bazi.
U svim bazama danas mogue je definisati metodu u samoj bazi podataka. Tokom rada
programa, on poziva metodu koja vri operacije nad podacima i rezultate isporuuje
programu.
Rad sa bazom podataka je sigurniji nego rad sa datotekama. Npr. Auriranje i izvrenja se
urade ili do kraja, ili nikako. Kod baze podataka omoguena je kontrola pristupa, i
kompletnosti auriranja. Automatski zapis kopija svih promjena u log datoteke, i Backup
i recovery.

Katalog baze podataka(metapodaci tj. opis podataka): Sadri opis skupova podataka i
njihovih veza, opis atributa svakog skupa, opis pristupnih podataka, opis prava pristupa i
pravila za kontrolu korektnosti vrijednosti svakog polja.
Grafika prezentacija eme naziva se dijagram eme podataka ( ERD dijagram )
DB administrator: odgovoran za autorizaciju pristupa bazi podataka, koordinira i
nadgleda rad baze, odgovoran za vrijeme pristupa, spaavanje i restauriranje podataka.
Dizajnirana baza: definie skupove podataka, atributa, pristupne puteve, veze meu
podacima, uslove tanosti podataka,
- Korisnici: povremeni, neiskusni i sofisticirani korisnici
- sistem analitiari(analiziraju zahtjeve krajnjeg korisnika), aplikacioni programeri, pisci
alata, operatori, i serviseri

Model podataka:
- kolekcija koncepata koji slue za opis strukture(tipovi, odnosi, uslovi) podataka
- Konceptualni model: visoki nivo, koncept blizak korisnicima
- Implementacioni model: detalji o fizikom spremanju podatak
- Fiziki model: niski nivo, kako su smjeteni podaci na eksterni medij, elementi: vrsta
datoteka, veliina datoteka i zona u njima, raspored skupova podataka po datotekama,
nain proirenja i pristupanja..

Modeli bazirani na slogovima:


Relacioni model podataka: veze izmeu slogova ostvarene na osnovu vrijednosti
pojedinih atributa
Mreni model podataka: veze izmeu slogova ostvarene pokazivaima, mogua bilo
kakva veza izmeu slogova
Hijerarhijski model podataka: veze o obliku stabla 1:N (ne moe u obliku mree)
Postoje jo objektni modeli podataka i objektno relacioni modeli podataka(nisu
bazirani na slogovima). // ista podjela vrijedi i za klasifikaciju baza podataka
Podjela broju korisnika: single-user i multiuser baze
Podjela broju lokacija: centralizovane(na jednom raunaru) i distribuirane(na vie
raunara)

Jezici baza podataka:


DDL - data definition language,
SDL - storage definition language(za fizike karakteristike baza),
DML data manipulation language (neproceduralni i proceduralni jezik)
VDL view definition language
DB System utilities:
Loading program za brzo punjenje baze podataka
Backup Program za spaavanje podataka
File reorganization program za reorganizaciju podataka
Performans monitoring programi za nadzor efikasnosti rada baze podataka

Osnovni pojmovi i tipovi veza izmeu tabela:


Entitet: objekat (student, zaposlenik..)
Atribut: osobina objekta (ime, plata..) - ime, tip, treba biti prostog tipa, sloeni se trebaju
razbiti na proste
Veza: veza izmeu entiteta (student upisan na fakultet..) - ostvaruje se pomou
vrijednosti atributa u objektima
Vrste veza su 1:N, 1:1, N:M. Predstavljaju se pomou konektora(roditelj-dijete)

1:N veza znai da kopija primarnog kljua jedne tabele se smjeta u drugu tabelu kao
strani klju, i ne predstavlja klju za tabelu u kojoj je smjeten.

Vrijednost primarnog kljua u tabeli A moe biti povezan minimalno sa jednom i


maksimalno sa jednom vrijednosti primarnog kljua u tabeli B, dok u tabeli B primarni
klju moe biti povezan sa minimum ni jednim a maksimalo sa N primarnih kljueva u

tabeli A. Ako je negdje vrijednost null onda se veza oznaava sa o.


Tabela sa maksimalnim povezivanjem od N veza (roditelj veza) se zove roditelj-tabela.
Tabela sa maksimalnim maksimalnim povezivanjem povezivanjem od 1 veze (dijete veza)
se zove dijete-tabela.

1:1 veza:

Ukoliko je veza neobavezna, zavisnost kljua ne moe biti koritena, jer kombinacija
kljua ne moe biti neobavezna. Za rjeenje se koristi null klju.

N:M veza:
Za ovakav tip veza mora se kreirati trea tabela, koja se zove tabela veze.
U njoj se nalaze kopije primarnih kljueva tabela koje su u vezi, a njen primarni klju je
sastavljen od 2 strana kljua.
Primjer veza izmeu 2 tabele(binarna):

Tabela R(tabela veze) je dijete-tabela za 2 roditelj tabele A i B.

Veza izmeu n tabela(n-arna):

Vie-na-vie primjer:

Objekti u bazi podataka

Imena objekata poinju malim slovom, dugi su od 1 do 30 karaktera, sadre slova,


brojeve, _, $ i #, i ne smiju biti rezervisane rijei.

Kreiranje tabele:
Moramo imati create table privilegiju, jer tabele koje pripadaju drugim korisnicima nisu
vidljive u okviru radne eme baza podataka. Mora se specificirati naziv tabele, naziv, tip i
veliina kolone!

Tabele ORACLE baze podataka


Osnovni tipovi podataka u Oracle DB:

Izrazi:

- Korisnike tabele: kreira i odrava korisnik, sadri njegove podatke


- Data Dictionary: kreirane i odravane od strane Oracle database system, i sadri
informacije o bazi podataka.

- Za prikaz tabela koje je kreirao korisnik koristimo naredbu:


SELECT *FROM ime_tabele.
- Za prikat tipova objekta koristimo:
SELECT DISTINCT tip_objekta FROM ime_tabele,
gdje je tip_objekta zapravo ime kolone koju elimo da prikaemo iz tabele.
- Za katalog koristimo SELECT *FROM ime_kataloga
Ukoliko trebamo dodavati nove kolone, modifikovati postojee, ili definisati default
vrijednosti za nove kolone koristimo ALTER TABLE izraze.
- Dodavanje kolone:
ALTER TABLE ime_tabele ADD ( ime_nove_kolone Tip(veliina));
- Modifikovanje kolone (tip, veliina i dafault-na vrijednost se moe mijenjati):
ALTER TABLE ime_tabele MODIFY(ime_kolone Tip(veliina));
- Brisanje kolone:
ALTER TABLE ime_tabele DROP COLUMN ime_kolone;
- Za oznaavanje jedne ili vie kolona za ne koritenje koristimo SET UNUSED.
DROP UNUSED COLUMNS brie one kolone koje su oznaene kao UNUSED:
ALTER TABLE tabela SET UNUSED(kolona);
- Brisanje tabele:
DROP TABLE ime;
- Mijenjanje imena tabele:
RENAME ime_tabele TO novo_ime;
- Brisanje slogova iz tabele(trankovanje tabele):
TRUNCATE TABLE ime;
// nakon ove komande nije mogue vratiti podatke
- Dodavanje komentara tabelama:
COMMENT ON TABLE ime_tabele IS Komentar;
- Komentare je mogue vidjeti putem sistemskih pogleda putem data dictionary-a:
ALL_COL_COMMENTS
USER_COL_COMMENTS
ALL_TAB_COMMENTS
USER_TAB_COMMENTS

Podjela SQL iskaza:

Osnovni SQL iskazi:

SELECT identificira koje kolone e se koristiti za prikaz, FROM iz kojih tabela.


SQL iskaz moe pisati vie linija, ne mogu se koristiti skraenice kljunih rijei, i nije
case sensitive.
Default-a poravnanja: lijevo datumi i karakterne vrijednosti, a desno numerike
Default-i prikazi naziva kolona i podataka: nazivi velikim, podaci malim slovima.
Aritmetiki izrazi: +, - , *, / (oni koji koriste NULL, prosljeuju kao rezultat opet
NULL)
Null vrijednost: nepoznata, ili nije pronaena vrijendost.

Alijasi za kolone: preimenovanje naziva kolona tokom pisanja iskaza, koristi se kljuna
rije AS.
SELECT ime_kolone AS alijas

FROM ime_tabele;

Operator spajanja: || , daje novu kolonu koja sadri vrijednosti svih spojenih kolona.

- stringove pisati pod jednostrukim navodnicima: string neki


- Eliminacija duplih slogova sa DISTINCT :
SELECT DISTINCT ime_kolone FROM ime_tabele;
- DESCRIBE se koristi za prikazivanje strukture tabele.

Restrikcije i sortiranje
Ogranienje slogova
- Za vraanje slogova prilikom dohvatanja putem upita koristi se WHERE klauzula
- Ona uvijek slijedi nakon SELECT klauzule upita

- Format je [WHERE uslov(i)]


Stringovi i datumi
- Karakterni stringovi i datumi su vrijednosti koji se definiu putem jednostrukih znaka
navoda - ' '.
- Karakterne vrijednosti su case sensitive.
- Default-ni format datuma je 'DD-MON-YY'

Operatori poreenja:
- Osnovni operatori poreenja za uslove su: =(jednako), <>(razliito), >, >=, <, <=
- Takoe postoje i ostali operatori poreenja kao npr:
- BETWEEN a AND b - neka vrijednosti izmeu a i b, gdje su ukljuuje i a i b
- IN (lista vrijednosti) - povezuje neku od vrijednosti definisane u listi
- LIKE - pperator koji poveuje vrijednost na osnovu definisanog paterna
paterni: % - oznaava nula ili vie znakova
_ - oznaava jedan znak
- IS NULL(IS NOT NULL) (nije) jednako NULL vrijednosti
' ' ili 0 - NIJE ISTO to i NULL vrijednost

Logiki operatori:
- AND Vraa TRUE ako sve poredbene komponente vraaju TRUE
- OR Vraa TRUE ako bar jedna poredbena komponenta vraa TRUE
- NOT Vraa TRUE ako je slijedio uvjet FALSE (moe se nalaziti u svakom od
ostalih operatora poreenja odozgo npr. NOT BETWEEN, NOT IN, IS NOT NULL,
NOT LIKE

Pravila prvenstva nad operatorima:


- Najvei prioritet imaju svi operatori poreenja pa iza njih slijedi NOT logiki operator
pa AND pa OR
- Zagradama se mogu udruiti neki uslovi i na taj nain forsirati nova prvenstva
izvravanja

Sortiranje:
- Sortiranje se vri pomou ORDER BY klauzule
- Pie se iza WHERE klauzule

- Format: [ORDER BY ime_kolone(a) nain_sortiranja]


- Imamo dva naina sortiranja:
ASCending za rastue sortiranje (od manje ka veoj vrijednosti)
Ovo je default-no podeena vrijednost pri sortiranju pa ukoliko elimo ovako da
sortiramo ne moramo navoditi u ORDER BY klauzuli
DESCending od opadajue sortiranje (od vee ka manjoj vrijednosti)
- Sortiranje se moe vriti i po alijasu kolone
- Soritranje se moe vriti za sve kolone tabele, pa ak i one koje nisu navede u okviru
SELECT klauzule

Spajanje tabela
Tipovi spajanja:
- Oracle 8i i raniji
- Equijoin
- Non- Equijoin
- Outer join
- Self join
- SQL 1999
- Cross joins
- Natural joins
- Using klauzula
- Full ili outer joins sa obje strane
- Proizvoljan uslov spajanja za outer joins
- Spajanje (JOIN) je spajanje dvije ili vie tabela u okviru jednog upita.
- Podrava uslove spajanja putem WHERE klauzule.

- Format je:

(npr.) [WHERE tabela1.kolona1=tabela2.kolona2]

- Sugerie pisanje prefiksa(naziva tabele) za kolone koje imaju isto ime.

Alijasi za nazive tabela


- Alijasi su zamjenska imena za tabelu
- U upitu se koristi na isti nain kao to bi se koristio i naziv tabele
- Upotrebom alijasa jednostavno je precizirati kojoj tabeli kolona pripada
- Format je [FROM tabela1 t1, tabela2 t2] gdje su t1 i t2 alijasi njihovih tabela

Kartezijanski proizvod
- Kartezijanski proizvod nastaje kada se:
Izostavi uslov spajanja tabela u WHERE klauzuli
Kada je uslov spajanja pogrean
Kada se slogovi prve tabele spajaju sa svim slogovima druge tabele
- Da bi izbjegao Kartazijanski proizvod mora se ukljuiti uslov spajanja u WHERE ili
FROM klauzuli

CROSS JOIN
- CROSS JOIN spajanje daje rezultat unakrsnog spajanja (Kartazijanskog produkta)
dvije tabele.

- Format je [ FORM tabela1 CROSS JOIN tabela2]


- NPR:
SELECT last_name, departement_name
FROM employees
CROSS JOIN departments;

- EQUIJOIN - je spajanje tabela po jednakosti


- NPR:
SELECT ...
FROM emp, dept
WHERE emp.deptno=dept.deptno;
- NON EQUIJOINS je spajanje tabela po nejednakosti
- NPR:
SELECT ...
FROM emp, dept
WHERE emp.sal BETWEEN s.min_sal AND s.max_sal
- SELF JOINS je spajanje tabela sa samom sobom
- NPR:
SELECT ...
FROM emp worker, emp manager
where worker.mgr=manager.empno;

INNER i OUTER JOIN


- INNER naspram OUTER spajaju (?)
- U SQL: 1999, spajanje dvije tabele vraa samo uparene slogove u INNER Join
- OUTER join spajanja dvije tabele je kao i INNER join proireno sa neuparenim
slogovima lijeve (LEFT) ili desne strane tabele (RIGHT)
- FULL OUTER JOIN spajanja dvije tabele je kao spajanje koji vraa sve slogove koji su
rezultat INNER join kao i sve slogove LEFT i RIGHT join-a

NATURAL JOIN
- NATURAL JOIN je bazirano na spajanju dvije tabele po svim poljima koje imaju isti
naziv
- U rezultatu rezultatu iz dvije tabele se biraju redovi koji imaju istu vrijednost u svim
kolonama sa istim nazivom
- Ako kolone sa istim nazivom imaju razliite tipove podataka pojavit e se greka
NPR:
SELECT ...
FROM departments NATURAL JOIN locations;

ON klauzula
- Uslov spajanja kod prirodnog (Natural JOIN) spajanja je osnova za spajanje po
jednakosti po svim kolonama koje imaju isti naziv
- Za specificiranje proizvoljnog uslova ili spajanje po specifinim kolonama koristi se ON
klauzula
- Uslov spajanja je odvojen od drugih uslova pretraivanja

- Format je

[FROM tabela1 t1 JOIN tabela2 t1 ON (t1.kolona1=t2.kolona2)]

Spajanje putem WHERE klauzule


- Format je [FROM tabela1 t1, tabela2 t2 WHERE t1.kolona1=t2.kolona2]

USING klauzula
- Ako kolone imaju ista imena, a razliite tipove, NATURAL JOIN klauzula se moe
zamijeniti sa USING klauzulom koja specificira kolone koje slue za spajanje po
jednakosti. (USING i NATURAL JOIN se uzajamno iskljuuju)
- USING klauzula klauzula se koristi koristi za uparivanje uparivanje po jednoj koloni
kada se u tabelama ima vie kolona sa istim imenom
- Alijas tabela ili naziv tabele se ne koristi pri referenciranju kolona u uslovu spajanja
NPR:
SELECT ...
WHERE employees e JOIN departments d
USING (department_id);

Dodatni uslovi prilikom spajanja tabela


- Za spajanje n tabela potrebno je minimum n-1 uslov spajanja.
- Pored ovih osnovnih i obaveznih uslova pri spajanju tabela mogu se dodati i jo neki
uslovi potebni za specifinije pretraivanje podataka

Kreiranje tabela
- Kreiranje tabele se vri CREATE TABLE klauzulom
- NPR: CREATE TABLE OSOBA (Maticni_broj integer primary key,
Ime Varchar(50),
Prezime Varchar(50), ...)
- Primary key oznaava primarni klju tabele.
- U argumentima koji su navedeni u zagradi mora se navesti samo jedan primarni klju
tabele, ostali kljuevi(atributi) tabele te eventualne reference (kljuevi preko kojih se
povezujemo sa drugim tabelama).

Veza 1:n

CREATE TABLE ODJEL (OdjelID integer primary key,


Naziv Varchar(50),
Adresa Char(40));
CREATE TABLE OSOBA (MaticniBroj Char(13) primary key,
Ime Varchar(30),
DatumRodjenja Date,
OdjelID integer references osoba (OdjelID));

Veza n:m

CREATE TABLE PROIZVOD (ProizvodID integer primary key,


Naziv Varchar(50),
Cijena Integer,
Stanje Integer);
CREATE TABLE NARUDZBA (NarudzbaID integer primary key,
Kupac Varchar(50),
Datum Date);
CREATE TABLE STAVKE_NAR (StavkaID Integer primary key,
ProizvodID Integer references proizvod (ProizvodID),
NarudzbaID Integer references narudzba (NarudzbaID),
Kolicina Integer);

Agregacija je dio od

Specijalizacija

SQL Funkcije
- Dva osnovna tipa SQL funkcija:
- Single-row funkcije
- Multiple-row funkcije

Single-row funkcije
- Prihvataju argumente i vraaju jednu vrijednost
- Vraaju rezultat za svaki izabani red
- Mogu modificirati tip podatka
- Mogu biti ugnijedene
- Format je: [ime_funkcije (kolona(e)|izraz (arg1, arg2,..);]

Funkcije za rad sa karakterima


- Funkcije za konverziju iz malih u velika i obrnuto
- LOWER('SQL Course') -> sql course
- UPPER('SQL Course') -> SQL COURSE
- INITCAP('SQL Course') - > Sql Course
- Funkcije za manipulacije karakterima
- CONCAT(string1, string2 ili kolone) funkcija za spajanje dva karaktera
- SUBSTR('string', od koje pozicije(int), koliko(int)) - koristi se za izdvajanje
podstringa iz stringa koji se prosljeuje kao prvi argument funkcije
- LENGTH(kolona ili 'string') duina stringa
- INSTR(kolona ili 'string', 'ta se pretrauje', odakle se vri pretraivanje(int), koji
karakter u stringu se uzima u obzir prilikom pretrage(int)) - koristi se za pronalaenje
pozicije u stringu koja posjeduje karakter koji se pretrauje
- REPLACE (kolona ili 'string', 'ta mjenja', 's im') - koristi se za zamjenu
odreenog karaktera ili niza karaktera u stringu
- RTRIM i LTRIM(kolona ili 'string', 'karakter') - iz stringa izuzima s lijeve ili desne
strane odreene karaktere definisane putem drugog argumenta funkcije

- LPAD i RPAD(kolona ili 'string', koliko(int), 'ega') - koriste za nadopunjavanje


karakternih vrijednosti do odreene duine karakternim oznakama definisanim kroz
argument funkcije

Funkcije za rad sa brojevima


- ROUND(broj(double), br. dec mjesta(int)) zaokruuje na odreen broj dec. mjesta
- TRUNC(broj(dobule), do kojeg mjesta(int)), - Odbacuje sve vrijednosti do
odgovarajueg decimalnog mjesta
- MOD(br1, br2) - Vraa ostatak od dijeljenja dva broja

Rad sa datumima
- Datumi se pohranjuju u internom numerikom formatu: vijek, godina, mjesec, dan, sat,
minuta, sekunda
- Defaultni ispis datuma je u formatu: DD-MON-YY
- SYSDATE funkcija vraa datum i vrijeme
- Dodavanje ili oduzimanje broja od datuma kao rezultat vraa opet datum sa dodatim/
oduzetim brojem dana
- Oduzimanjem dva datum kao rezultat vraa broj dana izmeu navedena dva datuma
- Funkcije za rad sa datumima (prosljeivanje datuma funkcijama se vri default
formatu, sati u formatu HH:MM:SS a naziv dana 'PUNI NAZIV DANA'
- MONTHS_BETWEEN(datum1, datum2) - Vraa broj mjeseci izmeu dva
datuma
- ADD_MONTHS(datum, broj_mjeseci) - Dodaje kalendarski mjesec na datum
- NEXT_DAY(datum, dan) - Sljedei dan od specificiranog datuma
- LAST_DAY(datum) - Zadnji dan u mjesecu
- ROUND(datum vrijeme) - Zaokruenje datuma
- TRUNC(datum vrijeme) - Skraivanje datum

Funkcije konverzije
- TO_CHAR(date, 'format datuma') -

- TO_NUMBER(karakteri_koji_se_konverzuju, format) - namjena ove funkcije je


konverzija karaktera u broj
- TO_DATE(niz karaktera, format datuma') - pretvara niz znakova u datumsku vrijednost

NVL Funkcija
- NVL funkcija konvertuje NULL u aktuelnu vrijednost
- Prilikom konverzije NULL vrijednosti aktuelna vrijednost mora biti istog tipa kao i
kolona koja se konvertuje i tipovi podataka moraju odgovarati
- Single-Row funkcije mogu se ugnijedavati na bilo kojem nivou.

Manipulacija podacima
DML Data Manipulation Language
- DML naredbe se izvravaju kada:
Dodajete novi red u tabelu
Modifikujete postojee redove u tabeli
Briete Briete postojee postojee redove iz tabele

INSERT naredba
- Dodavanje novog reda u tabelu koristei INSERT naredbu
- Ovako se moe ubacivati samo jedan red!
- Format: [INSERT INTO naziv_tabele(kolona1, kolona2, kolona3..)

VALUES(vrijednost1, vrijednost2, vrijednost3...]


- Ovo je ubacivanje novog reda koji ima vrijednosti za svaku kolonu
- Karakterni i podaci tipa datum se piu u navodnicima
- Datumi se ubacuju preko funkcije To_Date
- Ubacivanje redova sa NULL vrijednostima:
- Implicitni metod: Izostavljanje kolona iz liste kolona
- Eksplicitna metoda: Navoenje NULL vrijednosti u VALUES dijelu komande

UPDATE naredba
- Auriranje postojeih podataka u tabeli koristei UPDATE naredbu
- Svi redovi se auriraju kada ne postoji WHERE klauzula
- Za auriranje samo odgovorajuih redova, kojim se dodjeljuje odgovarajua vrijednost

za kolunu/kolone tabele, koristi se WHERE klauzula


- NPR:
UPDATE employees
SET last_name = Phenix
WHERE employee_id = 102;
- Integrity constraint error nastaje kada se mijenjaju vrijednosti koji nisu u opsegu
dozvoljenih vrijednosti za navedenu kolonu

DELETE naredba
- Brisanje postojeih podataka u tabeli koristei DELETE naredbu
- Svi redovi se briu kada ne postoji WHERE klauzula, Za brisanje samo odgovarajuih
redova koristi se WHERE klauzula
- NPR:
DELETE FROM departments
WHERE department_name = 'DEVELOPMENT';
- Integrity constraint error greka kada se pokuava brisati red u tabeli u kojoj je prim.
klju referenca na neku drugu tabelu

Kopiranje slogova iz drugih tabela


- Ne koristi se VALUES klauzula
- Broj kolona u insertu mora odgovarati broju kolona u SELECT klauzuli
- NPR:
INSERT INTO managers (id, name, salary, hiredate)
SELECT empno, ename, sal, hiredate
FROM emp
WHERE job = 'MANAGER';

Grupisanje podataka

Grupne funkcije - rade nad skupinom redova i kao rezultat vraaju jedan red.

Tipovi grupnih funkcija: AVG i SUM(za numerike podatke), COUNT(ukupan broj


slogova sa ne NULL vrijednostima), MAX, MIN(za vrijednosti), STDDEV, VARIANCE

- NVL: forsira da grupne funkcije prihvate i null vrijednost kolona.


- GROUP BY: za podjelu redova u tabeli na manje grupe

Greke pri koritenju group funkcija:


- Sve kolone ili izrazi iz SELECT liste koji nisu grupne funkcije moraju biti u GROUP
BY klauzuli.
- Ne moe se koristiti u WHERE klauzuli;

Having klauzula:

Podupiti

- Podupit se izvrava jednom prije izvravanja glavno upita, i njegovo izvrenje se koristi
u osnovnom upitu.
- Potrebno je staviti podupit u zagrade, na desnoj strani operatora usporedbe, i on ne
smije sadrati ORDER BY klauzulu.

Vrste podupita:

Single-row:
- Vraa samo jedan red
- Koriste se operatori: =, >=, <=, <, > i !=
Multiple-row:
- vraaju vie redova
- koriste se operatori: IN, ANY, ALL

Grupne funkcije u podupitima:

Podupiti vie kolona:


- Podupiti vie kolona mogu se korisiti u SELECT, FROM, WHERE i HAVING klauzuli
- Mogu vratiti vie od jedne kolone iz unutranjeg upita prema vanjskom upitu

Upareni parovi podataka:


- Vrijednosti iz vie kolona u unutranjem upitu(podupitu) se poredi sa parovima
podataka osnovnog upita, a ne njihove pojedinane vrijednosti.
Neupareni parovi podataka:
- Vrijednosti iz vie kolona u unutranjem upitu se poredi sa pojedinanim vrijendostima
u ostanovom upitu, a ne sa parovima podataka.
NULL vrijednosti: u osnovnom upitu, i u podupitu poreenje sa NULL vrijednou nee
vratiti nikakav rezultat. I NULL vrijendosti se ne mogu porediti sa =, >=, <= itd..

SET operatori
UNION operator
- UNION operator vraa rezulate iz oba upita nakon ega eliminie duple redove
- NPR:
SELECT emp_id, job_id
FROM employees
UNION(ALL)
SELECT emp_id, job_id
FROM job_history
- UNION ALL operator vraa rezulate iz oba upita ukljuujui i duplikate

INTERSECT operator
- INTERSECT operator je kao presjek skupova - vraa elemente koje se nalaze u obje
tabeletj. duplikate
- NPR:
SELECT emp_id, job_id
FROM employees
INTERSECT
SELECT emp_id, job_id
FROM job_history

MINUS operator
- MINUS operator je kao razlika skupova - za dobijanje svih redova iz prvog upita kojih
nema u drugom upitu

- NPR:

SELECT emp_id, job_id


FROM employees
MINUS
SELECT emp_id, job_id
FROM job_history

- Rezultat se sortira u rastuem poretku osim u UNION ALL operatoru

Kontrola pristupa
Privilegije
- Sistemske privilegije: privilegije za pristup bazi podataka
- Privilegije objekata: manipulacija sa sadrajem objekata u bazi podataka

Sistemske privilegije
Privilegija DBA je jedna od najaveih privilegija u bazi podatka koji ima prava da:
Kreiran novog korisnika u sistemu
Brie postojeeg korisnika sistema
Brie tabele
Vri backup tabela
- Kreiranje korisnika se izvrava putem CREATE USER iskaza
- NPR:
CREATE USER user
IDENTIFIED BY password
- Programer bi trebao posjedovati sljedee privilegije u bazi podataka:
CREATE SESSION
CREATE TABLE
CREATE SEQUENCE CREATE VIEW
CREATE PROCEDURE
- Sistemke privilegije dodjeljuju se novo kreiranom korisniku u sistemu putem GRANT
iskaza
- NPR:
GRANT create table, create squence, create view
TO user

Uloge

- Kreiranje uloge:
CREATE ROLE manager;
- Odobravanje privilegija ulogama:
GRANT create table, create view
TO manager
ili
GRANT manager TO user1, user2..
- Promjena lozinke:
ALTER USER user1
IDENTIFIED BY password

Privilegije nad objektima baze podataka


- Privilegije nad objektima variraju od objekata do objekata baze podataka
- Vlasnik objekta ima sve privilegije nad objektom
- Vlasnik objekta moe dodjeljivati posebne privilegije nad datim objektom drugim
korisnicima sistema
- NPR:
GRANT privilegija(kolona)
ON objekat
TO user ili PUBLIC
[WITH GRANT OPTION];
Ukidanje privilegija
- Pozivom REVOKE izraza oduzimaju se dodijeljene privilegije drugim korisnicima
sistema
- Privilegija dodijeljene putem WITH GRANT OPTION e takoer biti oduzete od
drugih korisnika u sistemu
- NPR:
REVOKE privilegija(e)
ON objekat
FROM user

You might also like