skrip tao bp
TRANSCRIPT
-
7/25/2019 Skrip Tao Bp
1/25
Osnove baza podataka
Skup poznatih injenica koje mogu biti zapisane i imaju implicitno znaenje. Krozvrijeme se nain pohranjivanja podataka mijenjao, pa je od buenih papirnih traka ikartica dolo do diskova, CD-ova, DVD-ova.. Ona omoguava da razliiti korisnici viderazliite slike baze podataka (konkurentan rad), tako da sistem za upravljanje bazommora omoguiti korektno auriranje podataka.
Podaci se mogu pisati uklasinim datotekamai datotekama koje su organizovane ubaze 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 koritenjebaze podataka.
- Definisanje baze:specificiranje tipova podataka, struktura podataka i uslova kojepodaci 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 kodbaze 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 koristetu 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 ovezama izmeu podataka, dok se u bazi uvaju.
U datotekama nemamo ni karakteristike nekih podataka, u bazi imamo. Nemogue uvatinedefinisane podatke u datoteci ali ne i u bazi.
U svim bazama danas mogue je definisati metodu u samoj bazi podataka. Tokom radaprograma, on poziva metodu koja vri operacije nad podacima i rezultate isporuujeprogramu.
Rad sa bazom podataka je sigurniji nego rad sa datotekama. Npr. Auriranje i izvrenja seurade ili do kraja, ili nikako. Kod baze podataka omoguena je kontrola pristupa, ikompletnosti auriranja. Automatski zapis kopija svih promjena u log datoteke, i Backupi recovery.
-
7/25/2019 Skrip Tao Bp
2/25
Katalog baze podataka(metapodaci tj. opis podataka):Sadri opis skupova podataka injihovih 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 inadgleda rad baze, odgovoran za vrijeme pristupa, spaavanje i restauriranje podataka.
Dizajnirana baza:definie skupove podataka, atributa, pristupne puteve, veze meupodacima, 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: vrstadatoteka, 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 vrijednostipojedinih atributa
Mreni model podataka:veze izmeu slogova ostvarene pokazivaima, mogua bilokakva 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(nisubazirani na slogovima). // ista podjela vrijedi i za klasifikaciju baza podataka
Podjela broju korisnika:single-user i multiuser bazePodjela broju lokacija:centralizovane(na jednom raunaru) i distribuirane(na vieraunara)
-
7/25/2019 Skrip Tao Bp
3/25
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 podatakaBackup Program za spaavanje podatakaFile reorganization program za reorganizaciju podatakaPerformans 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 trebajurazbiti na proste
Veza:veza izmeu entiteta (student upisan na fakultet..) - ostvaruje se pomouvrijednosti atributa u objektimaVrste veza su 1:N, 1:1, N:M. Predstavljaju se pomou konektora(roditelj-dijete)
1:N vezaznai da kopija primarnog kljua jedne tabele se smjeta u drugu tabelu kaostrani klju, i ne predstavlja klju za tabelu u kojoj je smjeten.
Vrijednost primarnog kljua u tabeli A moe biti povezan minimalno sa jednom imaksimalno sa jednom vrijednosti primarnog kljua u tabeli B, dok u tabeli B primarniklju moe biti povezan sa minimum ni jednim a maksimalo sa N primarnih kljueva u
-
7/25/2019 Skrip Tao Bp
4/25
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 kombinacijakljua 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 jesastavljen od 2 strana kljua.
Primjer veza izmeu 2 tabele(binarna):
Tabela R(tabela veze) je dijete-tabela za 2 roditelj tabele A i B.
-
7/25/2019 Skrip Tao Bp
5/25
Veza izmeu n tabela(n-arna):
Vie-na-vie primjer:
-
7/25/2019 Skrip Tao Bp
6/25
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 nisuvidljive u okviru radne eme baza podataka. Mora se specificirati naziv tabele, naziv, tip iveliina kolone!
-
7/25/2019 Skrip Tao Bp
7/25
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 sadriinformacije o bazi podataka.
-
7/25/2019 Skrip Tao Bp
8/25
- 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 koristimoSELECT *FROM ime_kataloga
Ukoliko trebamo dodavati nove kolone, modifikovati postojee, ili definisati defaultvrijednosti za nove kolone koristimo ALTER TABLEizraze.
- 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_COMMENTSUSER_COL_COMMENTS
ALL_TAB_COMMENTS
USER_TAB_COMMENTS
-
7/25/2019 Skrip Tao Bp
9/25
Podjela SQL iskaza:
Osnovni SQL iskazi:
SELECTidentificira 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 numerikeDefault-i prikazi naziva kolona i podataka:nazivi velikim, podaci malim slovima.
Aritmetiki izrazi: +, - , *, / (oni koji koriste NULL, prosljeuju kao rezultat opetNULL)Null vrijednost:nepoznata, ili nije pronaena vrijendost.
-
7/25/2019 Skrip Tao Bp
10/25
Alijasi za kolone: preimenovanje naziva kolona tokom pisanja iskaza, koristi se kljunarije 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;
- DESCRIBEse koristi za prikazivanje strukture tabele.
Restrikcije i sortiranje
Ogranienje slogova- Za vraanje slogova prilikom dohvatanja putem upita koristi se WHEREklauzula- 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 znakanavoda -' '.- Karakterne vrijednosti sucase sensitive.- Default-ni format datuma je 'DD-MON-YY'
-
7/25/2019 Skrip Tao Bp
11/25
Operatori poreenja:- Osnovni operatori poreenja za uslove su: =(jednako), (razliito), >, >=,
-
7/25/2019 Skrip Tao Bp
12/25
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 proizvodnastaje 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 iliFROM klauzuli
CROSS JOIN- CROSS JOINspajanje daje rezultat unakrsnog spajanja (Kartazijanskog produkta)dvije tabele.
-Format je[ FORM tabela1 CROSS JOIN tabela2]- NPR: SELECT last_name, departement_nameFROM employees
CROSS JOIN departments;
-
7/25/2019 Skrip Tao Bp
13/25
-EQUIJOIN- je spajanje tabela po jednakosti- NPR: SELECT ...
FROM emp, deptWHERE emp.deptno=dept.deptno;
-NON EQUIJOINS je spajanje tabela po nejednakosti- NPR: SELECT ...
FROM emp, deptWHERE emp.sal BETWEEN s.min_sal AND s.max_sal
-SELF JOINS je spajanje tabela sa samom sobom- NPR: SELECT ...
FROM emp worker, emp managerwhere 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 neuparenimslogovima lijeve (LEFT) ili desne strane tabele (RIGHT)- FULL OUTER JOIN spajanja dvije tabele je kao spajanje koji vraa sve slogove koji surezultat 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 svimkolonama 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]
-
7/25/2019 Skrip Tao Bp
14/25
USING klauzula- Ako kolone imaju ista imena, a razliite tipove, NATURAL JOIN klauzula se moezamijeniti 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 kolonikada 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 nekiuslovi potebni za specifinije pretraivanje podataka
Kreiranje tabela
- Kreiranje tabele se vriCREATE TABLEklauzulom- 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 kljutabele, 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));
-
7/25/2019 Skrip Tao Bp
15/25
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
-
7/25/2019 Skrip Tao Bp
16/25
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 pronalaenjepozicije u stringu koja posjeduje karakter koji se pretrauje
-REPLACE(kolona ili 'string', 'ta mjenja', 's im') - koristi se za zamjenuodreenog karaktera ili niza karaktera u stringu
-RTRIMiLTRIM(kolona ili 'string', 'karakter') - iz stringa izuzima s lijeve ili desnestrane odreene karaktere definisane putem drugog argumenta funkcije
-
7/25/2019 Skrip Tao Bp
17/25
-LPADi RPAD(kolona ili 'string', koliko(int), 'ega') - koriste za nadopunjavanjekarakternih vrijednosti do odreene duine karakternim oznakama definisanim krozargument 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 doodgovarajueg 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-SYSDATEfunkcija 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 defaultformatu, sati u formatu HH:MM:SS a naziv dana 'PUNI NAZIV DANA'
-MONTHS_BETWEEN(datum1, datum2) - Vraa broj mjeseci izmeu dvadatuma
-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') -
-
7/25/2019 Skrip Tao Bp
18/25
-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 konvertujeNULLu aktuelnu vrijednost- Prilikom konverzije NULL vrijednosti aktuelna vrijednost mora biti istog tipa kao ikolona koja se konvertuje i tipovi podataka moraju odgovarati
- Single-Row funkcije mogu seugnijedavatina 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
-
7/25/2019 Skrip Tao Bp
19/25
za kolunu/kolone tabele, koristi se WHERE klauzula- NPR: UPDATE employees
SET last_name = PhenixWHERE 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 odgovarajuihredova 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 empWHERE job = 'MANAGER';
Grupisanje podataka
Grupne funkcije- rade nad skupinom redova i kao rezultat vraaju jedan red.
-
7/25/2019 Skrip Tao Bp
20/25
Tipovi grupnih funkcija: AVG i SUM(za numerike podatke), COUNT(ukupan brojslogova 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
-
7/25/2019 Skrip Tao Bp
21/25
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 koristiu osnovnom upitu.
- Potrebno je staviti podupit u zagrade, na desnoj strani operatora usporedbe, i on nesmije sadrati ORDER BY klauzulu.
-
7/25/2019 Skrip Tao Bp
22/25
Vrste podupita:
Single-row:
- Vraa samo jedan red
- Koriste se operatori: =, >=,
-
7/25/2019 Skrip Tao Bp
23/25
Upareni parovi podataka:
- Vrijednosti iz vie kolona u unutranjem upitu(podupitu) se poredi sa parovimapodataka osnovnog upita, a ne njihove pojedinane vrijednosti.
Neupareni parovi podataka:
- Vrijednosti iz vie kolona u unutranjem upitu se poredi sa pojedinanim vrijendostimau ostanovom upitu, a ne sa parovima podataka.
NULL vrijednosti:u osnovnom upitu, i u podupitu poreenje sa NULL vrijednou neevratiti nikakav rezultat. I NULL vrijendosti se ne mogu porediti sa =, >=,
-
7/25/2019 Skrip Tao Bp
24/25
- NPR: SELECT emp_id, job_idFROM employeesMINUS
SELECT emp_id, job_idFROM 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 privilegijePrivilegija 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 putemCREATE 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 GRANTiskaza- NPR: GRANT create table, create squence, create view
TO user
-
7/25/2019 Skrip Tao Bp
25/25
Uloge
- Kreiranje uloge:CREATE ROLE manager;
- Odobravanje privilegija ulogama:GRANT create table, create view
TO manager
iliGRANT 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 drugimkorisnicima sistema- NPR: GRANT privilegija(kolona)
ON objekatTO user ili PUBLIC
[WITH GRANT OPTION];
Ukidanje privilegija
-Pozivom REVOKE izraza oduzimaju se dodijeljene privilegije drugim korisnicimasistema- Privilegija dodijeljene putem WITH GRANT OPTION e takoer biti oduzete oddrugih korisnika u sistemu- NPR: REVOKE privilegija(e)
ON objekat
FROM user