[ LightBow @ 26.08.2007. 07:05 ] @
Radim neku normalizaciju na osnovu forme. U pitanju je fiktivna agencija koja nudi kratke kurseve skijanja. E sad, data je forma koju je vlasnik do sada rucno ispunjavao, a ja treba da iz te forme izvedem relacije koje ce biti u 3NF.
Jednu sam formu uradio, ali kod ove jednostavno ne vidim resenje. Evo kako forma izgleda:
Code:
[b]Ski-Italia Customer Booking Form[/b]

Booking Reference Number: R170
Booking Date: 19th September 20xx

Customer Name: Jack Douglas
Customer Address: 17 High Street Ingleside 
Customer Telephone (day): 0208 703-1948
Customer Telephone (evening): 0208 441-6503


Party consists of:

Name            D.O.B        Proficiency
Jack Douglas     18/01/60     B
Susie Douglas    02/12/64      B


Course#: 1278P
Beginning Date: 12-MAR-xx
End Date: 17-MAR-xx
Course Type: Intermediate


Dakle polaznici kursa rezervisu kurs, kojih ima nekoliko. Ovde se vidi da jedan polaznik (customer) pravi rezervaciju (booking). Ali..svaki taj polaznik moze da rezervise za vise ljudi. U ovoj formi (u sekciji party consist of) vidimo da je Jack Douglas rezervisao za sebe i Susie Douglas, koja je znaci isto customer.
E sad, iz prethodne normalizacije postoje entiteti (relacije) Course, Customer, i Booking.
Meni sad nije jasno kako da ovu formu dovedem u 2NF, tj. da uklonim non-atomic atribut party. Ako uradim po uputstvu iz knjige, taj party bi isao u Customer tabelu. Ali onda to cini kardinalnost relacije Customer -Booking Many to Many, zar ne?

I jos jedno pitanje. Ako jedan polaznik moze posle zavrsenog pocetnickog kursa da bukira recimo intermidiate kurs, koja je onda kardinalnost relacije Customer - Course?
[ CandyMan @ 26.08.2007. 08:45 ] @
Zdravo!

Trebalo bi da imaš dve relacije između Customer i Booking: jedan-više za relaciju koja govori ko je rezervisao, i relaciju više-više za korisnike usluge (Party Consists Of). Onaj ko je rezervisao ne mora obavezno da se nadje u Party Consists Of (roditelji deci uplate časove skijanja, svi su Customer-i).

Nema relacije izmedju Customer i Course, Customer-Booking jedan-više i Course Booking jedan-više.

[ broker @ 26.08.2007. 08:51 ] @
U osnovnoj tabeli koju si napraio imas vezu narucilac prema tabeli korsinika usluga.

Dodas jos jednu tabelu polaznici koja ima samo id narucioca i id kursa, pa preko nje povezujes onsonvu tabelu kurseva sa tabelom korisnika usluga. Tako imas mogucnost da upises neogranicen broj polaznika kursa.
[ LightBow @ 26.08.2007. 18:47 ] @
Hvala na odgovorima. Ako sam dobro shvatio, ove tri tabele koje sam vec definisao su u sustini dovoljne da rese problem ove forme, samo treba unistiti direktnu vezu izmedju Customer i Course. Znaci ovako bi trebalo da napravim:


CUSTOMER-1------m-BOOKING-m------1-COURSE

Onda bi u Customer trebao da ide foreign key bookingNo, ali kako onda zabeleziti ostale korisnike koji nisu narucioci?
Sad vidim da vas ipak nisam razumeo.
Citat:
broker: U osnovnoj tabeli koju si napraio imas vezu narucilac prema tabeli korsinika usluga.


zamolio bih te ako mozes da objasnis ovo. Da li to znaci da ipak tri tabele nisu dovoljne?
Hvala
[ broker @ 26.08.2007. 21:35 ] @
Kada bi napisao ovde koje su te tri tabele mozda bih mogao da ti odgovorim. :)
[ LightBow @ 27.08.2007. 02:51 ] @
Tabele su Customer, Booking i Course, kao sto sam predstavio skicom. One crtice su relacije, -1---m- predstavlja one to many relaciju izmedju leve i desne tabele. Dakle ja sam zamislio Izmedju Customer i Booking 1 to many relaciju, a izmedju Booking i Course many to 1. A Customer i Booking nisu u direktnoj relaciji. Ali tu mi je opet sumnjiva relacija izmedju Customer i Booking. Prvo sto ako je to stvarno one to many, onda ce u relaciji biti samo osoba koja je izvrsila rezervaciju, u ovom primeru Jack Douglas, pa nece biti zabelezeno da su i ostali polaznici uzeli kurs (u ovom primeru Susie Douglas).
Drugo, pretpostavimo da cak i ne postoji mogucnost da jedan customer (polaznik) rezervise za druge ljude, nego da svako rezervise za sebe. Da li bi i u tom slucaju ova relacija bila one to many? Jer jedan polaznik moze posle zavrsenog begginers kursa da rezervise recimo intermediate. Dakle bojim se da ne razumem same osnove kardinalnosti relacije potpuno.
[ chachka @ 27.08.2007. 05:49 ] @
[att_img]