You are on page 1of 9

STUDIJSKI PRIMER - AGENCIJA

Agencija za usluge i posredovanje obavlja svoju delatnost tako što sa naručiocima ugovara
poslove za njihove potrebe, a zatim ugovorene poslove poverava na izvršavanje svojim
spoljnim saradnicima – izvršiocima. Neki poslovi imaju samo jednog izvršioca, a neki se
dele na više izvršilaca. Jedan izvršilac može imati više poslova istovremeno, ili može biti
neangažovan ni na jednom poslu. Izvršilac odgovara za svoje zadatke svom rukovodiocu,
koji je takođe izvršilac. Rukovodilac može imati više drugih izvršilaca kojima rukovodi, a sam
nema svog rukovodioca među izvršiocima.

Radi boljeg planiranja i praćenja realizacije, tržište je podeljeno na oblasti. Svaka oblast ima
svoju šifru, naziv i eventualna zapažanja. Za svaku oblast je određen po jedan izvršilac koji
će da istražuje mogućnosti i da preduzima mere za proširenje posla u toj oblasti. Takvom
izvršiocu pripada provizija ukoliko se u njegovoj oblasti ostvari mesečni prihod veći od
mesečnog plana za taj mesec. Provizija je definisana kao procenat od prebačaja plana, koji
se određje za svaku oblast posebno. Prati se planirani prihod samo za tekući mesec.
Jednom izvršiocu može biti dodeljena najviše jedna oblast.

Naručioci iz jedne oblasti se numerišu rednim brojem počev od 1 i imaju svoje ime, sedište i
podatke za kontakt. Za svakog naručioca se vodi posebna evidencija u kojoj se poslovi za
svakog naručioca numerišu od 1 pa naviše. Svaki posao ima cenu i normu. Cena je
ugovorena vrednost kuju naručilac plaća po završetku posla. Norma predstavlja broj sati
potrebnih za izvršavanje posla, koji se dodeljuju jednom izvršiocu, ili dele na više izvršilaca
angažovanih na tom poslu. Zarada se isplaćuje po formuli zarada = norma * satnica. Ako
izvršilac zakasni sa predajom dobijenog posla, zarada mu se umanjuje 10% za svaki dan
kašnjenja u odnosu na rok koji mu je zadat.
1. ER model
2. Šema tabela

1. Kod tabela
CREATE TABLE izvrsioci
(id VARCHAR2(10),
ime VARCHAR2(20) NOT NULL,
prezime VARCHAR2(30) NOT NULL,
satnica NUMBER(5,0) NOT NULL,
id_rukovodioca VARCHAR2(10),
CONSTRAINT izv_id_pk PRIMARY KEY (id),
CONSTRAINT izv_ruk_fk FOREIGN KEY (id_rukovodioca)
REFERENCES izvrsioci(id));

CREATE TABLE oblasti


(sifra NUMBER(5,0),
naziv VARCHAR2(30) NOT NULL,
zapazanja VARCHAR2(100),
id_izvrs VARCHAR2(10),
provizija NUMBER (2,2),
mesecni_prihod NUMBER (8,2),
CONSTRAINT oblasti_sif_pk PRIMARY KEY (sifra),
CONSTRAINT id_izvrs_uk UNIQUE (id_izvrs),
CONSTRAINT oblasti_id_izv_fk FOREIGN KEY (id_izvrs)
REFERENCES izvrsioci (id));

CREATE TABLE narucioci


(redni_broj NUMBER(5,0),
ime VARCHAR2(20) NOT NULL,
sediste VARCHAR2(30) NOT NULL,
kontakt VARCHAR2(40) NOT NULL,
sifra_oblasti NUMBER(5,0),
CONSTRAINT narucioci_pk PRIMARY KEY (redni_broj, sifra_oblasti),
CONSTRAINT nar_sif_ob_fk FOREIGN KEY (sifra_oblasti)
REFERENCES oblasti (sifra));

CREATE TABLE poslovi


(redni_broj NUMBER(5,0),
naziv VARCHAR2(20) NOT NULL,
opis VARCHAR2(150),
norma NUMBER(5,0) NOT NULL,
dat_uzimanja DATE NOT NULL,
rok_zavrsetka DATE NOT NULL,
dat_zavrsetka DATE,
cena NUMBER(10,0) NOT NULL,
rbr_narucioca NUMBER(5,0),
sifra_oblasti NUMBER(5,0),
CONSTRAINT poslovi_rbr_pk PRIMARY KEY (redni_broj,rbr_narucioca, sifra_oblasti),
CONSTRAINT poslovi_fk FOREIGN KEY (rbr_narucioca, sifra_oblasti)
REFERENCES narucioci (redni_broj, sifra_oblasti));

CREATE TABLE angazmani


(izvr_id VARCHAR2(10) NOT NULL,
broj_sati NUMBER (5,0) NOT NULL,
dat_dobijanja DATE NOT NULL,
rok_predaje DATE NOT NULL,
dat_predaje DATE NOT NULL,
rbr_posla NUMBER (5,0),
rbr_narucioca NUMBER (5,0),
sif_oblasti NUMBER (5,0),
CONSTRAINT angazmani_pk PRIMARY KEY (izvr_id, rbr_posla, rbr_narucioca, sif_oblasti),
CONSTRAINT izvr_id_fk FOREIGN KEY (izvr_id)
REFERENCES izvrsioci (id),
CONSTRAINT angazm_fk2 FOREIGN KEY (rbr_posla, rbr_narucioca, sif_oblasti)
REFERENCES poslovi (redni_broj, rbr_narucioca, sifra_oblasti));
2. Unos podataka

TABELA IZVRSIOCI
INSERT INTO izvrsioci
VALUES('RK1','Miladin','Milošević',8,'');

INSERT INTO izvrsioci


VALUES('ZD1','Dragan','Теšić',8,'');

INSERT INTO izvrsioci


VALUES('ZD2','Lilijana','Ratković-Trifunović',8,'');

INSERT INTO izvrsioci


VALUES('VS1','Diana','Antonijević ',8,'');

INSERT INTO izvrsioci


VALUES('VS2','Vesna','Arsenović',8,'');

INSERT INTO izvrsioci


VALUES('S1','Budimir','Vučić',9,'ZD1');

INSERT INTO izvrsioci


VALUES('S2','Kostadin','Gigić',9,'ZD1');

INSERT INTO izvrsioci


VALUES('S3','Žarko','Mitrović',9,'ZD2');

INSERT INTO izvrsioci


VALUES('S4','Dragana','Mitrović',9,'ZD2');

INSERT INTO izvrsioci


VALUES('S5','Dragoš','Petrović',9,'VS1');
TABELA OBLASTI

INSERT INTO oblasti


VALUES('1','Sremski okrug','','VS1',.2,100000);

INSERT INTO oblasti


VALUES('2','Macvanski okrug','','VS2',.2,110000);

INSERT INTO oblasti


VALUES('3','Kolubarski okrug','','RK1',.3,150000);

INSERT INTO oblasti


VALUES('4','Podunavski okrug','','S2',.1,9000);

INSERT INTO oblasti


VALUES('5','Sumadijski okrug','','S1',.4,12000);

INSERT INTO oblasti


VALUES('7','Zlatiborski okrug','','S4',.7,16000);

TABELA NARUCIOCI

INSERT INTO narucioci


VALUES('1','A.B. MADIA','Simanovci','011345256',1);

INSERT INTO narucioci


VALUES('2','GAVRILOVIC TRANS','Indjija','01122320',1);

INSERT INTO narucioci


VALUES('3','A.B. BIG FARMA','Martinci','01122321',1);

INSERT INTO narucioci


VALUES('4','SPECTAR INZENJERING','Uzice','03122321',7);

TABELA POSLOVI

NAPOMENA: Ukoliko se javi greška, tipa – ORA-01858: a non-numeric character


was found where a numeric was expected

Najverovatni je u pitanju način unosa datuma koji može biti različit.

Uradite sledeće:

SELECT SYSDATE
FROM DUAL;

Pogledajte u kom formatu je prikazan datum, i prepravite naredbe tako da datum odgovara formatu
koji je računar prikazao.

INSERT INTO poslovi


VALUES (1,'Izgradnja zgrada','Delatnost obuhvata:izgradnju svih vrsta stambenih i nestambenih
zgrada, montažu građevina, prepravke i obnovu postojećih stambenih građevina', 160, '01-MAR-11',
'01-MAR-12', '', 100000000, 4, 7);

INSERT INTO poslovi


VALUES (2,'Izgradnja cevovoda','Delatnost obuhvata:izgradnju sistema za navodnjavanje,
rezervoara,odvodnih sistema,postrojenja za deponovanje otpadnih voda', 120, '07-AUG-11', '01-DEC-
11', '15-NOV-11', 3000000, 4, 7);

INSERT INTO poslovi


VALUES (3,'El. instalacije','', 100, '07-AUG-11', '15-NOV-11', '08-NOV-11', 5000000, 4, 7);

INSERT INTO poslovi


VALUES (4,'Zeleznicki prevoz','Delatnost obuhvata:prevoz tereta na javnoj železničkoj infrastrukturi i
na industrijskoj železnici', 50, '01-JAN-11', '01-FEB-11', '01-FEB-11', 400000, 2, 1);

INSERT INTO poslovi


VALUES (5,'Taksi prevoz','', 180, '01-JAN-11', '01-JAN-13', '', 800000, 2, 1);

INSERT INTO poslovi


VALUES (6,'Skladistenje','Delatnost obuhvata rad skladišnih i stovarišnih objekata za sve vrste tereta',
200, '15-APR-10', '15-APR-11', '17-MAR-11', 20000000, 2, 1);

INSERT INTO poslovi


VALUES (7,'Proizvodnja tkanina','Delatnost obuhvata proizvodnju širokih tkanina od pamučnih
prediva, češljane ili vlačene vune, veštačkih i sintetičkih prediva, svilenih prediva', 100, '03-MAY-08',
'15-APR-09', '17-MAR-09', 3000000, 1, 1);

INSERT INTO poslovi


VALUES (8,'Proizvodnja obuce','Delatnost obuhvata:proizvodnju obuće za sve namene i od svih
materijala,proizvodnju delova obuće: spoljašnjih i unutrašnjih đonova, štikli i dr.', 100, '03-MAY-08',
'15-APR-09', '01-MAR-09', 3000000, 1, 1);

INSERT INTO poslovi


VALUES (9,'Uzgoj zivine','Delatnost obuhvata:uzgoj i selekciju živine kao što su: kokoške, patke,
guske, ćurke, plovke i proizvodnju jaja', 80, '01-JUN-09', '01-SEP-09', '01-SEP-09', 400000, 3, 1);

INSERT INTO poslovi


VALUES (10,'Dorada semena','Ova delatnost ne obuhvata:gajenje biljaka za proizvodnju semena,
prerada semena radi dobijanja ulja, istraživanje i razvoj novih vrsta semena', 100, '01-MAR-09', '01-
JUN-12', '', 4000000, 3, 1);

TABELA ANGAZMANI

INSERT INTO angazmani


VALUES ('RK1', 160, '05-MAR-11', '05-JUN-11','04-JUN-11', 1, 4, 7);

INSERT INTO angazmani


VALUES ('ZD1', 160, '05-MAR-11', '05-JUN-11','05-JUN-11', 1, 4, 7);

INSERT INTO angazmani


VALUES ('ZD1', 120, '07-AUG-11', '01-DEC-11','15-NOV-11', 2, 4, 7);

INSERT INTO angazmani


VALUES ('S1', 100, '07-AUG-11', '15-NOV-11','15-NOV-11', 3, 4, 7);

INSERT INTO angazmani


VALUES ('S2', 80, '02-JUN-09', '01-SEP-09','15-AUG-09', 9, 3, 1);

INSERT INTO angazmani


VALUES ('VS2', 80, '01-JUN-09', '01-SEP-09','01-SEP-09', 9, 3, 1);

INSERT INTO angazmani


VALUES ('ZD2', 100, '01-JUN-08', '01-DEC-08','01-DEC-08', 7, 1, 1);

INSERT INTO angazmani


VALUES ('S5', 180, '15-APR-11', '01-JUL-11','01-JUL-11', 5, 2, 1);

INSERT INTO angazmani


VALUES ('VS2', 100, '03-MAY-08', '03-AUG-08','03-AUG-08', 8, 1, 1);

INSERT INTO angazmani


VALUES ('S4', 100, '03-AUG-08', '03-NOV-08','03-NOV-08', 8, 1, 1);

You might also like