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

Teorija vs. praksa - modeliranje lige u nekom sportu

[es] :: Baze podataka :: Teorija vs. praksa - modeliranje lige u nekom sportu

Strane: 1 2 3

[ Pregleda: 19784 | Odgovora: 48 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
*.tippnet.co.yu.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: Teorija vs. praksa - modeliranje lige u nekom sportu04.09.2006. u 08:22 - pre 214 meseci
@Zidar: Pored neodgovorenih pitanja iz mog predhodnog posta imam još jedno pitanje za naručioca projekta.
Svrha i ciljevi baze koje sam postavio ne pokrivaju pripremu za takmičenje (regrutovanje dece, odlučivanje o broju timova, podela timova po divizijama). Da li naručioc (u daljem obraćanju Zidar) želi da se baza proširi i na ovaj segment rada sportskog kluba?



Rezimiraću neke svoje zaključke:
- Postoji samo jedan klub..
- Za jedan sport postoji samo jedna liga.
- Liga se deli na divizije.
- Sve ovo je pod pokroviteljstvom jednog sportskog kluba.
- Timovi nisu registrovani kod državnih institucija (čitaj timovi nisu pravna lica), nego je to klub.
- Sponzori formalno pravno sponzorišu rad kluba kao celine. Internim aktima (dogovorima) kluba se odlučuje kako se sredstva troše.


Čini mi se da ovde nemamo hijerarhije tipa:
- FIFA -> Fudbalski Savez Srbije -> Fudbalski Klub Crvena Zvezda -> Prvi Tim FK CZ,
- Sportsko Društvo Crvena Zvezda -> Košarkaški Klub Crvena Zvezda -> Kadeti KK CZ.



@Dejan
Pošto očekuješ sugestije, na prvi pogled:
- Tim može da ima maksimalno jednog igrača. To je kapiten, ali gde je sastav tima? Odnosno kako je Zidar definisao: Gde je lista igrača?
- Ostatak ne mogu komentarisati jer mi se viđenje problema dosta razlikuje (jedan klub, jedna liga, klub = organizator).



Šaljem i svoj dosadašnji rad, ali on nije bog zna šta, jer imam još dosta nerazjašnjenih pitanja. Još sam u fazi analize.
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
Prikačeni fajlovi
 
Odgovor na temu

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

Član broj: 635
Poruke: 1374
*.it-austria.net.

Sajt: www.baze-podataka.net


+2 Profil

icon Re: Teorija vs. praksa - modeliranje lige u nekom sportu04.09.2006. u 09:37 - pre 214 meseci
Citat:
chachka: @Dejan
Pošto očekuješ sugestije, na prvi pogled:
- Tim može da ima maksimalno jednog igrača. To je kapiten, ali gde je sastav tima? Odnosno kako je Zidar definisao: Gde je lista igrača?
- Ostatak ne mogu komentarisati jer mi se viđenje problema dosta razlikuje (jedan klub, jedna liga, klub = organizator).
Ma nisam mislio da tim ima max jednog igraca, nego sam u zurbi obrnuo relationship izmedju te dvije tabele (parent -> child). :) Evo sad kad sam detaljnije pogledao, ima jos veza medju tabelama, koje nisu pravilno postavljene. Ispravicu to u iducoj beta verziji. :)

Nazalost, nemam sad vremena da detaljno procitam cijeli tvoj tekst, ali vidjecu veceras ili sutra kako si ti to zamislio i poslozio... Da li bi mogao i ti napraviti ER dijagram po svom rjesenju?

Da li je mozda jos neko u medjuvremenu napravio ER dijagram za svoje vidjenje baze?


@Zidar: Ne bi bilo lose, kad bi postavio listu pitanja sa selektovanjem podataka iz baze, kako bismo ta pitanja mogli pretvoriti u SQL izraze...
Npr. "koliko je golova bilo na toj i toj utakmici?", "Koliko je golova dao taj igrac u sezoni?" ili "Izlistaj izvjestaj sa te i te utakmice"...
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

Andreja Dulovic

Član broj: 14570
Poruke: 246
*.adsl.sezampro.yu.



+5 Profil

icon Re: Teorija vs. praksa - modeliranje lige u nekom sportu04.09.2006. u 10:33 - pre 214 meseci
@Zidar
Citat:
dobro bi dosli i primeri sa podacima.

mislim da nema potrebe da upoznajemo klijenta sa strukturom tabela i samom implementacijom baze. ima vise razloga zbog kojih mislim da je to lose. prvi i osnovni je taj sto ce klijet brzo poceti da nam "soli pamet". :) :)

Citat:
Setite se, ja sam laik za komjutrka posla. I ovo je iterativan proces u kome vi pokusavate iz mene da izvucete bitne informacije, a ja uporno na netehnicki nacin pricam o tome kako radi liga. Iz moje price vi u stvari pravite specifikaciju (listu pravila) sa kojima cu se ja na kraju sloziti i onda idemo u gradjenje sistema. Rekoh, iterativan proces, pa ce biti mozda nekoliko krugova price dok ne isteramo sve na cistac.

kad bi ovo bila stvarna situacija, ja nikad ne bih krenuo od projektovanja baze i smisaljanja tabela, vec bi rad na tom zapoceo tek kad specifikacija bude totalno jasna i kad korisnik "aminuje" GUI i funkcije koje ocekuje da program izvrsava. prvo bih napravio "funkcionalni model" programa, gde korisnik moze da "klikce" i simulira rad (da bih video sta ocekuje i gde ga program intuitivno "vodi"), pri tome mi govoreci sta bi jos hteo da program moze da radi. tek onda bih razmatrao tabele i bazu. mislim da pravljenje baze i definisanje tabela i upita pre nego sto se uradi ovaj prethodni korak nema mnogo smisla, no, to je moje misljenje...


@Dejan Topalovic
da li kolona "Stari broj dresa" u tabeli PRELASCI postoji zbog situacije kad igrac u okviru istog tima promeni broj dresa (posto ne mogu da se setim ni jedne druge situacije u kojoj bi taj podatak trebalo cuvati)?

 
Odgovor na temu

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

Član broj: 635
Poruke: 1374
*.it-austria.net.

Sajt: www.baze-podataka.net


+2 Profil

icon Re: Teorija vs. praksa - modeliranje lige u nekom sportu04.09.2006. u 11:13 - pre 214 meseci
@Andreja: Sve kolone u tabelama su proizvoljne, pa tako i kolona sa starim i novim brojem dresa. Npr. kad igrac predje u novi tim, moze se desiti da dobije novi broj dresa, pa se moze sacuvati informacija o novom i starom broju dresa.

Primijetices da sam u nekim tabelama naveo kolone "BLABLA", jer je ovo samo ipak radna verzija i podlozna je cestim promjenama, kojih ce naravno biti. :)
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
*.tippnet.co.yu.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: Teorija vs. praksa - modeliranje lige u nekom sportu04.09.2006. u 11:51 - pre 214 meseci
Citat:
Dejan Topalovic: Da li bi mogao i ti napraviti ER dijagram po svom rjesenju?

Da, naravno. Napraviću propratni ER dijagram čim se usaglasim sa Zidarom šta se projektuje. Recimo, ciljevi koje sam ja postavio pred bazu ne pominju predsezonu ili upravljanje opremom.

Moram prvo analizirati šta Zidar hoće i da li ga ja dobro razumem. Nažalost to je spor proces kada se odvija preko foruma.

"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
 
Odgovor na temu

Andreja Dulovic

Član broj: 14570
Poruke: 246
*.adsl.sezampro.yu.



+5 Profil

icon Re: Teorija vs. praksa - modeliranje lige u nekom sportu04.09.2006. u 13:47 - pre 214 meseci
@Dejan
u pravu si, nisam video "blabla" kolone u ostalim tabelama, pa sam mislio da je u pitanju konacna verzija. :)
 
Odgovor na temu

Zidar
Canada

Član broj: 15387
Poruke: 3085
*.eqao.com.



+79 Profil

icon Re: Teorija vs. praksa - modeliranje lige u nekom sportu05.09.2006. u 18:12 - pre 214 meseci
Ponedeljak u Kanadi bio neradan dan, pa smo ga proveli - na utakmici. Odveli starije dete na neki teren 150 km od Toronta. Dosle sudije iz obliznjeg mesta, timovi odigrali, SC Swansea : Humberland 5:3, Swansea (nasi) uknjizio 3 poena a dvojica nasih dobili zute kartone.

Pre nego pokusam da odgovorim na konkretna pitanja, da ponovim jos jednom sta se trazi a sta ne.
Sta se trazi:
Opste:
Trazi se model baze podataka koji omogucuje da se zapise ko igra (timovi) i kojim su rezultatima zavrsene utakmice u nekom takmicenju tokom jedne sportske sezone. U svakom takmicenju (ligi) ucestvuju razlicte starosne kategorije (divizije) .
- Sezona je jedan takmicarski ciklus u jednom sportu.
- model treba da podrzi razne timske sportove, koji su slicni fudbalu
- Postoje razlicte starosne kategorije (divizije) u okviru jednog sporta
- U okviru svake divizije, u datoj sezoni i sportu, igraju dati timovi.
- Timovi imaju sponzore, recimo tacno jednog. Ime sponzora treba da se pojavi u tabeli uz ime tima.
- u istom momentu, klub moze da oragnizuje nekoliko razlicitih takmicenja u razlicitim sportovim i starosnim divizijama

Utakmice:
Utakmice se igraju po unapred utvrdjenom rasporedu, na zadatom mestu (terenu) u zadato vreme.
- Utakmice su grupisane u kola.
- U svakoj utakmici uscevuju dva tima.
- Svaki tim u svakim kolu moze se pojaviti najvise jednom.
- Sve divizije jednog sporta medjusobno dele terene. Ne sme se dozvoliti da na jednom terenu u isto vreme budu dve utakmice.


Sudije:
- Utakmicama se dodeljuje sudija.
- Da bi se sudija dodelio utakmici, mora biti na spisku sudija za taj sport za datu sezonu.
- Sudije u jednom sportu, sude svim divizijama
- Ako je osoba moze da sudi utakmice vise sportova, vodi se u svakom spisku posebno
- Ne sme se dozvoliti da jedan sudija bude dodeljen na dve razlicite utakmice u isto vreme, makar utakmice bile u razlictim divizijama

Stanje na tabeli::
Na osnovu rezultata odigranih utakmica izracunava se tabela, kao u fudbalu. Zahtev: napraviti skup objekata (vievws, stored procedures) koji kao razultat izbacuju tabelu. Uzeti u obzir sve utakmice koje su odigrane do momenta izracunavanja tabele, a koje nisu iz nekog razloga ponistene. Timovi se rangiraju po broju osvojenih bodova, po gol/kos/run razlici, po broju odigranih utaknica.

Kad je model gotov, uneti nekolko test podataka, rezultate nekoliko utakmica u nekoliko kola i pokazati da uradjeni view/stord procedure moze da korektno izracuna tabelu.

U odgovoru Dejanu Topalovicu i Chachki dao sam primer sezone, timova i ostalo.

Sta se ne trazi:
Ne trazi se program (forme, izvestaji). nema veze sta ce biti, web ili windows, to se nista ne zna i nije bitno u ovom momentu. Ne trazi se pracenje ocena igraca, pozicija u timu, ko je dao golove ili vrsta gola, to se nista ne trazi. ne trazi se pracenje registracije igraca, da li su uplatili pare, koji im je telefon, nista od toga

Pozeljno ali nije obavezno:
Nije obavezno da se prate igraci (IZMENA u odnosu na prvobitni zahtev) Iz ovoga sledi da se izbacuje i pracenje kazni - ko ne sme da igra sledecu utakmicu. Ovo jeste bio zahtev prvobitnmo, ali se skida odlukom direktora kluba. To mozemo da dodamo kasnije.


Konkretna pitanja:
Da probam da ogovorim redom:
@Broker:
Citat:
Jedna opaska, kozmeticke prirode. Onzke timova bi valjalo da budu slovne, kao neka vrsta skracenice od imena, ogranicene na recimo maksimalno cetiri slova.

A: Moze i tako. razlog sto koristimo brojeve je tablica za pravljenje rasporeda. U toj tablici se timovi oznacavaju rednim brojevima, pa tako radimo i mi. Tablicu za pravljenje rasporeda objasnio sam u prethodnom postu

@Dejan Topalovic:
Shema baze koju si dao ima i vise stvari negos to je trazeno. Nije potrebno pratiti: prijave, Organizatore i Prelaske, Pozicije u timu, Ocjene. Isto nije neophodno partiti vrste golova i ko ih je dao, dovoljan je rezultat. Sve sto si naveo, moze da prodje, ali nije obavezno.

Q:
Citat:
Jos nisam cuo da je neko direktor i fudbalske lige, i hokejaske, i bejzbol lige...

A: Tacno, niko nije direktor sve tri lige, to je potpuno necvazno. Ali postoje tri direktora, mada ni to nije vazno jer necemo cuvati u bazi ko je direktor. Ostaje potreba da cuvamo u bazi podatke o sve tri lige, za ovu godinu, p za sledecu, pa opet sledecu. Podaci iz proslosti ce naprosto sedeti u bazi, necemo im se vracati. Ali ne zelimo sistem koji ce nam za svaku sezonu generisati po jedan fajl. Na primer, sve se uradi u Accessu, za tacno jedan sport, tacno jednu sezonu i onda za sleecu sezonu pocinjemo od istog takvog ali praznog Access fajla. Mi to ne zelimo. Zelimo ovako:
- unesemo rekord u tabelu koja sadrzi spisak svih sezona, kao:

Sezone:
ID Sport Sezona
1 , Fudbal, leto 2005
2 , Hokej , zima 2005-2006
3 , Baseball, leto 2006

Starosne kategorije - divizije:
ID Sport Sezona
1 , Fudbal, leto 2005, 'godiste 1991'
2 , Fudbal, leto 2005, 'godiste 1993'
3 , Fudbal, leto 2005, 'godiste 1995'
4 , Hokej , zima 2005-2006, 'decaci atom'
5 , Hokej , zima 2005-2006, 'decaci bantam'
6 , Hokej , zima 2005-2006, 'decaci midget'
7 , Hokej , zima 2005-2006, 'devojcice atom-bantam'

Onda definisemo timove, za svaku diviziju u okviru date sezone. Na primer, spisak timova izgleda nekako ovako:
Citat:

Fudbal, sezona 'leto 2005', Divizija 'godiste 1991':
1. Orlovi, sponzor 'Ujedinjeni zidari'
2. Panteri, sponzor 'Denatl Oriantal'
3. Lavovi, sponzor 'Kwiki Mart'
4. Ratnici, sponzor 'Simpsons and Co.'

Fudbal, sezona 'leto 2005', Divizija 'godiste 1993':
1. Ratnici, sponzor 'Master Carpet'
2. Rendzeri, sponzor 'Cofee Shop'
3. Lavovi, sponzor 'Deantal oriental'
4. Jastrebovi 'Di Nota Asphalt'
5. Kobre 'Silva Architects'


Onda dodelimo igrace koji su u tim timovima. Ovako izgleda spisak:
Citat:

Fudbal, sezona 'leto 2005', Divizija 'godiste 1991':
Tim: Orlovi, sponzor 'Ujedinjeni zidari'
Trener : Dragoslav Sekularac
Igraci:
Marko Markovic, broj dresa 88
John Smith, broj dresa 47
Zorica Brunclik, broj dresa 7
Paris Hilton, broj na dresu 12
Brad Pit, broj na dresu 45


Onda definisemo utakmice koje ce se igrati u datoj sezoni i grupismo ih u kola. Ostavimo prazan prostor da upisemo mesto (igraliste) i vreme, jer to radimo kasnije, ne u momentu kad se sastavlja raspored, odmah posle toga, ali POSLE satsvljanja rasporeda. Isto tako ostavimo prazan prostor da upisemo rezultate. Onda posle svakog kola upisujemo rezultate i izracunavamo tabelu. Ne moramo da cuvamo kopije tabela iz kola u kolo. Ako moze da se napravi query koji bi izracunao tabelu zakljcno sa zadatim kolom ili datumom, bilo bi super, ali nije obavezno. Dovoljno je izracunati tabelu koja uzima u obzir sve utakmice koje se u trenutku izracunavanja nalaze u bazi i imaju rezultat i nisu ponistene.

Chachka:
Q:
Moje pitanje direkturu lige je: Da li ostaje pri tome da se baza pravi za sve sportove od interesa (bejzbol, fudbal, hokej) ili da se baza pravi za konkretan sport (a dobar deo prepiske navodi na fudbal, što je Dejan i predložio)?
A: Ne vidim razlog da se fokusiramo na jedan sport. Fudbal uzimamo kao primer jer ga svi najbolje razumemo. Bejzbol ima pobede, poraze i nereseno, bas kao i fudbal ili kosarka. Hokej ima iskljucenja i kazne neigranja sledece utakmice, bas kao i fudbal, Kosarka to nema, 5 licnih ne znaci neigranje sledece utakmice, ali je to ne cini mnogo razlicitom od fudbala ihokeja, pa i bejzbola.


Citat:
Rezimiraću neke svoje zaključke:
- Postoji samo jedan klub..

A: Klub je firma koja organizuje takmicenja. Klub sam po sebi ne ucestvuje ni u kakvom takmicenju. Timovi su ucesnici takmicenja.
Q:
Citat:
- Za jedan sport postoji samo jedna liga.
- Liga se deli na divizije.

A: Tacno. U takmicarskom smislu (utakmice) svaka divizija je liga za sebe. Divizije u jednom sportu medju sobom dele terene i sudije. Tako, ne moze se jedan sudija dodeliti da sudi utakmicu u diviziji 'godiset 93' i istovremeno da sudi utakmicu u diviziji 'godiste 97'. Jasno je da hokej sudija ne moze da sudi fudbal. Ali nije iskljuceno da je ista osoba sudija i za hokej i za fudbal. U tom slucaju mi vodimo tu osobu na dva mesta, u listi sudija za fudbal i u listi sudija za hokej.
Q:
Citat:

- Sve ovo je pod pokroviteljstvom jednog sportskog kluba.
- Timovi nisu registrovani kod državnih institucija (čitaj timovi nisu pravna lica), nego je to klub.
- Sponzori formalno pravno sponzorišu rad kluba kao celine. Internim aktima (dogovorima) kluba se odlučuje kako se sredstva troše.

A: Tacno.

Q:
Citat:
Čini mi se da ovde nemamo hijerarhije tipa:
- FIFA -> Fudbalski Savez Srbije -> Fudbalski Klub Crvena Zvezda -> Prvi Tim FK CZ,
- Sportsko Društvo Crvena Zvezda -> Košarkaški Klub Crvena Zvezda -> Kadeti KK CZ.

A: Tacno. Ovo postoji, ali mi ne razmatramo taj slucaj. Nas klub se na primer zove Warren Park (Sportsko Društvo Crvena Zvezda) i ima odseke za hokej, bejzbol, fudbal (Košarkaški Klub Crvena Zvezda) Svaki odesk organizuje svake godine interno takmicenje, kucnu ligu, "house league" gde igraju sva deca koja se uclane u klub te gidine. U gradu ima jedno 200 takvih klubova i na nivou grada se oni takmice u nekakvim medjuklupskim ligama, ali to nije predmet naseg zadatka. I te medjuklupske lige na nivou grada, regije, provincije imaju isti problem i potrebu - da organizuju prate svoje takmicenje i da
na kraju proglase pobednika. Gradska liga u hokeju ima 10,000 (dest hiljada) dece, u 12 starosnih kategorija (divizija) i tri nivoa kvaliteteta, po 15-20 timova u diviziji, gde svaki tim odigra 35-40 utakmica u sezoni.

Svi koji su dali strukturu tabela - sifranika: Zahvaljujem, deluje OK, izbacite sta se ne trazi, proverite da li zadovoljava unesite malo podataka i da vidimo da li ce view da izbaci korektnu tabelu. Onda cemo da trazimo sta ne valja.



 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
*.tippnet.co.yu.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: Teorija vs. praksa - modeliranje lige u nekom sportu06.09.2006. u 11:37 - pre 214 meseci
Podelio sam fajl kojeg sam ranije poslao u tri fajla.

1. fajl sa postfiksom '1 - opis' je pokušaj da svoje razmišljanje prebacim na papir. U u njemu je opis i tok metode rada.
2. fajl sa postfiksom '2 - dodaci' sadrži konkretne produkte rada. To su razne tabele, spiskovi, definicije do kojih sam došao tokom predhodno spomenutog postupka
3. fajl sa postfiksom '3 - prepiska' je jednostavno copz/paste teme na forumu, uz eventualna izbacivanja komentara koji nisu usko vezani za projekat. Na ovaj način sve zahteve i dopune imam na jednom mestu pa mi je laka pretraga (find).

Radovi su još u toku. Prvenstveno postujem stanje projekta jer tokom rada vršim česte izmene, brisanj, dodavanje u fajlu 2. To su mi radne tabele i nepratim njihova pređašnja stanja, nego mi je samo bitan aktuelni sadržaj. Zato ih sada postujem da budu snapshot trenutnog stanja projekta.

Ovo još nije nešto što je za prikazivanje naručiocu projekta. Jedino što bi se u ovoj fazi moglo prikazati jeste 'Dodatak 0 - Svrha i ciljvi baze podataka'. Ali naručilac je to već video i stim se složio.

Izvinite što sporo ide, kriv je fajl 1.

Radovi se nastavljaju...


"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
Prikačeni fajlovi
 
Odgovor na temu

Zidar
Canada

Član broj: 15387
Poruke: 3085
*.eqao.com.



+79 Profil

icon Re: Teorija vs. praksa - modeliranje lige u nekom sportu06.09.2006. u 19:11 - pre 214 meseci
@ Chachka:
Hvala Chachka na dokumentima. meni kao kolegi se jako dopadaju. Kao direktoru kluba, opis postupka ne bih razumeo, ali to i nije namenjeno direktoru kluba. Kao narucilac posla bio bih jako zadovoljan da druga dva dokumenta postoje, jer mi pokazuju da konsultant pokusava da odradi korektan posao i zato sto saista liche na nekakvu dokumantaciju, gda kao pise sta se otprilike hoce.

Narucilac posla misli da je zahtev zapisan korektno. Sad ocekuje tabele. Narucilac posla ne razume se u tabele pa mu se ono sto je Chachka napisao u Dodacima cini OK. Provera ce da pokaze ako nesto ne stimuje.

@ Ostali:
Za ostale: da li mogu da pocnem da unosim podatke u tabele koje su ponudjene u prethodnim postovima?
 
Odgovor na temu

inherited
Novi Sad

Član broj: 95516
Poruke: 219
*.dialup.neobee.net.



Profil

icon Re: Teorija vs. praksa - modeliranje lige u nekom sportu06.09.2006. u 20:24 - pre 214 meseci
Citat:

Za ostale: da li mogu da pocnem da unosim podatke u tabele koje su ponudjene u prethodnim postovima?

Bilo bi lepo, ako imate vremena, tabele predstaviti SQL kodom. Mislim da bi tada projekat bio potpun za edukovanje.
chacka?
Zidar?
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
*.dialup.neobee.net.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: Teorija vs. praksa - modeliranje lige u nekom sportu07.09.2006. u 15:22 - pre 214 meseci
Citat:
inherited: Bilo bi lepo, ako imate vremena, tabele predstaviti SQL kodom.

Od mene će biti.


Inače evo nastavka. Treći fajl (prepiska) nisam postovao pošto nije menjan. Dodao sam ovaj put i četvrti fajl (matrica tabela) koji sam koristio kao pomoćnu tabelu. Obratite pažnju da on sadrži više sheet-ova.

Imam i dodatna pitanja za naručioca projekta pre nego što nastavim.

1. Fokusirajmo se na jednu ligu, npr bejzbol i jednu sezonu npr sezonu Leto 2006. Bejzbol liga je 2006 podeljena na nekoliko divizija. Da li će sve divizije igrati tačno 15 kola, ili će jedna divizija odigrati 13 kola, a neka druga divizija 11 kola?

2. Fokusirajmo se na jednu ligu. Interesuje me odnos jedne sezone prema divizijama. Pošto broj timovi varira od sezone do sezone, da li to variranje utiče i na divizije? Da li svake sezone imate isti broj divizija?
Ovde imam i jedno potpitanje. Rečeno je da ako ima puno devojčica formirate posebnu LIGU za njih. Da nisam ja to pogrešno interpretirao. Da li se u tom slučaju formira posebna LIGA ili posebna DIVIZIJA u okviru postojeće lige? Meni je logičnije da je to posebna divizija, pošto se dele tereni i sudije (a možda i treneri), a mnogo je teže i praviti raspored takmičenja ako su dve lige u pitanju.
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
Prikačeni fajlovi
 
Odgovor na temu

Zidar
Canada

Član broj: 15387
Poruke: 3085
*.eqao.com.



+79 Profil

icon Re: Teorija vs. praksa - modeliranje lige u nekom sportu07.09.2006. u 18:35 - pre 214 meseci

Q: 1. Fokusirajmo se na jednu ligu, npr bejzbol i jednu sezonu npr sezonu Leto 2006. Bejzbol liga je 2006 podeljena na nekoliko divizija. Da li će sve divizije igrati tačno 15 kola, ili će jedna divizija odigrati 13 kola, a neka druga divizija 11 kola?
A: OK, neka bude jedna liga.

2. Fokusirajmo se na jednu ligu. Interesuje me odnos jedne sezone prema divizijama. Pošto broj timovi varira od sezone do sezone, da li to variranje utiče i na divizije? Da li svake sezone imate isti broj divizija?
A: Broj divizija svake sezone se menje, broj timova po diviziji je promenljiv - zavisi od broja dece u datom uzrastu.

Q: Ovde imam i jedno potpitanje. Rečeno je da ako ima puno devojčica formirate posebnu LIGU za njih. Da nisam ja to pogrešno interpretirao. Da li se u tom slučaju formira posebna LIGA ili posebna DIVIZIJA u okviru postojeće lige? Meni je logičnije da je to posebna divizija, pošto se dele tereni i sudije (a možda i treneri), a mnogo je teže i praviti raspored takmičenja ako su dve lige u pitanju.

A: Ovde rec LIGA pravi kofuziju. Kad kazem 'liga u okviru sezone' to znaci otprilike isto sto i divizija. Dakle, 'liga' = 'divizija'. Mogu da igraju u okviru iste sezone u Julu devojcice i decaci pomesano, to je jedan divizija i jedna liga. Onda u augustu napravimo novu ligu, novo takmicenje, samo za devojcice.

Izvinjavam se za konfuziju, nisam ni bio svestan da sam koristio dva termina za ono sto je us sustini isto. Dobar analiticar medjutim istera stvari na cistac. U ovom slucaju, Chachka je odlicon reagovao i naterao direktora lige da i sam shvati da je liga i divizija isto. Barem u nasem slucaju. Ne pominjite mi cetiri grupe druge lige u bivsoj Jugoslaviji. To bilo bi jedna liga, cetiri divizije. U nasem sportskom klubu je sve to isto.

Da izbegnemo dalju konfuziju, pojednostavimo zahtev do kraja sve, ovako:
- jedan sport je u pitanju
- Postoji nekoliko grupa timova koji mogu da igraju medjusobno. (takmicarske grupe, lige, divizije, i bilo koji drugi naziv)
- Oni igraju po liga sistemu, svako sa svakim, tacno jednom, u okviru svoje grupe.
Na primer: u skoli se igra fudbal, prevenstvo skole po odeljenjima. Sva odelenja drugog razreda igraju medjusobno, sva odelenja trecg razreda igraju medjusobno, ne moze treci razred protiv prvog ili drugog, znaci, u okviru svoje grupe koja je definisana nekako, nije vazno kako. A nastavnica fiskulture hoce da prati rezultate i postavi tabelu na skolskoj oglasnoj tabli svakog ponedeljka. Svi igraju na skolskom rukomatnom igralistu.
- Ako se sva takmicenja po grupama odigravaju na istim terenima, i sude im iste sudije, jasno je da se dve utakmice ne mogu odigravati u isto vreme na istom terenu.
- Isto ovo vazi i za sudije, pa mozemo da izbacimo i sudije iz igre: 'jedan sudija ne moze da bude na dve utakmice u isto vreme' je ekvivalentno recenici 'jedan teren ne moze da se koristi za dve utakmice u isto vreme' kako resite za terene, analogno ce biti i za sudije, pa da ne gubimo vreme.

Znaci, zaboravite na sudije. Ostaje uslov da se svakoj utakmici dodeli teren u dato vreme. Sve utakmice traju isto, pa se teren dodeljuje na po jedan sat. Sve utakmice pocinju u pune sate. Znaci, ako je teren dodeljen jednoj utakmici na dan 12 Jul 2007, 16:00 sati, ni jedna druga utakmica ne moze da se igra na tom terenu 12 Jula 2007 u 16:00 sati. Ovo bi trebalo da bude jednostavnije nego upotreba terena Od - Do.


 
Odgovor na temu

delalt

Član broj: 68360
Poruke: 198
81.93.80.*



Profil

icon Re: Teorija vs. praksa - modeliranje lige u nekom sportu08.09.2006. u 01:15 - pre 214 meseci
Evo i nekakvo moje rješenje Amaterskog Ligaškog Takmičenja U Sportovima (ALTUS v.0.01).
Nazvao sam malo drugačije, da ne dođe do zabune
Naravno, još je u ranoj fazi, znači, samo da se uključim u diskusiju.

U prilogu su dijagram, SQL fajl i baza (ako je mognem okačiti).

Opisaću dijagram:
Tabele SEZONE, SPORTOVI, TIMOVI, IGRACI, SUDIJE, DIVIZIJE, SPONZORI, TERENI su šifarnici kod kojih je važno obezbijediti jednoznačnost podataka.
To sam riješio UNIQUE indeksima po kolonama JMBG (za tabele IGRACI, SUDIJE, a može i treneri).
Znači, npr. u tabeli IGRAČI se jedan igrač upisuje samo jednom, bez obzira na pol, uzrast, pripadnost nekom timu... Isto važi i za sudije.
Za ostale šifarnike to je polje XXXX_ID, u nedostatku nekog drugog koje bi bilo pogodno.

Tabele UTAKMICE, UTAKMICE_IGRACI, TIMOVI_IGRACI, SPORTOVI_SUDIJE predstavljaju tabele relacija među pojedinim šifarnicima, važnim za praćenje pojedinih događaja.

U tabeli UTAKMICE vodi se evidencija o svim utakmicama i njihovim rezultatima, bez obzira o kojoj sezoni, sportu, kolu, diviziji se radi. U njoj se UNIQUE indeksima po određenim kolonama ili više njih, a i sa CHECK CONSTRAINTS i REFERENTIAL CONSTRAINTS sprečava unošenje po zahtjevima:

Citat:
Zidar:
Baza mora da spreci greske u prekucavanju, na primer:
- jedan tim se u kolu pojavljuje u dve utakmice
- tim igra sa samim sobom
- nepostojeci tim se pojavljuje
- da ne moze u istom kolu jedan sudija suditi dve utakmice


Ovdje sam ja u CHECK CONSTRAINTS dodao i provjeru da su oba tima iz iste divizije.
Pitanje za direktora: da li je ovo potrebno i treba li još nešto provjeravati kod utakmica?

Ovdje mi je potrebna pomoć "ostalih". Provjera da "jedan tim se u kolu pojavljuje u dve utakmice" je urađena polovično, UNIQUE INDEX-ima po kolonama SEZONA,SPORT,KOLO,DOMAĆIN i SEZONA,SPORT,KOLO,GOST. Treba spriječiti i situaciju da isti tim bude jednom upisan kao domaćin, a drugi put kao gost, znači, dva puta pojavljivanje u istom kolu iste sezone.

Za STATUS utakmice, pored vrijednosti 1,2,3,4 koje su već navedene, dodao bih još i vrijednost "0" - predviđena, još ne odigrana utakmica.
U tabelu UTAKMICE se unose samo šifre timova iz tabele TIMOVI.

Tabela TIMOVI_IGRACI se koristi za praćenje transfera igrača i kretanje unutar tima (POZICIJA), bez obzira na sezonu, sport, kolo.... Upisuju se šifre TIM, IGRAC, DATUM_OD kada je igrač u tom timu, na određenoj poziciji, koji broj dresa nosi i kakvu mu ocjenu daje trener za igranje baš na toj poziciji.
Kad igrač iz bilo kog razloga napusti tim ili promijeni poziciju, upiše se DATUM_DO.
Za igrača koji ga mijenja upisuju se u novi red šifre TIM, IGRAC, DATUM_OD kada je igrač u tom timu, na određenoj poziciji, koji broj dresa nosi i kakvu mu ocjenu daje trener za igranje baš na toj poziciji. Slično je i kada igrači mijenjaju pozicije u istom timu.
Lista trenutno aktivnih igrača jednog tima se dobija SQL upitom kod koga se za postavlja uslov šifra tima i da je polje DATUM_DO prazno, uz JOIN na tabelu IGRACI, da se dobiju prezime, ime, JMBG, adresa...
Treneru će možda dobro doći podaci o transferima i ocjenama igrača...
Vezano za spisak igrača koji su učestvovali na nekoj utakmici se dobija SQL upitom gdje se
kao uslov prate šifre timova, igrača i uz DATUM_OD da je manji od datuma održavanja utakmice i DATUM_DO da je prazan ili da je veći (igrač je prijavljen u tim prije samog održavanja utakmice, a nije ga kasnije napustio ili je to učinio poslije održavanja utakmice). Ovime je zadovoljen uslov da igrači mogu u toku sezone da promijene tim.

Citat:
Zidar:
Ako se tokom sezone desi da je neki tim prejak ili preslab, mi jednostavno izpremestamo igrace, tako da odnos snaga bude ravnomerniji. Otuda ono da igrac moze da promeni tim u toku sezone.


Ovdje bi trebalo ubaciti nekakve provjere, na primjer da li su sve pozicije u timu popunjene, da tim bude kompletan za utakmicu, da li možda ima viška igrača...
Za sada ću se zadržati na ovome, pošto trener to lako može sam da prati.

U tabeli UTAKMICE_IGRACI vodi se u stvari evidencija o uspjesima i kaznama za pojedine igrače. Kolone su same po sebi dosta jasne, ali je tabela dosta grubo napravljena, jer mi trebaju nekakva pojašnjenja. Recimo, ako na fudbalskoj utakmici igrač da auto gol. Da li mu to upisivati kao -1 (za statistiku voditi kao regularni golovi minus auto golovi) ili ih voditi odvojeno i ne sabirati.
Za hokej, a pogotovo za bejzbol mi je nepoznato šta sve treba evidentirati (kakve i kako se mjere kazne, kakve sve mogu biti pozicije igrača, postoje li posebno vrednovani poeni kao "trica" u košarci...?).
Ova tabela je važna i zbog zahtjeva da se mogu pratiti kažnjeni igrači koji ne treba da igraju na nekim od sledećih utakmica.
Znam da je ovaj zahtjev kasnije izbačen odlukom direktora, ali bih ipak želio da probamo da ga riješimo. Ovo isto važi i za novu odluku da se prati samo jedan sport, čini mi se da neće previše komplikovati ako se prati više sportova.
Još jedno pojašnjenje u vezi ove tabele. Ona će po svojoj prirodi imati nepopunjena polja,
na primjer, u fudbalu nema vrijeme isključenja igrača, kao kazna.
I prateći više sezona, tu će biti relativno malen broj podataka, tako da neće bitno utjecati na veličinu i brzinu baze. Onaj ko bude radio interfejs može u zavisnosti od sporta o kome se radi da prikazuje samo neophodne kolone. Ako bude potrebno može se podijeliti i u više manjih tabela.

Za sada nisam uradio upite koji bi dali tabele rangiranja i rezultata, ali biće i to.
Naravno, sve sugestije i primjedbe su dobrodošle.

Prikačio sam određene fajlove, a iako je zahtjev da se samo isprojektuje, mislim da svi koji ovo probavaju imaju i nekakvu testnu bazu. Možda bi bilo lijepo da vidimo kako je ko implementirao koristeći MySQL, PostgreSQL, Interbase, Firebird, MSSQL... ili nekakvu manje poznatu bazu. Okačite to i dajte nekakve propratne napomene, šta je u pitanju, koja verzija servera, čime napraviti backup/restore, kako najlakše pogledati...
Ja sam probao sa Firebird 1.5.3, dijagram sam pravio besplatnim alatom IBEasy+ v.1.5.1,
na Windowsu. Inače je firebird baza u jednom fajlu i dovoljno je raspakovati i kopirati kao takvu, ko se ne snalazi sa restore i otvoriti i pogledati alatom. Objasnite postupak za druge baze.
Ako šta zapne, za sva pitanja idite na podforume, da ne miješamo u ovoj temi.
Prikačeni fajlovi
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
*.dialup.neobee.net.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: Teorija vs. praksa - modeliranje lige u nekom sportu08.09.2006. u 12:48 - pre 214 meseci
Komentarisacu druge projekte cim stignem. Cini mi se da je tema odumire.

Postujem stanje projekta, i napokon imam ER dijagram.


"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
Prikačeni fajlovi
 
Odgovor na temu

Zidar
Canada

Član broj: 15387
Poruke: 3085
*.eqao.com.



+79 Profil

icon Re: Teorija vs. praksa - modeliranje lige u nekom sportu08.09.2006. u 15:49 - pre 214 meseci
Zahvaljujem Chachki i Delalt na prilozima.

Komentarisacu Chachkin prvo, jer mi je to najbrze, a Delalt i resenja ponudjena ranije u diskusiji - pogledacu cim stignem, nesto danas, nesto posle vikenda. Zakacicu word dokumant sa komentarima za Chacku. Na kraju je dat i zahtev za SELECT iskaze koji ce trebati da bismo odgovorili na neka pitanja kad baza krene u produkciju. Molim da svi koji zele da rade svoju verziju modela pogledaju zahteve za SELECT izrazima.
Prikačeni fajlovi
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
*.tippnet.co.yu.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: Teorija vs. praksa - modeliranje lige u nekom sportu08.09.2006. u 16:40 - pre 214 meseci
Citat:
delalt: Treba spriječiti i situaciju da isti tim bude jednom upisan kao domaćin, a drugi put kao gost, znači, dva puta pojavljivanje u istom kolu iste sezone.

I ja sam uočio da je to problem. To se može obezbediti upotrebom UNIQE i FOREIGN KEY, ali se tada lepa tabela UTAKMICE mora razbiti do neprepoznavanja na 3-4 tabele. To nema smisla.
Nažalost još ne postoji CREATE ASSERTION ni u jednom SUBP-u, pa će se sigurno morati upotrebiti proceduralni stil programiranja.

Citat:
delalt: Za STATUS utakmice, pored vrijednosti 1,2,3,4 koje su već navedene, dodao bih još i vrijednost "0" - predviđena, još ne odigrana utakmica.

Da, a druga mogućnost je da se NULL status smatra još neodigranom utakmicom.

Citat:
delalt:
U tabeli UTAKMICE_IGRACI ...... Ona će po svojoj prirodi imati nepopunjena polja ..... Ako bude potrebno može se podijeliti i u više manjih tabela.

Tabela UTAKMICE_IGRACI po mom ukusu ima previše NULL polja. To je znak da se radi o tabeli koja nije dobro projektovana. To je ono što sam i ja napomenuo naručiocu projekta - da se kazne i statistike razlikuju od sporta do sporta. Da je istrajano u zahtevima za statistikom (to će biti dopuna, GARANT :) ), verovatno bi se u mom modelu pojavile posebne tabele za fudbal, bejzbol, hokej. To je to što kažeš da se tabela podeli u više manjih. Glasam za podelu.

JOŠ NEŠTO:
Nazalost tvoj CHECK
Code:

ALTER TABLE "UTAKMICE" ADD CONSTRAINT "CH_UTAKMICE_1"
  CHECK (    (UTAKMICE.DOMACIN <> UTAKMICE.GOST)
         AND ((SELECT T1.DIVIZIJA
                 FROM TIMOVI T1
                WHERE T1.TIM_ID = UTAKMICE.DOMACIN)
               =
              (SELECT T2.DIVIZIJA
                 FROM TIMOVI T2
                WHERE T2.TIM_ID = UTAKMICE.GOST)));

jeste pokriven SQL standardom, ali ga guta samo FireBird/InterBase. Upotrebom SELECT-a u CHECK-u se može sprečiti slučaj kojeg sam prvog citirao.

[Ovu poruku je menjao chachka dana 08.09.2006. u 18:01 GMT+1]

[Ovu poruku je menjao chachka dana 08.09.2006. u 18:01 GMT+1]
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
 
Odgovor na temu

Zidar
Canada

Član broj: 15387
Poruke: 3085
*.eqao.com.



+79 Profil

icon Re: Teorija vs. praksa - modeliranje lige u nekom sportu08.09.2006. u 19:22 - pre 214 meseci
Pogledao sam samo sliku modela baze koju je prilozio Delalt. Komentari su u zakacenom fajlu.

Sto se tice problem da domaci i gostujuci tim ne budu isti tim, zar ne moze prosto ( CHECK Domacin <> Gost ) ?
Prikačeni fajlovi
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
*.dialup.neobee.net.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: Teorija vs. praksa - modeliranje lige u nekom sportu08.09.2006. u 19:32 - pre 214 meseci
Delalt je mislio na rešavanje problema kad u istom kolu staviš u jednoj utakmici da igraju Tim1 - Tim2, a u drugoj Tim2 - Tim1.
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
 
Odgovor na temu

inherited
Novi Sad

Član broj: 95516
Poruke: 219
*.dialup.neobee.net.



Profil

icon Re: Teorija vs. praksa - modeliranje lige u nekom sportu09.09.2006. u 13:00 - pre 214 meseci
E, sad, ako ste usvojili model baze, napravili sve prepiske, dodatke..., ajde Zidar posto si narucilac projekta napravi sve u jednom, sto su chacka i delat odradili. Radi preglednosti, snalazenja, itd. Ako ima jos stvari koje treba doraditi, sacekacemo, ali neka se zavrsi sve u jednom usvojenom modelu (ER dijagram, spisak tabela
sa konacnim atributima, sql kod, a ne bi bilo lose staviti u ER diagram, iznad relacije njenu vrednost, znacenje (1:1,1:N,N:M)).

p.s. ne treba dozvoliti da projekat odumre, treba samo korektno da se zavrsi, a i prema nama koji s uzivanjem pratimo.
 
Odgovor na temu

delalt

Član broj: 68360
Poruke: 198
81.93.80.*



Profil

icon Re: Teorija vs. praksa - modeliranje lige u nekom sportu10.09.2006. u 22:20 - pre 214 meseci
Hvala svima na komentarima.
Čini mi se da svi imamo nekakve redovne obaveze, pa ne bi trebalo ovo još objedinjavati.
I vikend nekad treba iskoristiti baš za odmor .
Ja sam napomenuo da je moj dijagram još u ranoj fazi, sa dosta nedovršenih stvari.
Potrudiću se i da objedinim i praćenje golova i kazni (mislim i da je Chacka za ovo, a i drugi),
iako je ovo kao zahtjev kasnije izbačeno. Mislim da bi izvještaj u bilo kojem sportu bio baš nepotpun
bez evidencije o postignutim golovima (poenima...). Zato molim direktora da mi samo još malo pojasni
pravila hokeja, bejzbola... što se tiče igrača, pogodaka i kazni, ili je sve o ovome rečeno?
A ako postoji još kakav sport koji je u planu u bliskoj budućnosti, da i njega malo pojasni.
Ako ovo ne bude baš trebalo, na kraju ću lako izbaciti, da se uklopimo u konačne zahtjeve.
Zato sam i ostavio kolone, u nekim tabelama, koje se zovu SPORT...
Ako se ne kraju odlučimo da pratimo samo fudbal, tu će biti ograničeno samo na unos "FUDBAL" (ili šifre za fudbal).
Komentari i prijedlozi su i dalje dobrodošli.
 
Odgovor na temu

[es] :: Baze podataka :: Teorija vs. praksa - modeliranje lige u nekom sportu

Strane: 1 2 3

[ Pregleda: 19784 | Odgovora: 48 ] > FB > Twit

Postavi temu Odgovori

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