03 baze podataka - er dijagrami3 relacioni model brind ime 75/01 marko 22/02 petar 156/03 milan...

67
1 Baze podataka Relacioni model

Upload: others

Post on 14-Jan-2020

11 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

1

Baze podataka

Relacioni model

Page 2: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

2

Relacioni model

� Osnovne karakteristike:� Sve se predstavlja relacijama (tabelama)� Zasniva se na strogoj matematičkoj teoriji� Minimalna redudansa podataka� Jednostavno ažuriranje podataka� Izbegnute su anomalije ažuriranja� Redosled kolona i redova ne utiče na informacioni sadržaj tabele

� Ne mogu da egzistiraju dva identična reda (rekorda) u jednoj tabeli

� Svaki red se može jednoznačno odrediti (postoji primarni ključ)

Page 3: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

3

Relacioni model

BrInd Ime

75/01 Marko

22/02 Petar

156/03 Milan

112/02 Dragan

Student

SifK Naziv

001 Računovodstvo

002 Baze podataka

003 Osnove finansija

004 Poslovna informatika

Knjiga

005 Marketing

Tabela, sa svojim atributima, je osnovni objekat relacione baze podataka

Page 4: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

4

Relacioni model

� Suština relacionog modela je da se i klase objekata i klase veza izmeñu objekata predstavljaju na jedinstven način, tj. preko tabela.

� Nije od značaja gde i kako su smeštene tabele

� RBP se sastoji iz više tabela. Tabele su povezane ključevima

� Informacija iz RBP se dobija postavljanjem upita

Page 5: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

5

Relacioni model

STUDENT (BrInd , Ime) KNJIGA (SifK , Naziv)

DRŽI (BrInd, SifK , Datum)

Strani ključ relacije Drži koji pokazuje na primarni ključrelacije Student

Strani ključ relacije Drži koji pokazuje na primarni ključrelacije Knjiga

Page 6: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

6

Relacioni model

� Svaka tabela mora da ima:� Ime ili naziv tabele,� Spisak atributa i� Vrednosti atributa (podaci upisani u

polja)

-------------------------------

Kumodraška 145

GDFPIIvanovićIvanaIII-5/04

Danijelova 22

GDFPIJovanovićJovan224/02

Požeška 2PPFPIMarkovićMarko123/03

AdresaSmerFakultetPrezimeImeBrInd

STUDENT

Page 7: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

7

Relacioni model

..................... Slog ili zapis ili n-torka ......................

Podatak u polju

Atribut 5Atribut 4Atribut 3Atribut 2Atribut 1

Naziv tabele

slogovi

kolone

Page 8: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

8

Relacioni model podataka

� Relacioni model podataka predstavljateorijsku osnovu za baze podataka relacionog tipa

� Razmatraju se sledeće komponente relacionog modela podataka:� Strukturna komponenta – predstava podataka

� Integritetska komponenta – zaštita podataka

� Manipulativna komponenta – manipulisanje podacima

Page 9: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

9

Atributi

� Imenovana vrsta svojstva (osobina entiteta)� Prost atribut (simple) - ne može se rastavljati na

delove bez gubitka svakog značenja – atomska vrednost.

� Složen atribut (composite) se sastoji od više prostih atributa. Može se rastaviti na jednostavnije.

Adresa

GradPoštanskibroj

BrojUlica

Page 10: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

10

Atributi

� Pri projektovanju IS, treba pažljivo birati atribute, u skladu sa potrebama

� Primer:STUDENT (BrInd, Ime, Prezime, DatRodjenja,

Adresa, Telefon,...)� DatumRodjenja – sa namerom posedovanja podatka

o starosti svakog službenika – dobar izbor atributa (informacija se može izračunati)

� GodineStarosti – loš izbor atributa – zahtevalo bi se svakodnevno ažuriranje BP

Page 11: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

11

Atributi

� Skup svih mogućih vrednosti nekog atributa Ai naziva se domenom tog atributa i označava se sa Di ili Dom(Ai)

� Domen - tip podataka u programiranju� Jedan domen za više atributa. Obrnuto ne.� Primeri:

� Atribut: Visina (cm)D1: skup celih pozitivnih brojeva

� Atribut: NazivKnjigeD2: skup svih različitih naslova knjiga

� Atribut: BojaD3: {“žut”,”crven”,”zelen”,”plav”}

Page 12: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

12

Šema relacije

� Šema relacije R je konačan skup atributa {Ai} i konačan skup {O} ograničenja nad vrednostima tih atributa.

� Ograničenja: atributi ne mogu uzimati bilo koje vrednosti

� Podrazumeva se da kada su zadati atributi, zadati su i njihovi domeni

� Bitne osobine šeme relacije:� Nazivi atributa moraju biti različiti - unikatnost � Redosled atributa nije bitan � Šema relacije mora da sadrži bar jedan atribut

Page 13: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

13

Šema relacije

� Šema relacije se zapisuje:R(A1, A2, ... AN),Ai - atributiN – broj atributa

� Primer: Šema relacije koja predstavlja jednu klasu (klasa studenata):STUDENT (BrInd,Ime)

� Šemom relacije se predstavljaju svojstva klase objekata ili veza nekog sistema

� Šema relacije može da se tumači i kao definicija strukture neke datoteke.

Page 14: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

14

Relacija

� Relaciji u praksi odgovara jedna datoteka� Svakoj n-torki odgovara jedan slog te datoteke� Slogovi u datoteci su zapisani u odreñenom

redosledu, najčešće po redosledu unošenja� Primer: STUDENT (BrInd,Ime)

student ( BrInd Ime )123/02 J.Jankovic11/03 P.Petrovic151/02 J.JovanovicIII-15/04 M.Markovic

relacija

šema relacije

Page 15: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

15

Terminologija

Skup dozvoljenih vrednosti za podatke u kolonama

Domen

Broj kolona u tabeliStepen relacije

Broj redova u tabeliKardinalnost relacije

Red podataka u tabeliInstanca (n-torka)

Naziv kolone u tabeliAtribut

Pojedinačna tabelaRelacija

Skup tabelaRelaciona BP

Terminologija - tabeleTerminologija - RBP

Page 16: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

16

NULL vrednost

� Vrednost NULL – univerzalnog tipa, primenjiva za atribute bilo kakvih domena

� U praksi postoje situacije kada u relacije unosimo n-torke za koje su vrednosti nekih atributa nepoznate u tom trenutku. Postoje dva sličaja:1. Vrednost postoji, ali nije poznata u trenutku unosa n-torke. Npr. kod upisa studenata unosimo sve podatke izuzev podataka o telefonu, koji se može i naknadno uneti.STUDENT (BrInd,Ime,Prezime,Telefon)� Posledica trenutnog nepoznavanja vrednosti nekog atributa, i naknadno se može uneti

Page 17: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

17

NULL vrednost

2. Ta vrednost je nedefinisana, nema smisla. Npr. Ako je zadata šema relacije:STUDENT (BrInd,Ime,Prezime,Telefon,Smer) Ne može se uneti smer za studente 1. i 2. godine, jer se naknadno opredeljuju za nega.� Navedeni problem je posledica odabrane

strukture šeme relacije

Page 18: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

18

NULL vrednost

� Pri projektovanju IS pažljivo birati šeme relacija – da bi se izbegao unos prevelikog broja vrednosti NULL (racionalnost)

� Primer: Šema relacije Službenik i uvoñenje atributa madaljaSlužbenik (JMBG,Ime,...,Medalja,...)

� Za većinu službenika na tom mestu bi ostalo prazno mesto sa vrednošću NULL

• Rešenje problema: kreiranje nove šeme relacije Odlikovanja (JMBG,Medalja)

• Nova relacija bi bila potpuno popunjena, a preko atributa JMBG bila bi “povezana” sa šemom relacije Službenik

Page 19: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

19

Šema RBP

� Osnovni pojmovi relacionog modela podataka: atribut, domen, šema relacije i relacija.

� Šema relacione BP – prvi izvedeni pojam relacionog modela podataka.

� Šema relacione BP je konačan skup šema relacija {Ri} i konačan skup U ograničenja koja važe izmeñu njih.

� Skup ograničenja U uključuje samo ograničenja koja važe izmeñu pojedinih šema relacija. Ograničenja Oi su uključena kroz relacije (ograničenja nad atributima)

Page 20: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

20

Šema RBP

� Šema relacije predstavlja definiciju relacije. Po analogiji, šema relacione BP predstavlja definiciju relacione BP.

� Primer: sistem Biblioteka ima sledeću strukturnu komponentu šeme relacione BP (svakoj klasi odgovara jedna šema relacije):

Objekti:

Student(BrInd,Ime)Student(BrInd,Ime)

Knjiga(SifK)Knjiga(SifK)

Naslov(SifN,Naziv)Naslov(SifN,Naziv)

Autor(SifA,Ime)Autor(SifA,Ime)

Veze:

Drzi(SifK,BrInd,Datum)Drzi(SifK,BrInd,Datum)

Sadrzi(SifK,SifN)Sadrzi(SifK,SifN)

Je_autor(SifA,SifN,Koji)Je_autor(SifA,SifN,Koji)

Page 21: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

21

Relaciona BP

� Relaciona BP je drugi izvedeni pojam u okviru relacionog modela podataka.

� Definicija: Relaciona baza podataka BP je konačan skup relacija {ri} nad šemom relacione BP {Ri}

� Nad šemom relacione baze podataka Biblioteka imamo sledeću relacionu bazu podataka biblioteka (svojim sadržajem predstavlja stanje sistema biblioteka u jednom trenutku)

Page 22: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

22

Primer: RBP biblioteka- objekti -

Student (BrInd, Ime )

75/00 M.Marković

122/03 D.Ivanović

5/01 P.Jovanović

175/01 R.Savić

Autor (SifA, Ime )

AP0 A.Popovic

IT0 I.Todorovic

AP1 A.Petrovic

JN0 J.Nikolic

DM0 D.Markovic

ZP0 Z.Petrovic

Page 23: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

23

Primer: RBP biblioteka- objekti -

Knjiga (SifK)

001

002

003

004

005

006

007

008

009

Naslov (SifN, Naziv )RBP0 Relacione baze podataka

FT00 Finansijska tržišta

PI00 Poslovna informatika

OS00 Osnove finansija

Page 24: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

24

Primer: RBP biblioteka- veze -

Drži (SifK, BrInd, Datum )001 JJ0 10.11.03

002 PP0 01.06.04

004 JJ0 15.03.05

001 RBP0

002 RBP0

003 FT00

004 PI00

005 PI00

006 PI00

007 OS0

008 OS0

009 OS0

Sadrži (SifK, SifN )

Je_autor (SifA, SifN, Koji )AP0 RBP0 1

JN0 RBP0 2

DM0 FT00 1

ZP0 PI00 1

DM0 PI00 2

AP1 OS00 1

IT0 OS00 2

ZP0 OS00 3

Page 25: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

25

Relaciona BP

� Relaciona BP je konačan skup relacija� Svaka relacija ima svoju šemu� Svaka relacija ima svoje instance (n-torke) tj. telo

� Nazivi relacija moraju biti različiti� U jednoj relaciji imena atributa moraju biti

različita

Page 26: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

26

Integritetskakomponenta

� Služi za predstavljanje ograničenja koja važe nad podacima, odnosno nad vrednostima pojedinih atributa.

� Ta ograničenja se po prirodi mogu podeliti u tri grupe:

� Identifikacioni (egzistencijalni) integritet� Funkcionalne zavisnosti� Referencijalni integritet

Page 27: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

27

Integritetskakomponenta

1. Ograničenja koja proizilaze iz zahteva unikatnosti n-torki u relacijama. Nazivaju se identifikacionim ili egzistencijalnim integritetom.• U jednoj relaciji ne mogu da postoje dve iste n-torke

Page 28: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

28

Integritetskakomponenta

2. Ograničenja koja se eksplicitno zadaju preko skupova ograničenja Oi u okviru šema relacija Ri. • Takva ograničenja su posledica ograničenja koja

važe nad svojstvima u realnom sistemu • Teorija funkcionalnih zavisnosti i normalne

forme

Page 29: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

29

Integritetskakomponenta

3. Ograničenja koja uključuju atribute koji se nalaze u različitim relacijama i koja se zadaju preko skupa ograničenja U u okviru šeme relacione BP. • Takva ograničenja se nazivaju referencijalnim

integritetom

Page 30: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

30

Primarni ključ- primeri -

� Student(BrInd,Ime) � Drzi(SifK,BrInd,Datum)� Knjiga(SifK,SifN) � Autor(SifA,Ime)� Naslov(SifN, Naziv) � Je_autor(SifA,SifN,Koji)

Page 31: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

31

Strani (spoljni) ključ

� Dosadašnji ključevi su definisani unutar jedne Relacije. Za strani ključneophodne su dve Relacije

� Primer:�NASLOV(SIFN,NAZIV,SIFO)

OBLAST(SIFO,NAZIV) strani ključ

Page 32: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

32

Ključevi- primeri -

� Student (BrInd,Ime)� Knjiga(SifK,SifN)� Naslov(SifN,Naziv,SifO)� Oblast(SifO,Naziv)� Autor(SifA,Ime)� Pozajmica(SifP,BrInd,Dana)� Rezervacija(SifN,BrInd,Datum)� Drzi(SifK,BrInd,Datum)� Je_autor(SifA,SifN,Koji)

� Jedna šema relacije može da sadrži više stranih ključeva� Strani ključ može biti u sastavu primarnog ključa� Strani ključ može istovremeno biti i primarni ključ u celini

Page 33: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

33

Ključevi- primeri -

Primer 1:� Radnik(SifR,Ime,Adresa,SifNad)� Pretpostavka: svaki radnik ima samo jednog nadreñenog

� Sve se dešava unutar jedne šeme relacije koja sadrži oba učesnika u vezi “strani ključ –primarni ključ”

Primer 2:Osoba(JMBG, Ime, Adresa,...)Brak(JMBG1, JMBG2, Datum_venčanja)

Page 34: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

34

Identifikacioni integritet

� Identifikacioni integritet proizilazi iz osobina unikatnosti n-torki u relaciji i svodi se na formulaciju odgovarajućeg uslova

� Uslov identifikacionog integriteta: Ni jedan atribut šeme relacije R koji je u sastavu primarnog ključa nikada ne sme imati NULL vrednost u relaciji r.

� Ukoliko ovo ne bi bilo ispunjeno, može nastupiti situacija da dve ili više n-torki u relaciji postanu identične

Page 35: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

35

Identifikacioni integritet

� Primer:Je_autor (SifA SifN Koji)

....................................AP0 RBP0 1AP0 PI00 1

� Ako bi se dozvolilo da npr. SifN uzme vrednost NULLJe_autor (SifA SifN Koji)

....................................AP0 NULL 1AP0 NULL 1

� Dobile bi se dve identične n-torke što je nedozvoljeno u relacionom modelu.

Page 36: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

36

Referencijalni integritet

� Suština referencijalnog integriteta je u ograničavanju vrednosti stranog ključa.

� Uslov referencijalnog integriteta: Svaki podskup atributa šeme relacije R koji predstavlja strani ključ može u relaciji r imati:� ili vrednost primarnog ključa u ciljnoj relaciji

� ili vrednost NULL.

Page 37: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

37

Referencijalni integritet

� Sa stanovišta izmena (ažuriranja) u relaciji koja sadrži strani ključ to podrazumeva da važe sledeća ograničenja:� Ne može se uneti n-torka sa vrednošću stranog ključa koja nije jednaka nekoj vrednosti primarnog ključa u ciljnoj relaciji ili NULL vrednosti

� Ne može se izmeniti n-torka tako da vrednost stranog ključa ne bude jednaka nekoj vrednosti primarnog ključa u ciljnoj relaciji ili NULL vrednosti

Page 38: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

38

Referencijalni integritet

� Sa stanovišta izmena (ažuriranja) u ciljnoj relaciji:� Dodavanje nove n-torke (u ciljnoj relaciji) ne narušava ref. int. - nastaje samo nova vrednost primarnog ključa

� Uklanjanjem n-torke (a izmena ponekad) dovodi do nestanka jedne vrednosti primarnog ključa. Ako bi se ta operacija izvršavala bezuslovno to bi narušilo referencijalni integritet

Page 39: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

39

Referencijalni integritet

� Poželjno je naglasiti da li ref. integritet u pojedinim slučajevima uključuje NULL

� Za specifikaciju referencijalnih integriteta usvojena je posebna notacija� Za skup vrednosti koje u r nad R uzima neki podskup atributa X

� Zapisuje se kao R[X] i čita kao “projekcija relacije r po podskupu atributa X”

Page 40: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

40

Referencijalni integritet

� Specifikacija referencijalnih integriteta za šemu relacione BP Biblioteka� Knjiga[SifN] ⊆ Naslov[SifN]� Naslov[SifO] ⊆ Oblast[SifO]∪NULL� Pozajmica[BrInd] ⊆ Student[BrInd]� Pozajmica[SifK] ⊆ Knjiga[SifK]� Rrezervacija[SifN] ⊆ Naslov[SifN]� Rezervacija[BrInd] ⊆ Student[BrInd]� Drzi[SifK] ⊆ Knjiga[SifK]� Drzi[BrInd] ⊆ Student[BrInd]� Je_autor[SifA] ⊆ Autor[SifA]� Je_autor[SifN] ⊆ Naslov[SifN]

Page 41: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

41

Referencijalni integritet

� Primer: Za šemu relacije Radnik:Radnik(SifR,Ime,Adresa,SifNad)� Postojala bi sledeća specifikacija:Radnik[SifNad] ⊆ Radnik[SifR]

Page 42: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

42

Prevoñenje ER modela u relacioni

Treći čas

Page 43: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

43

PREVOðENJE ER MODELA U RELACIONI� Pravilo 1. Svaki entitet (objekat, klasa entiteta) ER modela postaje relaciona šema sa istim imenom.

� Pravilo 2. Svaki atribut entiteta postaje atribut relacione šeme pod istim imenom.

� Pravilo 3. Ključni atribut(i) (primarni ključ) odnosno identifikator entiteta postaje primarni ključ relacione šeme.

Page 44: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

44

Prevoñenje regularnog tipa poveznika

Predmet

NazivŠifra

Upravljanje kvalitetom104

Menadžment103

Proizvodni sistemi102

Informacioni sistemi101

NazivŠifra

Predmet

U relacionom modelu:Predmet {{sifra,naziv},{sifra}}

Page 45: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

45

Primeri

� Strukture sa kardinalitetima grupe M:N

Radnik ProjekatRadi(0,M) (0,N)

U relacionom modelu:

S= { Radnik{{mbr,ime,prz},{mbr}},Projekat{{ozp, nazp}{ozp}}Radi{{mbr, ozp, brc}{mbr+ozp}}}

I= {Radi[mbr] Radnik[mbr]Radi[ozp] Projekat[ozp]}

G={mbr→ ime+prz, ozp → nap, mbr+ozp → brc}

⊆⊆⊆

⊆⊆

Page 46: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

46

Primeri

� Strukture sa kardinalitetima grupe M:N

Radnik ProjekatRadi(0,M) (1,N)

U relacionom modelu:S= { Radnik{{mbr,ime,prz},{mbr}},

Projekat{{ozp, nazp}{ozp}}Radi{{mbr, ozp, brc}{mbr+ozp}}}

I= {Radi[mbr] Radnik[mbr]Radi[ozp] Projekat[ozp]Projekat[ozp] Radi[ozp]}

G={mbr→ ime+prz, ozp → nap, mbr+ozp → brc}

⊆⊆

Page 47: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

47

Primeri

� Strukture sa kardinalitetima grupe M:N

Radnik ProjekatRadi(1,M) (1,N)

U relacionom modelu:S= { Radnik{{mbr,ime,prz},{mbr}},

Projekat{{ozp, nazp}{ozp}}Radi{{mbr, ozp, brc}{mbr+ozp}}}

I= {Radi[mbr] Radnik[mbr],Radi[ozp] Projekat[ozp],Projekat[ozp] Radi[ozp],Radnik[mbr] Radi[mbr] }

G={mbr→ ime+prz, ozp → nap, mbr+ozp → brc}

⊆⊆

⊆⊆

Page 48: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

48

Primeri

� Strukture sa kardinalitetima grupe N:1

Radnik Radno mestoRasporeñen(0,1) (0,N)

U relacionom modelu:S= { Radnik{{mbr,ime,prz,orm},{mbr}},

Radno_mesto{{orm, nrm}{orm}}}

I= {Radnik[orm] Radno_mesto[orm]}

G= {mbr→ ime+prz+orm, orm→ nrm}

Page 49: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

49

Primeri

� Strukture sa kardinalitetima grupe N:1

Radnik Radno mestoRasporeñen(1,1) (0,N)

U relacionom modelu:

S= { Radnik{{mbr,ime,prz,orm},{mbr}},Radno_mesto{{orm, nrm}{orm}}}

I= {Radnik[orm] Radno_mesto[orm],Null(Radnik,orm)= }

G={mbr→ ime+prz+orm, orm → nrm}

⊆⊥

Page 50: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

50

Primeri

� Strukture sa kardinalitetima grupe N:1

Radnik Radno mestoRasporeñen(0,1) (1,N)

U relacionom modelu:

S= { Radnik{{mbr,ime,prz,orm},{mbr}},Radno_mesto{{orm, nrm}{orm}}}

I= {Radnik[orm] Radno_mesto[orm]Radno_mesto[orm] Radnik [orm]}

G={mbr → ime+prz+orm, orm→ nrm}

⊆⊆

Page 51: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

51

Primeri

� Strukture sa kardinalitetima grupe N:1

Radnik Radno mestoRasporeñen(1,1) (1,N)

U relacionom modelu:S= { Radnik{{mbr,ime,prz,orm},{mbr}},

Radno_mesto{{orm, nrm}{orm}}}

I= {Radnik[orm] Radno_mesto[orm],Null(Radnik,orm)= ,Radno_mesto[orm] Radnik [orm]}

G={mbr→ ime+prz+orm, orm → nrm}

⊆⊥⊆

Page 52: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

52

Primeri

� Strukture sa kardinalitetima grupe 1:1

Radnik Polisaosiguran(0,1) (0,1)

U relacionom modelu:

S= { Radnik{{mbr,ime,prz,brp},{mbr}},Polisa{{brp, dat, izn}{brp}}}

I= {Radnik[brp] Polisa[brp]}

G={mbr→ ime+prz+brp, brp→ dat+izn}

Page 53: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

53

Primeri

� Strukture sa kardinalitetima grupe 1:1

Radnik Polisaosiguran(1,1) (0,1)

U relacionom modelu:

S= { Radnik{{mbr,ime,prz,brp},{mbr}},Polisa{{brp, dat, izn}{brp}}}

I= {Radnik[brp] Polisa[brp],Null(Radnik,brp)= }

G={mbr→ ime+prz+brp, brp→ dat+izn}

⊆⊥

Page 54: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

54

Primeri

� Strukture sa kardinalitetima grupe 1:1

Radnik Polisaosiguran(1,1) (1,1)

U relacionom modelu:

S= { Radnik{{mbr, ime, prz, brp, dat, izn},{mbr, brp},{mbr}}}

G={mbr→ ime+prz+brp+dat+izn, brp → mbr}

Page 55: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

55

Primeri

� Rekurzivne veze

Radnik rukovodi(0,1)

(0,N)Nadreñeni

podreñeni

U relacionom modelu:

S= {Radnik{{mbr,ime,prz,sef},{mbr}}}

I= {Radnik[sef] Radnik[mbr]}

G= {mbr→ ime+prz+sef}

Page 56: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

56

Primeri

� Rekurzivne veze

Proizvod Sastavnica(0,M)

(0,N)Je deo

Sastoji se od

U relacionom modelu:

S= {Proizvod{{ozp, nap, jem},{ozp}}}Sastavnica{{ozp, ozd, kol}{ozp+ozd}}

I= {Sastavnica[ozp] Proizvod[ozp]Sastavnica[ozd] Proizvod[ozp}

G= {ozp→ nap+jem, ozp+ozd → kol}

⊆⊆

Page 57: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

57

Specijalni slučajevi

� Slučaj više tipova poveznika izmeñu dva ista tipa� Sva ranija pravila važe pritom se mora izvršiti preimenovanje primarnog ključa jednog od povezanih tipova

� Prevoñenje tipa poveznika reda većeg od dva� Primenjuje se uopštenje pravila

� Prevoñenje slabog tipa poveznika� Vrši se prostiranje ključa

Page 58: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

58

Primeri

� Tip poveznika reda većeg od dva

Student NastavnikIzvodjenje_nastave

(0,N) (0,1)

Predmet

(0,N)

Page 59: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

59

Primeri

� Slabi tip entiteta� Tip entiteta dete je identifikaciono zavistan

Radnik DeteR_DN 1

ID

U relacionom modelu:

S= {Radnik{{sifr, ime, prz},{sif}}Dete{{sifr,rbr,ime},{sifr+rbr}}

I= {Dete[sifr] Radnik[sifr]}⊆

Page 60: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

60

Primeri� Kardinaliteti IS_A hijerarhije

Stanovnik

Student Radnik

IS_A

(1,M)

Prvi način:

S={Stanovnik{{jbs,ime,prz,zan},{jbs}}Student{{jbs, bri, bpi},{jbs,bri},{jbs}}Radnik{{jbs,mbr,spr},{jbs,mbr},{jbs}}}

I = {Student[jbs] Stanovnik[jbs],Radnik[jbs] Stanovnik[jbs],

Stanovnik[jbs] student[jbs] U radnik[jbs]}

⊆⊆

Page 61: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

61

Primeri

� Kardinaliteti IS_A hijerarhije

Stanovnik

Student Radnik

IS_A

(1,M)

Drugi način:(samo kada je klasifikacija totalna)

S={Student{{jbs,ime,prz,zan,bri,bpi},{jbs,bri},{bri}}

Radnik{{jbs,ime,prz,zan,mbr,spr},{jbs,mbr},{mbr}}}

I = {Student[jbs] Stanovnik[jbs],Radnik[jbs] Stanovnik[jbs],

Stanovnik[jbs] student[jbs] U radnik[jbs]}

⊆⊆

Page 62: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

62

Primeri

� Kardinaliteti IS_A hijerarhijeStanovnik

Student Radnik

IS_A

(1,M)

Treći način:

S={stanovnik{{jbs,ime,prz,zan,bri,bpi,mbr,spr}, {jbs}}

Page 63: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

63

Redosled radnji pri prevoñenju u relacioni model

� Svaki entitet ER modela prevesti u relacionu šemu sa istim imenom.

� Svaki atribut entiteta prevesti u atribut relacione šeme pod istim imenom.

� Ključni atribut(i) (primarni ključ) odnosno identifikator entiteta prevesti u primarni ključrelacione šeme

Page 64: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

64

Prevoñenje tipova poveznika grupe N:M

� Tipovi poveznika čiji kardinaliteti pripadaju grupi M:N se u relacionom modelu predstavljaju samo putem posebne šeme relacije

� Ako je bilo koji (ili oba) donji kardinalitet a=1 dodaje se odgovarajući inverzni referencijalni integritet

Page 65: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

65

� Tipovi poveznika čiji kardinaliteti pripadaju grupi 1:N mogu se, u relacionom modelu predstaviti bilo butem posebne šeme relacije bilo putem prostiranja ključa. Prostitanje ključa daje bolje rešenje.

� Prostiranjem ključa se primarni ključ tipa entiteta na N strani poveznika, uključuje u skup obeležja šeme relacije, koja predstavlja tip entiteta na 1 strani.

� Dodaje se referencijalni integritet za strani ključ� U slučaju da imamo sa jedne strane kardinalitete (1,1), dodaje se zabrana null vrednosti

� U slučaju da imamo (1,N) sa druge strane, dodaje se inverzni referencijalni integritet

Prevoñenje tipova poveznika grupe 1:M

Page 66: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

66

Prevoñenje tipova poveznika grupe 1:1

� Tipovi poveznika čiji kardinaliteti pripadaju grupi 1:1 mogu se, u relacionom modelu predstaviti bilo butem posebne šeme relacije bilo putem prostiranja ključa. Prostitanje ključa predstavlja bolje rešenje.

� Minimalni kardinaliteti unose sledeće specifičnosti:� Ako je bar jedan od minimalnih kardinaliteta 0, propagirani

ključ se mora deklarisati da poseduje jedinstvene vrednosti (ekvivalenti ključevi umesto unije ključeva)

� Ako su oba donja kardinaliteta 0, vrši se bilo prostiranje ključa iz jedne šeme relacije u drugu ili obrnuto (potreban je jedan referencijalni integritet)

� Ako su donji kardinaliteti a=1 i b=0, tada se vrši protiranje ključa u šemu relacije gde je donji kardinalitet 1 (dodaje se jedno ograničenje null vrednosti)

� Ako su oba donja kardinaliteta 1 tada dva entiteta treba predstaviti jednom šemom relacije

Page 67: 03 Baze podataka - ER dijagrami3 Relacioni model BrInd Ime 75/01 Marko 22/02 Petar 156/03 Milan 112/02 Dragan Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka 003 Osnove finansija

67

Prevoñenje specijalnih slučajeva

� Prevoñenje rekurzivnog tipa poveznika � Važe ista pravila kao i za prevoñenje regularnih

tipova poveznika samo se mora izvršiti preimenovanje ključa koji migrira

� Prevoñenje gerunda� Prevodi se u posebnu šemu relacije. Primenjuju se

pravila prevoñenja regularnih poveznika M:N, a gerund se posmatra kao tip entiteta pri prevoñenju poveznika koji spaja taj gerund sa drugim elementima