kulan89 / PyJet

Seminarska naloga pri Podatkovnih bazah 1
MIT License
0 stars 1 forks source link

ER diagram #2

Closed jaanos closed 6 years ago

jaanos commented 6 years ago

Opažam, da vama v README.md ne deluje povezava na ER diagram - treba bo popraviti pot:

![ER diagram](diagrami/pyjet.png)

Na diagramu manjkajo omejitve za relacije - npr. vsaka oseba pripada natanko eni državi, zato naj bo od osebe do relacije z državo debela puščica (in podobno drugod, kjer je potrebno).

Če prav razumem, so leti (tj., neko letalo leti na neko destinacijo) mišljeni iz enega letališča na več destinacij, ter seveda nazaj. Če je res tako in ima vsak let še ustrezen povratni let, bo treba to informacijo nekam postaviti - verjetno bo najbolje, če pri urniku piše, ali gre za odhod ali za prihod.

Entitete Odhodi potnikov ne potrebujeta - lahko naredita kar relacijo tipa več-na-več (torej brez puščic) med osebo in urnikom (torej osebi posredno dodelita tudi let in destinacijo). Prav tako ne potrebujeta atributa Št. prostih sedežev - če že, bi to beležili pri urniku, ampak tudi to ni potrebno, saj se ta informacija lahko izračuna iz števila sedežev na letalu in zasedenosti leta.

kulan89 commented 6 years ago

Na diagramu sva popravili povezave, popravljena je tudi pot do spremenjenega diagrama. Sicer razumete prav, leti se z enega letališča na več destinacij, tako da sva dodali tudi informacijo o tem. Zaenkrat nama predstavlja problem to, kako razporediti potnika na več letov, da se vnosi (podatki o potniku) ne ponavljajo. Ne vem, kako lahko to izvedema brez dodatne tabele, tako da bi bilo super, če bi se lahko o tem pomenili na vajah jutri.

jaanos commented 6 years ago

Vsaka oseba (tj., njeni podatki) je v bazi samo enkrat (entiteta Oseba, ki bo prevedena v ustrezno tabelo). Relacija je na urniku je tipa več-na-več - v bazi ji bo torej ustrezala tabela z ID-ji oseb in ID-ji urnikov, ter tako povezovala osebe s posameznimi leti. Edini podatek o potniku, ki se ponavlja, je torej njegov ID.

jaanos commented 6 years ago

Opomnil bi še na to, da imata med državami in relacijo z destinacijami debelo črto, kar pomeni, da bo morala biti v vsaki državi vsaj ena destinacija. Ker imajo države še relacijo s potniki, bi to pomenilo, da v bazi ne bi smeli imeti potnikov iz držav, za katere nimata destinacij. Zato svetujem, naj bo tam običajna črta.

Debela črta med destinacijami in relacijo z leti je seveda smiselna, saj nočeta imeti destinacij, ki jih ne moreta doseči. Je pa res, da v bazi takšnih omejitev ne bo mogoče vsiliti.