You are on page 1of 19

Baza podataka za kolu stranih jezika

Milo Kovaevi

ELEKTROTEHNIKI FAKULTET UNIVERZITETA U BEOGRADU


predmet: SOFTVERSKI ALATI BAZA PODATAKA Domai zadatak

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:

Vladimir Bogojevi Milo Kovaevi 250/97

Baza podataka za kolu stranih jezika

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

Baza podataka za kolu stranih jezika

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.

Baza podataka za kolu stranih jezika

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

Baza podataka za kolu stranih jezika

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:

Baza podataka za kolu stranih jezika

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:

cene izvestaji o osoblju

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:

Baza podataka za kolu stranih jezika

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

izvestaji o polaznicima podaci o polaznicima

izvestaji o osoblju podaci o osoblju

izvestaji o nastavnicima nastavnici

Obrada Nastavnika
podaci o nastavnicima
2

NODE:

A1

TITLE:

Obrada Osoblja

NUMBER:

Baza podataka za kolu stranih jezika

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

Unos podataka o Polazniku


1

podaci o polaznicima

Izmena podataka o Polazniku


2

Brisanje podataka o Polazniku


3

Pretraga Polaznika
4

Generisanje Izvestaja
5

izvestaji o polaznicima

NODE:

A1.1

TITLE:

Obrada Polaznika

NUMBER:

Baza podataka za kolu stranih jezika

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

Baza podataka za kolu stranih jezika

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

Uplata Isplata Profaktura 4 4. 1 R Re ed du no ob je ka ta .1 uk ko ov va an na a e em ma a o od dn os sa a o bj ek at a objekti Jezik Osoba


(0,N)

veze

Kurs Grupa
(0,N)

pohadja

UplataIsplataProfaktura

Baza podataka za kolu stranih jezika

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

Baza podataka za kolu stranih jezika

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

Jezik SifJ: char(4) Naziv: char(18) Varijanta: char(18) PlataPoCasu: float

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

Baza podataka za kolu stranih jezika

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

Baza podataka za kolu stranih jezika

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) );

char(4), char(18), char(18), float,

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

Baza podataka za kolu stranih jezika

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,

Baza podataka za kolu stranih jezika

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

@errno @errmsg @brojjezika @max

int, varchar(255), int, int

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

Baza podataka za kolu stranih jezika

Milo Kovaevi

/* zabrana nastavniku da predaje vise od [max] jezika */ CREATE TRIGGER OgraniceniLingvistaUpd ON Grupa AFTER UPDATE AS IF UPDATE(SifO) begin declare

@errno int, @errmsg varchar(255), @max int

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

Baza podataka za kolu stranih jezika

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

Baza podataka za kolu stranih jezika

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

You might also like