model entiteta i odnosa - university of belgrade · 2019-03-05 · status računamože biti...

49
Baze podataka 1 Model entiteta i odnosa 2018/2019 Elektrotehnički fakultet Univerzitet u Beogradu Katedra za računarsku tehniku i informatiku Autori: Miloš Cvetanović Stefan Tubić Filip Hadžić Tamara Šekularac

Upload: others

Post on 24-Jan-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Baze podataka 1Model entiteta i odnosa

2018/2019

Elektrotehnički fakultet

Univerzitet u Beogradu

Katedra za računarsku tehniku i informatiku

Autori:Miloš CvetanovićStefan TubićFilip HadžićTamara Šekularac

Page 2: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Model entiteta i odnosa

• E/O model је model semantički višeg nivoa i predstavlja se dijagramom.

• Sastavni delovi E/O modela su:

• Skup grafičkih simbola

• Skup pravila korektnosti

• Skup pravila prevođenja

• Postupak projektovanja jednog sistema:

• Funkcionalna dekompozicija (use case analiza)

• Neformalni upiti

• E/O model

• Relacioni model

• Normalizacija

• Algoritamaksa specifikacija

• Dinamički referencijalni integritet

2

Page 3: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Nezavisne klase entiteta

• Instance nezavisne klase entiteta egzistiraju nezavisno od instanci

drugih klasa entiteta.

• Grafički simbol:

• Pravilo prevođenja u relacionu šemu:

3

KLIJENT

IdKIme

KLIJENT (IdK, Ime)

Page 4: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Nezavisne klase entiteta

• Svaki klijent ima jedinstvenu šifru (IdK) → IdK jednoznačnoidentifikuje (razlikuje) svakog klijenta.

• IdK ćemo izabrati da bude primarni ključ.

• Primarni ključ podvlačimo punom linijom i na grafičkom simbolu i u relacionoj šemi.

• Primarni ključ može da se sastoji iz više atributa (kompozitni primarni ključ).

4

KLIJENT

IdKIme

KLIJENT (IdK, Ime)

Page 5: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Zavisne klase entiteta

• Instance zavisne klase entiteta postoji zavisno od konstantnog broja

instanci drugih klasa entiteta

• Grafički simbol:

• Pravilo prevođenja u relacionu šemu :

5

MODEL (IdM, Naziv) AUTOMOBIL (IdA, IdM, RegBr)

AUTOMOBIL

IdARegBr

MODEL

IdMNaziv

(0, N) E (1)

Kardinalnost uslovljenosti.Kardinalnost uslovljavanja.

(M, N)

Vrsta zavisnosti (E / I).

Nezavisna klasa entiteta Zavisna klasa entiteta

Page 6: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Zavisne klase entiteta

• Zavisna klasa entiteta se dodatno uokviri na grafičkom simbolu.

• IdM u klasi entiteta AUTOMOBIL predstavlja strani ključ

(referenciranje na drugi entitet).

• Strani ključ se u relacionom modelu zaokružuje.

• Zavisnost:

Da bi postojao automobil, moramo prvo da definišemo model.6

AUTOMOBIL

IdARegBr

MODEL

IdMNaziv

(0, N) E (1)MODEL (IdM, Naziv) AUTOMOBIL (IdA, IdM, RegBr)

Page 7: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Zavisne klase entiteta

• Primer 1 (Egzistencijalna zavisnost)

Potrebno je trajno pratiti najam (Trajanje) automobila (RegBr) od

strane klijenta (Ime). Klijent može više puta da unajmi automobil.

7

AUTOMOBIL

IdARegBr

KLIJENT

IdKIme

NAJAM

IdNTrajanje

(0, N) E (1) (1) E (0, N)

KLIJENT (IdK, Ime)AUTOMOBIL (IdA, RegBr)NAJAM (IdN, IdK, IdA, Trajanje)

Strani ključevi

Page 8: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Zavisne klase entiteta

• Primer 2 (Identifikaciona zavisnost)

Potrebno je trajno pratiti rezervaciju (Datum) modela (Naziv) od

strane klijenta (Ime). Klijent može više puta da unajmi automobil, ali

samo jednom dnevno.

8

KLIJENT

IdKIme

(0, N) I (1)

REZERVACIJA

Datum(1) I (0, N)

MODEL

IdMNaziv

KLIJENT (IdK, Ime)MODEL (IdM, Naziv)REZERVACIJA (IdK, IdM, Datum)

Strani ključevi

Page 9: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Zavisne klase entiteta

• Isprekidano podvučen atribut je diskriminator.

• Diskriminator predstavlja deo primarnog ključa koji je definisan u zavisnoj klasi entiteta.

• Diskriminator može da postoji jedino ako je klasa identifikaciono zavisna.

• U sastav primarnog ključa učestvuju referencirani atributi (preko identifikacione zavisnosti) zajedno sa diskriminatorom.

9

KLIJENT

IdKIme

(0, N) I (1)

REZERVACIJA

Datum(1) I (0, N)

MODEL

IdMNaziv

KLIJENT (IdK, Ime)MODEL (IdM, Naziv)REZERVACIJA (IdK, IdM, Datum)

Page 10: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Specijalizacija i generalizacija

• Klasa entiteta (podklasa) predstavlja specijalizaciju ako predstavlja specijalan slučaj neke druge klase entiteta (nadklasa)

• Kriterijum specifičnih svojstava podklase – sva specifična svojstva podklase treba da se nalaze u podklasi, ne u nadklasi

• Kriterijum specifičnih veza podklase sa drugim klasama entiteta – sve specifične veze podklase treba da su poveznicima povezane sa podklasom, ne sa nadklasom

• Grafički simbol:

• Pravilo prevođenja:

10

(1)

(1, 1)

(1)

AUTOMOBIL

IdARegBr

TERETNI

BrOsovinaNosivost

PUTNICKI

Mesta

Kardinalnost specijalizacije.

(M, N)

Totalna ekskluzivna

specijalizacija

AUTOMOBIL (IdA, RegBr)PUTNICKI (IdA, Mesta)TERETNI (IdA,BrOsovina, Nosivost)

Page 11: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Specijalizacija i generalizacija

• Primer 3

11

(0, 2)

RADNIK

IdRIme

EKONOMISTA

Iskustvo

MEHANICAR

Specijalnost

Parcijalna inkluzivna

specijalizacija

RADNIK (IdR, Ime)MEHANICAR (IdR, Specijalnost)EKONOMISTA (IdR,Iskustvo)

Page 12: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Specijalizacija i generalizacija

• Klasa entiteta (nadklasa) predstavlja generalizaciju

ako predstavlja opšti slučaj više drugih klasa entiteta (podklase)

• U svim podklasama se vrši usaglašavanje klasifikacionih svojstava po nazivu

• Sva klasifikaciona svojstva koja su zajednička za sve podklase postaju

zajednička svojstva nadklase, a podklase zadržavaju samo specifična svojstva

• Grafički simbol je isti kao za specijalizaciju

• Pravilo prevođenja – identično pravilu prevođenja kod specijalizacije

• Kardinalnost generalizacije je uvek (1,1)

12

Page 13: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Klase veza

• Instance klase veze predstavljaju odnos konstantnog broja instanci

(min. dve) iz jedne ili više klasa objekata.

• Grafički simbol:

• Pravilo prevođenja zavisi od kardinalnosti veze:

13

AUTOMOBIL

IdARegBr

KLIJENT

IdKIme

(0, N) DRZIDatum

(0, 1)

KLIJENT (IdK, Ime)AUTOMOBIL (IdA, RegBr)

DRZI (IdK, IdA, Datum)

Page 14: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Klase veza

• Primer 4:

OSOBA(JMBG, Ime, Prezime, Broj, Lekar)Napomena: Nije obezbeđeno da se Broj ne ponavlja više od jednom

(to se obezbeđuje na višem nivou – SQL)

ili

ZDRAVKARTON(Broj, Lekar, JMBG, Ime, Prezime)Napomena: Nije obezbeđeno da se JMBG ne ponavlja više od jednom

(to se obezbeđuje na višem nivou – SQL)

14

OSOBA

JMBGImePrezime

(1, 1) POSEDUJE (1, 1)ZDRAVKARTON

BrojLekar

Page 15: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Klase veza

• Primer 5:

15

OSOBA

JMBGImePrezime

(0, 1) POSEDUJEDatumPreuz

(1, 1)LICNAKARTA

BrojLKDatumDoIzdata

OSOBA(JMBG, Ime, Prezime)LICNAKARTA(BrojLK, DatumDo, Izdata, JMBG, DatumPreuz)

Napomena: Nije obezbeđeno da se JMBG ne ponavlja više od jednom u tabeli LICNAKARTA (to se obezbeđuje na višem nivou – SQL)

Page 16: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Klase veza

• Primer 6:

16

OSOBA

JMBGImePrezime

(0, 1) VOZIBrzina

(0, 1)AUTOMOBIL

IdARegBr

OSOBA(JMBG, Ime, Prezime)AUTOMOBIL(IdA, RegBr)VOZI(JMBG, IdA, Brzina)Napomena: Nije obezbeđeno da se IdA ne ponavlja više od jednom (to se obezbeđuje na višem nivou – SQL)

ili

OSOBA(JMBG, Ime, Prezime)AUTOMOBIL(IdA, RegBr)VOZI(JMBG, IdA, Brzina)Napomena: Nije obezbeđeno da se JMBG ne ponavlja više od jednom (to se obezbeđuje na višem nivou – SQL)

Page 17: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Klase veza

• Primer 7:

17

AUTOR

JMBGImePrezime

(0, N) NAPISAORedBr

(1, N)KNJIGA

IdKNaziv

AUTOR(JMBG, Ime, Prezime)KNJIGA(IdK, Naziv)NAPISAO(JMBG, IdK, RedBr)

Napomena: Nije obezbeđeno da se IdK pojavi barem jednom u tabeli NAPISAO (to se obezbeđuje na višem nivou – SQL)

Page 18: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Klase veza - rezime

• Pravilo prevođenja

18

ENT_A

IdAOstaloA

(x, y) VOstaloV

(z, w)ENT_B

IdBOstaloB

(X, Y) (Z, W) Relacione šeme

(1, 1) (1, 1)A(IdA, OstaloA, IdB, OstaloB, OstaloV) ili

B(IdA, OstaloA, IdB, OstaloB, OstaloV)

(1, 1) ≠(1, 1) A(IdA, OstaloA, IdB, OstaloV) B(IdB, OstaloB)

(0, 1) (0, 1)A(IdA, OstaloA) V(IdA, IdB, OstaloV) B(IdB, OstaloB) ili

A(IdA, OstaloA) V(IdA, IdB, OstaloV) B(IdB, OstaloB)

(0, 1) ≠(z, 1) A(IdA, OstaloA) V(IdA, IdB, OstaloV) B(IdB, OstaloB)

(x, y) (z, w) A(IdA, OstaloA) V(IdA, IdB, OstaloV) B(IdB, OstaloB)

Page 19: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

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:

• Pravilo prevođenja:

19

NASTAVNIK

IdNIme

(0, N)PREDAJE

(0, N)PREDMET

IdPNaziv

POHADJA

(0, N)

STUDENT

IdSIme

(0, N)

NASTAVNIK (IdN, Ime)STUDENT (IdS, Ime)PREDMET (IdP, Naziv)

PREDAJE (IdN, IdP)POHADJA (IdN, IdP, IdS)

Page 20: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Skraćeni oblici

• Neki elementi i kardinalnosti koriste se često pa možemo koristiti

skraćenice:

20

(0, N)

VEZA (0, 1)

VEZA (0, 1)

=

(0, N) (M)I

=

(M)

(0, N) (M)E

=

(M)

Page 21: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Ključevi

• Super ključ neke tabele je svaki podskup atributa te tabele koji imaosobinu da jedinstveno određuje redove (entitete) u tabeli.

• Kandidat ključ neke tabele je svaki podskup atributa te tabele kojiima osobinu da jedinstveno određuje redove (entitete) u tabeli, a dani jedan njegov pravi podskup nema tu osobinu.

• Primarni ključ neke tabele je jedan izabrani kandidat ključ.

• Alternativni ključevi su svi kandidat ključevi izuzev primarnog ključa.

• Surogat ključ je veštački uveden atribut koji služi kao primarni ključ.

• Ključni atribut je atribut koji je u sastavu bilo kog kandidat ključa.

• Neključni atribut je atribut koji nije u sastavu nijednog kandidatključa.

21

Page 22: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Zadatak 1 - Banka

• Banka putem svojih filijala (prati se naziv i adresa) u raznim mestima (prate sepoštanski broj i naziv) opslužuje svoje komitente (prati se naziv i adresa) koji mogubiti bez mesta, a u trenutku prvog pojavljivanja u banci prijavljuju sedište uodređenom mestu.

Svaki komitent može da ima više računa u svakoj od filijala (prate se status, brojstavki, dozvoljeni minus, i iznos), a mora imati bar jedan račun. Status računa možebiti aktivan, blokiran ili ugašen. Račun postaje blokiran kada pređe u minus,odnosno kada iznos postane negativan, a aktivira se kada iznos postane pozitivan.

Komitenti sa svojih računa vrše transakcije putem stavki prometa (prate se rednibroj, datum i vreme) koje mogu biti uplate (prati se osnov i iznos) ili isplate (pratise iznos i provizija), pri čemu je to moguće u bilo kojoj filijali.

Za opisani sistem kreirati model baze podataka.

Dobijeni model prevesti u relacionu šemu gde primarne ključeve treba podvući, strane ključeve zaokružiti.

22

Page 23: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Zadatak 1 - Banka

• Na osnovu opisa sistema proizilaze sledeći elementi

Entiteti

MESTO / PostBroj, Naziv

FILIJALA / Naziv

KOMITENT / Naziv, Adresa

RACUN / Status, BrojStavki, DozvMinus, Stanje

STAVKA / RedBroj, Datum, Vreme, Iznos

UPLATA / Osnov

ISPLATA / Provizija

• Nezavisni entiteti su MESTO i KOMITENT, pošto oni nastaju i postoje nezavisno od drugih objekata.

Veze

IMA_SEDISTE /

23

Page 24: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Zadatak 1 - Banka

• Na osnovu opisa sistema proizilaze sledeći odnosi

Zavisnosti Specijalizacije

MESTO > FILIJALA STAVKA : UPLATA,ISPLATA

MESTO > KOMITENT

KOMITENT,FILIJALA > RACUN

RACUN,FILIJALA > STAVKA

Učešća u vezama

IMA_SEDISTE - KOMITENT,MESTO

24

Page 25: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Zadatak 1 - Banka

• Model

• Nije moguće sva

ograničenja realizovati

relacionim modelom baze,

pa se neka ograničenja

realizuju kasnije, koristeći

SQL jezik.

Primer je status računa.

25

MESTO

IdMes

PostBr

Naziv

KOMITENT

IdKom

Naziv

Adresa

IMA_SEDISTE

(0,N) (0,1)

FILIJALA

IdFil

Naziv

Adresa

ERACUN

IdRac

Status

BrojStavki

DozvMinus

Stanje

EE

STAVKA

IdSta

RedBroj

Datum

Vreme

Iznos

EE

(1,N)

(1,1)

UPLATA

Osnov

ISPLATA

Provizija

Page 26: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Zadatak 1 - Banka

• Relaciona šema:

• Svaka relacija u relacionoj šemi predstavlja jednu tabelu u bazi podataka.

26

MESTO(IdMes, PostBr, Naziv)KOMITENT(IdKom, Naziv, Adresa)IMA_SEDISTE(IdMes, IdKom)FILIJALA(IdFil, Naziv, Adresa, IdMes)RACUN(IdRac, Status, BrojStavki, DozvMinus, Stanje, IdFil, IdKom)STAVKA(IdSta, RedBroj, Datum, Vreme,Iznos, IdFil, IdRac)UPLATA(IdSta, Osnov)ISPLATA(IdSta, Provizija)

Page 27: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

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 (0-10) koja može i ne mora da postoji, cena i žanr kome pripada. Za

svaki žanr se prati njegov naziv. U sistemu se takođe trajno evidentira svaka

pozajmica i to tako što se pamti koji član je pozajmio koju kasetu, zbog kog

filma i na koliko dana.

27

Page 28: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

28

Zadatak 2 – Video klub

Clan

IdCla

Ime

Kaseta

IdKas

Duzina

FilmIdFil

Naziv

Duzina

Ocena

Cena

Zanr

IdZan

Naziv

Sadrzi

(0,N)

(0,N)

Pozajmica

IdPoz

Dana

E E

E

E

Napomena:Obzirom da je ocena broj ne pravimo posebnu klasu entiteta, već nedostatak ocene će se predstaviti NULL vrednošću

Page 29: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

• Vezu koristimo za čuvanje trenutnog stanja – podjednako se unose i

brišu podaci iz tabele.

• Veza “Sadrzi” čuva informaciju o tome koji filmovi se sada nalaze na kaseti, ne i

koji filmovi su se u prošlosti nalazili na kaseti.

• Slab entitet koristimo za čuvanje sadašnjeg stanja i istorije (trajno) –

ne bi trebalo brisati podatke iz tabele.

• Slab entitet ”Pozajmica” čuva sve pozajmice koje su ostvarene još od nastanka

video kluba

29

Zadatak 2 – Video klub

Page 30: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

• Relaciona šema

30

KASETA(IdKas, Duzina)CLAN(IdCla, Ime)ZANR(IdZan, Naziv)FILM(IdFil, IdZan, Naziv, Duzina, Ocena, Cena)SADRZI(IdKas, IdFil)POZAJMICA(IdPoz, IdKas, IdCla, IdFil, Dana)

Zadatak 2 – Video klub

Page 31: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Zadatak 2 – Video klub

• Primer stanja podataka u bazi

31

IdKas Duzina

1 305

2 158

3 0

IdCla Ime

1 Predrag Petrovic

2 Aleksandra Stefic

KASETA CLAN

IdFil Naziv Duzina Ocena Cena IdZan

1 Se7en 127 8.6 200 3

2 The Lord of the Rings: The Fellowship of the Ring

178 8.8 250 2

3 The Dark Knight 158 9.0 250 1

IdZan Naziv

1 Akcija

2 Fantazija

3 Misterija

IdKas IdFil

1 1

1 2

2 3

IdPoz IdKas IdCla IdFil Dana

1 1 1 1 5

2 3 2 3 10

POZAJMICA

SADRZI

FILM ZANR

Druga pozajmica je vezana za film koji više nije na drugoj kaseti.Pozajmice se trajno evidentiraju, dok se sadržanje filmova pamti trenutno.

Page 32: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Zadatak 3 – 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

utakmice 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, kao i da li je bio autogol. Pored golova trajno

se evidentiraju i svi kartoni, žuti i crveni, dodeljeni na utakmici i to kom

fudbaleru i u kom minutu.

32

Page 33: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Zadatak 3 – Fudbalski savez – rešenje 1

33

MESTO

IdMes

Naziv

TIM

IdTim

Naziv E

FUDBALER

IdFud

Ime E

UTAKMICA

IdUta

Kolo

Godina

Ishod

E

(2)

IGRAO

POZICIJA

IdPoz

Naziv

E

KARTON

IdKar

Minut

Tip

E

I I

I

(0,2)

NA_POZICIJI

I

GOL

IdGol

RedniBr

Minut

Autogol

Page 34: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Zadatak 3 – Fudbalski savez

• Relaciona šema

34

MESTO(IdMes, Naziv)POZICIJA(IdPoz, Naziv)TIM(IdTim, Naziv, IdMes)FUDBALER(IdFud, Ime, IdTim)UTAKMICA(IdUta, Kolo, Godina, Ishod, IdTim1, IdTim2)IGRAO(IdFud, IdUta)KARTON(IdKar, Minut, Tip, IdFud, IdUta)GOL(IdGol, RedniBr, Minut,Autogol, IdFud, IdUta)NA_POZICIJI(IdFud, IdUta, IdPoz)

Page 35: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Zadatak 3 – Fudbalski savez – rešenje 2

35

MESTO

IdMes

Naziv

TIM

IdTim

Naziv E

FUDBALER

IdFud

Ime E

UTAKMICA

Kolo

Godina

Ishod

I

(2)

IGRAO

POZICIJA

IdPoz

Naziv

I

KARTON

IdKar

Minut

Tip

E

I I

I

(0,2)

GOL

RedniBr

Minut

Autogol

NA_POZICIJI

I

Page 36: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Zadatak 3 – Fudbalski savez – rešenje 2

• Relaciona šema

36

MESTO(IdMes, Naziv)POZICIJA(IdPoz, Naziv)TIM(IdTim, Naziv, IdMes)FUDBALER(IdFud, Ime, IdTim)UTAKMICA(Kolo, Godina, Ishod, IdTim1, IdTim2)IGRAO(IdFud, Kolo, IdTim1, IdTim2)KARTON(IdKar, Minut, Tip, IdFud, Kolo, IdTim1, IdTim2 )GOL(RedniBr, Minut,Autogol, IdFud, Kolo, IdTim1, IdTim2 ) NA_POZICIJI(IdFud, Kolo, IdTim1, IdTim2 , IdPoz)

Page 37: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Zadatak 4 – Šahovski savez

Projektovati sistem za potrebe šahovskog saveza. U sistemu treba voditi

evidenciju o članovima (ime, prezime, broj lične karte), od kojih neki mogu

biti šahisti (rejting) ili komentatori (iskustvo). 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 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.

Član koji je učesnik turnira može dobiti novčanu nagradu.

37

Page 38: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Zadatak 4 – Šahovski savez – rešenje 1

38

TURNIR

IdTur

Naziv

Mesto

Datum

CLAN

BrojLK

Ime

Prezime

UCESTVOVANJEI I

NAGRADA

Suma

SAHISTA

Rejting

KOMENTATOR

IskustvoPARTIJA

IdPar

Vreme

Ishod

E

(2)

(0,N)

(0,1)

POTEZ

IdPot

Oznaka

BrPoteza

EANALIZA

IdAna

Tekst

E

E

(0,2)

PARTIJA_NA_TURNIRU

I

EI

(0,1)

MOGUC

ODIGRAN

E (1,N)

(1,1)

Page 39: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Zadatak 4 – Šahovski savez

• Relaciona šema

39

CLAN(BrojLK, Ime, Prezime)SAHISTA(BrojLK, Rejting)KOMENTATOR(BrojLK, Iskustvo)TURNIR(IdTur, Naziv, Mesto, Datum)UCESTVOVANJE(IdTur, BrojLK)NAGRADA(IdTur, BrojLK, Suma)PARTIJA(IdPar, Vreme, Ishod, BrojLKBeli, BrojLKCrni)POTEZ(IdPot, Oznaka, BrPoteza, IdPar)ANALIZA(IdAna, IdPot, BrojLK)PARTIJA_NA_TURNIRU(IdPar, IdTur)ODIGRAN(IdPot)MOGUC(IdPot, IdAna)

Page 40: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Zadatak 4 – Šahovski savez – rešenje 2

40

TURNIR

IdTur

Naziv

Mesto

Datum

CLAN

BrojLK

Ime

Prezime

SAHISTA

Rejting

KOMENTATOR

IskustvoPARTIJA

IdPar

Vreme

Ishod

E

(2)

(0,N)

(0,1)

POTEZ

IdPot

Oznaka

BrPoteza

EANALIZA

IdAna

Tekst

E

E

(0,1)(0,1)

MOGUC

ODIGRAN

E (1,N)

(1,1)

ODIGRANA

UCESTVUJE(0,N)(0,N)

OSVOJIO

(1,1)

NAGRADA

IdNag

Suma

Page 41: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Zadatak 4 – Šahovski savez – rešenje 2

• Relaciona šema

41

CLAN(BrojLK, Ime, Prezime)SAHISTA(BrojLK, Rejting)KOMENTATOR(BrojLK, Iskustvo)TURNIR(IdTur, Naziv, Mesto, Datum)UCESTVOVANJE(IdTur, BrojLK)NAGRADA(IdNag, Suma, IdTur, BrojLK)PARTIJA(IdPar, Vreme, Ishod, BrojLKBeli, BrojLKCrni)POTEZ(IdPot, Oznaka, BrPoteza, IdPar)ANALIZA(IdAna, IdPot, BrojLK)ODIGRANA(IdPar, IdTur)ODIGRAN(IdPot)MOGUC(IdPot, IdAna)

Page 42: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Zadatak 5 – 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 firmi koja je isporučila opremu i firmi koja je proizvođač te opreme (pri čemu

isporučilac i proizvođač mogu da budu iste firme). 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.

42

Page 43: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Zadatak 5 – IT inventar – rešenje 1

43

TIP

IdTip

Naziv

OPREMA

IdOpr

InvBr

Datum

Garancija

Vrednost

Opis

E

SADRZI

(0,N) (0,1)

SOFTVER

IdSof

Opis

Verzija

INSTALER

IdInsINSTALACIJA

DatumVreme

FIRMA

Naziv

Adresa

RADNIK

Ime

BrTel

(1,1)

E

SOBA

BrSobe

Sprat E

JE_RASPOREDJENA

(0,N)

(0,N)

(0,N)

(0,N) (0,N)

(2)

Može isti softver da bude instaliran dva puta?

Page 44: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Zadatak 5 – IT inventar

• Relaciona šema

44

TIP(IdTip, Naziv)SOFTVER(IdSof, Opis, Verzija)INSTALER(IdIns)FIRMA(IdIns, Naziv, Adresa)RADNIK(IdIns, Ime, BrTel)OPREMA(IdOpr, InvBr, Datum, Garancija, Vrednost, Opis, IdTip, IdInsDob, IdInsPro)INSTALACIJA(IdOpr, IdSof, IdIns, DatumVreme)SOBA(BrSobe, Sprat, IdIns)JE_RASPOREDJENA(IdOpr, BrSobe)SADRZI (IdOprDeo, IdOprCelina)

Page 45: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Zadatak 5 – IT inventar – rešenje 2

45

TIP

IdTip

Naziv

OPREMA

InvBr

Datum

Garancija

Vrednost

Opis

E

SADRZI

(0,N) (0,1)

SOFTVER

IdSof

Opis

Verzija

INSTALER

IdIns

FIRMA

Naziv

Adresa

RADNIK

Ime

BrTel

(1,1)E

SOBA

BrSobe

Sprat E

JE_RASPOREDJENA

(0,N)

(0,N)

(2)

INSTALACIJA

DatumVremeI

E

I

Ne može isti softver da bude instaliran dva puta

Page 46: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Zadatak 5 – IT inventar – rešenje 2

• Relaciona šema

46

TIP(IdTip, Naziv)SOFTVER(IdSof, Opis, Verzija)INSTALER(IdIns)FIRMA(IdIns, Naziv, Adresa)RADNIK(IdIns, Ime, BrTel)OPREMA(InvBr, Datum, Garancija, Vrednost, Opis, IdTip, IdInsDob, IdInsPro)INSTALACIJA(InvBr, IdSof, IdIns, DatumVreme)SOBA(BrSobe, Sprat, IdIns)JE_RASPOREDJENA(InvBr, BrSobe)SADRZI (InvBrDeo, InvBrCelina)

Page 47: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Zadatak 6 – 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 ostali 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 preparat koji nije lek

može određenom distributeru odobriti reklamiranje.

47

Page 48: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Zadatak 6 – Farmaceutska kompanija

48

GRAD

PBroj

Naziv

DISTRIBUTER

PIB

Naziv

Adresa

POKRIVA

(0,N) (0,N)

APOTEKA

IdApo

Naziv

Potencijal

Adresa

E

SARADJUJE

(0,N)

(0,N)

PROIZVOD

IdPro

Naziv

Cena

POPUST

Procenat

(0,N)

(0,1)

(1,1)

OSTALI

Opis

LEK

Licenca

ZAMENA

(0,N)

(0,N)

REKLAMIRA

(0,1)

(0,N)

Page 49: Model entiteta i odnosa - University of Belgrade · 2019-03-05 · Status računamože biti aktivan, blokiran ili ugašen. Računpostaje blokiran kada pređeu minus, odnosno kada

Zadatak 6 – Farmaceutska kompanija

• Relaciona šema

49

GRAD(PBroj, Naziv)DISTRIBUTER(PIB, Naziv, Adresa)PROIZVOD(IdPro, Naziv, Cena)POKRIVA(PIB, PBroj)OSTALI(IdPro, Opis)LEK(IdPro, Licenca)APOTEKA(IdApo, Naziv, Potencijal, Adresa,PBroj)ZAMENA(IdPro1, IdPro2)REKLAMIRA(PIB, IdPro)SARADJUJE(IdApo, PIB)POPUST(IdApo, PIB, IdPro)