Modelovanje Graficki simboli i pravila prevodjenja 1 Terminologija
Modelovanje Graficki simboli i pravila prevodjenja 1
Terminologija - RBP Terminologija - tabele Relaciona BP Skup tabela Relacija Pojedinačna tabela Atribut Naziv kolone u tabeli Instanca (n-torka) Red podataka u tabeli Kardinalnost relacije Broj redova u tabeli Stepen relacije Broj kolona u tabeli Domen Skup dozvoljenih vrednosti za podatke u kolonama MOV ili ER Model objekti-veze ili Entity-Relationship Model objekti-veze 2
Svaki model podataka mora da poseduje tri komponente: -strukturnu (predstavaljanje uređenja podataka) -integritetsku (predstavljanje ograničenja nad podacima) -manipulativnu (predstavljanje postupaka održavanja i korišćenja podataka) � Strukturna i integritetska su od velikog značaja pri projektovanju modela entiteta i odnosa. � Dok će manipulativna komponenta biti obrađena u okviru relacionog modela podataka kroz SQL. � Model entiteta i odnosa spada u grupu modela koji su semantički višeg nivoa. � Model entiteta i odnosa se može predstaviti kao struktura koja se sastoji od: -skup grafičkih simbola (za predsavljanje klasa objekata, klasa veza, odnosa) -skup pravila korektnosti -skup pravila prevođenja (prevođenja u modele nižeg reda) � 3
• Instance nezavisne klase entiteta egzistiraju nezavisno od instanci drugih klasa entiteta • Grafički simbol: Sif. K KLIJENT ili KLIJENT Sif. K Ime • Pravilo prevođenja: KLIJENT Sif. K Ime KLIJENT (Sif. K, Ime) 4
Hipotetički primer bio bi rent-a-car, u kome se vodi evidencija o svakom automobilu. Ali svaki automobil je određenog modela. Za određeni model, postoje specifikacije o nosivosti, međuosovinskom rastojanju itd. Kompanija može da poseduje više automobila određenog modela. � Drugim rečima, očigledno je da ne može postojati (egzistirati) automobil koji nije neki model. Simboli: � Provougaonik iscrtan dvostrukom linijom. Unutar tog pravougaonika u pregrađenom delu pri vrhu ispisujemo velikim slovima naziv klase, a u delu ispod toga ispisujemo jedan ispod drugog nazive klasifikacionih svojstava. � Ako postoji identifikator, podvlačimo ga, kao i kod nezavisne klase entiteta. Ako postoji jedno ili više svojstava koji uz identifikatore uslovljavajućih klasa učestvuju u identifikaciji, podvlačimo ih isprekidano. � Na kraju, usmerenim isprekidanim linijama spajamo ovaj pravouganik sa pravougaonicima koji odgovaraju svim klasama od kojih postoji zavisnost. � Uz te linije naznačavamo stepen zavisnosti (slovo I za identifikacionu, i slovo E ili ništa za egzistencijalnu zavisnost). � 5
• Instance zavisne klase entiteta egzistiraju zavisno od konstantnog broja instanci drugih klasa entiteta • Grafički simbol: Kardinalnost uslovljavanja. (M, N) MODEL Sif. M Naziv (0, N) Kardinalnost uslovljenosti. E (1) AUTOMOBIL Sif. A Reg. Br Vrsta zavisnosti (E / I). • Pravilo prevođenja: MODEL (Sif. M, Naziv) AUTOMOBIL (Sif. A, Sif. M, Reg. Br) 6
Primer 1 � Recimo da u okviru hipotetičkog sistema, firme (tj. rent-a-car), želimo da modeliramo situaciju iznajmljivanja automobila. � Ono o čemu treba da vodimo evidenciju jeste kada i u trajanju od koliko dana je odrđeni klijent iznajmio određeni automobil. To znači da smo identifikovali sledeće entitete: klijent, automobil i najam. � Odnosi između njih su očigledni. Prokomentarisati kardinalnosti uslovljavanja. � Prevođenjem u relacioni model, po pravilima komentarisanim na prethodnim slajdovima, dobijaju se sledeće šeme relacija: KLIJENT, AUTOMOBIL, NAJAM. Obratiti pažnju na sledeće stvari: � Šema relacije AUTOMOBIL sadrži atribut Sif. M na osnovu zavisnosti od klase MODEL, što ovde nije u celini prikazano. � U šemi relacije NAJAM, nijedna kombinacija atributa Sif. K, Sif. A i Trajanje nema osobinu unikatnog pojavljivanja vrednosti, pa to nije moglo da posluži kao primarni ključ (jer moguća je situacija da isti klijent iznajmi isti automobil u trajanju od istog broja dana, više puta). � Ova situacija je razrešena time što je u klasi NAJAM uvoden identifikator Sif. N sa značenjem rednog broja pozajmice. Primer 2 � U ovom, drugom primeru, modeliraćemo situaciju kada klijent obavi rezervaciju. Naime klijent ne rezerviše određeni konkretan automobil, već određeni model automobila. (neophodne provere o raspoloživosti automobila datog modela za određeni datum). � Identifikovani su sledeći entiteti: klijent, model, rezervacija. � Prokomentarisati kardinalnosti uslovljavanja, i identifikacionu zavisnost. � Prevođenjem u relacioni model, po pravilima komentarisanim na prethodnim slajdovima, dobijaju se sledeće šeme relacija: KLIJENT, MODEL, REZERVACIJA � Ovde imamo primer identifikacione zavisnosti, a unikatnost kombinacije atributa Sif. K i Sif. M je na osnovu sledeće pretpostavke: da niko neće rezerviše isti model dva puta (mada je u relanosti ta situacija moguća). 7
8
� Klasa entiteta (podklasa) predstavlja specijalizaciju ako predstavlja specijalan slučaj neke druge klase entiteta (nadklase). Postoje dva kriterijuma za uvođenje specijalizacije: ◦ Podklasa poseduje specifična klasifikaciona svojstva u odnosu na nadklasu. ◦ Podklasa poseduje specifične veze u odnosu na nadklasu. Grafički simbol: � Specijalizacija se predstavlja tako što se i za nadklasu i za podklase koristi dosadašnji način označavanja pomoću pravougaonika odgovarajućeg tipa i sadržaja (zavistan/nezavistan entitet), s tim čto se od nadklase povlači puna linija koja preko trougla vodi do jedine podklase ili se grana do svih podklasa, ako ima više. Za nadklasu se navodi identifikator i sva svojstva koja su zajednička za sve podklase. Za svaku podklasu navode se samo njoj specifična svojstva, ako ih ima. � I specijalizacija predstavlja slučaj neposrednog odnosa klasa, pa se i ovde definiše kardinalnost. � Kardinalnost specijalizacije: par brojeva (M, N) koji se zapisuje uz nadklasu koja se specijalizuje i označava da svaka instanca nadklase mora da se specijalizira na po jednu instancu u najmanje M i najviše N podklasa. 9
Prema kardinalnosti specijalizacije mogu se izvesti dve podele. Prva podela je po M i obuhvata dva slučaja: � Parcijalna (neobavezna) specijalizacija (M=0) postoje instance nadklase koje nisu nijedan od specijalnih podklasa. � Totalna (obavezna) specijalizacija (M>0) svaka instanca nadklase mora da bude ujedno i neki od specijalnih slučajeva. Druga podela je po N i obuhvata dva slučaja: � Ekskluzivna (isključujuća) specijalizacija (N=1) svaka instanca nadklase može da se specijalizuje u instancu najviše jedne podklase. � Inkluzivna (uključujuća) specijalizacija (N>1) svaka instanca nadklase može da se specijalizuje u instance najviše N podklasa. Pravilo prevođenja: � Od nadklase nastaje šema relacije istog naziva i sa atributima koji odgovaraju klasifikacionim svojsvima, pri čemu je atribut koji odgovara identifikatoru primarni ključ. � Od svake podklase nastaje šema relacije istog naziva, a atribute te šeme čine klasifikaciona svojstva podklase i primarni ključ šeme koja odgovara nadklasi, koji postaje i primarni ključ šeme podklase. � Prema tome, mora se prvo formirati šema relacije koja odgovara nadklasi, pa tek onda šeme relacija koje odgovaraju podklasama. � Takođe su mogući slučajevi kod kojih se vrši specijalizacija zavisnih klasa entiteta. Isto tako mogu postojati lanci specijalizacija sa dva i više nivoa (mada su tkavi slučajevi retki)
• Klasa entiteta (podklasa) predstavlja specijalizaciju ako predstavlja specijalan slučaj neke druge klase entiteta (nadklasa) • Kriterijum specifičnih svojstava podklase • Kriterijum specifičnih veza podklase sa drugim klasama entiteta • Grafički simbol: PUTNICKI Kardinalnost specijalizacije. (M, N) (1) Mesta AUTOMOBIL Sif. A Reg. Br (1, 1) TERETNI (1) • Pravilo prevođenja: Br. Osovina Nosivost AUTOMOBIL (Sif. A, Reg. Br) PUTNICKI (Sif. A, Mesta) TERETNI (Sif. A, Br. Osovina, Nosivost) 11
• Primer 3 Parcijalna, inkluzivna specijalizacija MEHANICAR Specijalnost RADNIK Sif. R Ime (0, 2) EKONOMISTA Iskustvo RADNIK (Sif. R, Ime) MEHANICAR (Sif. R, Specijalnost) EKONOMISTA (Sif. R, Iskustvo) Primer 3 � Slučaj parcijalne, inkluzivne specijalizacije. � Drugim rečima radnik, može da bude samo radnik, a takođe može da bude i radnik, i mehaničar i ekonomista u isto vreme. 12
Veze: � � � Instance klase veze predstavljaju odnos konstantnog broja instanci (min. dve) iz jedne ili više klasa objekata. Grafički simbol: Klasa veze se u E/O modelu predstavlja rombom, unutar koga se velikim slovima upisuje naziv veze. Od ivica romba se povlače linije do svake klase entiteta koji stupaju u vezu. Ako veza ima svojstva, umesto romba se koristi simbol dobijen kombinacijom romba i pravougaonika, i u raspoloživi prostor se upisuju nazivi svojstava veze. Pravilo prevođenja: � Prevođenje zavisi od kardinalnosti sa obeju strana veze. � U ovom konkretnom primeru bi dobili sledeće šeme relacija. 13
• Instance klase veze predstavljaju odnos konstantnog broja instanci (min. dve) iz jedne ili više klasa objekata • Grafički simbol: KLIJENT Sif. K Ime • Pravilo prevođenja: (0, N) • Zavisi od kardinalnosti veze DRZI Datum (0, 1) AUTOMOBIL Sif. A Reg. Br KLIJENT (Sif. K, Ime) AUTOMOBIL (Sif. A, Sif. M, Reg. Br) DRZI (Sif. K, Sif. A, Datum) 14
Slučaj 1 � Sa obe strane veze nalazi se (1, 1). Ne nastaje posebna šema relacije veze; u pitanju je greška u projektovanju koja je dovela do razdvajanja jedne klase entiteta na dve. U ovom slučaju, ukidamo jednu od klasa entiteta, a šema relacije preostalog entiteta se dopunjuje atributima ukinute šeme relacije i atributima koji odgovaraju svojstvima veze. Primarni ključ je bilo koji od od primarnih ključeva. Slučaj 2 � Slično kao prethodni slučaj, međutim ovde se ne ukida nijedna od šema relacija entiteta, ali šema relacije koja bi odgovarala klasi veze, neće nastati, a šema relacije kod koje se nalazi (1, 1) se dopunjuje svojstvima veze. Slučaj 3 � Kardinalnost sa obe strane veze je (0, 1), to znači da će nastati posebna šema relacije za klasu veze. Šema relacije veze sastojaće se od primarnih ključeva šema relacija klasa entiteta i atributi koji odgovaraju svojstvima veze, ako postoje. Primarni ključ šeme relacije veze je bilo koji od primarnih ključeva šema relacija entiteta. Slučaj 4 � Ako je kardinalnost za jednu klasu entiteta (0, 1) a za drugu bilo šta osim (1, 1) i (0, 1), nastaje posebna šema relacije veze. U ovom slučaju šemu relacije veze čine primarni ključevi šema relacija objekta i atributi koji odgovaraju svojstvima veze, ako postoje. Primarni ključ šeme relacije veze je primarni ključ šeme relacije klase entiteta sa (0, 1) strane. Slučaj 5 � U svim ostalim slučajevima, nastaje posebna šema relacije za klasu veze, i njen primarni ključ čine primarni ključevi obeju klasa entiteta koji ulaze u vezu. 15
• Pravilo prevođenja ENT_A Sif. A Ostalo. A (x, y) V Ostalo. V (z, w) ENT_B Sif. B Ostalo. B (X, Y) (Z, W) Relacione šeme (1, 1) A(Sif. A, Ostalo. A, Sif. B, Ostalo. V) (1, 1) ≠(1, 1) A(Sif. A, Ostalo. A, Sif. B, Ostalo. V) B(Sif. B, Ostalo. B) (0, 1) A(Sif. A, Ostalo. A) V(Sif. A, Sif. B, Ostalo. V) B(Sif. B, Ostalo. B) (0, 1) ≠(z, 1) A(Sif. A, Ostalo. A) V(Sif. A, Sif. B, Ostalo. V) B(Sif. B, Ostalo. B) (x, y) (z, w) A(Sif. A, Ostalo. A) V(Sif. A, Sif. B, Ostalo. V) B(Sif. B, Ostalo. B) 16
Generalizacija-Agregacija Klasa veze koja se ponaša kao klasa entiteta na taj način što može da učestvuje u vezama Grafički simbol: NASTAVNIK Sif. N Ime KURS (0, N) PREDAJE (0, N) PREDMET Sif. P Naziv (0, N) STUDENT POHADJA Pravila prevodjenja: (0, N) Sif. S Ime NASTAVNIK (Sif. N, Ime) STUDENT (Sif. S, Ime) PREDMET (Sif. P, Naziv) PREDAJE (Sif. N, Sif. P) POHADJA (Sif. N, Sif. P, Sif. S) 17
Generalizacija/ specijalizacija � Generalizacija je apstrakcija u kojoj se skup sličnih tipova objekata predstavlja opštim generičkim tipom ili nadtipom ◦ Slični tipovi objekata su oni koji imaju zajedničke osobine i ponašanje ◦ Npr: klasa Nastavnik i Adm. Osoblje se može generalizovati u klasu Radnik ◦ Podtip nasleđuje osobine (atribute) nadtipa ◦ Podtipovi imaju i neke svoje posebne osobine � Specijalizacija generalizacije je obrnuti postupak od Model objekti-veze 18
Generalizacija/ specijalizacija Staž generalizacija Adresa Adm. Osoblje Radnik Sif. Rad specijalizacija Ime Nastavnici Radno. Mesto Zvanje Model objekti-veze 19
Agregacija �Agregacija je klasa veza koja se ponaša kao klasa objekata i može da učestvuje u drugim vezama ◦ Na primer klase objekata Nastavnik i Predmet povezane su klasom veza Predaje. ◦ Studenti slušaju predavanja iz određenih predmeta, ali kod određenih nastavnika ◦ Predstava: klasa veza se posmatra kao agregacija Kurs ◦ Između klasa objekata Kurs i Student može se uspostaviti veza Pohadja Model objekti-veze 20
Agregacija Sif. N Sif. P Kurs Profesor Predaje Predmet Naziv Ime Pohađa Br. Ind Ime Student Model objekti-veze 21
Primer Model objekti-veze 22
Primer 1: Šahovski savez � Projektovati sistem za potrebe šahovskog saveza. U sistemu treba voditi evidenciju o korisnicima (ime, prezime, br. l. k), od kojih neki mogu biti šahisti (rejting) ili komentatori. U bazi se vodi evidencija o održanim turnirima (naziv, datum i mesto održavanja), kao i korisnicima koji su učesnici turnira i svim šahovskim partijama odigranim na turniru. Partija može biti evidentirana iako nije odigrana u okviru turnira. Za svaku partiju mora da postoji podatak o igračima i o tome sa kojim su figurama igrali (belim ili crnim) kao i o krajnjem ishodu partije. Proizvoljan broj komentatora može da daje svoju analizu na svaki od poteza povučenog u partiji. Analiza se sastoji od liste mogućih poteza koji mogu da uslede nakon posmatranog. Na turniru se nekim učesnicima može dodeliti novčana nagrada. 23
Primer 1: Šahovski savez 24
Primer 2: Prodavnica uređaja � Posmatrani sistem je jedna prodavnica uređaja, za koje se prati naziv i cena, i delova za koje se prate isti podaci. Prati se i to koji deo pripada kojim uređajima, kao i koji deo u slučaju nedostatka može biti zamenjen kojim delovima. Prodavnica radi sa komitentima, za koje se prate naziv i adresa, a oni su ili firme, za koje se prati i delatnost, ili osobe, za koje se prati i matični broj. Za svaku obavljenu kupovinu prodavnica komitentu ispostavlja račun sa unikatnim brojem, datumom i iznosom. Račun sadrži i jednu ili više stavki. Svaka stavka se odnosi na jedan uređaj ili deo (može i jedno i drugo u istom računu) i kao podatke sadrži šifru, naziv, cenu, količinu i iznos. Komitenti plaćaju ono što su kupili u vidu jedne ili više uplata za koje se prate datum i iznos. Uplata se može odnositi i na više računa. 25
Primer 2: Prodavnica uređaja 26
Primer 3: IT inventar � Projektovati bazu podataka za potrebe vođenja IT inventara (opreme) u nekoj kompaniji. U sistemu treba voditi evidenciju o inventarskom broju, datumu početka upotrebe, trajanju garancije, vrednosti, tipu i opisu opreme, a takođe i o nazivu i adresi firme koja je isporučila opremu a koja ujedno može, a ne mora, biti proizvođač te opreme. Oprema može biti raspoređena u jednoj ili više soba koje pripadaju kompaniji, pri tom svaka soba poseduje jedinstveni identifikacioni broj i informaciju na kom se spratu nalazi. Svaka soba mora imati definisanu odgovornu osobu (ime, broj telefona) koja je radnik kompanije. Oprema može da se sastoji iz više delova koji su takođe oprema. U sistemu je potrebno voditi evidenciju i o raznovrsnom softveru koji može biti instaliran na većem broju opreme, pri tom je potrebno voditi evidenciju o tome ko je i kada obavio instalaciju. Instalaciju može obaviti osoba koja je radnik kompanije ili neka od firmi sa kojom kompanija sarađuje. 27
Primer 3: IT inventar 28
Primer 4: Farmaceutska kompanija � Posmatra se deo informacionog sistema farmaceutske kompanije. Kompanija poseduje veći broj distributera za koje se čuva naziv, adresa, PIB i informacije o gradovima koje taj distributer pokriva. Distributeri sarađuju sa apotekama koje takođe mogu sarađivati sa većim brojem distributera. Za svaku apoteku se prati njen potencijal prodaje, naziv, adresa i grad u kome se nalazi. Svaki distributer može svakoj od apoteka sa kojom sarađuje obezbediti cenu bolju nego inače ali samo za maksimalno jedan od proizvoda kompanije. Kompanija ima proizvode (naziv, cena) koji su ili lekovi (licenca) ili ne-lek preparati (opis). Za svaki lek se može čuvati informacija o drugim lekovima koji mogu poslužiti kao zamena za taj lek. Dok se za ne-lek preparat može određenom distributeru odobriti reklamiranje. 29
Primer 4: Farmaceutska kompanija 30
Zadaci za modelovanje ZADATAK 1: Fudbalski savez � Posmatrani sistem je fudbalski savez koji evidentira utakmice odigrane u toku jedne sezone. Za svaku utakmicu se trajno čuvaju podaci o tome koji timovi su igrali, u kom kolu je ta utakmica odigrana (i koje godine), kakav je ishod utkamice bio, koji su sve igrači igrali i na kojim pozicijama. Za svakog fudbalera se pamti ime i tim za koji igra, dok se za timove pamti naziv i mesto iz koga dolaze. Pretpostavka je da fudbaleri ne mogu da menjaju tim u kome igraju, u toku sezone. Takođe je potrebno trajno evidentirati svaki postignuti gol kao i to koji fudbaler ga je postigao, u kom minutu i koji je to gol bio po redu na posmatranoj utakmici. Pored golova trajno se evidentiraju i svi kartoni, žuti i crveni, dodeljeni na utakmici i to kom fudbaleru i u kom minutu. ZADATAK 2: Video klub Posmatrani sistem je video klub koji članovima izdaje kasete sa snimljenim filmovima. Kasete mogu da budu različite dužine i na sebi mogu da sadrže nijedan, jedan ili više filmova. Za svaki film se evidentira njegov naziv, dužina, ocena koja može i ne mora da postoji, cena i žanr kome pripada. Za svaki žanr se prati njego naziv. U sistemu se takođe evidentira svaka pozajmica i to tako što se pamti koji član je pozajmio koju kasetu, zbog kog filma i na koliko dana. 31
- Slides: 31