Professional Documents
Culture Documents
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
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,
);
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.
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 :
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:
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:
Povezivanje tabela
slijedee komande:
foreign key (GlumacID) references glumci,
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
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
11
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
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.
15