40
Baze podataka Lidija Vujošević

Baze Podataka Vezbe

Embed Size (px)

Citation preview

Page 1: Baze Podataka Vezbe

Baze podataka

Lidija Vujošević

Page 2: Baze Podataka Vezbe

Opšte informacije

e-mail: [email protected]

kancelarija: 36

konsultacije: po dogovoru

Page 3: Baze Podataka Vezbe

Sadržaj kursa

MOV (model objekti i veze)

Relacioni model

Normalizacija

SQL (Structured Query Language)

MS Access

Page 4: Baze Podataka Vezbe

MOV (model MOV (model objektiobjekti i i vezeveze))

Page 5: Baze Podataka Vezbe

MOV -

Osnove

MOV (eng. Entity-Relationship Model)

MOV objavljen

1976 god.

Danas jedan

od

najčešće korišćenih modela podataka

Page 6: Baze Podataka Vezbe

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

Page 7: Baze Podataka Vezbe

Grafički prikaz 1/2

Osnovni

(jak) entitet

Slab entitet

Agregacija

Page 8: Baze Podataka Vezbe

Grafički prikaz 2/2

Veza

Veza

nadtipa

i podtipa

Atribut

S

Page 9: Baze Podataka Vezbe

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.

Page 10: Baze Podataka Vezbe

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

Page 11: Baze Podataka Vezbe

Tipovi

veza 3/5

Rekurzivna veza

Primer

1:zaposlen je

šef

Primer

2:osoba bračna

veza

Page 12: Baze Podataka Vezbe

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

Page 13: Baze Podataka Vezbe

Tipovi

veza 5/5

Binarna veza

Primer

1:nastavnik predaje

Primer

2:

predmet

osoba zaposlena preduzeće

Page 14: Baze Podataka Vezbe

Osnovni (jak) entitet

ima osobinu koja ga može jednoznačno identifikovati (ne zavisi od drugih entiteta).

Npr. radnik, država, preduzeće...

Page 15: Baze Podataka Vezbe

Slab

entitet

je onaj čija egzistencija i identifikacija zavise od drugog ili drugih entiteta.

Npr. republika, proizvođač...

država republika

Page 16: Baze Podataka Vezbe

Agregacija 1/3

1.

je kada tip veze ima atribut

predmetstudent diplomski

datum_dipl

Page 17: Baze Podataka Vezbe

Agregacija 2/3

2. ili kada je u vezi sa nekim entitetom

predmetstudent diplomski

nastavnik

ocenjuje

Page 18: Baze Podataka Vezbe

Agregacija 3/3

predmetstudent diplomski

nastavnik

ocenjuje

datum_dipl

Page 19: Baze Podataka Vezbe

Generalizacija

i specijalizacija

Generalizacija: preslikavanjePODTIP NADTIP

Specijalizacija: preslikavanje NADTIP PODTIP

Page 20: Baze Podataka Vezbe

Primer

prodavacprofesor

radnik

službenik

S

vrsta_posla jmbg ime

Page 21: Baze Podataka Vezbe

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

Page 22: Baze Podataka Vezbe

Ograničenja 2/3

2.

Tipovi veze ne smeju biti direktno spojeni.

V1 V2NE

Page 23: Baze Podataka Vezbe

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

Page 24: Baze Podataka Vezbe

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

Page 25: Baze Podataka Vezbe

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đ

Page 26: Baze Podataka Vezbe

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

Page 27: Baze Podataka Vezbe

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

Page 28: Baze Podataka Vezbe

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.

Page 29: Baze Podataka Vezbe

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.

Page 30: Baze Podataka Vezbe

Postupak

prevođenja 1/3

OBJEKAT

naziv objekta –

naziv

ŠR (šema relacije)identifikator objekta –

PK ŠR

obeležja objekta –

obeležja ŠR

Page 31: Baze Podataka Vezbe

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.

Page 32: Baze Podataka Vezbe

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.

Page 33: Baze Podataka Vezbe

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.

Page 34: Baze Podataka Vezbe

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.

Page 35: Baze Podataka Vezbe

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.

Page 36: Baze Podataka Vezbe

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...

Page 37: Baze Podataka Vezbe

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.

Page 38: Baze Podataka Vezbe

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’

Page 39: Baze Podataka Vezbe

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ć’)

Page 40: Baze Podataka Vezbe

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