[ augusto_princip @ 02.03.2005. 13:22 ] @
Zdravo.
Treba mi mala pomoć u vezi baza podataka, trebao bih da uradim raspored sati za
fakultet. Ako itko išta zna uz tu temu nešto da mi javi.
Potrebno je da se uradi tako da ispisuje rezultate za profesora, studenta i na kraju
ispiše to na ucionicu.
Bar ako može i obliku relacione baze sve mi odgovara!!!
Unaprijed hvala.
[ Mrav @ 05.03.2005. 19:48 ] @
Razjasni malo šta ti znači to "rezultati", da li to znači u koje vreme je ko zauzet? (profesor, student, učionica).
[ augusto_princip @ 06.03.2005. 14:14 ] @
Da, malo sam pogresio. Da za ispis ima raspored sa svaku učionicu koji ce
se nalaziti na vratima učionice.I za odsjeke.
[ Mrav @ 07.03.2005. 16:26 ] @
Nije me mrzelo da razradim šemu za takvu bazu.

Elem, imaš nekoliko objekata o kojima treba da vodiš računa.
1. Predavač (profesor, ali i asistent je predavač tako da je ovo šire)
2. Predmet (koji može predavati bilo koji predavač)
3. Učionica. (u kojoj se jel, drže predavanja)
4. Odsek (grupa ili slično, što predstavlja grupu studenata koja pohađa određeni predmet)
5. Zauzeće (objekat koji pokazuje zauzeće vremena u odnosu na učionicu odsek i "predavača koji predaje predmet", ovo poslednje ću objasniti kod poslednjeg objekta. Ovaj objekat je agregacija (nema primarni ključ)
6. Predmet_Predavača, ovaj poslednji objekat vezuje Predmet za Predavača (jedan predavač može predavati više predmeta, a jedan predmet mogu predavati više predavača), on nije čista agregacija i ima primarni ključ za koji se vezuje zauzeće.

A sad malo o vezama (imam uprošćenu šemu ako imaš visio poslaću ti).
Predavač, Odsek, Predmet i Učionica su takozvani "jaki" objekti jer ne zavise ni od jednog drugog objekta, imaju primarni ključ koji obezbeđuje jedinstvenost (jedan jedini profesor Pera Smarač, jedna učionica 103 itd.)
Predavač i predmet su međusobno povezani Predmetom_Predavača koji ima Spoljne ključeve na oba. Predmet_Predavača takođe ima i Primarni ključ i unique ograničenje na kombinaciju spoljnih ključeva ka predavaču i predmetu (može postojati samo jedna jedinstvena kombinacija predavača i predmeta, npr. za Peru Smarača se može samo jednom reći da predaje Dosadu, što ne znači da ne može da se kaže da Pera Smarač predaje i Smaranje, ili da Dosadu predaje i Mika Prevrtljivi). Razlog postojanja primarnog ključa nad Predmet_Predavača je da bi na njega povezali Zauzeće (u jedno vreme Pera Smarač može predavati samo Dosadu).
Zauzeće povezuje celinu, ima spolje ključeve ka Predmet_Predavača, Učionica i Odsek i on je "slab" objekat u pravom smislu (nema primarni ključ) i predstavlja agregaciju ova tri objekta. Napomena je da pre ubacivanja vrednosti u Zauzeće treba proveriti da li je predavač ili učionica već zauzeta u datom vremenu.

Kada se sve to nacrta u jednoj šemi jasnije se vidi kako ćemo dobiti rezultate za svaki upit koji tražimo. Recimo ako tražimo kada i u kojoj učionici je profesor zauzet, pravimo upit koji će reći:

Pseudokod:
SELECT u.BrojUčionice, z.od, z.do FROM Zauzeće z JOIN Predmet_Predavača pp ON z.Predmet_PredavačaID = pp.Predmet_PredavačaID JOIN Predavač p ON pp.PredavačID = p.PredavačID JOIN Učionica u ON z.UčionicaID = u.UčionicaID
WHERE p.Ime ="Pera Smarač"

E, nadam se da nisam žešće izgrešio, i da će ovo pomoći.

Pozdrav.
[ dragancesu @ 07.03.2005. 19:41 ] @
Nisam do sada resavao ovakav problem, ali se secam price onih ko jeste.

Kod ovog preblema pocinjes sa izuzecima. To je ono: onaj profa nece da ima prva tri casa u ponedeljak, onaj nece ponedeljkom da radi, onaj nece da radi u petak, onaj nece da ima prekid u predavanjima. Najgora stvar je to definisati, a posle se generise ono sto treba. Sve u svemu nije lako.


[ Mrav @ 08.03.2005. 18:37 ] @
Napravio sam ovakvu test bazu u SQL serveru, ako hoćeš da ti pošaljem (trebalo bi poraditi na nekim detaljima, ali ništa bitno, nisam imao vremena da širim priču)
[ augusto_princip @ 09.03.2005. 21:50 ] @
Zelim ti se mnogo zahvaliti jer si mi mnogo pomogao, i izvini ako sam ti
uskratio vrijeme.
[ Mrav @ 10.03.2005. 15:34 ] @
Nema problema!