Professional Documents
Culture Documents
Milo Kovaevi
B A KA ZIIK EZ JE HJ NIIH AN RA TR ST US LU OL KO K A ZA AZ KA AK TA AT DA OD PO AP ZA AZ BA
Beograd, 27.02.2002.
profesor: autor:
Milo Kovaevi
SADRAJ
1. 2. 3. Analiza i dopunjeni opis problema, sa svim uvedenim pretpostavkama.------------------------------------------------- 2 Funkcionalna dekompozicija prve vrste --------------------------------------------------------------------------------------- 3 Model procesa ---------------------------------------------------------------------------------------------------------------------- 4 3.1 Konteksni nivo --------------------------------------------------------------------------------------------------------------- 4 3.2 Prvi nivo----------------------------------------------------------------------------------------------------------------------- 5 3.3 Drugi nivo--------------------------------------------------------------------------------------------------------------------- 6 3.4 Trei nivo --------------------------------------------------------------------------------------------------------------------- 7 3.5 Hijerarhijsko stablo procesa (Node tree) -------------------------------------------------------------------------------- 8 4. Pregled odnosa objekata ---------------------------------------------------------------------------------------------------------- 9 4.1 Redukovana ema odnosa objekata--------------------------------------------------------------------------------------- 9 5. Pregled svojstava objekata i veza ----------------------------------------------------------------------------------------------10 6. Model podataka -------------------------------------------------------------------------------------------------------------------11 7. Matrica odnosa aktivnosti i entiteta--------------------------------------------------------------------------------------------12 8. SQL ema relacione baze podataka --------------------------------------------------------------------------------------------13 10. Forma za unos podataka u jednu tabelu------------------------------------------------------------------------------------17 11. Forma za unos podataka u dve tabele (master-detail) -------------------------------------------------------------------17 12. Pretraga podataka u jednoj tabeli -------------------------------------------------------------------------------------------18 13. Izvetaj nad dve tabele --------------------------------------------------------------------------------------------------------18
Milo Kovaevi
1 1. .A An na al li iz za a i i d do op pu un nj je en ni i o op pi is s p pr ro ob bl le em ma a, , s sa a s sv vi im m u uv ve ed de en ni im m p r e t p o s t a v k a m a . pretpostavkama.
kola stranih jezika organizuje kurseve stranih jezika. Svaki kurs je vezan za odreeni strani jezik, traje odreeni broj asova, ima svoju cenu kao i nivo i stepen jezika. Za dranje kurseva kola angauje nastavnike. Nastava je organizovana po grupama. Nastavna grupa je vezana za odreeni kurs, ima jednog nastavnika i vie polaznika, i odreen period u kome se dre asovi. Uslov za pohaanje je da je polaznik, po izdatoj profakturi, unapred izvrio uplatu za odreenu nastavnu grupu. Polaznik moe pohaati vie nastavnih grupa. Nastavnik moe predavati na vie nastavnih grupa, ali iz najvie dva strana jezika. Poto polaznici unapred vre uplatu za pohaanje nastave, promena cene u toku nastave nema smisla, ali moe se menjati plata po asu koju dobija nastavnik, i koja se odreuje na nivou jezika, a ne kursa. Nastavnik dobija platu po zavretku predavanja na odreenoj nastavnoj grupi, i to prema broju odranih asova na toj grupi i trenutnoj plati po asu za dati jezik. Sve profakture, uplate i isplate se evidentiraju.
Milo Kovaevi
2 2. .F Fu un nk kc ci io on na al ln na a d de ek ko om mp po oz zi ic ci ij ja a p pr rv ve e v vr rs st te e
- kola + Matini podaci + Matini podaci o jeziku * unos podataka o novom jeziku * izmena podataka o jeziku * brisanje podataka o jeziku + Matini podaci o kursu * unos podataka o novom kursu * izmena podataka o kursu * brisanje podataka o kursu + Matini podaci o nastavnoj grupi * unos podataka o novom nastavnoj grupi * izmena podataka o nastavnoj grupi * brisanje podataka o nastavnoj grupi * pretraivanje podataka o nastavnoj grupi + Matini podaci o nastavniku * unos podataka o novom nastavniku * izmena podataka o nastavniku * brisanje podataka o nastavniku + Matini podaci o polazniku * unos podatka o novom studentu * izmena podataka o studentu * brisanje podataka o studentu * pretraivanje podataka o polazniku + Transakcije * prijava nastavnika za nastavnu grupu * izdavanje profakture za polaznika za pohaanje nastavne grupe * uplata polaznika za pohaanje nastavne grupe * prijava polaznika za pohaanje nastavne grupe * registrovanje odranog asa * isplata nastavnika za odrane asove na nastavnoj grupi + Izvetaji * izvetaj o postojeim jezicima * izvetaj o postojeim kursevima * izvetaj o nastavnim grupama ija nastava nije jo poela * izvetaj o aktivnim nastavnim grupama * izvetaj o uplatama pojedinanog polaznika * izvetaj o isplatama pojedinanog nastavnika * izvetaj o svim uplatama i isplatama i profitu * diploma pojedinanog polaznika
Milo Kovaevi
3 3. .M Mo od de el l p pr ro oc ce es sa a
3 3. 1 K Ko on nt ni .1 te ek ks sn ni i n iv vo o
USED AT: AUTHOR: Milos Kovacevic PROJECT: Skola Stranih Jezika NOTES: 1 2 3 4 5 6 7 8 9 10 DATE: 22. February 2002 REV: 26. February 2002 WORKING DRAFT RECOMMENDED PUBLICATION READER DATE CONTEXT: TOP
cene
ogranicenja
polaznici
izvestaji diplome
Skola
nastavnici
racuni plate
0
jezici
NODE:
A-0
TITLE:
Skola
NUMBER:
Milo Kovaevi
3 3. 2 P Pr rv vi .2 i n ni iv vo o
USED AT: AUTHOR: Milos Kovacevic PROJECT: Skola Stranih Jezika NOTES: 1 2 3 4 5 6 7 8 9 10 DATE: 22. February 2002 REV: 26. February 2002 WORKING DRAFT RECOMMENDED PUBLICATION A-0 READER DATE CONTEXT:
ogranicenja
polaznici nastavnici
izvestaji
Obrada Osoblja
1
podaci o osoblju
racuni
Racunovodtvo
podaci o uplatama
2
plate
diplome
Obrada Nastave/Jezika
informacije o kursevima jezici
3
NODE:
A0
TITLE:
Skola
NUMBER:
Milo Kovaevi
3 3. 3 D Dr ru ug .3 gi i n ni iv vo o
USED AT: AUTHOR: Milos Kovacevic PROJECT: Skola Stranih Jezika NOTES: 1 2 3 4 5 6 7 8 9 10 DATE: 25. February 2002 REV: 26. February 2002 WORKING DRAFT RECOMMENDED PUBLICATION A0 READER DATE CONTEXT:
polaznici
Obrada Polaznika
1
Obrada Nastavnika
podaci o nastavnicima
2
NODE:
A1
TITLE:
Obrada Osoblja
NUMBER:
Milo Kovaevi
3 3. 4 T Tr re e .4 i i n ni iv vo o
USED AT: AUTHOR: Milos Kovacevic PROJECT: Skola Stranih Jezika NOTES: 1 2 3 4 5 6 7 8 9 10 DATE: 25. February 2002 REV: 26. February 2002 WORKING DRAFT RECOMMENDED PUBLICATION A1 READER DATE CONTEXT:
polaznici
podaci o polaznicima
Pretraga Polaznika
4
Generisanje Izvestaja
5
izvestaji o polaznicima
NODE:
A1.1
TITLE:
Obrada Polaznika
NUMBER:
Milo Kovaevi
3 3. 5 H Hi ij je sk lo oc es a ( (N od e t tr ee ) .5 er ra ar rh hi ij js ko o s st ta ab bl o p pr ro ce sa No de re e)
USED AT: AUTHOR: Milos Kovacevic PROJECT: Skola Stranih Jezika NOTES: 1 2 3 4 5 6 7 8 9 10 DATE: 26. February 2002 REV: 27. February 2002 WORKING DRAFT RECOMMENDED PUBLICATION
Skola
Obrada Osoblja 1
Racunovodtvo 2
Obrada Nastave/Jezika
Obrada Polaznika Unos podataka o Polazniku Izmena podataka o Polazniku Brisanje podataka o Polazniku Pretraga Polaznika Generisanje Izvestaja
Obrada Nastavnika
Milo Kovaevi
4 4. .P Pr re eg gl le ed d o od dn no os sa a o ob bj je ek ka at ta a
objekti Jezik Osoba Nastavnik Polaznik
(0,N) (0,N)
veze
Kurs
(0,1)
predaje
(0,N)
Grupa Raun
pohadja
veze
Kurs Grupa
(0,N)
pohadja
UplataIsplataProfaktura
Milo Kovaevi
5 5. .P Pr re eg gl le ed d s sv vo oj js st ta av va a o ob bj je ek ka at ta a i i v ve ez za a
Osoba OBJEKAT/VEZA Jezik SVOJSTVO ifra Jezika Naziv Varijanta Plata po asu Jezika ifra Kursa Nivo Stepen Broj asova Cena Jezika Kurs ifra Grupe Nastavnik Datum poetka Datum kraja Broj odranih asova Selektor P/N ifra Osobe Ime Prezime Adresa Telefon Adresa e-pote Datum roenja Selektor U/I/P ifra UIP Osoba Grupa Iznos Datum Polaznik Grupa
Kurs
UplataIsplataProfaktura
Grupa
Pohaa
10
Milo Kovaevi
6 6. .M Mo od de el l p po od da at ta ak ka a
Jezik SifJ Naziv Varijanta PlataPoCasu Kurs SifJ (FK) SifK Nivo Stepen BrojCasova Cena Pohadja Grupa SifJ (FK) SifK (FK) SifG Polaznik/Nastavnik (FK) SifO (FK) DatumPocetka DatumKraja OdrzanoCasova Polaznik/Nastavnik (FK) SifO (FK) SifJ (FK) SifK (FK) SifG (FK) Osoba Polaznik/Nastavnik SifO Ime Prezime Adresa Telefon ePosta DatumRodjenja
UplataIsplataProfaktura UplataIsplataProfaktura SifUIP Polaznik/Nastavnik (FK) SifO (FK) SifJ (FK) SifK (FK) SifG (FK) Iznos Datum
Kurs SifJ: char(4) SifK: char(2) Nivo: char(8) Stepen: tinyint BrojCasova: tinyint Cena: float Pohadja PolaznikNastavnik: char SifO: int SifJ: char(4) SifK: char(2) SifG: int Osoba PolaznikNastavnik: char SifO: int Ime: char(15) Prezime: char(18) Adresa: char(30) Telefon: char(13) ePosta: char(40) DatumRodjenja: datetime
Grupa SifJ: char(4) SifK: char(2) SifG: int PolaznikNastavnik: char SifO: int DatumPocetka: datetime DatumKraja: datetime OdrzanoCasova: tinyint
UplataIsplataProfaktura UplataIsplataProfaktura: char SifUIP: int PolaznikNastavnik: char SifO: int SifJ: char(4) SifK: char(2) SifG: int Iznos: float Datum: datetime
11
Milo Kovaevi
7 7. .M Ma at tr ri ic ca a o od dn no os sa a a ak kt ti iv vn no os st ti i i i e en nt ti it te et ta a
aktivnost kola + Obrada osoblja * Obrada polaznika : Unos podataka o polazniku : Izmena podataka o polazniku : Brisanje podataka o polazniku : Pretraga podataka o polazniku : Generisanje izvetaja o polaznicima * Obrada nastavnika + Raunovodstvo + Obrada nastave/jezika entitet Jezik
CRUD
Kurs
CRUD
Grupa
CRUD
Osoba
CRUD CRUD CRUD C RU RD R R CRUD R R
Pohaa
CRUD
Uplata Isplata
CRUD
R CRUD
R CRUD
R CRUD
R CRUD
CRUD R
12
Milo Kovaevi
8 8. .S SQ QL L e em ma a r re el la ac ci io on ne e b ba az ze e p po od da at ta ak ka a
CREATE TABLE Osoba ( SifO int, Ime char(15), Adresa char(30), Prezime char(18), Telefon char(13), DatumRodjenja datetime, ePosta char(40), PolaznikNastavnik char(18), PRIMARY KEY (PolaznikNastavnik, SifO) ); CREATE TABLE Jezik ( SifJ Naziv Varijanta PlataPoCasu PRIMARY KEY (SifJ) );
CREATE TABLE Kurs ( SifK char(2), SifJ char(4), Nivo char(8), BrojCasova tinyint, Stepen tinyint, Cena float, PRIMARY KEY (SifJ, SifK), FOREIGN KEY (SifJ) REFERENCES Jezik ON DELETE RESTRICT ); CREATE TABLE Grupa ( SifJ char(4), SifK char(2), SifG int, PolaznikNastavnik char(18), SifO int, DatumPocetka datetime, DatumKraja datetime, OdrzanoCasova tinyint, PRIMARY KEY (SifJ, SifK, SifG), FOREIGN KEY (PolaznikNastavnik, SifO) REFERENCES Osoba ON DELETE SET NULL, FOREIGN KEY (SifJ, SifK) REFERENCES Kurs ON DELETE RESTRICT );
13
Milo Kovaevi
CREATE TABLE Pohadja ( SifO int, SifJ char(4), PolaznikNastavnik char(18), SifK char(2), SifG int, PRIMARY KEY (PolaznikNastavnik, SifO, SifJ, SifK, SifG), FOREIGN KEY (SifJ, SifK, SifG) REFERENCES Grupa ON DELETE CASCADE, FOREIGN KEY (PolaznikNastavnik, SifO) REFERENCES Osoba ON DELETE CASCADE ); CREATE TABLE UplataIsplataProfaktura ( SifUIP int, PolaznikNastavnik char(18), SifO int, SifJ char(4), Iznos float, Datum datetime, SifK char(2), SifG int, UplataIsplataProfaktura char(18), PRIMARY KEY (UplataIsplataProfaktura, SifUIP), FOREIGN KEY (SifJ, SifK, SifG) REFERENCES Grupa ON DELETE SET NULL, FOREIGN KEY (PolaznikNastavnik, SifO) REFERENCES Osoba ON DELETE SET NULL );
Ovo je generisano automatski za ODBC 3.0 iz programa ERWIN 3.5.2 . Potrebna su jo dva trigera za ostvarenje korisnikih ogranienja:
/* zabrana pohadjanja nastavne grupe pre uplate */ CREATE trigger PlatiPaKlati on Pohadja FOR INSERT,UPDATE AS begin declare @errno int, @errmsg varchar(255), @SumaUplata float, @CenaKursa float SELECT @SumaUplata = SUM(Iznos) FROM UplataIsplataProfaktura inserted i WHERE u.UplataIsplataProfaktura='U' AND u.PolaznikNastavnik='P' AND u.SifO=i.SifO AND u.SifJ=i.SifJ AND
14
u,
Milo Kovaevi
u.SifK=i.SifK AND u.SifG=i.SifG SELECT @CenaKursa = Cena FROM Kurs k, inserted i WHERE k.SifJ=i.SifJ AND k.SifK=i.SifK IF (@SumaUplata<@CenaKursa) OR (@SumaUplata IS NULL) begin select @errno = 30001, @errmsg = 'Polaznik nije izvrsio kompletnu trazenu nastavnu grupu!' goto error end return error: raiserror @errno @errmsg rollback transaction end /* zabrana nastavniku da predaje vise od [max] jezika */ CREATE TRIGGER OgraniceniLingvista ON Grupa AFTER INSERT AS IF UPDATE(SifO) begin declare
uplatu
za
SELECT @brojjezika=COUNT (DISTINCT(g.SifJ)) FROM Grupa g, inserted i WHERE g.SifO=i.SifO SELECT @max = 2 IF @brojjezika>@max begin select @errno = 30001, @errmsg = ' Zabranjen INSERT - Nastavnik moze predavati najvise 2 jezika!' goto error end return error: raiserror @errno @errmsg rollback transaction end
15
Milo Kovaevi
/* zabrana nastavniku da predaje vise od [max] jezika */ CREATE TRIGGER OgraniceniLingvistaUpd ON Grupa AFTER UPDATE AS IF UPDATE(SifO) begin declare
SELECT @max = 2 IF EXISTS ( SELECT SifO FROM Grupa GROUP BY SifO HAVING COUNT(DISTINCT(SifJ))>@max begin select @errno = 30001, @errmsg = 'Zabranjen UPDATE najvise 2 jezika!' goto error end return error: raiserror @errno @errmsg rollback transaction end
Nastavnik
moze
predavati
16
Milo Kovaevi
1 10 0. . F Fo or rm ma a z za a u un no os s p po od da at ta ak ka a u u j je ed dn nu u t ta ab be el lu u
1 11 1. . F Fo or rm ma a z za a u un no os s p po od da at ta ak ka a u u d dv ve e t ta ab be el le e ( (m ma as st te er r-d de et ta ai il l) )
17
Milo Kovaevi
1 12 2. . P Pr re et tr ra ag ga a p po od da at ta ak ka a u u j je ed dn no oj j t ta ab be el li i
1 13 3. .I Iz zv ve e t ta aj j n na ad d d dv ve e t ta ab be el le e
18