2013-09-16 01_08-baze podataka seminarski rad
TRANSCRIPT
SVEUČILIŠTE/UNIVERZITET “VITEZ” TRAVNIKUFAKULTET POSLOVNE INFORMATIKE CIKLUS STUDIJA, GODINA STUDIJA: IV CIKLUS, II GODINASMJER: POSLOVNA INFORMATIKA
BAZA PODATAKA-KIKBOX KLUB
SEMINARSKI RAD
Travnik, 14.9.2013. godine
SVEUČILIŠTE/UNIVERZITET “VITEZ” TRAVNIKUFAKULTET POSLOVNE INFORMATIKE CIKLUS STUDIJA, GODINA STUDIJA: IV CIKLUS, II GODINASMJER: POSLOVNA INFORMATIKA
BAZA PODATAKA-KIKBOX KLUB
SEMINARSKI RAD
IZJAVA: Ja Strika Armin student Sveučilišta/Univerziteta „Vitez“ Travnik, Indeks broj : 0168-10/RPI odgovorno i uz moralnu i akademsku odgovornost izjavljujem da sam ovaj rad izradio potpuno samostalno uz korištenje citirane literature i pomoć profesora odnosno asistenta.
Strika ArminStudent :Strika Armin
Predmet : BAZE PODATAKA
Profesor: Prof. dr Zoran Avramovic
Asistent: Mr Mahir Zaimovic
SADRŽAJUvod............................................................................................................................................1
Predmet, objekt i cilj projektnog zadatka...............................................................................1
Korišteni alati i tehnologije.....................................................................................................1
Struktura rada..........................................................................................................................1
Opis baze podataka i njena namijena..........................................................................................2
SQL KOD ZA KREIRANJE BAZE PODATAKA....................................................................3
Tabela Tamičar.......................................................................................................................3
Tabela Statistika Takmičenja..................................................................................................3
Tabela Takmičenje..................................................................................................................3
Tabela Plasman.......................................................................................................................3
Tabela Spol.............................................................................................................................3
Tabela Škola............................................................................................................................4
ER diagram baze podataka..........................................................................................................4
TIPOVI PODATAKA KORIŠTENI U TABELAMA...............................................................5
Tabela Tamičar.......................................................................................................................5
Tabela Statistika Takmičenja..................................................................................................5
Tabela Takmičenje..................................................................................................................5
Tabela Plasman.......................................................................................................................5
Tabela Spol.............................................................................................................................5
Tabela Škola............................................................................................................................6
SQL KOD ZA POPUNJAVANJE TABELA PODACIMA.......................................................6
Tabela tamkičari......................................................................................................................6
Tabela statistika takmičenja....................................................................................................6
Tabela takmičenje...................................................................................................................7
Tabela plasman.......................................................................................................................7
Tabela spol..............................................................................................................................7
Tabela škola............................................................................................................................8
SQL UPITI NAD POPUNJENIM TABELAMA.......................................................................8
Zaključak...................................................................................................................................13
Uvod
Predmet, objekt i cilj projektnog zadatkaCilj ovog projekta je kreiranje baze podataka kikbox kluba upotrebom SQL jezika na platformi MS SQL Server 2008. Baza podataka treba za sadrži sve informacije o studentu koji trenira. U smislu potrebnih informacija za samog trenera kluba pa i informacija koje su potrebne za prijavu na neki od turnira. Daljnja svrha baze podataka jeste da evidentira sve turnire i samim time i uspijeh na turniru.
Korišteni alati i tehnologijePri izradi i realizaciji ovog projekta korišeni su alati Microsoft SQL Server 2008, koji je instaliran na Microsoft Windows 7 Professional. Kreiranje i realizacije ovog projekta korišten je Microsoft SQL Server Managment Studio. Za pravljenje screen shoot-ova korišten je snipping tool.
Struktura radaStruktura rada je osnovana kao i samo kreiranje baze podataka. To znači da kako teče kreiranje i dorađivanje baze podataka tako je struktuiran i sam rad. Osim uvoda i namijene baze podataka. Prvo što slijedi u radu je izrada tabela koje će se koristiti u bazi podataka. Sa tim je prestavljen i kod kojim je kreirana određena tabela u SQL-u. Drugi dio rada je prestavljanje ER diagrama. Tako da kad se kreiraju tabele pokaže na koji način su one i povezane. Treči dio rada je sastavljen od tabela koje prekazuju koja vrsta podataka je korištena u određenoj tabeli. Četvrti dio rada se odnosi na unos podataka u sve tabela baze podataka pomoču prekazanog koda. Slijediči dio rada predstavlja kreiranje upita za relevantnu bazu podataka. Upiti su tako predstavljeni da je na prvom mijestu prekazan zadatak upita potom kod upita i na kraju rezultat tog upita. U par primjera su predstavljene i neka moguča poboljšanja predstavljanja podataka iz baze podataka. Poslijednji dio ovog rada je zaključak cijelog projekta.
1
OPIS BAZE PODATAKA I NJENA NAMIJENABaza podataka KikBox ima četri funkcije:
- Vođenje podataka o studentima koji treniraju- Vođenje podataka gdije u školu idu- Evidencija učešća na turniraima - Evidencija ostvarenih rezultata.
Prva od dvije glavne tabele baze podataka KikBox kluba jeste tabela tamičar. Koja u sebi sadrži sve relevantne informacije za vezanog takmičara. Koje su potrebne treneru da bih mogao prijaviti takmičara na turnir. Druga duga glavna tebela je tabela statistika takmičenja uz koju dobijamo informacije na kojim turnirima je određeni takmičar bio, da li je ostvario neki uspijeh i na koji datum je to sve bilo. Bit KikBox baze podataka jeste da treneru omogući sve bitnije informacije o takmičaru i njegovom uspijehu.
Namijena BP.KikBoxKlub jeste da uz pravu implementaciju treneru olakša vođenje podataka kluba. Sve potrebne informacije sa kojima trener mog kluba raspolaže o studentima, treninzima, turnirima itd.zapisane su u rokovnik. Tako da sa ovom bazom podataka želim treneru da sa sakupljenim podatcima što lakše raspolaže informacijama i uskratim mu posao prikupljanja podataka o učesniku turnira svaki put iznova.
2
SQL KOD ZA KREIRANJE BAZE PODATAKA
Tabela Tamičarcreatetable Takmicar(IDTakmicar intnotnullprimarykeyidentity,Prezime varchar(50)notnull,Ime varchar(50)notnull,IDSpol intnotnull,DatumRodjenja varchar(10)notnull,ImeOca varchar(50)notnull,ImeMajke varchar (50)notnull,SkolaID intnotnull,Ulica varchar(50)notnull,Broj int,TelefonFiksni varchar(30),TelefonMobilni varchar(35),Slika image,Napomena text,);
Tabela Statistika Takmičenjacreatetable StatistikaTakmicenja(IDStatistika intnotnullprimarykeyidentity,TakmicarID intnotnull,DatumTakmicenja varchar (10)notnull,PlasmanID intnotnull,TakmicenjeID intnotnull,);
Tabela Takmičenjecreatetable Takmicenje(IDTakmicenja intnotnullprimarykeyidentity,Takmicenje varchar(50),);
Tabela Plasmancreatetable Plasman(IDPlasman intnotnullprimarykeyidentity,Plasman intnotnull,);
Tabela Spolcreatetable Spol(IDSpol intnotnullprimarykeyidentity,
3
Spol varchar(2)notnull,);
Tabela Školacreatetable Skola(IDSkola intprimarykeyidentitynotnull,Skola varchar(50),);
ER DIAGRAM BAZE PODATAKA
4
TIPOVI PODATAKA KORIŠTENI U TABELAMA
Tabela Tamičar
Tabela Statistika Takmičenja
Tabela Takmičenje
Tabela Plasman
5
Tabela Spol
Tabela Škola
SQL KOD ZA POPUNJAVANJE TABELA PODACIMA
Tabela tamkičariinsertinto dbo.Takmicar(Prezime,Ime,DatumRodjenja,ImeOca,ImeMajke,Ulica,Broj,TelefonFiksni,TelefonMobilni,IDSpol,SkolaID)values ('Sidik','Dzaja','20-05-1995','Sejo','Selma','slavne brdske brigade','770','208-033','62159726',1,1),('Mirza','Susic','12-01-1993','Huso','Amina','Bosanska','46','211-235','63125654',2,2),('Muharem','Hadjic','06-09-1994','Midhat','Aida','14. septembra ','23','345-254','65156456',3,3)('Aida','Rahmanovic','17-07-1997','Sead','Maja','slavne brdske brigade','740','203-543','62149454',4,4),('Belma','Vincevic','12-2-1993','Esad','Hana','Oborci','5','281-349','65145268',5,5),('Haris','Suljic','20-6-1991','Huso','Hajrija','Mahala','12','234-465','62610620',6,6),('Ahmed','Secic','2-12-1998','Naim','Ena','Mahala','12','245-687','61654582',7,7)('Ivona','Malibasic','29-05-1994','Mirko','Tamara','Bugojanska','11','247-365','64156879',8,8),('Ivan','Gavric','29-09-1991','Sandro','Emanuela','Bugojanska','9','186-845','65168756',9,9),('Amela','Nezic','18-12-1996','Alija','Kasema','Bosanska','47','214-416','61159726',10,10),('Adis','Talam','06-11-1991','Muharem','Alija','Mahala','11','156-456','60148694',11,11),('Edina','Hubljar','22-01-1991','Fahrudin','Jasna','Torlakovac','10','265-455','66149878',12,12),('Denis','Kuric','15-02-1997','Junus','Nada','Kopcic','4','654-165','61112331',13,13),('Ena','Karadza','18-08-1994','Namir','Senada','Bugojanska','16','785-264','62156489',14,14),('Eldar','Tutinic','03-02-1990','Tarik','Fatima','Zlatni ljiljana','10','456-163','61264456',15,15);
6
Tabela statistika takmičenjainsertinto dbo.StatistikaTakmicenja(TakmicarID,DatumTakmicenja,PlasmanID,TakmicenjeID)values (1,'06-04-2011',1,1),(2,'19-02-2012',2,2),(3,'17-10-2012',3,3), (6,'06-04-2011',4,4),(7,'19-02-2012',5,5),(8,'17-10-2012',6,6),(9,'17-10-2012',7,7),(10,'15-06-2012',8,8),(11,'06-04-2011',9,9),(12,'17-10-2012',10,10),(13,'15-05-2012',11,11),(14,'19-02-2012',12,12);
Tabela takmičenjeinsertinto dbo.Takmicenje(Takmicenje)values('Bihac Open'),('Livno Open'),('Sarajevo Open'), ('Bihac Open'),('Livno Open'),('Sarajevo Open'),('Livno Open'),('Posusije Open'),('Bihac Open'),('Sarajevo Open'),('Posusije Open'),('Livno Open');
Tabela plasmaninsertinto dbo.Plasman(Plasman)values('1'),('2'),('3'),('1'),('2'),('3'),('2'),('3'),('1'),('3'),('1'),('3');
Tabela spolinsertinto dbo.Spol(Spol)values('M'),('M'),('M') ('Z'),('Z'),('M'),('M'),('Z'),
7
('M'),('Z'),('M'),('Z'),('M'),('Z'),('M');
Tabela školainsertinto dbo.Skola(Skola)values('Aneks OS'),('MSŠ'),('MSŠ')('Aneks OS'),('MSŠ'),('MSŠ'),('KulaOS'),('MSŠ'),('MSŠ'),('OS Bugojno'),('Gimnazija Bugojno'),('Srednja Tehnicka'),('OS Tranik'),('Medicinska Travnik'),('Medresa Travnik');
SQL UPITI NAD POPUNJENIM TABELAMA1Upit za kreiranje tabele sa imenom prezimenom,datumom takmicenja,takmicenjem i plasmanom.
select dbo.Takmicar.Ime,dbo.Takmicar.Prezime,dbo.StatistikaTakmicenja.DatumTakmicenja,dbo.Takmicenje.Takmicenje,dbo.Plasman.Plasmanfrom dbo.Takmicar,dbo.StatistikaTakmicenja,dbo.Takmicenje,dbo.Plasmanwhere dbo.Takmicar.IDTakmicar=dbo.StatistikaTakmicenja.TakmicarIDand dbo.StatistikaTakmicenja.TakmicenjeID=dbo.Takmicenje.IDTakmicenjaand dbo.StatistikaTakmicenja.PlasmanID=dbo.Plasman.IDPlasman;
8
A u slučaju da nas interesuje samo jedan kriterij od odbaranih onda možemo uraditi slijedeče. Naprimijer potrebna nam je lista svih takmičara koji su se takmičili 19-02-2012 onda dodajemo na ovaj kod gore samo
and dbo.StatistikaTakmicenja.DatumTakmicenja='19-02-2012';
U upitu došlo je do promijena i rezultat sad izgleda ovako
Imamo listu učesnika koji su se takmičili navedenog datuma tj.na turniru Livno Open.
2 Upit ispisati listu turnira bez ponavljanja
selectdistinct Takmicenje.Takmicenjefrom Takmicenje
Ako su nam potrebne neke još informacije kao što su broj takmičara,ond to možemo uraditi na slijedeči način.
selectdistinct Takmicenje.Takmicenje,COUNT(dbo.Takmicenje.Takmicenje)as'broj takmicara'from Takmicenje, dbo.StatistikaTakmicenja,dbo.Plasmanwhere dbo.Takmicenje.IDTakmicenja=dbo.StatistikaTakmicenja.TakmicenjeIDand dbo.StatistikaTakmicenja.PlasmanID=dbo.Plasman.IDPlasmangroupby takmicenjeorderby'broj takmicara'desc;
A rezultat će biti slijedeči:
9
Pored turnira i broja takmičara kojeg smo dobili zbrajanjem svih učesnika na tome turniru bilo bih dobro kad bih mogli vidijeti i kako smo mi prošli na tome turniru sa tim brojem takmičara. A to se može pokazati na slijedeči način.
select dbo.Takmicenje.Takmicenje,COUNT(dbo.Takmicenje.Takmicenje)as'broj takmicara',AVG(dbo.Plasman.Plasman)as'uspijeh'from dbo.Takmicenje,dbo.Plasman,dbo.StatistikaTakmicenjawhere dbo.Takmicenje.IDTakmicenja=dbo.StatistikaTakmicenja.TakmicenjeIDand dbo.StatistikaTakmicenja.PlasmanID=dbo.Plasman.IDPlasmangroupby takmicenjeorderby'broj takmicara'desc;
A rezultat bih bio slijedeči:
Možemo vidijeti da pored broja takmičara sad imamo i uspijeh koji predstavlja prosijek medalja i učesnika
3 Upit
Napraviti tabelu sa svim podatcima koji su potrebni za prijavu takmičara na turnir i informacija koje su potrebne roditeljima i skoli za pravdanje izostanka sa časova.
select dbo.Takmicar.Ime,dbo.Takmicar.Prezime,dbo.Takmicar.DatumRodjenja,dbo.Spol.Spol ,dbo.Takmicar.ImeMajke,dbo.Takmicar.ImeOca,dbo.Skola.Skola,dbo.StatistikaTakmicenja.DatumTakmicenja,dbo.Takmicenje.Takmicenjefrom dbo.Takmicar,dbo.Spol,dbo.Skola,dbo.StatistikaTakmicenja,dbo.Takmicenjewhere dbo.Takmicar.IDSpol=dbo.Spol.IDSpoland dbo.Takmicar.Ime='sidik'and dbo.Takmicar.SkolaID=dbo.Skola.IDSkolaand dbo.Takmicar.IDTakmicar=dbo.StatistikaTakmicenja.TakmicenjeIDand dbo.StatistikaTakmicenja.TakmicenjeID=dbo.Takmicenje.IDTakmicenja;
10
rezultat je slijedeči
4 Upit
Napraviti rang listu takmičara po osvojenim medaljama
select dbo.Takmicar.Ime,dbo.Takmicar.Prezime,MIN(dbo.Plasman.Plasman)as'Rangiranje takmicara'from dbo.Takmicar,dbo.Plasman,dbo.StatistikaTakmicenjawhere dbo.Takmicar.IDTakmicar=dbo.StatistikaTakmicenja.TakmicarIDand dbo.StatistikaTakmicenja.PlasmanID=dbo.Plasman.IDPlasmangroupby plasman,Ime,Prezime;
rezultat izgleda ovako
5 Upit
Napraviti tabelu na kojoj je prekazan broj osvojenih mijesta na turnirima.
select dbo.Plasman.Plasman,COUNT(dbo.Plasman.Plasman)as'broj medalja'from dbo.Plasmangroupby Plasman;
rezultat je slijedeci:
6 Upit
Napraviti tabelu na kojoj su prekazani svi oni u klubu koji nisu bili na turniru.
11
select dbo.Takmicar.IDTakmicarfrom dbo.Takmicarexceptselect dbo.StatistikaTakmicenja.TakmicarIDfrom dbo.StatistikaTakmicenja
Rezultat je slijedeči
Zbog lakšeg upravljanja podatcima ova tabela je i dalje neupotrebljiva jer nam nedaje one informacije koje smo tražili. Sad bih morali otvoriti tabelu takmicari i u njoj tražiti takmicare sa id-om koje imamo u tabeli da bih znali koji su to takmičari. Uz malu modifikaciju to možemo popraviti ovako.
select dbo.Takmicar.IDTakmicar,dbo.Takmicar.Ime,dbo.Takmicar.Prezimefrom dbo.Takmicarexceptselect dbo.StatistikaTakmicenja.TakmicarID,dbo.Takmicar.Ime,dbo.Takmicar.Prezimefrom dbo.StatistikaTakmicenja,dbo.Takmicar
Gdije bih rezultati bio slijedeči
Sad u tabeli imamo ime i prezime osobe koja trenira u klubu a nije bila na turniru.
12
ZAKLJUČAK
Baza podataka KikBoxKlub predstavlja osnovu jedne baze kojom bih se mogle obuhvatiti sve informacije vezane za klub. Sa dodatkom na podijele studenata na naprednije i početnike. Vođenjem podataka lijekarskog pregleda, osiguranja itd. Uz pravu doradu cilj bih se mogao ostvariti. Da bih se ostvarili maksimalni potencijali koje nudi baza podataka potrebno je napraviti GUI/korisnički interfejs. Koji bih mogao da olakša korištenje baze i pojednostavi sve porcese do mijere da bazu mogu koristiti osobe sa manjim informatičkim poznavanjem. Da bih se to ostvarilo potrebno je poznavanje drugih programskih jezika kao sto je Visual Basic.
Baza podataka na kojem je stanju sad može poslužiti jednom klubu oko vođenja osnovnih podataka. U bazu su pretočeni svi podatci od onih koji su potrebni roditeljima. Da znaju gdije je takmičenje itd. Za trenere da mogu prijaviti učesnika a i za škole zbog eventualnih odsutnosti sa nastave.
13