arhivadlwms

DokumentVježbe Elda Sultić

BP I - V4 - Proširenje ER modela (dodatak) - 2026/2027

Tekst dokumenta389 redova
  1. ProgramiranjeI_sylabus.doc
  2. Fakultet informacijskih tehnologija
  3. elda@edu.fit.ba
  4. 1
  5. Baze podataka 1::Vježbe
  6. https://www.fit.ba/student
  7. Proširenje ER-modela
  8. Slabi tip entiteta:
  9. Slabi tip entiteta u ER modelu predstavlja poseban tip entiteta, gdje njegova sama definicija naročito ovisi
  10. o sljedeća dva pojma: identifikaciona ovisnost i egzistencijalna ovisnost.
  11. Identifikaciona ovisnost:
  12. Slabi tip entiteta je identifikaciono ovisan o nadređnenom tipu entiteta ako nema dovoljan broj atributa
  13. na osnovu čijih vrijednosti se može identificirati svaka od pojava slabog tipa entiteta, odnosno, slabom
  14. tipu entiteta se ne može odrediti primarni ključ. U tom slučaju pojave slabog tipa entiteta se identificiraju
  15. na osnovu vrijednosti primarnog ključa instance nadređenog tipa entiteta sa kojim je u vezi. Dakle,
  16. identifikacija pojava idetifikaciono ovisnog slabog tipa entiteta ovisi o nadređenom tipu entiteta, po čemu
  17. je i dobio naziv. Kako bi se tačno mogao identifikovati slabi tip entiteta uvodi se pojam tzv. atribut
  18. diskriminator. Na ER dijagramu atribut diskriminator se označava isprekidanom linijom ispod naziva
  19. samog atributa.
  20. Slika 1
  21. Objašnjenje:
  22. Na slici 1 prikazana su dva tipa entiteta: roditelj i dijete. Roditelj predstavlja nadređeni tip entiteta, tipu
  23. entiteta dijete. Dijete je identifikaciono ovisan slabi tip entiteta o nadređenom tipu entiteta roditelj, što
  24. govori to da u ovom slučaju entitet dijete, samo po sebi, bez entiteta roditelj se ne može identifikovati.
  25. Za identifikaciju tipa entiteta dijete koristi se primarni ključ tipa entiteta roditelj (JMBG) te atribut
  26. diskriminator ime i prezime tipa entiteta dijete. Takvom vrstom kombinacije dobit će se željeno dijete
  27. tačno određenog roditelja.
  28. Egzistencijalna ovisnost:
  29. Pojave slabog tipa entiteta egzistencijalno ovisni o nadređenom tipu entiteta ne mogu da egzistiraju ako
  30. nisu povezane sa nekom od pojava nadređenog tipa entiteta. To znači da slabi tip entiteta ne može
  31. postojati ukoliko ne postoji njemu pridružen tip entiteta od kojeg taj slabi tip entiteta egzistencijalno
  32. zavisi. Odnosno, da bi instanca slabog tipa entiteta bila pohranjena u bazi podataka neophodno je da
  33. bude povezan sa nadređenim tipom entiteta i ako je samo to uslov onda se radi o egzistencijalnoj
  34. zavisnosti. Na slici 2 prikazana je egzistencijalna ovisnost.
  35. ProgramiranjeI_sylabus.doc
  36. Fakultet informacijskih tehnologija
  37. elda@edu.fit.ba
  38. 2
  39. Baze podataka 1::Vježbe
  40. https://www.fit.ba/student
  41. Slika 2
  42. Objašnjenje:
  43. Slika 2 prikazuje da tip entiteta zdravstveni centar može biti povezan sa više članova tipa entiteta
  44. ambulanta a da isti član tip entiteta ambulanta pripada samo jednom članu tipa entiteta zdravstveni
  45. centar (od kojeg zavisi). U slučaju ukidanja tipa entiteta zdravstveni centar, svaki njemu pridruženi tip
  46. entiteta ambulanta će također biti ukinut što govori da je postojanost tipa entiteta ambulanta zavisna o
  47. postojanosti tipa entiteta zdravstveni centar. U ovom slučaju se govori o egzistencijalnoj zavisnosti
  48. obzirom da tip entiteta ambulanta ima vlastiti identifikator. Također, može se zaključiti da je tip entiteta
  49. zdravstveni centar, kao nadređeni tip entiteta apsolutno neovisan.
  50. Rekurzivni tip veze:
  51. Rekurzivna veza je veza u kojoj učestvuje samo jedan tip entiteta. Ona predstavlja unarnu vezu, ili
  52. jednostavnije rečeno vezu tipa entiteta prema istom tom tipu entitetu. Do upotrebe ovakve vrste veze
  53. dolazi kada postoje različite pojave jednog istog tipa entiteta koje u toj vezi imaju različite uloge.
  54. Rukovodi ->
  55. Služi ->
  56. Slika 3
  57. Na slici 3 prikazan jedan tip entiteta radnik. Međutim, u ovoj vezi tip entiteta radnik ima dvije različite
  58. uloge: rukovodic i obični radnik. Ukoliko se ovaj primjer čita u smjeru kazaljke na satu tada se može
  59. zaključiti sljedeće: „Jedan radnik (u ovom slučaju radnik sa ulogom rukovodioca) ne mora rukovoditi niti
  60. jednom radniku, ali svakako može rukovoditi i sa više njih“. Ukoliko se pak ovaj primjer pročita u smjeru
  61. suprotom od kazaljke na satu onda se dobije sljedeće: „Jedan radnik (u ovom slučaju radnik sa ulogom
  62. ProgramiranjeI_sylabus.doc
  63. Fakultet informacijskih tehnologija
  64. elda@edu.fit.ba
  65. 3
  66. Baze podataka 1::Vježbe
  67. https://www.fit.ba/student
  68. običnog radnika) može imati jednog i samo jednog rukovodioca“.
  69. IS_A veza:
  70. Predstavlja hijerarhijski tip veze koji oslikava više vrsta jednog tipa entiteta. Podređeni entiteti mogu imati
  71. svoje specifične karakteristike ali nemaju svoje jedinstvene identifikatore. Kada se govori o IS_A vezi ne
  72. govori se o kardinalitetima nego o preslikavanju. Ono što je specifično za is_a vezu jeste činjenica da
  73. podređeni tip entiteta (podklasa) nasljeđuju sve karakteristike nadređenog tipa entiteta (superklase), ali
  74. može imati i svoje vlastite karakteristike (atribute) i karakteristične veze. Na slici 4 je prikazana IS_A
  75. hijerarhija na primjeru teniskog terena.
  76. Objašnjenje:
  77. U ovom primjeru entitet „teren“ ima dva podtipa: otvoreni i zatvoreni teren. Oznaka (1,1) predstavlja
  78. preslikavanje tipa entiteta teniski teren u njegove podklase. U ovom slučaju to označava da teniski teren
  79. može biti ili otvoreni ili zatvoreni odnosno da mora biti jedan o njih. Otvoreni teniski teren (uzimajući u
  80. obzir činjenicu da je podređeni tip entitet tipu entiteta „teren“) će naslijediti jedinstveni identifikator
  81. nadređenog tipa entiteta (terenID) zajedno sa njegovim ostalim atributima, zbog čega ih nije potrebno
  82. posebno navoditi prilikom izrade dijagrama, te će pored njih imati i vlastiti specifični atribut- podloga. Ista
  83. stvar važi i za zatvoreni teren koji će kao svoju specifičnu karakteristiku imati atribut publika.
  84. Kategorizacija:
  85. Kategorija predstavlja posebnu vrstu veze za koju je karakteristično to da se jedan tip entiteta povezuje sa
  86. više kategorija (najmanje dvije). Ono što je bitno naglasiti u ovom tipu veze koji ga čini različitim od IS_A
  87. hijerarhijske veze jeste to da ne postoji identifikaciona zavisnost tipa entiteta od kategorija ili obratno i da
  88. tip entiteta selektivno nasljeđuje od više različitih superklasa, dok u is-a hijerahiji sve podklase nasljeđuju
  89. od samo jedne podklase. Na slici 5 prikazana je kategorija na primjeru apliciranja na projekte.
  90. Slika 4
  91. ProgramiranjeI_sylabus.doc
  92. Fakultet informacijskih tehnologija
  93. elda@edu.fit.ba
  94. 4
  95. Baze podataka 1::Vježbe
  96. https://www.fit.ba/student
  97. Objašnjenje:
  98. U ovom primjeru prikazani su odnosi između tipova entiteta: aplikant, fizičko, pravno lice i projekat.
  99. Aplikant može biti ili pravno ili fizičko lice. Entiteti pravno i fizičko lice mogu u bilo kojem trenutku aplicirati
  100. za projekat i tada oni postaju aplikanti. I fizičko i pravno lice imaju svoj jedinstveni identifikator kao i
  101. entitet aplikant zbog čega su oni apsolutno neovisni, što čini glavnu razliku između kategorizacije i
  102. nasljeđivanja
  103. putem
  104. hijerahijske
  105. is_a
  106. veze.
  107. Slika 5
  108. ProgramiranjeI_sylabus.doc
  109. Fakultet informacijskih tehnologija
  110. elda@edu.fit.ba
  111. 5
  112. Baze podataka 1::Vježbe
  113. https://www.fit.ba/student
  114. Zadatak:
  115. 1. Na osnovu sljedećeg opisa modelirati sistem upravljanja projektima (nacrtati prijedlog ER
  116. dijagrama):
  117. Organizacija vodi evidenciju o projektima koje trenutno radi. Svaki projekat ima identifikacijski broj, naziv,
  118. datum početka i trajanje. Na svakom projektu radi najmanje jedan, a može raditi i više radnika. Svaki
  119. radnik u određenom momentu može raditi na jednom ili više projekata. Atributi radnika su JMBG, ime,
  120. prezime, telefon i adresa stanovanja. Za projektanta se dodatno čuva podatak o iskustvu, za projektne
  121. menadžere informacija o stečenim certifikatima, dok se za dizajnere čuva podatak o preferiranim alatima.
  122. Za ostale radnike nema dodatnih podataka. Organizacija vodi evidenciju i o resursima koje radnici koriste
  123. za izvedbu projekta. U evidenciji će stajati koji radnik, za koji projekat je zadužio određeni resurs. Za svaki
  124. resurs će se pohranjivati njegov jedinstveni identifikator, naziv i opis. Jedan resurs može koristiti samo
  125. jedan radnik, za samo jedan projekat, a svaki radnik za svaki projekat ne mora, ali može koristiti i više
  126. različitih resursa. Uposleni imaju najviše jednog šefa, koji je također uposlenik organizacije. Organizacija
  127. vodi evidenciju i o članovima porodice trenutno uposlenih (žena, djeca, roditelji...), koji su zdravstveno
  128. osigurani na osnovu tog uposlenika. Kada uposlenik više ne radi za organizaciju, automatski se brišu i svi
  129. podaci o članovima njihove porodice. O članovima porodice pohranjuju se podaci: ime i prezime, datum
  130. rođenja i mjesto stanovanja.
  131. Prijedlog rješenja:
  132. Slika 6
  133. ProgramiranjeI_sylabus.doc
  134. Fakultet informacijskih tehnologija
  135. elda@edu.fit.ba
  136. 6
  137. Baze podataka 1::Vježbe
  138. https://www.fit.ba/student
  139. 2. Predstaviti grafički sljedeći model objekti-veze (ER model) prema opisu:
  140. U jednoj proizvodnoj firmi vodi se evidencija o uposlenicima. Podaci o uposlenicima potrebni za
  141. poslovanje su: sifra_uposlenika, ime i prezime, datum rođenja i datum zaposlenja. Uposlenici su
  142. osposobljeni za rad na određenim mašinama čije osobine su: sifra_masine i naziv. Jedan uposlenik može
  143. biti osposobljen za rad na više mašina, a ne mora ni za jednu. Za rukovanje jednom mašinom osposobljen
  144. je najmanje jedan uposlenik, a obično više njih. Svaka mašina se može koristiti za proizvodnju više
  145. proizvoda i za proizvodnju jednog proizvoda se može koristiti jedna ili više mašina.
  146. Svakodnevno se kreiraju radni nalozi za proizvodnju određenih proizvoda. Svaki radni nalog se odnosi na
  147. proizvodnju jednog proizvoda uz rad osposobljenog uposlenika na određenoj mašini i u određenoj količini.
  148. Da bi se proizveo proizvod na mašini za koju je osposobljen radnik potreban je isključivo jedan nalog.
  149. Podaci o proizvodima su: sifra_proizvoda i naziv. Svaki radni nalog ima jedinstveni broj i vodi se evidencija
  150. o datumu kreiranju radnog naloga.
  151. Prijedlog rješenja:
  152. Slika 7
  153. ProgramiranjeI_sylabus.doc
  154. Fakultet informacijskih tehnologija
  155. elda@edu.fit.ba
  156. 7
  157. Baze podataka 1::Vježbe
  158. https://www.fit.ba/student
  159. 3. Predstaviti grafički sljedeći model objekti-veze (ER model) prema opisu:
  160. U igraonici, koja se odlikuje svojim registarskim brojem, nazivom, adresom, vlasnikom i telefonom, rade
  161. radnici, sa sljedećim osobinama: JMBG, ime, prezime i datum zaposlenja. Igraonica se nalazi u određenom
  162. mjestu koje se karakteriše brojem ptt i nazivom. Radnik živi u nekom mjestu, a to mjesto pripada općini
  163. koja se karakteriše šifrom i nazivom.
  164. Igraonica sadrži računare, koji se odlikuju svojim serijskim brojem i mrežnim imenom. Računar se sastoji
  165. od komponenata, od kojih svaka ima svoj serijski broj i ime proizvođača. Računari na sebi imaju instalirane
  166. igre, dok su te igre instalirane obično na više računara. Igra se karakteriše nazivom i vrstom. Igrači su
  167. okarakterisani imenom, prezimenom i bodovima. Igrač može igrati igre na računarima u različitom
  168. vremenskom periodu.
  169. Igraonica nudi različite vrste usluga poput zakupa vremena za igranje, te kupovine hrane i pića. Različite
  170. igraonice mogu nuditi različite usluge, ali ne moraju. Igrači u igraonici koriste uslugu pri čemu se čuva
  171. podatak o datumu i vremenu. Usluga ima osobine: identifikacijski broj, osnovna cijena, vrsta i bodovi, dok
  172. će stvarna cijena usluge varirati od igrača do igrača. Igrač može koristiti različite usluge, dok istu uslugu
  173. može da koristi jedan te isti igrač više puta. Bodove stečene kupovinom hrane i pića igrač može koristiti za
  174. produžetak vremena igranja. Usluga je naplaćena od strane jednog radnika igraonice.
  175. Prijedlog rješenja:
  176. Slika 8
  177. ProgramiranjeI_sylabus.doc
  178. Fakultet informacijskih tehnologija
  179. elda@edu.fit.ba
  180. 8
  181. Baze podataka 1::Vježbe
  182. https://www.fit.ba/student
  183. 4. Na osnovu sljedećeg opisa modelirati sistem upravljanja poslovanja za primjer ambulanta
  184. (nacrtati prijedlog ER dijagrama):
  185. Zdravstvena ambulanta pripada zdravstvenom centru koji je u bazi podataka opisan identifikacionim
  186. brojem, nazivom i mjestom. Za ambulantu se evidentiraju: naziv, identifikacioni broj, ulica i broj, naziv
  187. mjesta i telefon. Zatvaranjem zdravstvenog centra, sve pripadajuće ambulante prestaju sa radom. U
  188. ambulantu dolaze pacijenti, kojima se prvo otvaraju kartoni.
  189. U karton se upisuju: ime i prezime pacijenta, JMBG, spol, datum rođenja, broj kartona i datum otvaranja
  190. kartona. Za zaposlene pacijente se mora znati još naziv radne organizacije i zanimanje, za studente naziv
  191. fakulteta, a za penzionere broj penzionog osiguranja. Za ostale pacijente nema dodatnih podataka (npr.
  192. nezaposleni) koji moraju biti osigurani kao i svi pacijenti, pa se evidentira i to da li je zdravstvena knjižica
  193. ovjerena.
  194. Pacijenti odlaze na pregled kod jednog od više ljekara ambulante. Ljekar može biti izabrani ali i ne mora,
  195. međutim za svakog pacijenta se čuva podatak o izabranom ljekaru. Za sve ljekare se čuva: šifra ljekara,
  196. ime, prezime i specijalnost. Neki ljekari nemaju specijalnost, dok neki mogu imati i više završenih
  197. specijalizacija. Za svaku specijalizaciju je potrebno čuvati identifikacijski broj i naziv.
  198. U toku pregleda ljekar evidentira anamnezu pacijenta, datum pregleda i utvrđeno kliničko stanje, te jednu
  199. ili više dijagnoza, za koje mora izabrati šifru i naziv bolesti iz važećeg šifarnika dijagnoza. Zatim, ukoliko je
  200. neophodno, ljekar na pregledu prepisuje terapiju pacijentu (šifru lijeka i naziv), na osnovu postavljenje
  201. dijagnoze, te evidentira i dozu i način primjene određene terapije, a za pojedine ljekove je važno
  202. napomenuti sa kojim drugim ljekovima (ili lijekom) se ne smiju primjenjivati. Na kraju, ljekar daje savjet
  203. pacijentu i zakazuje eventualni datum ponovnog (kontrolnog) pregleda.
  204. Pojedini pacijenti kao rezultat pregleda se mogu uputiti drugim zdravstvenim ustanovama, na
  205. specijalističke preglede, radi dodatnih nalaza ili mišljenja drugih ljekara. Tada se evidentira naziv
  206. institucije, datum pregleda, uputna dijagnoza, potrebna vrsta nalaza, a po dobijanju rezultata i mišljenje
  207. drugog specijaliste.
  208. ProgramiranjeI_sylabus.doc
  209. Fakultet informacijskih tehnologija
  210. elda@edu.fit.ba
  211. 9
  212. Baze podataka 1::Vježbe
  213. https://www.fit.ba/student
  214. Prijedlog rješenja:
  215. Slika 9
  216. ProgramiranjeI_sylabus.doc
  217. Fakultet informacijskih tehnologija
  218. elda@edu.fit.ba
  219. 10
  220. Baze podataka 1::Vježbe
  221. https://www.fit.ba/student
  222. 5. Predstaviti grafički sljedeći model objekti-veze (ER model) prema opisu:
  223. Potrebno je osmisliti i realizirati bazu podataka koja može efikasno poslužiti za potrebe teniskog
  224. kluba. U fazi analize, utvrđeno je da teniski klub raspolaže s određenim brojem teniskih terena
  225. (što otvorenih, što zatvorenih). Svaki teren označen je šifrom terena i nazivom. Otvoreni tereni
  226. mogu imati različite podloge, dok svi zatvoreni tereni imaju istu podlogu i taj podatak nije
  227. potrebno čuvati. Zatvoreni tereni mogu imati prostor za publiku, a ne moraju. U bazi podataka
  228. potrebno je voditi evidenciju o broju mjesta za publiku zatvorenih terena. Klub vodi evidenciju
  229. članova (ime, prezime) I uplatu članarina. Za svakog člana se zna da li je podmirio godišnju
  230. članarinu. Članarine su opisane identifikacijskim brojem, vrijednosti i tipom. Oni koji nisu platili
  231. članarinu nemaju pravo rezervacije terena, dok oni koji su platili članarinu imaju pravo rezervirati
  232. teren više puta mjesečno, gdje za svaku rezervaciju se bilježi i datum.
  233. Prijedlog rješenja:
  234. Slika 10
na vrh