You are on page 1of 15

Sadraj

1. Uvod........................................................................................................................................2
2. Definisanje problema..............................................................................................................3
3. Kreiranje baze.........................................................................................................................5
4. Zavisnosti izmeu tabela.........................................................................................................7
5. Dijagram baze podataka..........................................................................................................8
5. Osnovne komande SQL-a.....................................................................................................12
6. Testiranje baze podataka.......................................................................................................13
7. Zakljuak...............................................................................................................................15
8. Literatura...............................................................................................................................16

1. Uvod
Pojam baze podataka pojavio se krajem ezdesetih godina i oznaavao je skup
meusobno povezanih podataka koji se uvaju zajedno, i meu kojima ima samo onoliko
ponavljanja koliko je neophodno za njihovo optimalno koritenje pri korisnikom radu.
Podatci se pamte tako da budu nezavisni od programa koji ih koristi, i struktuiraju tako
da je omoguen rast baze. Za efikasan rad sa podatcima, i odravanje konzistetnog stanja baze
koristi se specifian programski proizvod sistem za upravljanje bazama podataka (SUBP
DBMS, Data Base Manipulation System). Baze podataka, zajedno sa SUBP ine sistem baza
podataka. U razvoju sistema baza podataka moe se uoiti nekoliko generacija SUBP, koje su
postojale na tritu, ili su smjenjivale jedna drugu. Razlikuju se u modelima podataka, koja se
u implementaciji odgovarajuih SUBP reflektuje na efikasnost pristupa podatcima i obrade
podataka. Tako se u prve dvije generacije svrstavaju mreni i hijerarhijski sistemi, koji su
gotovo potpuno prevazieni osamdesetih godina, relacionom tehnologijom kao treom
generaciom SUBP ( relacioni SUBP RSUBP ).
Ogranienja relacione tehnologije odnose se na neadekvatnu podrku aplikacija nad
podatcima kompleksnijim od podataka u poslovnoj obradi. Zato se relacioni model proiruje
konceptima objektnog modela.
Osnovna komponenta sistema za upravljanje relacionim bazama podataka koju korisnik
vidi jeste relacioni upitni jezik, tj. sredstvo kojim korisnik komunicira sa bazom podataka.
Jedan od upitnih jezika jeste SQL koji predstavlja standard relacionih jezika.
U ovome objanjene e biti osnove SQL-Expres na konkretnom primjeru.

2. Definisanje problema
Predpostavka je da postoji izvjesna kolekcija filmova, te se zakljuuje iznajmljivanjem
istih mogue je ostvariti izvjesnu finansijsku dobit. Pored ostalih problema, namee se i
2

problem evidencije. Jasno je da se evidencija moeme vriti koristei papir i olovku, ali zato
ne iskoristiti blagodati koje nosi 21. vijek.
Prije nego se zapone izrada baze podataka mora se ustanoviti ta baza podataka treba
da ini:
1. Vodi evidenciju filmova (naslova)
2. Vodi evidenciju lanova
3. Vodi evidenciju izdavanja filmova lanovima

Dakle baza bi trebala voditi evidenciju lanova, s toga je potrebno kreirati tablicu
lanovi, isto je potrebno uiniti i za filmove, i na kraju trebat e tablica u kojoj e se voditi
evidencija o iznajmljivanju. Da baza bude jos interesantnija, dodata e biti i lista glumaca i
anrova pojedinih filmova. Dakle postojat e entiteti :
1.
2.
3.
4.
5.

Filmovi
lanovi
Evidencija
KategorijaFilma
Glumci

Svaki od navedenih entiteta treba imati svoje atribute i to kako slijedi:


1. Filmovi: IDFilma, Naziv, GlumacID, arnID, Cijena i OpisFilma
2. lanovi: IDlana, Ime, Prezime, Adresa i BrojTelefona
3. Evidencija: IDEvidencije, lanID, DatumIzdavanja, DatumVraanja,FilmID i
Naplatiti KM
4. KategorijaFilma: IDanr i anr
5. Glumci : IDGlumac, Ime, Prezime

3. Kreiranje baze
Prvo je potrebno kreirati bazu. U object exploreru desnim klikom mia na databases i
odabrati opciju create data base (slika 1).

Slika 1

Nakon toga mogue je krenuti sa izradom baze. Potrebno je otvorit new queri i unijeti
slijedei kod:
create table Glumci
(
IDGlumac smallint identity primary key not null,
Ime varchar(20) not null,
Prezime varchar(30) not null,
);
create table Clanovi
(
IDClana smallint identity primary key not null,
Ime nvarchar(20) not null,
Prezime nvarchar(30) not null,
Adresa varchar(50),
BrojTelefona varchar(13),
);
create table KategorijaFilma
(
IDZarn tinyint identity primary key not null,
Zarn varchar(20) not null,
);
create table Filmovi
(
IDFilma smallint identity primary key not null,
Naziv nvarchar(50) not null,
GlumacID smallint,
ZarnID tinyint,
Cijena smallmoney not null,
OpisFilma varchar(4000),
);
create table Evidencija
(
IDEvidencije smallint identity primary key not null,

ClanID smallint,
DatumIzdavanja smalldatetime,
DatumVracanja smalldatetime,
FilmID smallint,
NaplatitiKM smallmoney,
);

Pritiskom na tipku F5 baza podataka je kreirana. Objanjenje koda:


create table kreira tabelu
Ime tabele smallint identity primary key not null, ovaj red govori da podatci uneeni za
ovaj atribut bit e tipa smallint1 , da e svaki novi unos biti uvean za jedan, te da je ovaj
atribut Primarni Klju2, i da ovo polje mora imati neku vrijednost.
Definicija primarnog kljua je [constraint ime] PRIMARY KEY( ime kolone {, ime
kolone}). Takoer navest u i strani klju3 a njegova definicija bi bila : [ constraint ]
FOREIGN KEY ( kolona {, kolona}) REFERENCES odnosna kolona [ ON DELETE efekat]
[ ON UPDATE efekat].
Ostali tipovi podataka koriteni u bazi:

Varchar: promjenjiva duina ne Unicode znakova duine 8000 znakova


Smallmoney : podatci se uvaju sa etri decimalna mjesta a opseg je od

214.748,3648 do +214.748,3648.
Smalldatetime: od 1.11.1900. do 1.6.2079. uz tonost od minute.

Odabir tipa podataka pri izradi baze je od krucielnog znaaja, ne samo radi optimizacije
koritenja memoriskog prostora, ve i radi odreenih operacija koje e se vriti.

4. Zavisnosti izmeu tabela


Poto su u bazi kreirane tabele, izmeu njih potrebno je uspostaviti zavisnosti.
Zavisnosti doprinose obezbjeivanja integriteta podataka koje korisnik unosi u sistem. Izmeu
1 Cijeli broj pohranjen u 2 byte-a
2 Primarni klju je atribut baze podataka koji garantuje da dvije vrste nee biti istovjetne
3 Je polje u tabeli koje se odnosi na primarni klju u drugoj tabeli
5

tabela mogue je uspostaviti tri tipa zavisnosti : jedan prema vie, jedan prema jedan i vie
prema vie. Potrebno je uspostaviti valjane odnose zavisnosti, tako se obezbjeuje:
1. Integritet podataka,
2. Optimalne performance,
3. Te lako koritenje tabela prilikom pravljenja sistemskih objekata.
Zavisnost jedan prema vie je najei tip zavisnosti koji se uspostavlja izmeu tabela
baze podataka. U ovom tipu zavisnosti za slog iz jedne tabele moe postojati mnogo slogova
iz druge tabele. U SQL zavisnost jedan prema vie obiljeava se :

Slika 2 zavisnost jedan prema vie

Zavisnost jedan prema jedan, svakom slogu tabele koja se nalazi na strain jedan te
zavisnosti, odgovara tano jedan slog tabele koja se nalazi na drugoj strain zavisnosti.
Zavisnost jedan prema jedan u SQL se obiljeava:

Slika 3 zavisnost jedan prema jedan

Zavisnost vie prema vie, za slogove u obje tabele postoji vie slogova u drugoj tabeli.
Ovakav odnos treba izbjegavati, a rjeava se umetanjem tablice izmeu odnosa, tako da se
dobiju dva odnosa jedan prema vie. Zavisnost vie prema vie u SQL se obiljeava:

Slika 4 zavisnost vie prema vie

Povezivanje tabela

odnosno odreivanje zavisnosti, moe se praviti umetanjem

slijedee komande:
foreign key (GlumacID) references glumci,

to znai da u tablici koju kreiramo, GlumacID e biti strani klju, a odnosit e se na


primarni klju tablice glumci.
Takoer moe se vriti preko dijagrama baze podataka

5. Dijagram baze podataka


Jedan od naina da se uspostave zavisnosti i njihovo odravanje jeste pomou dijagrama
baze podataka.
U object exploreru otvara se baza podataka i desnim klikom na database diagram
7

odabire se opcija new database diagram ( slika 5).

Slika 5

Nakon sto kliknemo na New Database Diagram, otvorit e se novi prozor na kojem se
nalazi lista tabela nae baze, kliknemo na add tako da dodamo sve tabele (slika 6).

Slika 6

Nakon toga se povezuju tabele. Moramo imati na umu da slijedee pravilo mora biti
zadovoljeno: da bi se dvije tabele spoile, one moraju imati barem jedan isti atribut sa istim
domenom. Vri se spajanje : IDGlumac spajamo sa GlumacID, IDZanr sa ZanrID, FilmID sa
IDFilma, IDClana sa ClanID. Po zavretku trebali bi imati situaciju kao na slici 7.

Slika 7

Iz slike 7 zakljuujemo da tabele u naoj bazi imaju slijedee relacije:


1.
2.
3.
4.

Jedan glumac moe pojaviti se u vie filmova,


Jedna kategorija filma prema vie filmova,
Vie evidencija ka jednom filmu
Vie evidencija ka jednom lanu.

Svakoj zavisnosti koju napravimo treba dodati ime i kratak opis. Na taj nain, kada
zavisnost prikaemo u u prozoru foreign key relationships lakom uoavamo prirodu odabrane
zavisnosti.
Moemo poeti unositi podatke u nau bazu. Za tu ioperaciju koristi se komanda insert
to ija sintaksa ima oblik:
Insert [into] tabela u koju unosimo (atributi,) values (vrijednosti,)
Primjer u tabelu lanovi unjet emo novog lana:
insert into Clanovi (Ime, Prezime,Adresa, BrojTelefona,Maticni)
values ('svjetlana', 'duvnjakovic', 'adresa3', '123123123',
'123123123123');
(1 row(s) affected)

Treba obratiti panju da polja koja smo naveli da su NOT NULL ne smijemo ostaviti
9

praznim i u koliko unosimo podatak tipa integer nije potrebno stavljati .


Nakon zavrenog i ovog koraka, moe poeti testirati nau bazu. To moemo uiniti
preko jednostavnih zahtjeva, ujedno biti e pomenute osnovne komande jezika SQL.

5. Osnovne komande SQL-a


Sql ne pravi razliku izmeu velikih i malih slova to znai da su slijedee dvije naredbe
jednake:
10

select prezime from osoba where ime = Pero


i
SELECT prezime FROM osoba WHERE ime = Pero
Osnovna naredba u SQL je SELECT sa sintaksom select izraz from imetablice. U
naredbi rije izraz zamjenjujemo imenima stupaca koje elimo vidjeti. Pokraj imena stupaca
moemo napisati novo ime u izvjetaju pod kojima ga elimo vidjeti, dok u tablici ne vrimo
nikakve promjene. Takoer moemo upisati neki matematiki izraz ili tekst unutar navodnika.
U sluaju da imamo vie parametara odvajamo ih zarezima. Kontretnu primjenu vidjet emo u
primjerima u slijedeem poglavlju.
Da bi priirili svoje uslove pretraivanja moemo koristiti logike operatore AND, OR i
NOT. Kod sloenijih izraza treba voditi raun o prioritetima tako da slijedi (), */, +-, and, or,
not. Takoer moemo koristiti operatore poreenja <, >, =, != i drugi.
Dalje pomenut u funkcije sakupljanja. U njih spadaju SUM- suma svih vrijednosti,
AVG prosjena vrijednost, COUNT broji redove dobijenih rezultata, MAX- maksimalna
vrijednost u izrazu, MIN minimalna vrijednost u izrazu, imamo jo matematike funkcije,
funkcije za rad na nizovima znakova, funkcije sa rad sa datumima i druge, koje neu posebno
objanjavati u ovom radu.
UPDATE svrha joj je promjena vrijednosti u postojeem redu ili redovima
DELETE- brisanje vrijednosti s tim da naredba delete ne moe obrisati vrijednost iz
jednog polja nego uklanja cijeli red
INSERT unosi podatke u tablicu red po red
ALTER TABLE izmjena tablice

11

6. Testiranje baze podataka


Prikazati sve lanove i njihove podatke:
select * from Clanovi

Prikazati lanove ije ime poinje sa A


select * from Clanovi where ime like 'A%'

Prikazati lanove videoteke iji je lanski broj izmeu 3 i 6:


select Ime, Prezime from Clanovi where IDclana > 3 and IDClana < 6;

Prikazati lanove, filmove koji su zaduili film:


select Clanovi.Ime,Clanovi.Prezime,Evidencija.DatumIzdavanja
from Clanovi
inner join Evidencija on Clanovi.IDClana=Evidencija.IDEvidencije

Prikazati lanove koji su zaduili film, te koliko su ga drali i koliko trebaju platiti u
koliko jedan dan rentanja filma kosta 2 km:

select Clanovi.Ime,Clanovi.Prezime,Evidencija.DatumIzdavanja,
Evidencija.DatumVracanja,
datediff(D,DatumIzdavanja,DatumVracanja) 'Ukupno dana',
datediff(d,datumizdavanja,datumvraanja)*2 'Naplatiti KM'
from Clanovi
inner join Evidencija on Clanovi.IDClana=Evidencija.IDEvidencije
where DatumVracanja != 0

12

Prikazati imena filmova i imena glumaca koji se u njima pojavljuju i grupii po nazivu
filma:
select Filmovi.Naziv, Glumci.Ime,Glumci.Prezime
from (filmovi
inner join glumci on IDGlumac=GlumacID)
group by Filmovi.Naziv, Glumci.Ime, Glumci.Prezime

Prikazati koji glumac i koliko puta se najee pojavljuje u filmovima


select top 1 count(Glumacid) as 'broj' , Glumci.Ime,Glumci.Prezime
from (filmovi
inner join glumci on IDGlumac=GlumacID)
group by Glumci.Ime, Glumci.Prezime
order by broj desc

13

7. Zakljuak
Danas u svijetu postoje mnoge tehnologije za rad sa skladitenim podacima. Izbor prave
tehnologije je veoma bitan za rad konkretne aplikacije. U veini sluajeva baze podataka su
vrlo korisne i, u stvari, omoguavaju nam mnogo vie od obinog provjeravanja prosjeka itd.
Danas se baze podatake koriste u raznim bibliotekama, kolama, videotekama i sl. jer su
pogodnije od gomile papira na kojima svaki dan izraunavamo neto. Uz raunar i baze
podataka posao je bri, vie se isplati i nudi nam vie sigurnosti u tanost rezultata. Tako se uz
baze podataka lako moe napraviti neki program u koji unosimo podatke o iznajmljenim
knjigama, filmovima ili o mjesenoj potronji novca.
Baze podataka danas predstavljaju neizbjean alat u poslovanju svake firme.
jednostavna dostupnost uslovila je da praktino ne postoji firma koja nema neku bazu
podataka, to je pokazano i ovim radom, da se jednostavno moe kreirati baza podataka koja
moe zadovoljiti potrebe prosjenih korisnika.
Napominjem da u ovom radu naveo sam tek osnove relacionih baza podataka i jezika
SQL, s ciljem da zaintrigiram itaoca, te ga podstaknem na samostalan rad i istraivanje, jer i
sam rad proistekao je iz istog. Brojne su mogunosti SQL-a i iskreno vjerujem da ete uivati
istraujui ih.

14

8. Literatura
1.
2.
3.
4.

Uvod u relacione baze podataka Gordana Pavlovi- Laeti


Sql Server 2005 Alison Blater
Beginning SQL Server 2008 for Developers From Novice to Professional
Wiley Microsoft SQL Server 2008 Bible Aug 2009

15

You might also like