You are on page 1of 32

OSNOVE SQL

Predmet:

INFORMACIONI SISTEMI II

Predava:
dr Miroslav Medenica
1

OPISIVANJE REALNOG SVETA

OBJEKAT POSMATRANJA
ENTITET - PREDSTAVLJANJE REALNOG SVETA DISKRETNIM
VREDNOSTIMA.
SVOJSTVA ENTITETA
IME ENTITETA(PREZIME, PLATA)
VREDNOST ENTITETA(ALAGIC, 16000)
ATRIBUTI-SVE VREDNOSTI ODREENOG SVOJSTVA(MESTO) INE
SKUPINU POD JEDNIM IMENOM(PANCEVO, BEOGRAD)
DOMEN - SKUP SVIH MOGUIH VREDNOSTI ODREENOG ATRIBUTA
VREDNOST U DOMENU SE JEDNOM JAVLJA

KLJUC ENTITETA - ATRIBUT IDENTIAN SA SVOJIM DOMENOM


PODACI - VREDNOSTI POJEDINIH ATRIBUTA KOJI SE UNOSE U
MEMORIJU
BAZA PODATAKA - UNOS PODATAKA ZA JEDAN ILI VIE SKUPINA
ENTITETA
DATOTEKE - PRODUKT IZOLOVANO RAZVIJENIH APLIKACIJA
RENDUDANSA PODATAKA

DEFINICIJA BAZE PODATAKA

Baza podataka je zbirka uzajamno povezanih


podataka, koji su memorisani sa kontrolisanom
redundansom, da bi optimalno sluile razliitim
aplikacijama. Podaci su memorisani nezavisno
od programa, koji ih koriste. Za dodavanje
novih podataka i modificiranje ili pretraivanje
postojeih podataka koriste se zajednicki i
kontrolisani pristupi."

SISTEM ZA UPRAVLJANJE BAZAMA


PODATAKA (SUBP)

MEMORISANJE I ODRZAVANJE PODATAKA (DDL)


MANIPULISANJE PODACIMA (DML)
LOGIKA STRUKTURA
FIZIKA STRUKTURA
DIZAJN BAZE PODATAKA
EKSTERNI-POGLED KORISNIKA NA BAZU PODATAKA
LOGIKA STRUKTURA - LOGIKI POGLED NA BP
MODEL PODATAKA
MODEL PROCESA
OMOGUUJE SE NEZAVISNOST PODATAKA U ODNOSU NA
FIZIKI DIZAJN
FIZIKA STRUKTURA-INTERNI POGLED NA PODATKE
4

RELACIJE

RADNICI(SIFRAR, PREZIME, DATUMZ)

RELACIONA BAZA PODATAKA - ODNOSI IZMEU


PODATAKA U OBLIKU DVODIMENZIONIH TABELA

K O L O N E - SADRE SAMO VREDNOSTI JEDNOG DOMENA


R E D - RAZLIKUJU SE IZMEDJU SEBE
K L J U RELACIJE - ATRIBUT KOJI JEDNOZNACNO
IDENTIFIKUJE RED

KRITERIJUMI ZA OCENU RELACIONIH SUBPA 1/4


1. Struktura baze podataka se na logikom nivou predstavlja samo
tabelama.
2. Svaki podatak u relacionoj bazi podataka dostupan je preko
kombinacije imena tabele (relacije), vrednosti primarnog kljua i
imena kolne (atributa). (Bez unapred zadatih pristupnih puteva i
bez rekurzije ili iteracije).
3. Specifican indikator (razlicit od "blanka", "praznog" niza
karaktera, nule ili bilo kog broja) koristi se za predstavljanje nula
vrednosti, bez obzira na tip podatka. Sistem takoe podrava i sve
operacije sa nula vrednostima bez obzira na tip podataka.
4. Sistem poseduje katalog (renik) podataka koji se logiki
predstavlja na isti nacin kao i sama baza podataka, tako da
korisnik moe da koristi isti jezik da bi pristupio ovim meta
podacima.
6

KRITERIJUMI ZA OCENU RELACIONIH SUBPA 2/4


5. Bez obzira koliko jezika i naina korienja terminala sistem
podrava, mora posedovati barem jedan jezik ije se naredbe
mogu izraziti kao niz karaktera sa dobro definisanom sintaksom i
koji podrzava: (1) definiciju podataka, (2) definiciju pogleda, (3)
manipulaciju podatka, interaktivno i kroz programe, (4) definiciju
pravila integriteta, (5) autorizaciju (sigurnost), (6) granice
transakcija (BEGIN, COMMIT, ROLLBACK).
6. Sistem poseduje efikasan algoritam pomou koga moe da odredi,
za svaki definisani pogled, u trenutku njegovog definisanja, da li
se i koje operacije odravanja mogu da primene na taj pogled.
Rezultat ovoga algoritma se smesta u katalog baze podataka.

KRITERIJUMI ZA OCENU RELACIONIH SUBPA 3/4


7. I nad baznim relacijama i nad pogledima mogu se izvravati ne
samo operacije pretraivanja, ve i operacije odravanja BP.
8. Aplikacioni program i interaktivna komunikacija ostaju
neizmenjeni kada se promeni fizika organizacija baze ili fiziki
metod pristupa.
9. Aplikacioni program i interaktivna komunikacija ostaju
nepromenjene kada se bilo koje promene, koje ne menjaju
odgovarajuci sadraj tabele, unesu u baznu tabelu.

KRITERIJUMI ZA OCENU RELACIONIH SUBPA 4/4


10. Pravila integriteta se definiu u okviru definicije baze podataka i
uvaju se u katalogu. (Ne implementiraju se kroz aplikacione
programe).
11. Sve navedene karakteristike su nezavisne od distribucije baze
podataka.
12. Ako relacioni sistem poseduje ili moe da radi sa nekim jezikom
tree generacije u kome se obrauje jedna n-torka u jednom
trenutku vremena, kroz taj jezik se ne mogu zaobii pravila
integriteta zadana preko samog relacionogjezika.

OGRANIENJA U RELACIONOM MODELU

INTEGRITET ENTITETA vezan je za atribute koji su primarni


klju i zahteva od relacije NON NULL vrednosti.
REFERENCIJALNI INTEGRITET vezan je za postojanje
spoljanjeg kljua (SIFRAP u relaciji RADNICI) za neki baznu
relaciju(RADNICI) koji ovu relaciju povezuje sa nekom drugom
baznom
relacijom
(PREDUZEC),
preko
primarnog
kljua(SIFRAP) i tada svaka vrednost SIFRAP iz relacije
RADNICI mora biti jednaka nekoj vrednosti SIFRAP u relaciji
PREDUZEC ili e biti NULL.
Referencijalni integritet obezbedjuje korektno povezivanje
objekata koji su predstavljeni u relacionom modelu

10

UVOD U SQL
Standardni jezik za upite i manipulaciju sa podacima
Structured Query Language
Postoje mnogi standardi:
ANSI SQL
SQL92 (SQL2)
SQL99 (SQL3)
Prodavci podravaju razliite varijente gore navedenih (PL SQL...)
Ovde e se prezentovati ono to je zajednika osnova

11

SQL

Data Definition Language (DDL)

Data Manipulation Language (DML)

Kreiranje/menjanje/brisanje tabela i njenih atributa


Upiti nad jednom ili vie tabela.
Insertuje/brie/modifikuje podatke u tabelama

Transact-SQL

Ideja: paketi sekvenci SQL naredbi server


Pregled.

12

PODACI U SQL
1.
2.

Osnovni podaci, tipovi podataka


Tabele koje su izgraene od osnovnih tipova

13

TIPOVI PODATAKA U SQL

Karakteri:

BIGINT, INT, SMALLINT, TINYINT


REAL, FLOAT -- razliitih preciznosti
MONEY

Vreme i datumi:

-- fiksne duine
-- promenljive duine

Brojevi:

CHAR(20)
VARCHAR(40)

DATE
DATETIME

-- SQL Server

Ostalo
14

Naziv tabele

Attribute names

TABELE U SQL
Proizvodi
Naziv

Cena

Kategorija

Proizvodjac

Windows XP

$119.99

Software

Microsoft

PhotoShop CS

$429.99

Software

Adobe

Matina ploa

$149.99

Hardware

Asus

Monitor

$253.99

Hardware

Samsung

Vrste ili kolone

15

OSNOVNO O TABELAMA 1/2

Slog = rekord

Tabela = set rekorda

Ogranienje: svi atributi su osnovnih tipova


Kao lista
ali neureena: nema first(), nema next(), nema last().

Nema ugnjedenih tablea, dozvoljene su samo


ravne tabele!

Videe se kasnije kako se kompleksne strukture


dekomponnuju u vie ravnih tabela.

16

OSNOVNO O TABELAMA 2/2


ema (schema) tabele je naziv tabele i pripadajui
atributi
Proizvodi(Naziv, Cena, Kategorija, Proizvodjac)

Klju (key) je atribut ije su vrednosti jedinstvene;


mi emo podvlaiti klju

Proizvodi(Naziv, Cena, Kategorija, Proizvodjac)

17

SQL UPIT (QUERY)

Osnovna forma: (koja moe biti proirena mnogim


uslovima i ogranienjima)
SELECT atribiti
FROM relacija (verovatno viestrukih, povezanih)
WHERE uslovi (selekcije)

18

JEDNOSTAVAN SQL UPIT


Proizvodi

Naziv

Cena

Kategorija

Proizvodjac

Windows XP

$119.99

Software

Microsoft

PhotoShop
CS

$429.99

Software

Adobe

Matina
ploa

$149.99

Hardware

Asus

Monitor

$253.99

Hardware

Samsung

Naziv

Cena

Kategorija

Proizvodjac

Windows XP

$119.99

Software

Microsoft

PhotoShop
CS

$429.99

Software

Adobe

SELECT *
FROM Prozvodi
WHERE Kategorija=Software

selekcija

19

OPERATORI
Aritmetike operacije
* mnoenje
- oduzimanje
+ sabiranje
/ deljenje

Where operacije
= jednako
> vee od
>= vee ili jednako
< manje
<= manje ili jednako
<> nije jednako

20

JEDNOSTAVNI SQL UPITI


Proizvodi

Naziv

Cena

Kategorija

Proizvodjac

Windows XP

$119.99

Software

Microsoft

PhotoShop
CS

$429.99

Software

Adobe

Matina
ploa

$149.99

Hardware

Asus

Monitor

$253.99

Hardware

Samsung

SELECT Naziv, Cena, Proizvodjac


FROM Proizvodi
WHERE Cena > 200
selekcija i
projekcija

Naziv

Cena

Proizvodjac

PhotoShop
CS

$429.99

Adobe

Monitor

$253.99

Samsung
21

NOTACIJA SQL UPITA


Input ema

Proizvod(Naziv, Cena, Proizvod, Proizvodjac)

SELECT Naziv, Cena, Proizvodjac


FROM Proizvodi
WHERE Cena > 200
Answer(Naziv, Cena, Proizvodjac)

Output ema
22

SELEKCIJA
ta ide sa WHERE uslovom:
x = y, x < y, x <= y, itd.

Za brojeve ima uobiajeno matematiko znaenje


Za CHAR i VARCHAR: leksikko ureivanje

Konverzija izmeu CHAR i VARCHAR

Za datum i vreme hronoloki poredak

Obrazac uporeivanja stringova: s LIKE p (next)

23

IZBOR SPECIFICIRANIH REDOVA WHERE


KLAUZULA

operatori ranga (BETWEEN i NOT BETWEEN),


liste (IN, NOT IN),
uzorci (LIKE i NOT LIKE),
nepoznate vrednosti (IS NULL i IS NOT NULL),
viestruki uslovi pretraivanja (AND,OR).

SELECT *
FROM Proizvodi
WHERE cena BETWEEN 200 AND 400
SELECT *
FROM Proizvodi
WHERE cena IN (100,200,300,400)

24

LIKE OPERATOR

s LIKE p: obrazac uporeivanja stringova


p moe da bude jedan od dva specijalna simbola

% = bilo koja sekvenca karaktera


_ = bilo koji pojedinani karakter

Proizvodi(Naziv, Cena, Proizvod, Proizvodjac)


Selekcija svih proizvoda ije ima sadri re ploa:
SELECT *
FROM Proizvodi
WHERE Naziv LIKE %ploa%

25

ELIMINISANJE DUPLIKATA
Kategorija
Software

SELECT Kategorija
FROM Proizvodi

Software
Hardware

Hardware

Uporediti sa:
SELECT DISTINCT Kategorija
FROM Proizvodi

Kategorija
Software

Hardware

26

FUNKCIJE SA KARAKTERIMA

LOWER LOWER(ime)
UPPER UPPER(ime)
INIT CAP INIT CAP(ime)
LPAD LAPD(ime, 12, *)=********sava
RPAD RPAD(IME, 12,.)=sava..
SUBSTR SUBSTR(Windows,2,5)=indow
INSTR INSTR(Windows,4)=d
LTRIM LTRIM(Windows,Wi)=dows
SOUNDEX SOUNDEX(Sava)
LENGTH LENGTH(Sava)=4
TRANSLATE TRANSLATE(Sava,a,i)=Sivi

27

FUNKCIJE SA BROJEVIMA

ROUND()
TRUNC()
SIGN()
FLOR()
POWER()
SQRT()
ABS()
MOD()
LOG()
LOG()
SIN()
COS() .

28

FUNKCIJE SA DATUMIMA
MONTHS_BETWEEN(01-JAN-05,SYSDATE)
ADD_MONTHS(SYSDATE,3)
LAST_DAY(SYSDATE)

29

UREIVANJE REZULTATA 1/3


SELECT Naziv, Cena, Proizvodjac
FROM Proizvodi
WHERE Kategorija=Software AND Cena > 200
ORDER BY Cena, Naziv
Ureivanje je uvek po rastuem redosledu, sem ukoliko se stavi
DESC kljuna re, onda je po opadajuem redosledu.
Ureivanje se vri po prvom atributu sa ORDER BY liste,
zatim po drugom itd.
30

UREIVANJE REZULTATA 2/3


SELECT Kategorija
FROM Proizvodi
ORDER BY Naziv

Naziv

Cena

Kategorija

Proizvodjac

Windows XP

$119.99

Software

Microsoft

PhotoShop
CS

$429.99

Software

Adobe

Matina
ploa

$149.99

Hardware

Asus

Monitor

$253.99

Hardware

Samsung

?
31

UREIVANJE REZULTATA 3/3


SELECT DISTINCT Kategorija
FROM Proizvodi
ORDER BY Kategorija

Kategorija

Hardware
Software

Uporedi sa:
SELECT DISTINCT Kategorija
FROM Proizvodi
ORDER BY Naziv

?
32

You might also like