Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Da li su potrebne nove tablice u ovom slučaju?

[es] :: Access :: Da li su potrebne nove tablice u ovom slučaju?

[ Pregleda: 3680 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

itf
Zagreb

Član broj: 59794
Poruke: 993
161.53.237.*



+9 Profil

icon Da li su potrebne nove tablice u ovom slučaju?18.10.2007. u 15:09 - pre 200 meseci
Radim aplikaciju u C++u za testiranje studenata (višestruki odgovori za svako pitanje) i napravio sam sljedeće relacije:



E sad... ja moram napraviti da se za svakog studenta bilježi koja je pitanja dobio i kako je odgovorio na svaki ponuđeni odgovor. Glupo mi je sad doslovice prekopirati gornje dvije tablice (Pitanje, Odgovor) da bi napravio relaciju iz tablice Student, nego me zanima je li moguće ikako iskoristit već postojeću relaciju?

Osobno mislim čak da ni ne može drukčije, no vjerujem da ste vi pametniji, pa ako ima kakav koristan prijedlog recite.
 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2828



+45 Profil

icon Re: Da li su potrebne nove tablice u ovom slučaju?18.10.2007. u 16:15 - pre 200 meseci
Ako je u pitanju ispit samo iz jednog predmeta (jednokratno testiranje) dalo bi se prepraviti. Ako je više ispita na godini studija u pitanju onda bih najradije oborio model i napravio nov. Jedan student može imati više pitanja. Takva veza mora da postoji. Objasni ovaj entitet kolegij. Ako je je to ispitna komisija, nema potrebe vezivati je za pitanja, već iskljušivo za ispit. Bilo bi još pitanja, ali za početak neka bude ovo. Probaj da ispričaš celu priču u desetak petnajest rečenica ali tako, kao da drugi nemaju pojma o tvom projektnom zadatku i usredsredi se na to, šta koliko čega može da sadrži.
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
161.53.237.*



+9 Profil

icon Re: Da li su potrebne nove tablice u ovom slučaju?18.10.2007. u 16:25 - pre 200 meseci
- Kolegij predstavlja naziv predmeta iz kojeg se "piše" ispit.
- Svaki kolegij (predmet) može imati neograničen broj pitanja (tablica Pitanje), a svako pitanje neograničen broj ponuđenih odgovora (tablica Odgovor).
- Isto tako, svaki kolegij ima svoje ispite (tablica Ispit) koji su sastavljeni od pitanja spremljenih za taj ispit (tablica Pitanja iz relacije za taj kolegij).
- Za svaki ispit iz nekog kolegija bilježe se i odabrana pitanja iz tablice Pitanje

...

i sad treba napraviti da se za svaki ispit pišu i podaci o studentu koji ga je pisao... s time da se piše i svako pitanje koje je imao i kako je odgovorio na svaki ponuđeni odgovor tog pitanja (zbog slučaja reklamacija studenata).


"Seljački" rečeno, treba za svaki predmet imati skup pitanja i njihovih ponuđenih odgovora i isto tako voditi evidenciju o svakom ispitu iz pojedinog predmeta (koja pitanja i tko je pisao i kako odgovorio).
 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2828



+45 Profil

icon Re: Da li su potrebne nove tablice u ovom slučaju?18.10.2007. u 16:32 - pre 200 meseci
Da sad je malo jasnije. Manja jezička barijera. Ovo kolegij sam shvatio kao kolegijum (skup više kolega recimo profesora). Razmislim pa se javim.
 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2828



+45 Profil

icon Re: Da li su potrebne nove tablice u ovom slučaju?18.10.2007. u 17:04 - pre 200 meseci
Ovo na desnoj strani: Pitanja, Odgovori i Kolegij, ja bih shvatio kao šifarnike odnosno tabele koje su prethodno popunjene da bi se proces mogao pratiti. Na levoj strani vidim tabele Ispit i IspitPitanja sa vezom jedan prema više. Dakle jedan Ispit sadržao bi više ispitnih pitanja, ali bi po meni bi i jedan student mogao da odgovara na više ispitnih pitanja (tri ili pet recimo) što i jeste praksa. Tako da bi se moje rešenje okrenulo na levu stranu i spojio bih tabelu Student tabelu IspitPitanja sa jedan prema više dodajući JMBG kao strani ključ u tabelu IspitPitanja. Tako bih od tabele IspitPitanja napravio evidenciju o svim pitanjima i odgovorima na svim ispitima i iz svih predmeta. Naravno rečenu tabelu treba proširiti adekvatnim atributima. Ostalo bih rešavao koristeći query-je nad tabelama-šifarnicima sa desne strane.

To je moje viđenje. Valjalo bi čuti još koga od kolega. Bilo bi dobro da si ovo pitanje postavio na forum Baze podataka. Tamo ima vrsnih poznavalaca projektovanja baza. Kad malo bolje razmislim pošto je ovo Access forum, tvoje pitanje vezano za C++ , a ja imam moderatorska ovlašćenja, trebalo je da ja to da uradim. Al neka ga sad tu pa ako ne bude interesovanja za dan dva ću ga preseliti.

 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
161.53.237.*



+9 Profil

icon Re: Da li su potrebne nove tablice u ovom slučaju?18.10.2007. u 17:58 - pre 200 meseci
Ne koristim direktno sql upite i relacije koje postoje u bazi direktno se reflektiraju u programu. To želim iskoristiti jer brzo dolazim do podataka (tablice se automatski filtriraju bez upotrebe ikakvog sql upita). U svakom slučaju može prebacivanje ako se pokaže potreba za tim. Zahvaljujem.
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Da li su potrebne nove tablice u ovom slučaju?18.10.2007. u 18:05 - pre 200 meseci
Lepa tema :-)

@ itf:

1) Pretpostavicu da postoji vise kolegijuma (kolegijum = katedra ?). OK, treba tabela (sifranik) koji cuna nazive kolegijuma.
2) Svaki kolegijum ima svoju 'bazu' ispitnih pitanja ('question pool') iz koje se konstruisu ispiti.
3) Receno je da su pitanja sa visetrukim odgovorima, dakle 'multipe choice'.
4) Ova vrsta pitanja ne daje se nikad po jedno pitanje, nego se pitanja grupisu u testove to jest ispite. Dakle, ispit je skup pitanja.
5) Svaki ispit je jednoznacno definisan nekakvom sifrom i svaki ispit pripada odedjenom kolegijumu. Lepo je da znamo i datum ispita, ali nebitno za ovaj nivo analize. Sto lep rece Getsbi, dodaj atribute koji ti trebaju.
6) Posto su pitanaj multiple choice, negd treba da cuvamo ponudjene odgovore.
7) Za svako pitanje samo jedan odgovor je tacan. Treba i to negde da zapisemo.
8) Svaki student moze da uzme bilo koji ispit. Da li bas? Pre bih rekao ovako "studenti koji su registrovani za odredjenu katedru mogu uzeti ispite sa te kateder (kolegijuma)
9) Student koji uzme odredjen ispit moze odgovoriti samo na pitanja koja pripadaju tom ispitu
10) Negde moramo da zapisemo sta je student odgovorio, to jest koji je od ponudjenih odgovora izabrao.

Na osnovu ovih 10 tacaka sledi prva iteracija logickog model baze, strukture baze ili sta je vec pravilan izraz:

1) Pretpostavicu da postoji vise kolegijuma (kolegijum = katedra ?). => Treba nam tabela (sifranik) koji cuna nazive kolegijuma. neka ima samo jednu kolonu, i ona je PK: tblKolegijumi(Kolegijum) Atribut 'Kolegijum' dakle jednoznacno definise nas kolegijum. Tip podataka je absolutno nebitan u ovom momentu.

2) Svaki kolegijum ima svoju 'bazu' ispitnih pitanja ('question pool') iz koje se konstruisu ispiti. => treba nam tabela za bazu ispitnih pitanja. Nazovimo je tblMogucaIspitnaPitanja (Kolegij, Pitanje, TacanOdgovor) PK = (Kolegij, Pitanje) Na ovaj nacin se tacno zna kom kolegiumu pripada koje pitanje. Atribut Pitanje moze biti text pitanja ili nekakav ID, nebitno za ovaj nivo analize. Atribut TacanOdgovor nam kazuje koji je odgovor od ponudjenih odgovora onaj pravi. Ovim smo resili i tacku 7). Pomenimo Foreign Key (relacija u Accessu) tblKolegijum.Kolegijum REFERENCES tblPitanja.Kolegijum, 1:vise

3) Receno je da su pitanja sa visetrukim odgovorima, dakle 'multipe choice'. => za svako pitanje, treba nam tabela koja cuva ponudjene odgovore, evo je
tblPonudjeniOdgovori (Kolegij, Pitanje,PonudjeniOdgovor), svi zajeno su PK. Ako za PonudjeniOdgovor uzmemo ono a,b,s,d, ond anam treba i dodatni atribut 'textOdgovora'. Nebitno za ovaj nivo, pa ostajemo sa tri atributa, sva tri cine PK.

5) Svaki ispit pripada odedjenom kolegijumu => tabela tblIspiti (Kolegijum, Ispit, datum) PK (Kolegijum,ISpit), takodje i FK tblKojegijumi.Kolegijum REFERENCES tblIspiti .Kolegijum, 1:vise

4) Ova vrsta pitanja ne daje se nikad po jedno pitanje, nego se pitanja grupisu u testove to jest ispite. Dakle, ispit je skup pitanja. Odavde sledi tabela tblIspitnaPitanja (Kolegijum, Ispt, Pitanje),PK cine sve tri kolone. Ovde imamo dva FK (dve relacije), jednu sa tabele tblIspiti, kolone (Kolegijum, Ispt) i drugu sa tabela tblPitanja po kolonama (Kolegijum Pitanje)

8) Student mora bii registrovan za odredjeni kolegijum da bi mogao da polaze ispite sa tog kolegijuma. Ovde su dve stvari sakrivene. Studenti koji su registrovani na kolegijmu i ko od njih je uzeo koji ispit. Evo tabela tblStudentiNaKolegijumu (Kolegijum, Student), sve kolone su PK. Imamo i FK tblKojegijumi.Kolegijum REFERENCES tblStudenti.Kolegijum, 1:vise. Jos jedna tabela, tblStudentiIspiti (Kolegijum, Student,ISpit), sve tri kolone su PK i ima dva FK (dve relacije) Prva relacija iz tabele tblStudentiNaKolegijumu na tblStudentiIspiti perko Kolegijum, Student), jedan prema vise. Druga relacija sa tabelom.a tblIspiti na tblStudentiIspiti preko kolona (Kolegijum, Ispit)

9) Student koji uzme odredjen ispit moze odgovoriti samo na pitanja koja pripadaju tom ispitu. Iz ovoga sledi tabela tblStudentiIspitiPitanja, koja za svakog students u tabeli tblStudentiIspiti ima onoliko redova koliko je reova u tabeli tblIspitaPitanja. dakle imamo tblStudentiIspitiPitanja (Kolegijum, ispit, Student, Pitanje, OdgovorStudenta) Kolone cine PK, a u OdgovorStudents upisujemo sta je student izabrao od ponudjenih (a/b/c/d) odgovora. Ovim smo resili i zahtev 10)
I ovde imamo dva FK (dve relacije). Prva je sa tabele tblStudentiIspiti a druga sa tabele tblIspitnjaPitanja, po respektivnim PK kolonama u roditelj tabelama. Mozemo da imamo i trecu relaciju, u slucajevima kada pitanja nemaju isti broj ponudjenih odgovora (sto je veoma retko u praksi), sa tabele tblPonudjeniOdgovori. ako sva pitanaj imaju isti broj ponudjenih odgovora, recimo 4, onda je dovoljno postaviti za OdgovorStudenta jedna CHECK cinstraint:OdgovorStudenta BETWEEN 1 and 4. ako je broj ponudjenih odgovora razlicit od pitanja do pitanja, treba nam relacija sa tblPonudjeniOdgovori po kolonama (Kolegijum, Pitanje, Odgovor). To je da ne bismo nekome upisali odgovor 'h' ako su odgovri samo (a,b,c,d)

Naravno da ovo ne pricam napamet, imam sliku koju sam na brzinu nacrtao olovkom na papiru. nemam vremena da sad crtam to sve u Visiu ili Accessu, pa ostavljam tebi d apokusas da se snadjes. posto je ovo tek prva iteracija, moguca su i potrebna neka poboljsanja. to bi trebalo da nam otkrije sledeca faza analize u kojoj proveravamo da li nase tabele i relacije zadovoljavaju pravila normalizacije. Ima stosta da se poradi jos, ali bi moglo da prodje i ovako.

Slozeni klucevi su neophodni da bi se obezbedio integritet podataka. Dodavanje surogat kljucebva na model nece model uciniti niti jasnijim niti brzim, pa to ne preporucujem. Potpuna zamena slozenih kljuceva (izbacivanje 'suvisnih' kolona i zamena po jednom autonumber kolonom) nekakvim autonumber bila bi katastrofa za model - izgubio bi se inetgritet podataka.

Za kontrolu, ima do sada 8 tabela:
tblKolegijumi (1), roditelj za tblPitanja (2), tblIspiti (3), tblStudentiNaKolegijumu (4)
tblPitanja je roditelj za tblPonudjeniOdgovori (5)
tblIspitnaPitanja (6) ima dva roditelja (tblIspiti i tblPitanja)
tblStudentiIspiti (7) ima 2 roditelja tblStudentiNaKolegijumu i tblIspiti
tblStudentiIspitiPitanja (8) ima dva a mozda i tri roditelja. Sigurni roditelji su tblStudentiIspiti i tblIspitnaPitanja , a mozda se umesa i tblPonudjeniOdgovori

Normalizacija bi mogla da proizved verovatno jos dve, ali nije obavezno, moze i ovako.

Slicne konfiguracije se dobijaju kad se modeliraju ankete. Iamli smo pitanje o anketnim listovima na ovom forumu ili na bazama podataka, ne secam se tacno. Potrazi pa mozda i nadjes.


Srecan rad.

:-)

 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
161.53.237.*



+9 Profil

icon Re: Da li su potrebne nove tablice u ovom slučaju?18.10.2007. u 18:14 - pre 200 meseci
Naravno da svi atributi sada nisu navedeni, već trenutno samo oni najbitniji ;) U svakom slučaju tu će još biti nekih podataka poput datuma ispita, da li je ispit dostupan, u koje vrijeme, kome itd itd.. No, to je samo dodavanje "usputnih" kolona. Sada je konstrukcija toga najbitnija. Općenito, na ovakve probleme sam naletavao dosta puta pa bi mi bilo drago vidjeti alternative.

Budem sutra u attachment stavio i aplikaciju s bazom pa da bude još jasnije sve.
 
Odgovor na temu

[es] :: Access :: Da li su potrebne nove tablice u ovom slučaju?

[ Pregleda: 3680 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.