31
BAZE PODATAKA Vježba 1

BAZE PODATAKA - racunarstvo550.xyz. semestar/Baze podataka... · Seminarski rad: Grupe po 2 ... nego su organizirani u jedinstvenu strukturu baze podataka. Koraci u projektiranju

  • Upload
    others

  • View
    51

  • Download
    0

Embed Size (px)

Citation preview

Page 1: BAZE PODATAKA - racunarstvo550.xyz. semestar/Baze podataka... · Seminarski rad: Grupe po 2 ... nego su organizirani u jedinstvenu strukturu baze podataka. Koraci u projektiranju

BAZE PODATAKAVježba 1

Page 2: BAZE PODATAKA - racunarstvo550.xyz. semestar/Baze podataka... · Seminarski rad: Grupe po 2 ... nego su organizirani u jedinstvenu strukturu baze podataka. Koraci u projektiranju

mag. ing. Denis Štajduhar

[email protected]

@B414

Vježbe:

@B525

10 vježbi: 5 - teorija

5 – PostgreSQL

1 izostanak – dodatna teorijska pitanja na

obrani seminarskog rada

2 izostanka – dodatni projekt

3,4,... izostanka – javiti se prof. Papiću

Seminarski rad:

Grupe po 2 studenta

Popis tema za seminarske radove na

portalu

Do 22.10. dogovoriti grupe i teme

Do 15.01. predati gotov seminarski

rad (dokumentaciju i bazu poslati

na mail [email protected])

21.01. prezentacije seminarskih

radova

Page 3: BAZE PODATAKA - racunarstvo550.xyz. semestar/Baze podataka... · Seminarski rad: Grupe po 2 ... nego su organizirani u jedinstvenu strukturu baze podataka. Koraci u projektiranju

SUSTAVI ZA UPRAVLJANJE

BAZAMA PODATAKA

Page 4: BAZE PODATAKA - racunarstvo550.xyz. semestar/Baze podataka... · Seminarski rad: Grupe po 2 ... nego su organizirani u jedinstvenu strukturu baze podataka. Koraci u projektiranju

Baza podataka

Skup međusobno povezanih podataka, pohranjenih

u vanjskoj memoriji računala.

Podaci su istovremeno dostupni raznim korisnicima

i aplikacijskim programima.

Podaci nisu razbacani po nezavisnim datotekama

nego su organizirani u jedinstvenu strukturu baze

podataka.

Page 5: BAZE PODATAKA - racunarstvo550.xyz. semestar/Baze podataka... · Seminarski rad: Grupe po 2 ... nego su organizirani u jedinstvenu strukturu baze podataka. Koraci u projektiranju
Page 6: BAZE PODATAKA - racunarstvo550.xyz. semestar/Baze podataka... · Seminarski rad: Grupe po 2 ... nego su organizirani u jedinstvenu strukturu baze podataka. Koraci u projektiranju

Koraci u projektiranju baze

podataka

Analiza podataka

Modeliranje podataka

Pretvaranje modela podataka u relacije

Baza podataka

Page 7: BAZE PODATAKA - racunarstvo550.xyz. semestar/Baze podataka... · Seminarski rad: Grupe po 2 ... nego su organizirani u jedinstvenu strukturu baze podataka. Koraci u projektiranju

Model baze podataka

Sredstvo za prikazivanje objekata sustava, njihovih

atributa i njihovih međusobnih veza.

Hijerarhijski model

Mrežni model

RELACIJSKI MODEL

Objektni model

...

Page 8: BAZE PODATAKA - racunarstvo550.xyz. semestar/Baze podataka... · Seminarski rad: Grupe po 2 ... nego su organizirani u jedinstvenu strukturu baze podataka. Koraci u projektiranju

Entity-Relationship diagram

Page 9: BAZE PODATAKA - racunarstvo550.xyz. semestar/Baze podataka... · Seminarski rad: Grupe po 2 ... nego su organizirani u jedinstvenu strukturu baze podataka. Koraci u projektiranju

Ono o čemu želimo spremati podatke.

Skup objekata koji imaju neka zajednička svojstva.

Entitet može biti objekt ili biće (npr. kuća,

student,...) odnosno događaj ili pojava (npr.

nogometna utakmica, praznik, ...).

Entitet

ENTITET

Page 10: BAZE PODATAKA - racunarstvo550.xyz. semestar/Baze podataka... · Seminarski rad: Grupe po 2 ... nego su organizirani u jedinstvenu strukturu baze podataka. Koraci u projektiranju

Atribut

• Entitet je opisan nizom atributa.

• Ukoliko neki atribut i sam zahtjeva svoje atribute,

tada ga se treba smatrati novim entitetom.

• Izborom atributa izražava se ono što nas u

realnom svijetu zanima.

ATRIBUT

Page 11: BAZE PODATAKA - racunarstvo550.xyz. semestar/Baze podataka... · Seminarski rad: Grupe po 2 ... nego su organizirani u jedinstvenu strukturu baze podataka. Koraci u projektiranju

Primarni ključ

• Za svaki entitet moramo izabrati primarni ključ.

• Primarni ključ je minimalni set atributa koji

jednoznačno određuje jedan entitet.

• Npr. za tip entiteta AUTOMOBIL, kandidat za

primarni ključ je atribut REGISTRACIJSKI_BROJ.

ATRIBUT

Page 12: BAZE PODATAKA - racunarstvo550.xyz. semestar/Baze podataka... · Seminarski rad: Grupe po 2 ... nego su organizirani u jedinstvenu strukturu baze podataka. Koraci u projektiranju
Page 13: BAZE PODATAKA - racunarstvo550.xyz. semestar/Baze podataka... · Seminarski rad: Grupe po 2 ... nego su organizirani u jedinstvenu strukturu baze podataka. Koraci u projektiranju

Veza

• Veza predstavlja odnos između dva ili više entiteta.

• Veza može sadržavati opisne atribute koji opisuju

odnos između entiteta.

VEZA

Page 14: BAZE PODATAKA - racunarstvo550.xyz. semestar/Baze podataka... · Seminarski rad: Grupe po 2 ... nego su organizirani u jedinstvenu strukturu baze podataka. Koraci u projektiranju
Page 15: BAZE PODATAKA - racunarstvo550.xyz. semestar/Baze podataka... · Seminarski rad: Grupe po 2 ... nego su organizirani u jedinstvenu strukturu baze podataka. Koraci u projektiranju

Funkcionalnost veza

• Načini na koji veza može povezati primjerke

entiteta određeni su svojstvima funkcionalnosti,

obaveznosti članstva, odnosno kardinalnosti.

• Funkcionalnost je svojstvo koje kaže može li se

veza interpretirati kao preslikavanje (funkcija) iz

skupa primjeraka entiteta jednog tipa u skup

primjeraka entiteta drugog tipa.

• Funkcionalnost veze može biti:

• 1:1

• 1:N

• N:M

Page 16: BAZE PODATAKA - racunarstvo550.xyz. semestar/Baze podataka... · Seminarski rad: Grupe po 2 ... nego su organizirani u jedinstvenu strukturu baze podataka. Koraci u projektiranju

Funkcionalnost veza

Jedan-naprama-jedan ( 1 : 1 )

• Jedan primjerak prvog tipa

entiteta može biti u vezi s

najviše jednim primjerkom

drugog tipa entiteta.

• Također, jedan primjerak drugog

tipa entiteta može biti u vezi s

najviše jednim primjerkom

prvog tipa entiteta.

STUDENT

INDEKS

DODJELJENO

1

1

Page 17: BAZE PODATAKA - racunarstvo550.xyz. semestar/Baze podataka... · Seminarski rad: Grupe po 2 ... nego su organizirani u jedinstvenu strukturu baze podataka. Koraci u projektiranju

Funkcionalnost veza

Jedan-naprama-mnogo ( 1 : N )

• Jedan primjerak prvog tipa

entiteta može biti u vezi s 0,1 ili

više primjeraka drugog tipa

entiteta.

• No, jedan primjerak drugog tipa

entiteta može biti u vezi s

najviše jednim primjerkom

prvog tipa entiteta.

NASTAVNIK

KOLEGIJ

PREDAJE

1

N

Page 18: BAZE PODATAKA - racunarstvo550.xyz. semestar/Baze podataka... · Seminarski rad: Grupe po 2 ... nego su organizirani u jedinstvenu strukturu baze podataka. Koraci u projektiranju

Funkcionalnost veza

Mnogo-naprama-mnogo ( M : N )

• Jedan primjerak prvog tipa

entiteta može biti u vezi s 0,1 ili

više primjeraka drugog tipa

entiteta.

• Također, jedan primjerak drugog

tipa entiteta može biti u vezi s

0,1 ili više primjeraka prvog tipa

entiteta.

STUDENT

KOLEGIJ

UPISAO

M

N

Page 19: BAZE PODATAKA - racunarstvo550.xyz. semestar/Baze podataka... · Seminarski rad: Grupe po 2 ... nego su organizirani u jedinstvenu strukturu baze podataka. Koraci u projektiranju

Potrebno je napraviti bazu podataka za fakultet u

kojoj će se voditi evidencija o studentima koji su

upisali pojedini kolegij, o nastavnicima koji predaju

na pojedinom kolegiju, te o zavodu na kojem se

nalazi pojedini kolegij.

Page 20: BAZE PODATAKA - racunarstvo550.xyz. semestar/Baze podataka... · Seminarski rad: Grupe po 2 ... nego su organizirani u jedinstvenu strukturu baze podataka. Koraci u projektiranju

Zadatak 1Cilj nam je napraviti bazu podataka za vođenje evidencija o osobnoj

kolekciji filmskih naslova koje posjedujemo. Za svaki filmski naslov željeli

bismo moći pohraniti osnovne informacije o filmu, poput naziva filma,

kratkog sadržaja, trajanja, žanra kojem pripada i sl. Kao i informacije o

osobi koja je film režirala te glumcima koji se u njemu pojavljuju, odnosno

ulogama koje su ostvarili.

Neka od pitanja na koja bismo pomoću spomenute baze trebali moći

odgovoriti su:

• Tko je sve glumio u određenom filmu?

• Tko je režirao određeni filmski naslov?

• Kojem žanru pripada određeni filmski naslov?

• Koja je duljina trajanja određenog filma?

• Kako glasi izvorni naslov određenog filma?

• U kojim je sve filmovima glumio određeni glumac?

• Koje sve filmove određenog žanra posjedujemo?

Page 21: BAZE PODATAKA - racunarstvo550.xyz. semestar/Baze podataka... · Seminarski rad: Grupe po 2 ... nego su organizirani u jedinstvenu strukturu baze podataka. Koraci u projektiranju

Zadatak 1

Page 22: BAZE PODATAKA - racunarstvo550.xyz. semestar/Baze podataka... · Seminarski rad: Grupe po 2 ... nego su organizirani u jedinstvenu strukturu baze podataka. Koraci u projektiranju

Složeni oblici u ER-modelima

• Slabi entiteti

• Involuirane veze

• Pod-tipovi

• Ternarne veze

• Agregacija

Page 23: BAZE PODATAKA - racunarstvo550.xyz. semestar/Baze podataka... · Seminarski rad: Grupe po 2 ... nego su organizirani u jedinstvenu strukturu baze podataka. Koraci u projektiranju

Slabi entitet

SLABI ENTITET

• Entiteti koji ovise o nekim drugim entitetima.

Page 24: BAZE PODATAKA - racunarstvo550.xyz. semestar/Baze podataka... · Seminarski rad: Grupe po 2 ... nego su organizirani u jedinstvenu strukturu baze podataka. Koraci u projektiranju

Slabi entitet

• Jednoznačnost slabog entiteta postiže se

kombiniranjem nekog od njegovih atributa sa

ključem nekog drugog atributa

• Skup entiteta iz kojeg uzimamo primarni ključ

naziva se identificirajući vlasnik slabog entiteta

(eng. identifying owner)

• Identificirajući vlasnik slabog identiteta vezuje se sa

slabim entitetom vezom tipa 1:N

• Svi elementi slabog entiteta imaju obavezno

članstvo u identificirajućem skupu veza

Page 25: BAZE PODATAKA - racunarstvo550.xyz. semestar/Baze podataka... · Seminarski rad: Grupe po 2 ... nego su organizirani u jedinstvenu strukturu baze podataka. Koraci u projektiranju

Involuirane veze

• Povezuje jedan tip entiteta sa tim istim tipom

• Binarni odnos

Page 26: BAZE PODATAKA - racunarstvo550.xyz. semestar/Baze podataka... · Seminarski rad: Grupe po 2 ... nego su organizirani u jedinstvenu strukturu baze podataka. Koraci u projektiranju

Pod-tipovi

• Tip entiteta E1 je

podtip tipa entiteta

E2 ako je svaki

primjerak od E1

također i primjerak od

E2

• E1 nasljeđuje sve

atribute od E2, no E1

može imati i dodatne

atribute

Page 27: BAZE PODATAKA - racunarstvo550.xyz. semestar/Baze podataka... · Seminarski rad: Grupe po 2 ... nego su organizirani u jedinstvenu strukturu baze podataka. Koraci u projektiranju

Ternarne veze

• Uspostavljaju se između tri tipa entiteta

• Ternarni odnos

Page 28: BAZE PODATAKA - racunarstvo550.xyz. semestar/Baze podataka... · Seminarski rad: Grupe po 2 ... nego su organizirani u jedinstvenu strukturu baze podataka. Koraci u projektiranju

Agregacija

• Veza između skupa entiteta i skupa veza

• Agregaciju koristiti kada imamo potrebu

uspostaviti vezu sa nekom drugom postojećom

vezom

• Agregacijom veze tretiramo kao entitete višeg

reda (apstraktni entitet)

Page 29: BAZE PODATAKA - racunarstvo550.xyz. semestar/Baze podataka... · Seminarski rad: Grupe po 2 ... nego su organizirani u jedinstvenu strukturu baze podataka. Koraci u projektiranju

Agregacija

Page 30: BAZE PODATAKA - racunarstvo550.xyz. semestar/Baze podataka... · Seminarski rad: Grupe po 2 ... nego su organizirani u jedinstvenu strukturu baze podataka. Koraci u projektiranju

Zadatak 2

(Nastavak prvog zadatka) … No, što ako u svojoj kućnoj kolekciji, osim

filmskih naslova, posjedujemo i različite televizijske serije te bismo

također željeli moći doći do odgovora na pitanja poput:

• Koliko sezona određene televizijske sezone posjedujemo?

• Koliko epizoda određene sezone određene televizijske serije

posjedujemo?

• Tko sve glumi u pojedinoj sezoni određene televizijske serije?

• Tko sve glumi u određenoj epizodi određene sezone određene

televizijske serije?

• Tko je sve režirao epizode u pojedinoj sezoni određene televizijske

serije?

• Koliko traje određena epizoda određene sezone određene televizijske

serije?

Page 31: BAZE PODATAKA - racunarstvo550.xyz. semestar/Baze podataka... · Seminarski rad: Grupe po 2 ... nego su organizirani u jedinstvenu strukturu baze podataka. Koraci u projektiranju