500 likes | 738 Views
Relacioni model. Baze podataka. Relacioni model. Osnovne karakteristike: Sve se predstavlja relacijama (tabelama) Zasniva se na strogoj matematičkoj teoriji Minimalna redu n dansa podataka Jednostavno ažuriranje podataka Izbegnute su anomalije ažuriranja
E N D
Relacioni model Baze podataka
Relacioni model • Osnovne karakteristike: • Sve se predstavlja relacijama (tabelama) • Zasniva se na strogoj matematičkoj teoriji • Minimalna redundansa 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č)
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 Relacioni model Tabela, sa svojim atributima, je osnovni objekat relacione baze podataka
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. • RBP se sastoji iz više tabela. Tabele su povezane ključevima. • Informacija iz RBP se dobija postavljanjem upita. • Nije od značaja gde i kako su smeštene tabele.
Relacioni model • Svaka tabela mora da ima: • Ime ili naziv tabele, • Spisak atributa i • Vrednosti atributa (podaci upisani u polja) STUDENT
Relacioni model kolone Naziv tabele slogovi
Relacioni model podataka • Razmatraju se sledeće komponente relacionog modela podataka: • Strukturna komponenta – predstava podataka • Integritetna komponenta– zaštita podataka • Manipulativna komponenta – manipulisanje podacima
Adresa Ulica Broj Poštanski broj Grad Atributi • 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 prostih atributa. Može se rastaviti na delove.
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 studenta – dobar izbor atributa (informacija se može izračunati) • GodineStarosti – loš izbor atributa – zahtevalo bi se svakodnevno ažuriranje BP
Atributi • Skup svih mogućihvrednosti nekog atributa Ai naziva se domen tog atributa i označava se sa Di ili Dom(Ai) • Domen - tip podataka u programiranju • Jedan domen za više atributa. 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”}
Šema relacije • Š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. • 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
Šema relacije • Šema relacije se zapisuje: R(D,K) R - ime relacije D - skup obeležja D={A1, A2, A3,...} Ai – atribut (obeležje) K – skup ključeva • Šema relacije predstavlja svojstva klase objekata ili veza nekog informacionog sistema • Šema relacije: definicija logičke strukture neke klase.
Šema relacije • Primer: Šema relacije STUDENT: R(D,K) D={A1, A2, A3,...} STUDENT ({BrInd,Ime,Prezime,BrPolIspita}, {BrInd}) Šema relacije JE_AUTOR: R(D,K) D={A1, A2, A3,...} JE_AUTOR ({SifA,SifN,Koji}, {SifA+SiN})
Relacija • Relaciji u praksi odgovara jedna datoteka • Svakoj n-torki odgovara jedan slog te datoteke • Slogovi su zapisani u određenom redosledu, najčešće po redosledu unošenja • Primer: STUDENT (BrInd,Ime) student ( BrInd, Ime ) 123/02 J.Jankovic 11/03 P.Petrovic 151/02 J.Jovanovic III-15/04 M.Markovic šema relacije relacija
NULL vrednost • 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. • Postoje dva slučaja koji proizvode Null vrednost: • Vrednost postoji, ali nije poznata u trenutku unosa n-torke. 2. Vrednost je nedefinisana, nema smisla.
NULL vrednost • 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. • 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
NULL vrednost • Pri projektovanju IS pažljivo birati šeme relacija –izbegavati unos prevelikog broja vrednosti NULL (racionalnost) • Primer: Šema relacije Službenik i uvođenje atributa medaljaSluž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
Ključ šeme relacije • 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 istim vrednostima atributa iz K) - jedinstvenost ključa • Ako izbacimo iz K bilo koji atribut, tada se narušava svojstvo 1 - minimalnost ključa
Ključ šeme relacije • 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}) ekvivalentni ključevi primarni ključ
Primarni ključ - primeri - • Student(BrInd,Ime) • Knjiga(SifK,SifN) • Autor(SifA,Ime) • Naslov(SifN, Naziv, SifO) • Oblast (SifO, Naziv) • Je_autor(SifA,SifN,Koji) • Drzi(SifK,BrInd,Datum)
Strani(spoljni) ključ • Za strani ključ neophodne su dve relacije • Ključ jedne relacije u ulozi atributa druge relacije • Strani ključ povezuje dve relacije (tabele) • Primer: STUDENT (BrInd, Ime) KNJIGA (SifK, Naziv) DRŽI (SifK , BrInd,, 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
Ključ - primeri - • Student (BrInd,Ime) • Knjiga(SifK,SifN) • Naslov(SifN,Naziv,SifO) • Oblast(SifO,Naziv) • Autor(SifA,Ime) • 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
Ključ – primeri - • 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) (Pretpostavka: svaki radnik ima samo jednog nadređenog) Primer 2: • Osoba(JMBG, Ime, Adresa,...)Brak(JMBG1, JMBG2, Datum_venčanja)
Š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čanskup 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 relacije
Šema RBP • Š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 (svakoj klasi odgovara jedna šema relacije): Objekti: Student(BrInd,Ime) Knjiga(SifK, SifN) Naslov(SifN,Naziv,SifO) Autor(SifA,Ime) Oblast(SifO,Naziv) Veze: Drzi(SifK,BrInd,Datum) Je_autor(SifA,SifN,Koji)
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 (ona svojim sadržajem predstavlja stanje sistema Biblioteka u jednom trenutku)
Primer: RBP biblioteka -objekti- Autor (SifA, Ime ) AP0 A.Popovic IT0 I.Todorovic AP1 A.Petrovic JN0 J.Nikolic DM0 D.Markovic ZP0 Z.Petrovic Student (BrInd, Ime ) 75/00 M.Marković 122/03 D.Ivanović 5/01 P.Jovanović 175/01 R.Savić
Primer: RBP biblioteka -relacijezaobjeke - Knjiga (SifK, SifN ) Naslov(SifN, Naziv, SifO ) RBP0 Relacione baze podataka 1 FT00 Finansijska tržišta 2 PI00 Poslovna informatika 1 OS00 Osnove finansija 2 001 RBP0 002 RBP0 003 FT00 004 PI00 005 PI00 006 PI00 007 OS0 008 OS0 009 OS0 Oblast (SifO, Naziv) • Informatika • Finansije
Primer: RBP biblioteka -relacijezaveze- Drži (SifK, BrInd, Datum) 001 JJ0 10.11.03 002 PP0 01.06.04 004 JJ0 15.03.05 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
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
Integritetna komponenta • 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)
Integritetna komponenta Ograničenja se po prirodi dele u tri grupe: • Ograničenja torki (izražavaju činjenicu da vrednost atributa mora biti iz datog domena) • Relaciona ograničenja (čuvaju korektnost veza između atributa unutar relacije) • Međurelaciona ograničenja (ograničenja koja se odnose na strani ključ)
Integritetna komponenta • 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
Integritetna komponenta • 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 • Takva ograničenja nazivaju se funkcionalni integritet • Teorija funkcionalnih zavisnosti i normalne forme
Integritetna komponenta • 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 nazivaju referencijalni integritet.
1. Identifikacioni integritet • 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 postanu identične.
1. Identifikacioni integritet • 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.
2. Funkcionalni integritet • f: X→Y f - naziv funkc.zavisnosti; X,Y - skupovi obeležja • X funkcionalno određuje Y ili Y funkcionalno zavisi od X znači da: • svakom elementu iz domena X može se 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
2. Funkcionalni integritet • 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) 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
3. 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.
3. Referencijalni integritet • 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 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
3. Referencijalni integritet • Sa stanovišta izmena (ažuriranja)u ciljnoj relacijivaže sledeća ograničenja: • Dodavanje nove n-torke (u ciljnoj relaciji) ne narušava ref. int. - 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.
3. 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”
Primerza šemu relacione BP Biblioteka • Student (BrInd,Ime) • Knjiga(SifK,SifN) • Naslov(SifN,Naziv,SifO) • Oblast(SifO,Naziv) • Autor(SifA,Ime) • Drzi(SifK,BrInd,Datum) • Je_autor(SifA,SifN,Koji)
3. Referencijalni integritet Specifikacija referencijalnih integriteta glasi: • Knjiga[SifN] Naslov[SifN] • Naslov[SifO] Oblast[SifO]NULL • Drzi[SifK] Knjiga[SifK] • Drzi[BrInd] Student[BrInd] • Je_autor[SifA] Autor[SifA] • Je_autor[SifN] Naslov[SifN]
Referencijalni integritet • Primer: Za šemu relacije Radnik: Radnik(SifR,Ime,Adresa,SifNad) postojala bi sledeća specifikacija ograničenja: Radnik[SifNad] Radnik[SifR]
Referencijalni integritet • Zavisnost sadržavanja - ograničenje između skupova obeležja pri čemu mora da važi da je domen jednog obeležja podskup domena drugog obeležja • Referencijalni integritet je međurelaciona zavisnost sadržavanja kod koje skup obeležja nadskupa predstavlja primarni ključ šeme relacije