8/21/2019 Goran Milic Baze Podataka Seminarski Rad
1/19
SVEUČILIŠTE/ UNIVERZITET VITEZ U TRAVNIKU
FAKULTET POSLOVNE INFORMATIKE U TRAVNIKU
TRAVNIK
GORAN MILIĆ
BAZA PODATAKA – HONORARI AUTORA MAGAZINA INFO
SEMINARSKI RAD
TRAVNIK, 2012.
8/21/2019 Goran Milic Baze Podataka Seminarski Rad
2/19
SVEUČILIŠTE/ UNIVERZITET VITEZ U TRAVNIKU
FAKULTET POSLOVNE INFORMATIKE U TRAVNIKU
TRAVNIK
BAZA PODATAKA – HONORARI AUTORA MAGAZINA INFOSEMINARSKI RAD
IZJAVA:
Ja, Goran Milić, student Sveučilišta/Univerziteta „VITEZ“ Travnik, Index broj:
FIP 0020/10 DIT, odgovorno i uz moralnu i akademsku odgovornost
izjavljujem da sam ovaj rad izradio potpuno samostalno uz korištenje citirane
literature i pomoć asistenta odnosno profesora.
Potpis:
Predmet: BAZE PODATAKA
Mentor: Prof. dr Zoran Avramović
Asistent: Mr Mahir Zaimović
Student: Goran Milić
Broj indeksa: FPI 0020/10DIT
Smjer: Informacijske tehnologije
TRAVNIK, APRIL 2012.
8/21/2019 Goran Milic Baze Podataka Seminarski Rad
3/19
SADRŽAJ
1 UVOD .................................................................................................................... 1
1.1 Predmet, objekt i cilj projektnog zadatka ....................................................... 1
1.2 Korišteni alati i tehnologije............................................................................. 1
1.3 Struktura rada .................................................................................................. 1
2 NAMJENA I OPIS BAZE PODATAKA .............................................................. 2
3 SQL KOD ZA KREIRANJE TABELA BAZE PODATAKA .............................. 3
3.1 Tabela Autori .................................................................................................. 3
3.2 Tabela Magazin............................................................................................... 3
3.3 Tabela Tekstovi............................................................................................... 3
3.4 Tabela Opstine ................................................................................................ 4
3.5 Tabela Banke .................................................................................................. 4
3.6 Tabela Rubrike ................................................................................................ 4
4
ER DIJAGRAMI BAZE PODATAKA ................................................................. 5
5 TIPOVI PODATAKA KORIŠTENI U TABELAMA .......................................... 6
5.1 Tabela Autori .................................................................................................. 6
5.2 Tabela Magazin............................................................................................... 6
5.3
Tabela Tekstovi............................................................................................... 7
5.4 Tabela Opstine ................................................................................................ 7
5.5 Tabela Banke .................................................................................................. 7
5.6
Tabela Rubrike ................................................................................................ 7
6 SQL KOD ZA POPUNJAVANJE TABELA PODACIMA .................................. 8
6.1 Tabela Autori .................................................................................................. 8
6.2 Tabela Magazin............................................................................................... 8
6.3 Tabela Tekstovi............................................................................................... 9
6.4 Tabela Opstine .............................................................................................. 10
6.5 Tabela Banke ................................................................................................ 10
8/21/2019 Goran Milic Baze Podataka Seminarski Rad
4/19
6.6 Tabela Rubrike .............................................................................................. 10
7 SQL UPITI NAD POPUNJENIM TABELAMA ................................................ 11
7.1
Upit #1 .......................................................................................................... 11
7.2 Upit #2 .......................................................................................................... 11
7.3 Upit #3 .......................................................................................................... 12
7.4 Upit #4 – glavni upit ..................................................................................... 13
8 ZAKLJUČAK ...................................................................................................... 14
9 LITERATURA ..................................................................................................... 15
8/21/2019 Goran Milic Baze Podataka Seminarski Rad
5/19
1
1 UVOD
1.1
Predmet, objekt i cilj projektnog zadatka
Cilj ovog projektnog zadatke je kreiranje baze podataka Honorari Autora Magazina
Info korištenjem SQL jezika na platformi MS SQL Server 2008. Baza podataka treba da
sadrži sve relevantne podatke kako bi se mogla voditi evidencija: o objavljenim
tekstovima u magazinu Info, o autorima koji su objavljivali tekstove u magazinu Info, te
o ostvarenim honorarima za napisane tekstove svakog od autora.
1.2
Korišteni alati i tehnologije
Za potrebe realizacije ovog projektnog zadataka korišten je alat Microsoft SQL
Server 2008, koji je instaliran na operativni sistem Microsoft Windows Server 2008.
Pristup bazi podataka za administraciju i menadžment je obavljan sa klijentskog
operativnog sistema Microsoft Windows 2008. Korišteni su alati Microsoft SQL Server
Management Studio i SQL Server Configuration Manager. Za crtanje ER dijagrama
baze podataka korišten je Microsoft Visio 2007.
1.3
Struktura rada
U uvodnom dijelu ovog rada navedeni su predmet i cilj rada, opis korištenih alata i
tehnologija, kao i struktura rada.
U drugom dijelu ovog rada opisana je namjena baze podataka, te su opisane osnovne
karakteristike baze podataka Honorari Autora Magazina Info.
Treći dio rada daje prikaz SQL naredbi korištenih za kreiranje potrebnih tabela u bazi
podataka Honorari Autora Magazina Info.
U četvrtom dijelu je prikazan ER dijagram baze podataka Honorari Autora MagazinaInfo.
Peti dio je posvećen korištenim tipovima podataka, dok se u šestom dijelu navode
SQL komande korištene za popunjavanje baze podataka.
U sedmom dijelu su prikazani SQL upiti koji su zapravo i svrha čitavog kreiranja
baze podataka Honorari Autora Magazina Info.
Na samom kraju dat je popis literature koja je korišten prilikom izrade rada.
8/21/2019 Goran Milic Baze Podataka Seminarski Rad
6/19
2
2 NAMJENA I OPIS BAZE PODATAKA
Baza podataka Honorari Autora Magazina Info ima četiri osnovna zadatka:
• Voenje evidencije o autorima Info magazina;
• Voenje evidencije o objavljenim tekstovima;
• Pregled objavljenih tekstova za pojedinog autora;
• Izračun autorskih honorara na osnovu broja objavljenih stranica i kvalitete
tekstova.
Da bi podržala postavljenje zadatke u bazi Honorari Autora Magazina Info je
kreirano ukupno pet tabela.Tabela Autori je jedna od dvije osnovne tabele. Ona sadrži sve podatke potrebne za
komunikaciju i rad sa autorom: e-mail adresu, telefon, adresu stanovanja, te podatke o
banci radi uplate honorara.
Polje CijenaStranice u ovoj tabeli sadrži visinu honorara za jednu objavljenu stranicu
zavisno od kvalitete tekstova koje autor piše, a što odreuje redakcijski kolegiji.
Primarni ključ ove tabele je AutorID.
Tabela Tekstovi je druga osnovna tabele baze podataka Honorari Autora Magazina
Info. Ona sadrži podatke o objavljenim tekstovima: naslov, podnaslov, rubriku u kojem
je tekst objavljen, te dužinu teksta u stranicama.
Ova tabela sadrži polja AutorTekstaID i ObjavljenoMagazinID, koja služe za
povezivanje za tabelama Autori i Magazin.Primarni ključ ove tabele je polje TekstID.
Tabela Magazin sadrži osnovne podatke o izdanjima magazina: godinu izdanja,
mjesec izdanja i ukupni broj stranica magazina.
Primarni ključ ove tabele je polje MagazinID koje predstavlja broj izdanja, pa se
zbog toga ne generiše automatski već se unosi.
Tri tabele Banke, Rubrike i Opstine su pomoćne i sadrže izdvojene podatke koji se
ponavljaju. Ove tri tabele su rezultat normalizacije baze podataka Honorari Autora
Magazina Info.
8/21/2019 Goran Milic Baze Podataka Seminarski Rad
7/19
3
3 SQL KOD ZA KREIRANJE TABELA BAZE PODATAKA
3.1
Tabela Autori
CREATE TABLE Autori (
AutorID INT NOT NULL PRIMARY KEY IDENTITY,
Ime NVARCHAR(20) NOT NULL,
Prezime NVARCHAR(20) NOT NULL,
Email VARCHAR(20) NOT NULL,
Telefon VARCHAR(12) NOT NULL,
Opstina INT NOT NULL,
Adresa NVARCHAR(30) NOT NULL,
JMBG VARCHAR(15) NOT NULL,
Banka INT NOT NULL,
BrojRacuna VARCHAR(20) NOT NULL,
BrojZiroRacuna VARCHAR(20) NOT NULL,
CijenaStranice FLOAT NOT NULL,
);
3.2
Tabela Magazin
CREATE TABLE Magazin (
MagazinID INT NOT NULL PRIMARY KEY IDENTITY,
Godina VARCHAR(4) NOT NULL,
Mjesec VARCHAR(2) NOT NULL,
UkupnoStrana INT NOT NULL,
);
3.3
Tabela Tekstovi
CREATE TABLE Tekstovi (
TekstID INT NOT NULL PRIMARY KEY IDENTITY,
Naslov NVARCHAR(20) NOT NULL,
Podnaslov NVARCHAR(100) NOT NULL,
8/21/2019 Goran Milic Baze Podataka Seminarski Rad
8/19
4
Rubrika INT NOT NULL,
DuzinaTeksta INT NOT NULL,
AutorTekstaID INT NOT NULL,
ObjavljenoMagazinID INT NOT NULL,
);
3.4 Tabela Opstine
CREATE TABLE Opstine (
OpstinaID INT NOT NULL PRIMARY KEY IDENTITY,
NazivOpstine NVARCHAR(20) NOT NULL,
);
3.5 Tabela Banke
CREATE TABLE Banke (
BankaID INT NOT NULL PRIMARY KEY IDENTITY,
NazivBanke NVARCHAR(20) NOT NULL,
);
3.6 Tabela Rubrike
CREATE TABLE Rubrike (
RubrikaID INT NOT NULL PRIMARY KEY IDENTITY,
NazivRubrike NVARCHAR(20) NOT NULL,
);
8/21/2019 Goran Milic Baze Podataka Seminarski Rad
9/19
5
4 ER DIJAGRAM BAZE PODATAKA
Slika 1 - Shema baze podataka Honorari Info Magazin.
8/21/2019 Goran Milic Baze Podataka Seminarski Rad
10/19
6
5 TIPOVI PODATAKA KORIŠTENI U TABELAMA
5.1 Tabela Autori
Atribut Tip
AutorID integer
Ime nvarchar(20)
Prezime nvarchar(20)
Email varchar(20)Telefon varchar(12)
Opstina integer
Adresa nvarchar(30)
JMBG varchar(15)
Banka integer
BrojRacuna varchar(20)
BrojZiroRacuna varchar(20)
CijenaStranice float
5.2 Tabela Magazin
Atribut Tip
MagazinID integer
Godina varchar(4)
Mjesec varchar(2)
UkupnoStrana float
8/21/2019 Goran Milic Baze Podataka Seminarski Rad
11/19
7
5.3 Tabela Tekstovi
Atribut Tip
TekstID integer
Naslov nvarchar(20)
Podnaslov nvarchar(100)
Rubrika integer
DuzinaTeksta float
AutorTekstaID integer
ObjavljenoMagazinID integer
5.4
Tabela Opstine
Atribut Tip
OpstinaID integer
NazivOpstine nvarchar(20)
5.5
Tabela Banke
Atribut Tip
BankaID integer
Nazivbanke nvarchar(20)
5.6 Tabela Rubrike
Atribut Tip
RubrikaID integer
NazivRubrike nvarchar(20)
8/21/2019 Goran Milic Baze Podataka Seminarski Rad
12/19
8
6 SQL KOD ZA POPUNJAVANJE TABELA PODACIMA
6.1 Tabela Autori
INSERT INTO Autori (Ime, Prezime, Email, Telefon, Opstina, Adresa, JMBG,
Banka, BrojRacuna, BrojZiroRacuna, CijenaStranice)
VALUES
('Goran', 'Milić', '[email protected]', '062/345-901', 1, 'Gradačačka 27', '280997617003',
1, '85976423', '160000000782', 35),
('Senad', 'Karić', '[email protected]', '065/846-762', 2, 'Bojnička 13', '210981617042', 1,
'12312546', '1792000000043', 30),
('Maid', 'Lukić', '[email protected]', '061/597-984', 3, 'Trg nezavisnosti 12',
'23454534345', 1, '3463473457', '2100004000023', 35),
('Tarik', 'Skokić', '[email protected]', '035/789-358', 1, 'Cvjetna ulica 21',
'126543456345', 2, '658765823', '16000000000534', 25),('Ana', 'Zarić', '[email protected]', '033/564-876', 2, 'Emila Zole 12', '63456345773', 2,
'345634563456', '160000234534', 30),
('Dragan', 'Lopot', '[email protected]', '061/795-654', 3, 'Maršala Tita 132',
'13453436453', 3, '4325345253', '2123452345623', 35);
6.2
Tabela Magazin
SET IDENTITY_INSERT Magazin ON
INSERT INTO Magazin (MagazinID, Godina, Mjesec, UkupnoStrana)
VALUES
(171, 2012, 4, 112),
(170, 2012, 3, 128),
(169, 2012, 2, 128),
8/21/2019 Goran Milic Baze Podataka Seminarski Rad
13/19
9
(168, 2012, 1, 128),
(167, 2011, 12, 128),
(166, 2011, 11, 128),
(165, 2011, 10, 128),
(164, 2011, 09, 112),
(162, 2011, 07, 136),
(161, 2011, 06, 128),
(160, 2011, 05, 128);
Napomena: opcija IDENTITY_INSERT je uključena zbog ručnog unošenja
primarnih ključeva kako bi njihovi brojevi odgovarali stvarnom broju magazina.
Opasnost od duplicirana je minimalna pošto se tek po jedan magazin unosi svaki mjesec,
a brojevi magazina su svakako jedinstveni.
6.3
Tabela Tekstovi
INSERT INTO Tekstovi (Naslov, Rubrika, DuzinaTeksta, AutorTekstaID,
ObjavljenoMagazinID, Podnaslov)
VALUES
('Canon FG34', 1, 2, 1, 171, 'Lorem ipsum dolor sit amet'),
('Epson TRG12', 1, 3, 1, 170, 'Lorem ipsum dolor sit amet'),
('Nikon RZEO12', 1, 1, 1, 169, 'Lorem ipsum dolor sit amet'),
('Acer 2376', 1, 2, 2, 171, 'Lorem ipsum dolor sit amet'),('Firefox', 2, 2, 2, 170, 'Lorem ipsum dolor sit amet'),
('Google Chrome', 2, 2, 2, 169, 'Lorem ipsum dolor sit amet'),
('Internet Explorer 10', 2, 2, 1, 171, 'Lorem ipsum dolor sit amet'),
('MS Office 2012', 3, 4, 3, 171, 'Lorem ipsum dolor sit amet'),
('Windows 8', 3, 8, 1, 170, 'Lorem ipsum dolor sit amet'),
('Avira antivirus', 3, 2, 3, 169, 'Lorem ipsum dolor sit amet'),
8/21/2019 Goran Milic Baze Podataka Seminarski Rad
14/19
10
('Windows Server 2012', 3, 4, 1, 170, 'Lorem ipsum dolor sit amet'),
('Ubuntu Linux', 3, 5, 2, 169, 'Lorem ipsum dolor sit amet'),
('Comodo Firewall', 3, 1, 3, 171, 'Lorem ipsum dolor sit amet'),
('Adobe Photoshop', 3, 3, 2, 169, 'Lorem ipsum dolor sit amet');
6.4 Tabela Opstine
INSERT INTO Opstine (NazivOpstine)
VALUES ('Centar'), ('Tuzla'), ('Mostar'), ('Novi Grad');
6.5
Tabela Banke
INSERT INTO Banke (NazivBanke)
VALUES ('Raiffeisen'), ('UniCredit'), ('Tuzlanksa banka'), ('Volks Bank');
6.6 Tabela Rubrike
INSERT INTO Rubrike (NazivRubrike)
VALUES ('Hardver'), ('Internet'), ('Softver'), ('Vijesti');
8/21/2019 Goran Milic Baze Podataka Seminarski Rad
15/19
11
7 SQL UPITI NAD POPUNJENIM TABELAMA
7.1 Upit #1
Upit koji kao rezultat daje popis tekstova, autora i duzine teksta iz broja 171:
SELECT Autori.Ime, Autori.Prezime, Tekstovi.Naslov, Tekstovi.DuzinaTeksta
FROM Autori INNER JOIN Tekstovi
ON Autori.AutorID = Tekstovi.AutorTekstaID
WHERE Tekstovi.ObjavljenoMagazinID = '171'
Rezultat:
Ime Prezime Naslov DuzinaTeksta
---------------- ------------------ ------------------ ----------------------
Goran Milić Canon FG34 2
Senad Karić Acer 2376 2
Goran Milić Internet Explorer 10 2Maid Lukić MS Office 2012 4
Maid Lukić Comodo Firewall 1
7.2 Upit #2
Upit koji kao rezultat daje popis svih tekstova jednog autora (Goran Milić):
SELECT Tekstovi.Naslov, Tekstovi.DuzinaTeksta, Tekstovi.ObjavljenoMagazinID
FROM Autori INNER JOIN Tekstovi
ON Autori.AutorID = Tekstovi.AutorTekstaID
WHERE Autori.Ime = 'Goran' AND Autori.Prezime = 'Milić'
8/21/2019 Goran Milic Baze Podataka Seminarski Rad
16/19
12
Rezultat:
Naslov DuzinaTeksta ObjavljenoMagazinID
-------------------- ------------ ---------------------------
Canon FG34 2 171
Epson TRG12 3 170
Nikon RZEO12 1 169
Internet Explorer 10 2 171
Windows 8 8 170
Windows Server 2012 4 170
7.3 Upit #3
Upit koji kao rezultat daje prosječan broj strana koje autor piše u magazinu:
SELECT Autori.Ime, Autori.Prezime, AVG(Tekstovi.DuzinaTeksta) AS 'Prosjecno
strana'
FROM Autori INNER JOIN Tekstovi
ON Autori.AutorID = Tekstovi.AutorTekstaID
GROUP BY Autori.Ime, Autori.Prezime
Rezultat:
Ime Prezime Prosjecno strana
-------------------- -------------------- ----------------
Senad Karić 2Maid Lukić 2
Goran Milić 3
8/21/2019 Goran Milic Baze Podataka Seminarski Rad
17/19
13
7.4
Upit #4 – glavni upit
Upit koji kao rezultat daje ukupnu sumu honorara autora Goran Milić za broj 171:
SELECT Autori.Ime, Autori.Prezime, SUM(Tekstovi.DuzinaTeksta) AS 'Ukupno
Strana', Autori.CijenaStranice AS 'Cijena po stranici', SUM(Tekstovi.DuzinaTeksta) *
Autori.CijenaStranice AS 'Ukupni honorar'
FROM Autori INNER JOIN Tekstovi
ON Autori.AutorID = Tekstovi.AutorTekstaID
WHERE Autori.Ime = 'Goran' AND Autori.Prezime = 'Milić' AND
Tekstovi.ObjavljenoMagazinID= 171
GROUP BY Autori.Ime, Autori.Prezime, Autori.CijenaStranice
Rezultat:
Ime Prezime Ukupno Strana Cijena po stranici Ukupni honorar
----------- --------------- ------------------- --------------------- --------------------
Goran Milić 4 35,00 140,00
8/21/2019 Goran Milic Baze Podataka Seminarski Rad
18/19
14
8 ZAKLJUČAK
Baza podataka Honorari Autora Magazina Info u svom sadašnjem stanju predstavlja
jako dobar okvir za kreiranje aplikacije koja bi olakšala posao urednicima Info
magazina. Kreiranjem aplikacije bi se olakšao posao korisnicima koji ne poznaju
dovoljno dobro SQL komande, a takoer bi olakšala unos novih podataka kroz filtriranje
korisničkih unosa.
Obzirom da je baza podataka Honorari Autora Magazina Info uraena u
Microsoftovom SQL Serveru, kao prirodno okruženje za kreiranje aplikacije se nameću
neki od Microsoftovih programskih jezika Visual Basic ili C#.
Što se tiče mogućih proširenja baze Honorari Autora Magazina Info, u obzir bi došlo
čuvanje kompletnih tekstova umjesto trenutnih naslova i podnaslova. Ovim proširenjem
bi baza podataka postala još korisnija urednicima magazina Info, jer bi se mogla koristiti
i za referenciranje prilikom pisanja tekstova. Takoer, ovakva baza bi mogla poslužiti i
za kreiranje online pretrage tekstova koja bi se mogla postaviti na web sajta magazina
Info.
8/21/2019 Goran Milic Baze Podataka Seminarski Rad
19/19
15
9 LITERATURA
Knjige:
1. Gordana Pavlović-Lažetić, "Uvod u relacione baze podataka", Matematički
fakultet, Beograd, 1996.
2. Mike Chapple, Microsoft SQL Server 2008 For Dummies, For Dummies, USA,
2008.
3. Allen G. Taylor, SQL For Dummies, For Dummies, USA, 1998.
Internet:
4. http://en.wikipedia.org/wiki/SQL, (18.04.2012.)
5. http://www.w3schools.com/sql/default.asp, (18.04.2012.)