1
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č) 2
Student Knjiga BrInd Ime SifK Naziv 75/01 Marko 001 Računovodstvo 22/02 Petar 002 Baze podataka 156/03 Milan 003 Osnove finansija 112/02 Dragan 004 Poslovna informatika 005 Marketing Tabela, sa svojim atributima, je osnovni objekat relacione baze podataka 3
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 4
STUDENT Svaka tabela mora da ima: Ime ili naziv tabele, Spisak atributa i Vrednosti atributa (podaci upisani u polja) 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šk a 145 ----- ----- ----- ----- ------ ----- 5
Naziv tabele kolone oo Atribut 1 Atribut 2 Atribut 3 Atribut 4 Atribut 5 slogovi Podatak u polju... Slog ili zapis ili n-torka... 6
Relacioni model podataka predstavlja teorijsku osnovu za baze podataka relacionog tipa Razmatraju se sledeće komponente relacionog modela podataka: Strukturna komponenta predstava podataka Integritetna t komponenta zaštita podataka Manipulativna komponenta manipulisanje podacima 7
Imenovana vrsta svojstva (osobina entiteta) Prost atribut (simple) p - 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 Ulica Broj Poštanski broj Grad 8
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 studenta dobar izbor atributa (informacija se može izračunati) GodineStarosti loš izbor atributa zahtevalo bi se svakodnevno ažuriranje BP 9
Skup svih mogućih vrednosti nekog atributa A i naziva se domenom tog atributa i označava se sa D i ili Dom(A i ) Domen - tip podataka u programiranju Jedan domen za više atributa. Obrnuto ne. Primeri: Atribut: Visina (cm) D 1 : skup celih pozitivnih brojeva Atribut: NazivKnjige D 2 : skup svih različitih naslova knjiga Atribut: Boja D 3 : { žut, crven, zelen, plav } 10
Šema relacije R je konačan skup atributa {A i } 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 11
Šema relacije se zapisuje: R(D,K) R - ime relacije D - skup obelezja D={A 1, A 2, A 3,...} } A i -atribut K - skup ograničenja relacije Š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. 12
Primer: Šema relacije koja predstavlja jednu klasu (klasa studenata): STUDENT ({BrInd,Ime,Prezime,BrPolIspita}, {β 1, β 2 }) β 1 - Svaki student ima br indeksa i ne postoje 2 studenta sa istim brojem indeksa β 2 - Broj položenih ispita je između 1 i 30 13
Relaciji u praksi odgovara jedna datoteka Svakoj n-torki odgovara jedan slog te datoteke Slogovi u datoteci t su zapisani i u određenom đ redosledu, najčešće po redosledu unošenja Primer: STUDENT (BrInd,Ime) šema relacije student ( BrInd Ime ) 123/02 J.JankovicJankovic 11/03 P.Petrovic 151/02 J.Jovanovic relacija III-15/04 M.Markovic 14
Terminologija - RBP Relaciona BP Relacija Atribut Instanca (n-torka) Kardinalnost relacije Stepen relacije Domen Terminologija - tabele Skup tabela Pojedinačna tabela Naziv kolone u tabeli Red podataka u tabeli Broj redova u tabeli Broj kolona u tabeli Skup dozvoljenih vrednosti za podatke u kolonama 15
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 t nepoznavanja vrednosti nekog atributa, i naknadno se može uneti 16
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 17
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 medalja Služ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 18
Ključ K relacije je podskup skupa obeležja (atributa) te relacije koji ima sledeća svojstva: 1. Vrednosti atributa iz K jednoznačno određuju pojavu šeme relacije(ne mogu postojati dve n-torke date relacije sa istim vrednostima atributa iz K) - jedinstvenost ključa 2. Ako izbacimo ib i iz K bilo koji atribut, tib t tada se narušava svojstvo 1 - minimalnost ključa 19
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: Student({BrInd,Ime,Prez,BrPIsp,JMBG}, {BrInd,JMBG}) primarni ključ ekvivalentni ključevi 20
Student(BrInd,Ime) Drzi(SifK,BrInd,Datum) Knjiga(SifK,SifN) Autor(SifA,Ime) Naslov(SifN, Naziv) Je_autor(SifA,SifN,Koji) SifN 21
Za strani ključ neophodne su dve relacije Povezivanje dve tabele Primer: 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 jg 22
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 23
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) 24
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 {R i } 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 O i su uključena kroz relacije (ograničenja nad atributima) 25
Š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) Knjiga(SifK) Naslov(SifN,Naziv) Autor(SifA,Ime) Veze: Drzi(SifK,BrInd,Datum) Sadrzi(SifK,SifN) SifN) Je_autor(SifA,SifN,Koji) 26
Relaciona BP je drugi izvedeni pojam u okviru relacionog modela podataka. Definicija: Relaciona baza podataka BP je konačan skup relacija {r i } nad šemom relacione BP {R i } Nad šemom relacione baze podataka Biblioteka imamo sledeću relacionu bazu podataka biblioteka (svojim sadržajem predstavlja stanje sistema biblioteka u jednom trenutku) 27
Autor(SifA, Ime ) Student (BrInd, Ime ) AP0 A.Popovic 75/00 M.Marković M IT0 IT I.Todorovic 122/03 D.Ivanović AP1 A.Petrovic 5/01 P.Jovanović JN0 J.Nikolic 175/01 R.Savić DM0 D.Markovic ZP0 Z.Petrovic 28
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 29
Dži(SifK Drži (SifK, BrInd, Datum ) 001 JJ0 10.11.03 002 PP0 01.06.0406 04 Sadrži (SifK, SifN ) 001 RBP0 002 RBP0 004 JJ0 15.03.05 003 FT00 Je_ autor (SifA, SifN, Koji ) 004 PI00 AP0 RBP0 1 JN0 RBP0 2 DM0 FT00 1 ZP0 PI00 1 005 PI00 006 PI00 007 OS0 DM0 PI00 2 008 OS0 AP1 OS00 1 009 OS0 IT0 OS00 2 ZP0 OS00 3 30
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 31
Služi za predstavljanje ograničenja koja važe nad podacima, odnosno nad vrednostima pojedinih atributa Definiše ograničenja u pogledu postojanja, vrednosti i međuzavisnosti koje podaci u bazi moraju da zadovolje (skup svih ograničenja koja važe) 32
Ta ograničenja se po prirodi mogu podeliti u tri grupe: 1. Ograničenja torki (izražavaju činjenicu da vrednost atributa mora biti iz datog domena) 2. Relaciona ograničenja (čuva korektnost veza između atributa unutar relacije) 3. Međurelaciona ograničenja (ograničenja koja se odnose na strani ključ) 3 3
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 34
2. Ograničenja koja se eksplicitno zadaju preko skupova ograničenja O i u okviru šema relacija R i. Takva ograničenja su posledica ograničenja koja važe nad svojstvima u realnom sistemu Teorija funkcionalnih zavisnosti i normalne forme Takva ograničenja nazivaju se funkcionalnim integritetom 35
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 36
Identifikacioni integritet proizilazi iz osobina unikatnosti n-torki u relaciji i svodi se na formulaciju odgovarajućeg uslova Primarni ključ mora biti jedinstven i definisan 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 jpostanu identične 37
Primer: Je_autor (SifA SifN Koji)... AP0 RBP0 1 AP0 PI00 1 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. 38
f: X Y (f - naziv funkc.zavisnosti; X,Y - skupovi obeležja) X funkcionalno određuje Y ili Y funkcionalno zavisi od X To znači da se svakom elementu iz domena X može pridružiti najviše jedan element iz domena Y Poznavanjem jedne vrednosti obeležja X, može se tačno odrediti odgovarajuća vrednost obeležja Y 39
Trivijalna funkcionalna zavisnost je ona koja je uvek zadovoljena Npr. U={A,B,C} A A, ABC A, AB B (desna strana je podskup leve) Primer: 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 40
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. 41
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 j 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 42
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 43
Poželjno je naglasiti da li ref. integritet u pojedinim slučajevima uključuje NULL Za specifikaciju ij referencijalnih ih integriteta it t 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 44
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] 45
Student (BrInd,Ime) Knjiga(SifK,SifN) Naslov(SifN,Naziv,SifO) Naziv SifO) Oblast(SifO,Naziv) Autor(SifA,Ime) Pozajmica(SifP,BrInd,Dana) Rezervacija(SifN,BrInd,Datum) Drzi(SifK,BrInd,Datum) Datum) Je_autor(SifA,SifN,Koji) 46
Primer: Za šemu relacije Radnik: Radnik(SifR,Ime,Adresa,SifNad) SifN d) Postojala bi sledeća specifikacija: Radnik[SifNad] Radnik[SifR] Zavisnost sadržavanja - ograničenje između skupova obeležja pri čemu mora da važi da je domen jednog obeležja podskup drugog domene obeležja Referencijalni integritet je međurelaciona zavisnost sadržavanja kod koje skup obeležja nadskupa predstavlja primarni i ključ č šeme relacije 47