Download - Baze Podataka Vezbe
Baze podataka
Lidija Vujošević
Sadržaj kursa
MOV (model objekti i veze)
Relacioni model
Normalizacija
SQL (Structured Query Language)
MS Access
MOV (model MOV (model objektiobjekti i i vezeveze))
MOV -
Osnove
MOV (eng. Entity-Relationship Model)
MOV objavljen
1976 god.
Danas jedan
od
najčešće korišćenih modela podataka
Elementi MOV-a
Objekat
(Entity) –
npr. osoba, kompanija, lokacije,
nastavnik, predmet ...
Veza (među objektima) – prikazuje odnos između entiteta npr. Entiteti nastavnik
i predmet, veza bi
bila predaje
Atribut
(obeležje) objekta –
entitet je predstavljen
skupom atributa npr. za entitete nastavnik
i predmet, atributi bi bili redom: ime nastavnika, naziv predmeta
Grafički prikaz 1/2
Osnovni
(jak) entitet
Slab entitet
Agregacija
Grafički prikaz 2/2
Veza
Veza
nadtipa
i podtipa
Atribut
S
Tipovi
veza 1/5
Broj tipova objekata koji učestvuje u vezi definiše red veze.
Postoje rekurzivne, binarne
i veze višeg reda.
Rekurzivna
– između dva objekta istog tipa.
Binarna
–
povezani objekti različitog tipa.
Višeg reda
–
predstavlja se pomoću binarnih veza ili
se tretira kao agregacija.
Tipovi
veza 2/5
Zadatak 1:
Predstaviti
vezu
između zaposlenih upotrebom MOV-a
Zadatak 2:
Predstaviti
vezu
između bračnih drugova upotrebom MOV-a
Tipovi
veza 3/5
Rekurzivna veza
Primer
1:zaposlen je
šef
Primer
2:osoba bračna
veza
Tipovi
veza 4/5
Zadatak 1:
Predstaviti
vezu nastavnik predaje predmet upotrebom MOV-a
Zadatak 2:
Predstaviti
vezu
osoba je zaposlena u preduzeću upotrebom
MOV-a
Tipovi
veza 5/5
Binarna veza
Primer
1:nastavnik predaje
Primer
2:
predmet
osoba zaposlena preduzeće
Osnovni (jak) entitet
ima osobinu koja ga može jednoznačno identifikovati (ne zavisi od drugih entiteta).
Npr. radnik, država, preduzeće...
Slab
entitet
je onaj čija egzistencija i identifikacija zavise od drugog ili drugih entiteta.
Npr. republika, proizvođač...
država republika
Agregacija 1/3
1.
je kada tip veze ima atribut
predmetstudent diplomski
datum_dipl
Agregacija 2/3
2. ili kada je u vezi sa nekim entitetom
predmetstudent diplomski
nastavnik
ocenjuje
Agregacija 3/3
predmetstudent diplomski
nastavnik
ocenjuje
datum_dipl
Generalizacija
i specijalizacija
Generalizacija: preslikavanjePODTIP NADTIP
Specijalizacija: preslikavanje NADTIP PODTIP
Primer
prodavacprofesor
radnik
službenik
S
vrsta_posla jmbg ime
Ograničenja 1/3
Pri izgradnji MOV-a postoje sledeća formalna ograničenja:
1.
Tipovi osnovnih entiteta ne smeju biti spojeni direktno bez tipa veze. Između dva osnovna tipa entiteta može postojati samo tip veze ili agregirani tip entiteta.
tip1 tip2NE
Ograničenja 2/3
2.
Tipovi veze ne smeju biti direktno spojeni.
V1 V2NE
Ograničenja 3/3
3.
Tip slabog entiteta može imati samo jedan nadređeni objekat. Veze ilustrovane na slici nisu dozvoljene.
tip1 tip2
tip3
Kardinalnost 1/4
Tipa(1:1) –
jedan tip objekta ima samo jednu vrednost atributa, a tu vrednost atributa može imati samo jedna pojava tipa objekta.
Primer
:
jedan građanin -
JMBG
Kardinalnost 2/4
Tipa(1:M) –
jedan tip objekta ima samo jednu vrednost nekog atributa, i istu vrednost atributa mogu imati više pojava tipa objekta.
Primer
:
jedan građanin –
Datum_rođ
Kardinalnost 3/4
Tipa(M:1) –
jedan tip objekta može imati više vrednosti nekog atributa, i istu vrednost atributa može imati samo jedna pojava tipa objekta.
Primer
:
jedan građanin –
Reg_broj_auta
Kardinalnost 4/4
Tipa(M:M) –
jedan tip objekta može imati više vrednosti nekog atributa, i istu vrednost atributa može imati samo više pojava tipa objekta.
Primer
:
jedan građanin –
Fakultet
Zadatak
1
Pomoću MOV-a modelovati informacioni sistem video kluba; neophodno je obezbediti
1.
Evidentiranje članova sa imenom, prezimenom, brojem telefona, adresom.
2.
Evidentiranje filmova i kopija koje videoteka poseduje sa naslovom, godinom snimanja, glavnim glumcem, režiserom, kratkim opisom sadržaja.
3.
Praćenje učlanjivanja korisnika (članova) sa mogućnošću formiranja izveštaja o primljenoj članarini i rentiranju filmova za svakog radnika videoteke.
4.
Evidentiranje iznajmljivanja filmova sa datumom iznajmljivanja, brojem dana, evidentiranje rezervacije filma na određeni broj dana od datuma kada je film rezervisan.
Zadatak
2
Pomoću MOV-a modelovati informacioni sistem autotransportnog
preduzeća;
neophodno je obezbediti
1.
Evidentirati modele automobila/kamiona/autobusa.2.
Svako vozilo evidentirati sa reg. brojem, datum nabavke, broj garaže u koje je vozilo smešteno, podatke o izvršenom servisu (sa opisom radova i podacima o serviseru koji je izvršio servis).
3.
Radnici preduzeća su vozači i serviseri, zavisno od tipa radnika potrebno je voditi podatke o tome koji radnik je zadužio vozilo i koje modele zna da servisira.
Postupak
prevođenja 1/3
OBJEKAT
naziv objekta –
naziv
ŠR (šema relacije)identifikator objekta –
PK ŠR
obeležja objekta –
obeležja ŠR
Postupak
prevođenja 2/3
SLAB OBJEKAT
-Postaje posebna ŠR;-Indentifikator nadređenog objekta postaje jedno od obeležja ŠR koja odgovara slabom objektu i deo je primarnog ključa zajedno sa identifikatorom slabog objekta.
Postupak prevođenja 3/3
NADTIP: Postaje posebna ŠR;
PODTIP: Postaje
posebna
ŠR (identifikator
nadtipa predstavlja ključ
ŠR).
Napomena: Veza između jakog i slabog objekta kao i veza između nadtipa i podtipa NE POSTAJE POSEBNA ŠR.
Normalizacija 1/3
Osnovni cilj relacionog modela je da odgovarajuća BP (baza podataka)
1.
Ne sadrži redundansu;2.
Da se može jednostavno koristiti i menjati.
Normalizacija 2/3
Procesom normalizacije
želi se razviti dobar model podataka tako da se iz nekog početnog zadatog modela otklone slabosti (redundansa i problemi održavanja).
Pod redundansom
podrazumevamo višestruko memorisanje iste informacije u BP.
Normalizacija 3/3
Zadatak postupka normalizacije je da relacionu šemu prvo transformiše u 1NF (normalna forma), zatim u 2NF, 3NF i tako redom.
S povećanjem rednog broja NF i uslovi koji se postavljaju su strožiji.
SQL –
jezik relacionih sistema za upravljanje bazama podataka
SQL
(Structured Query Language)
DDL
(Data Definition Language) –
create, alter,
drop...
DML
(Data Manipulation Language) –
select, insert,
update, delete...
DCL
(Data Control Language) –
grant, revoke...
TCL
(Transaction Control Language) –
commit,
rollback...
Standardne SQL funkcije
Max(obeležje)
– vraća maksimalne vrednosti.
Min(obeležje)
– vraća minimalne vrednosti.
Count(*)
– vraća ukupan broj selektovanih torki.
Sum(obeležje)
– vraća zbir vrednosti datog
obeležja.
Avg (obeležje)
– vraća srednju vrednost datog
obeležja.
Primeri 1/3
Nastavnik(s_nast,ime,prezime,plata,zvanje)1. Prikazati sve nastavnike
SELECT * FROM nastavnik2. Prikazati ukupan broj nastavnika
SELECT count(*) FROM nastavnik3. Prikazati ukupnu platu svih docenata
SELECT sum(plata) FROM nastavnik WHERE zvanje = ‘docent’
Primeri 2/3
4. Nastavniku
sa
šifrom 2 povećati 2 puta platuUPDATE nastavnik
SET plata=2*plataWHERE s_nast
= 2
5.
Povećati platu za 20% svim nastavnicima koji imaju zvanje kao Simić
Sima
UPDATE nastavnikSET plata=1.2*plataWHERE zvanje in(SELECT zvanje FROM
nastavnik WHERE ime =
‘Sima’
AND prezime
= ‘Simić’)
Primeri 3/3
6.
Dodati obeležja u tabelu radnikINSERT INTO radnik (jmbg, ime, prezime, plata) VALUES (12398453, ‘Sima’, ‘Simić’, 20000)
7.
Obrisati
torke iz tabele radnik čiji je jmbg 4321432DELETE FROM radnik WHERE jmbg= 4321432