Goran Milic Baze Podataka Seminarski Rad

Preview:

Citation preview

  • 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 

    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ć', 'gmilic@info.ba', '062/345-901', 1, 'Gradačačka 27', '280997617003',

    1, '85976423', '160000000782', 35),

    ('Senad', 'Karić', 'senad@info.ba', '065/846-762', 2, 'Bojnička 13', '210981617042', 1,

    '12312546', '1792000000043', 30),

    ('Maid', 'Lukić', 'maid@info.ba', '061/597-984', 3, 'Trg nezavisnosti 12',

    '23454534345', 1, '3463473457', '2100004000023', 35),

    ('Tarik', 'Skokić', 'tarik@info.ba', '035/789-358', 1, 'Cvjetna ulica 21',

    '126543456345', 2, '658765823', '16000000000534', 25),('Ana', 'Zarić', 'ana@info.ba', '033/564-876', 2, 'Emila Zole 12', '63456345773', 2,

    '345634563456', '160000234534', 30),

    ('Dragan', 'Lopot', 'dragan@info.ba', '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.)