Professional Documents
Culture Documents
Skrip Tao BP
Skrip Tao BP
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)
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..
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.
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):
Vie-na-vie primjer:
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!
Izrazi:
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.
Restrikcije i sortiranje
Ogranienje slogova
- Za vraanje slogova prilikom dohvatanja putem upita koristi se WHERE klauzula
- Ona uvijek slijedi nakon SELECT klauzule upita
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
Sortiranje:
- Sortiranje se vri pomou ORDER BY klauzule
- Pie se iza WHERE 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:
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.
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
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);
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
Veza n:m
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,..);]
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') -
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..)
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
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
Grupisanje podataka
Grupne funkcije - rade nad skupinom redova i kao rezultat vraaju jedan red.
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
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:
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