Upload
ledat
View
279
Download
7
Embed Size (px)
Citation preview
BAZE PODATAKAVježba 1
mag. ing. Denis Štajduhar
@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
SUSTAVI ZA UPRAVLJANJE
BAZAMA PODATAKA
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.
Koraci u projektiranju baze
podataka
Analiza podataka
Modeliranje podataka
Pretvaranje modela podataka u relacije
Baza podataka
Model baze podataka
Sredstvo za prikazivanje objekata sustava, njihovih
atributa i njihovih međusobnih veza.
Hijerarhijski model
Mrežni model
RELACIJSKI MODEL
Objektni model
...
Entity-Relationship diagram
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
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
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
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
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
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
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
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
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.
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?
Zadatak 1
Složeni oblici u ER-modelima
• Slabi entiteti
• Involuirane veze
• Pod-tipovi
• Ternarne veze
• Agregacija
Slabi entitet
SLABI ENTITET
• Entiteti koji ovise o nekim drugim entitetima.
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
Involuirane veze
• Povezuje jedan tip entiteta sa tim istim tipom
• Binarni odnos
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
Ternarne veze
• Uspostavljaju se između tri tipa entiteta
• Ternarni odnos
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)
Agregacija
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?