03 baze podataka13n - relacioni model1 · (rekorda) u jednoj tabeli ... student sifk naziv 001 ra...

49
1

Upload: others

Post on 19-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

�1

Page 2: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

� Osnovne karakteristike:› Sve se predstavlja relacijama (tabelama)› Zasniva se na strogoj matematičkoj teoriji› Minimalna redundansa podataka› Jednostavno ažuriranje podataka› Jednostavno ažuriranje podataka› Izbegnute su anomalije ažuriranja› Redosled kolona i redova u tabeli nije bitan› Ne mogu da egzistiraju dva identična reda

(rekorda) u jednoj tabeli› Svaki red se može jednoznačno odrediti (postoji

primarni ključ)

�2

Page 3: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

BrInd Ime

75/01 Marko

22/02 Petar

Student

SifK Naziv

001 Računovodstvo

002 Baze podataka

Knjiga

�3

156/03 Milan

112/02 Dragan

003 Osnove finansija

004 Poslovna informatika

005 Marketing

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

Page 4: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

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

� RBP – relaciona baza podataka

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

� Informacija iz RBP se dobija postavljanjem upita.

�4

Page 5: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

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

BrInd Ime Prezime Fakultet Smer Adresa

STUDENT

�5

BrInd Ime Prezime Fakultet Smer Adresa

123/03 Marko Marković FPI PP Požeška 2

224/02 Jovan Jovanović FPI GD Danijelova 22

III-5/04

Ivana Ivanović FPI GD Kumodraška 145

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

Page 6: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

Atribut 1 Atribut 2 Atribut 3 Atribut 4 Atribut 5

Naziv tabele

kolone

�6

Podatak u polju

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

slogovi

Page 7: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

� Razmatraju se sledeće komponente relacionog modela podataka:

› Strukturna komponenta – predstava › Strukturna komponenta – predstava podataka

› Integritetna komponenta – zaštita podataka› Manipulativna komponenta – manipulisanje

podacima

�7

Page 8: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

� Imenovane osobine 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 � Složen atribut (composite) se sastoji od više prostih atributa. Može se rastaviti na delove.

�8

Adresa

GradPoštanskibroj

BrojUlica

Page 9: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

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

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

Adresa, Telefon,...)Adresa, Telefon,...)

� DatumRodjenja – sa namerom posedovanja podatka o starosti svakog studenta – dobar izbor atributa (informacija se može izračunati)

� GodineStarosti – bile bi loš izbor atributa –zahtevale bi svakodnevno ažuriranje BP.

�9

Page 10: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

� Skup svih mogućih vrednosti nekog atributa Ainaziva se domen tog atributa i označava se sa Diili Dom(Ai)

� Domen - tip podataka u programiranju� Jedan domen postoji za više atributa.

Obrnuto ne važi.Obrnuto ne važi.� Primeri:

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

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

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

�10

Page 11: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

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

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

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

� Osobine šeme relacije:› Nazivi atributa moraju biti različiti – unikatnost,

› Redosled atributa nije bitan,

› Šema relacije mora da sadrži bar jedan atribut.

�11

Page 12: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

� Šema relacije predstavlja svojstva klase objekata ili veza nekog informacionog sistema.

� Šema relacije: definicija logičke strukture nekeklase.klase.

� Šema relacije se zapisuje: R(A,O)

R - naziv relacije A - skup obeležja

A={A1, A2, A3,...} Ai – atribut (obeležje)O - skup ograničenja relacije

�12

Page 13: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

� Primer:

Šema relacije za klasu STUDENT:

R(A,O) A={A1, A2, A3,...}

STUDENT ({BrInd,Ime,Prezime,BrPolIspita}, {β β })STUDENT ({BrInd,Ime,Prezime,BrPolIspita}, {β1,β2})

› β1 - svaki student ima jedan jedinstveni broj indeksa (ne postoje 2 studenta sa istim brojem indeksa)

› β2 - broj položenih ispita je između 0 i 30

�13

Page 14: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

� Relaciji u praksi odgovara tabela fizički realizovana kao jedna datoteka.

� Svakoj n-torki atributa odgovara jedan red tabele odn. jedan slog te datoteke.

� Slogovi su zapisani najčešće po redosledu unosa.

� Primer: STUDENT (BrInd,Ime)� Primer: STUDENT (BrInd,Ime)

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

�14

relacija

šema relacije

Page 15: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

Logička struktura RBP Fizička realizacija RBP

Relaciona BP Skup tabela

Relacija Tabela

Atribut Naziv kolone u tabeliAtribut Naziv kolone u tabeli

Instanca (n-torka) Red u tabeli

Kardinalnost relacije Broj redova u tabeli

Stepen relacije Broj kolona u tabeli

Domen Skup dozvoljenih vrednosti za podatke u koloni

�15

Page 16: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

� Univerzalnog tipa, primenjiva za sve atribute (svih domena).

� U praksi postoje situacije kada u relacije unosimo n-torke za koje su vrednosti nekih atributa nepoznate. atributa nepoznate.

� Postoje dva slučaja koji proizvode Null vrednost:1. Vrednost postoji, ali nije poznata u trenutku

unosa n-torke.

2. Vrednost je nedefinisana, nema smisla.

�16

Page 17: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

1. Npr. Ako je zadata šema relacije:STUDENT (BrInd,Ime,Prezime,Telefon)

• Kod upisa studenata unosimo sve podatke izuzev podataka o telefonu.

� Problem je posledica trenutnog nepoznavanja vrednosti atributa.

� Naknadno se može uneti.

2. Npr. Ako je zadata šema relacije:2. 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.

� Problem je posledica ovako odabrane strukture šeme relacije.

�17

Page 18: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

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

Primer:

Šema relacije Službenik i uvođenje atributa Medalja

Službenik (JMBG,Ime,...,Medalja,...)

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

�18

Rešenje problema:Šema relacije Službenik bez atributa Medalja

Službenik (JMBG,Ime,...)

Page 19: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

1. pretpostavka: radnik ima najviše jednu medalju� Kreiranje nove šeme relacije

Odlikovanja (JMBG,Medalja)� Nova relacija bi bila potpuno popunjena, a

preko ključa JMBG bila bi u vezi sa šemom relacije Službenik.relacije Službenik.

2. pretpostavka: radnik može da ima više medalja� Kreiranje nove šeme relacije

Odlikovanja (JMBG, RBRMed, Medalja)� Nova relacija bi bila potpuno popunjena, a

preko dela ključa JMBG bila bi u vezi sa šemom relacije Službenik.

�19

Page 20: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

� Ključ K relacije R je podskup skupa obeležja (atributa) te relacije koji ima sledeća svojstva:› Vrednosti atributa iz K jednoznačno određuju

pojavu šeme relacije

(ne mogu postojati dve n-torke date relacije sa (ne mogu postojati dve n-torke date relacije sa istim vrednostima atributa iz K)

- jedinstvenost ključa

› Ako izbacimo bilo koji atribut iz K, tada se narušava 1. svojstvo

- minimalnost ključa.

�20

Page 21: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

� Relacija može da ima više “kandidata” za ključ

� Zovemo ih ekvivalentni ključevi i uvek se jedan od njih bira za primarni ključ

Primer:Primer:› Student({BrInd,Ime,Prez,BrPIsp,JMBG}, {BrInd,JMBG})

�21

ekvivalentni ključevi

primarni ključ

Page 22: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

� Student(BrInd,Ime)

� Knjiga(SifK,SifN)

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

� Naslov(SifN, Naziv)

� Je_autor(SifA,SifN,Koji)

� Drzi(SifK,BrInd,Datum)

�22

Page 23: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

� Ključ jedne relacije u ulozi atributa druge relacije

� Za strani ključ neophodne su dve relacije

� Strani ključ povezuje dve relacije (tabele)

Primer:

�23

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

DRŽI (SifK , BrInd, , Datum)

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

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

Page 24: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

� Student (BrInd,Ime)

� Knjiga(SifK)

� Naslov(SifN,Naziv,SifO)

� Oblast(SifO,Naziv)

� Autor(SifA,Ime)

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

� 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:

› deo primarnog ključa,› primarni ključ u celini.

�24

Page 25: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

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

Primer 1:� Radnik(SifR,Ime,Adresa,SifNad)� Radnik(SifR,Ime,Adresa,SifNad)

(Pretpostavka: svaki radnik ima samo jednog nadređenog)

Primer 2:� Osoba(JMBG, Ime, Adresa,...)

Brak(JMBG1, JMBG2, Datum_venčanja)

�25

Page 26: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

� 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 � Š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 nad atributima {Oi} su uključena kroz definicije relacija (R(A,O)).

�26

Page 27: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

� Šema relacije predstavlja definiciju relacije.

Po analogiji, šema relacione BP predstavlja definiciju relacione BP.

� Primer:

Inf. sistem Biblioteka ima sledeću strukturnu komponentu šeme relacione BP komponentu šeme relacione BP

(svakoj klasi odgovara jedna šema relacije):

�27

Objekti: Student(BrInd,Ime)Student(BrInd,Ime)

Knjiga(SifK)Knjiga(SifK)

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

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

Oblast(SifO, NazivO)

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 28: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

� 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}i

� Svaka relacija ima:

› svoju šemu,

› svoje instance (n-torke).� Nazivi relacija u jednoj BP moraju biti različiti.

� Imena atributa u jednoj relaciji moraju biti različita.

�28

Page 29: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

Primer : Nad šemom relacione baze podataka Biblioteka

Student(BrInd,Ime)(BrInd,Ime) Drzi(SifK,BrInd,Datum)(SifK,BrInd,Datum)

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

Naslov(SifN,Naziv,SifO) (SifN,Naziv,SifO) Je_autor(SifA,SifN,Koji)(SifA,SifN,Koji)Naslov(SifN,Naziv,SifO) (SifN,Naziv,SifO) Je_autor(SifA,SifN,Koji)(SifA,SifN,Koji)

Autor(SifA,Ime)(SifA,Ime)

Oblast (SifO, NazivO)

postoji sledeća relaciona baza podataka Biblioteka :(ona svojim sadržajem predstavlja stanje sistema Biblioteka u jednom trenutku)

�29

Page 30: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

Student (BrInd, Ime )

75/00 M.Marković

Autor (SifA, Ime )

AP0 A.Popovic

IT0 I.Todorovic

�30

75/00 M.Marković

122/03 D.Ivanović

5/01 P.Jovanović

175/01 R.Savić

IT0 I.Todorovic

AP1 A.Petrovic

JN0 J.Nikolic

DM0 D.Markovic

ZP0 Z.Petrovic

Page 31: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

Knjiga (SifK)

001

002

003

Naslov(SifN, Naziv, SifO )RBP0 Relacione baze pod. A

FT00 Finansijska tržišta B

PI00 Poslovna informatika A

�31

003

004

005

006

007

008

009

PI00 Poslovna informatika A

OS00 Osnove finansija B

Oblast (SifO, NazivO)A RačunarstvoB Finansije

Page 32: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

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

002 PP0 01.06.04

004 JJ0 15.03.05001 RBP0

002 RBP0

003 FT00

Sadrži (SifK, SifN )

Je_autor (SifA, SifN, Koji )

�32

003 FT00

004 PI00

005 PI00

006 PI00

007 OS0

008 OS0

009 OS0

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 33: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

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

� Ograničenja koje podaci u bazi moraju da zadovolje odnose se na:

› postojanje podataka,

› dozvoljene vrednosti podataka i

› međuzavisnosti među podacima u bazi.

�33

Page 34: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

Ograničenja se po prirodi dele u tri grupe:

1. Ograničenja torki (izražavaju činjenicu da vrednost atributa mora biti iz datog domena)atributa mora biti iz datog domena)

2. Relaciona ograničenja (čuvaju korektnost veza između atributa unutar relacije)

3. Međurelaciona ograničenja (ograničenja između relacija koja se odnose na strane ključeve)

�34

Page 35: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

1. Ograničenja koja proizilaze iz zahteva unikatnosti n-torki u relacijama nazivaju se identifikacioni ili egzistencijalni integritet.

› U jednoj relaciji ne mogu da postoje dve iste n-torke.

�35

Page 36: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

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

koja važe nad svojstvima u realnom sistemu.

• Takva ograničenja nazivaju se funkcionalni integritet.

�36

Page 37: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

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 BPokviru šeme relacione BP

nazivaju se referencijalni integritet.

�37

Page 38: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

� Identifikacioni integritet proizilazi iz osobine unikatnosti n-torki u relaciji

(primarni ključ mora biti jedinstven i definisan).

� Svodi se na formulaciju odgovarajućeg uslova.

� Uslov identifikacionog integriteta: � 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.

�38

Page 39: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

� Primer:Je_autor (SifA SifN Koji)

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

� Ako bi se dozvolilo da npr. SifN uzme vrednost NULL� Ako bi se dozvolilo da npr. SifN uzme vrednost NULL

Je_autor (SifA SifN Koji)....................................AP0 NULL 1

AP0 NULL 1� Dobile bi se dve identične n-torke što je nedozvoljeno u

relacionom modelu.

�39

Page 40: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

� f: X→Y f - naziv funkcionalne zavisnosti;

X,Y - skupovi obeležja;

� ‘X funkcionalno određuje Y’ ili

‘Y funkcionalno zavisi od X’ znači:‘Y funkcionalno zavisi od X’ znači:

› svakom elementu iz domena X može se pridružiti najviše jedan element iz domena Y ili

› poznavanjem jedne vrednosti obeležja X može se tačno odrediti odgovarajuća vrednost obeležja Y.

�40

Page 41: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

� Trivijalna funkcionalna zavisnost je ona koja je uvek zadovoljena.

Primer1:› U={A,B,C} → A→A, ABC→A, AB→B

› (desna strana je podskup leve)› (desna strana je podskup leve)

Primer2:

› N-nastavnik, S-student, P-predmet

› Svaki N predaje najviše jedan P

› Ako S sluša neki P, sluša ga kod samo jednog N

› Jedan P predaje najviše jedan N

› N→P, SP→N, P→N

�41

Page 42: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

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

� Uslov referencijalnog integriteta:

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

› ili vrednost NULL.

� Ciljna relacija r1 je relacija u kojoj je atributkoji je strani ključ relacije r primarni ključ.

�42

Page 43: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

� Sa stanovišta izmena (ažuriranja)

u relaciji koja sadrži strani ključ važe sledeća ograničenja:› Ne može se uneti n-torka sa vrednošću stranog

ključa koja nije jednaka nekoj vrednosti ključa koja nije jednaka nekoj vrednosti primarnog ključa u ciljnoj relaciji ili je NULL vrednost.

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

�43

Page 44: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

� Sa stanovišta izmena (ažuriranja) u ciljnoj relaciji važe sledeća ograničenja: › Dodavanje nove n-torke (u ciljnoj relaciji)

ne narušava ref. integritet

- nastaje samo nova vrednost primarnog - nastaje samo nova vrednost primarnog ključa.

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

�44

Page 45: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

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

� Za specifikaciju referencijalnih integriteta usvojena je posebna notacija:usvojena je posebna notacija:› skup vrednosti koje u relaciji r nad šemom R

uzima neki podskup atributa X

zapisuje se kao

› R[X] i čita kao “projekcija relacije r na podskupu atributa X”.

�45

Page 46: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

� Student (BrInd,Ime)

� Knjiga (SifK)

� Naslov (SifN,Naziv,SifO)

� Oblast (SifO,Naziv)

� Autor (SifA,Ime)

� Sadrzi (SifK,SifN)

� Drzi (SifK,BrInd,Datum)

� Je_autor (SifA,SifN,Koji)�46

Page 47: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

Specifikacija referencijalnih integriteta glasi:

› Knjiga[SifN] ⊆ Naslov[SifN]

› Naslov[SifO] ⊆ Oblast[SifO] ∪∪∪∪ NULL

› Sadrzi[SifN] ⊆ Naslov[SifN]

› Drzi[SifK] ⊆ Knjiga[SifK]

› Drzi[BrInd] ⊆ Student[BrInd]

› Je_autor[SifA] ⊆ Autor[SifA]

› Je_autor[SifN] ⊆ Naslov[SifN]

�47

Page 48: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

� Primer:

Za šemu relacije Radnik:

Radnik(SifR,Ime,Adresa,SifNad)Radnik(SifR,Ime,Adresa,SifNad)

postojala bi sledeća specifikacija ograničenja:

Radnik[SifNad] ⊆ Radnik[SifR]

�48

Page 49: 03 Baze podataka13N - Relacioni model1 · (rekorda) u jednoj tabeli ... Student SifK Naziv 001 Ra čunovodstvo 002 Baze podataka Knjiga 3 156/03 Milan 112/02 Dragan 003 Osnove finansija

Jedna definicija ref. integriteta:

� Referencijalni integritet je međurelaciona zavisnost sadržavanja kod koje skup obeležja nadskupa predstavlja primarni ključ šeme relacije.relacije.

� Zavisnost sadržavanja je ograničenje između skupova obeležja pri čemu mora da važi da je domen jednog obeležja podskup domena drugog obeležja.

�49