You are on page 1of 14

INTERNACIONALNI UNIVERZITET U TRAVNIKU

FAKULTET INFORMACIONIH TEHNOLOGIJA


SMJER: SOFTVERSKO PROGRAMIRANJE

TEMA: projekat vozni park

STUDENT: MIDHAT KERIĆ FIT-18/19 PREDMET: Baze podataka


GODINA: II (2020/2021) MENTOR: Redovni prof Mladen Radivojević
DATUM: 28.06.2021. Travnik ASISTENT: Viši asistent Bakir Čičak
Sadržaj

UVOD.........................................................................................................................................................3

Tabela MODEL_VOZILA...............................................................................................................................4

Tabela MARKA_VOZILA...............................................................................................................................5

Tabela TIP_VOZILA.......................................................................................................................................6

Tabela VOZAC..............................................................................................................................................9

Tabela Servis..............................................................................................................................................10

Tabela VOZNI_PARK..................................................................................................................................10

SQL upiti na bazu.......................................................................................................................................13


UVOD
Projekat Vozni park je rađen na MySQL Workbench 8.0 CE i sastoji se od šest tabela za unos
podataka:

1. Marka vozila
2. Model vozila
3. Servis
4. Tip vozila
5. Vozač
6. Vozni park

U svaku od navedenih tabela uneseni su podaci za polja naznačena u tabeli. Cilj projekta je da se stvori
baza međusobno povezanih tabela koja će definistati jedan vozni parka pa potrebnim podacima kao što su
npr. Naziv modela vozila, marke vozila, servisa, tipa vozila, kao i vozača koji je zadužen za vozila i
registarske oznake vozila.
Baza treba da posjeduje podatke kao što su datum registracije, kako bi se moglo sa SQL upitom doći do
potrebne informacije kao npr, vozila kojim je istekla registracija.
Tabela MODEL_VOZILA

create table MODEL_VOZILA (ModelID int NOT NULL auto_increment,


Model varchar(255) NOT NULL,
NAZIV varchar(255),
primary key (ModelID)
);

SELECT * FROM baze_vozni_park.model_vozila;


insert into model_vozila (Model,NAZIV)
values ('M01','Limuzina');
insert into model_vozila (Model,NAZIV)
values ('M02','Karavan');
insert into model_vozila (Model,NAZIV)
values ('M03','Coupé');
insert into model_vozila (Model,NAZIV)
values ('M04','Cabriolet');
insert into model_vozila (Model,NAZIV)
values ('M05','SUV');
Tabela MARKA_VOZILA

create table MARKA_VOZILA (MarkaID int NOT NULL auto_increment,


Marka varchar(255) NOT NULL,
NAZIV_MARKE varchar(255),
primary key (MarkaID)
);
SELECT * FROM baze_vozni_park.marka_vozila;
insert into marka_vozila (Marka,NAZIV_MARKE)
values ('MR01','Mercedes-Benz');
insert into marka_vozila (Marka,NAZIV_MARKE)
values ('MR02','Ford');
insert into marka_vozila (Marka,NAZIV_MARKE)
values ('MR03','Volkswagen');
insert into marka_vozila (Marka,NAZIV_MARKE)
values ('MR04','Škoda');
insert into marka_vozila (Marka,NAZIV_MARKE)
values ('MR05','Audi');

Tabela TIP_VOZILA

create table TIP_VOZILA (TipID int NOT NULL auto_increment,


MARKAID char(4) NOT NULL,
Tip varchar(255),
TIP_NAZIV varchar(255),
primary key (TipID)
);
SELECT * FROM baze_vozni_park.tip_vozila;
insert into tip_vozila (MarkaID,Tip,TIP_NAZIV)
values ('1','T01','A-class');
insert into tip_vozila (MarkaID,Tip,TIP_NAZIV)
values ('1','T02','B-class');
insert into tip_vozila (MarkaID,Tip,TIP_NAZIV)
values ('1','T03','C-class');
insert into tip_vozila (MarkaID,Tip,TIP_NAZIV)
values ('1','T04','E-class');
insert into tip_vozila (MarkaID,Tip,TIP_NAZIV)
values ('2','T05','B max');
insert into tip_vozila (MarkaID,Tip,TIP_NAZIV)
values ('2','T06','C max');
insert into tip_vozila (MarkaID,Tip,TIP_NAZIV)
values ('2','T07','Focus');
insert into tip_vozila (MarkaID,Tip,TIP_NAZIV)
values ('2','T08','Fiesta');
insert into tip_vozila (MarkaID,Tip,TIP_NAZIV)
values ('3','T09','Golf');
insert into tip_vozila (MarkaID,Tip,TIP_NAZIV)
values ('3','T10','Passat');
insert into tip_vozila (MarkaID,Tip,TIP_NAZIV)
values ('3','T11','Polo');
insert into tip_vozila (MarkaID,Tip,TIP_NAZIV)
values ('3','T12','T-ROC');
insert into tip_vozila (MarkaID,Tip,TIP_NAZIV)
values ('4','T13','Fabia');
insert into tip_vozila (MarkaID,Tip,TIP_NAZIV)
values ('4','T14','Octavia');
insert into tip_vozila (MarkaID,Tip,TIP_NAZIV)
values ('4','T15','Roomster');
insert into tip_vozila (MarkaID,Tip,TIP_NAZIV)
values ('4','T16','Yeti');
insert into tip_vozila (MarkaID,Tip,TIP_NAZIV)
values ('5','T17','TT');
insert into tip_vozila (MarkaID,Tip,TIP_NAZIV)
values ('5','T18','A3');
insert into tip_vozila (MarkaID,Tip,TIP_NAZIV)
values ('5','T19','Q7');
insert into tip_vozila (MarkaID,Tip,TIP_NAZIV)
values ('5','T20','RS2');

ALTER TABLE `baze_vozni_park`.`tip_vozila`


DROP FOREIGN KEY `MarkaID`;
ALTER TABLE `baze_vozni_park`.`tip_vozila`
CHANGE COLUMN `MarkaID` `MarkaID` INT NULL ;
ALTER TABLE `baze_vozni_park`.`tip_vozila`
ADD CONSTRAINT `MarkaID`
FOREIGN KEY (`MarkaID`)
REFERENCES `baze_vozni_park`.`marka_vozila` (`MarkaID`)
ON DELETE SET NULL;

Tabela VOZAC

create table VOZAC (VozacID int NOT NULL auto_increment,


Ime varchar(255),
Prezime varchar(255),
Ljekarski DATE,
Licenca varchar(255),
primary key (VozacID)
);

SELECT * FROM baze_vozni_park.vozac;


insert into vozac (Ime,Prezime,Ljekarski,Licenca)
values ('Šemso','Šemsić','2020-7-10','Trajna');
insert into vozac (Ime,Prezime,Ljekarski,Licenca)
values ('Rade','Radić','2022-2-15','Privremena');
insert into vozac (Ime,Prezime,Ljekarski,Licenca)
values ('Meho','Mehić','2022-8-20','Privremena');
insert into vozac (Ime,Prezime,Ljekarski,Licenca)
values ('Marko','Marić','2022-8-20','Trajna');
Tabela Servis

create table Servis (ServisID int NOT NULL auto_increment,


Servis varchar(255) NOT NULL,
NAZIV_SERVIS varchar(255),
primary key (ServisID)
);

SELECT * FROM baze_vozni_park.servis;


insert into servis (Servis,NAZIV_SERVIS)
values ('S01','Mali');
insert into servis (Servis,NAZIV_SERVIS)
values ('S02','Veliki');
insert into servis (Servis,NAZIV_SERVIS)
values ('S03','Vanredan');

Tabela VOZNI_PARK

create table VOZNI_PARK (VozniID int NOT NULL auto_increment,


MarkaID int NOT NULL,
ModelID int NOT NULL,
TipID int NOT NULL,
Registracija DATE,
ServisID int NOT NULL,
VozacID int NOT NULL,
primary key (VozniID)
);

ALTER TABLE `baze_vozni_park`.`vozni_park`


ADD CONSTRAINT `ModelID`
FOREIGN KEY (`ModelID`)
REFERENCES `baze_vozni_park`.`model_vozila` (`ModelID`)
ON DELETE RESTRICT
ON UPDATE NO ACTION,
ADD CONSTRAINT `TipID`
FOREIGN KEY (`TipID`)
REFERENCES `baze_vozni_park`.`tip_vozila` (`TipID`)
ON DELETE RESTRICT
ON UPDATE NO ACTION,
ADD CONSTRAINT `ServisID`
FOREIGN KEY (`ServisID`)
REFERENCES `baze_vozni_park`.`servis` (`ServisID`)
ON DELETE RESTRICT
ON UPDATE NO ACTION,
ADD CONSTRAINT `VozacID`
FOREIGN KEY (`VozacID`)
REFERENCES `baze_vozni_park`.`vozac` (`VozacID`)
ON DELETE RESTRICT
ON UPDATE NO ACTION;

ALTER TABLE `baze_vozni_park`.`vozni_park`


ADD COLUMN `Reg_Oznaka` VARCHAR(255) NULL AFTER `VozacID`,
ADD UNIQUE INDEX `Reg_Oznaka_UNIQUE` (`Reg_Oznaka` ASC) VISIBLE;
;

SELECT * FROM baze_vozni_park.vozni_park;


insert into vozni_park
(MarkaID,ModelID,TipID,Registracija,ServisID,VozacID,Reg_oznaka)
values ('1','1','1','2021-12-31','2','4','A25-J-445');
insert into vozni_park
(MarkaID,ModelID,TipID,Registracija,ServisID,VozacID,Reg_oznaka)
values ('1','5','2','2022-04-03','2','3','E66-M-115');
insert into vozni_park
(MarkaID,ModelID,TipID,Registracija,ServisID,VozacID,Reg_oznaka)
values ('1','2','4','2022-05-01','1','2','A14-O-333');
insert into vozni_park
(MarkaID,ModelID,TipID,Registracija,ServisID,VozacID,Reg_oznaka)
values ('2','1','5','2022-06-03','2','1','O45-A-259');
insert into vozni_park
(MarkaID,ModelID,TipID,Registracija,ServisID,VozacID,Reg_oznaka)
values ('2','2','7','2021-10-10','1','1','E33-M-001');
insert into vozni_park
(MarkaID,ModelID,TipID,Registracija,ServisID,VozacID,Reg_oznaka)
values ('2','3','8','2021-11-11','3','3','E83-J-551');
insert into vozni_park
(MarkaID,ModelID,TipID,Registracija,ServisID,VozacID,Reg_oznaka)
values ('3','1','9','2022-01-31','1','4','M55-J-118');
insert into vozni_park
(MarkaID,ModelID,TipID,Registracija,ServisID,VozacID,Reg_oznaka)
values ('3','5','12','2022-02-02','2','2','A41-E-188');
insert into vozni_park
(MarkaID,ModelID,TipID,Registracija,ServisID,VozacID,Reg_oznaka)
values ('3','1','10','2022-10-11','2','3','O77-E-011');
insert into vozni_park
(MarkaID,ModelID,TipID,Registracija,ServisID,VozacID,Reg_oznaka)
values ('4','1','13','2021-08-08','1','2','E22-E-247');
insert into vozni_park
(MarkaID,ModelID,TipID,Registracija,ServisID,VozacID,Reg_oznaka)
values ('4','2','14','2021-12-12','2','1','A12-A-777');
insert into vozni_park
(MarkaID,ModelID,TipID,Registracija,ServisID,VozacID,Reg_oznaka)
values ('4','5','15','2021-11-12','2','4','A88-J-999');
insert into vozni_park
(MarkaID,ModelID,TipID,Registracija,ServisID,VozacID,Reg_oznaka)
values ('5','1','18','2020-04-08','3','3','T14-A-299');
insert into vozni_park
(MarkaID,ModelID,TipID,Registracija,ServisID,VozacID,Reg_oznaka)
values ('5','5','19','2021-05-05','2','1','J88-E-111');
insert into vozni_park
(MarkaID,ModelID,TipID,Registracija,ServisID,VozacID,Reg_oznaka)
values ('5','4','17','2022-03-03','1','4','J33-A-555');
SQL upiti na bazu

1. Upit na bazu za registracije vozila koje su istekle

Select * from vozni_park


where Registracija < current_date() ;

2. Upit na bazu za registracije koje nisu istekle poredane po redosljedu datuma

Select * from vozni_park


where Registracija > current_date()
order by Registracija ;

3. Upit na bazu za za spisak vozila za vozača sa ID = 1

Select * from vozni_park


where vozacID = '1';

4. Upit na bazu za listu vozača kojima je isteko ljekarski

Select *from vozac


where Ljekarski < current_date();
5. Upit na bazu spisak vozača kojima nije isteko ljekarski poredan po datumu

Select *from vozac


where Ljekarski > current_date()
order by Ljekarski;

You might also like