p3 - relacioni model
TRANSCRIPT
-
8/2/2019 P3 - Relacioni Model
1/152
ETF Banja Luka, Slavko Mari3.1Baze podataka
3 - Relacioni model
Struktura relacionih baza podatakaOgranienja u relacionom modelu
ema relacione baze podataka
Mapiranje konceptualnog modela u relacioni model
Formalni upitni jeziciRelaciona algebra
Relacioni raun
-
8/2/2019 P3 - Relacioni Model
2/152
ETF Banja Luka, Slavko Mari3.2Baze podataka
Uvod
Relacioni model* podataka je formalna, matematikibazirana teorija, na kojoj su zasnovane relacione bazepodataka i sistemi.
Relacioni model ima osnovu u teoriji skupova ipredikatskoj logici prvog reda.
Relacioni model obezbjeuje koncepte i sredstva zaspecifikaciju:
Strukture podataka.
Neformalno: podaci su organizovani u tabele. Relaciona bazapodataka se sastoji iz kolekcije tabela.
Integritetskih ogranienja.
Naina manipulacije podacima u bazi.
* Relacioni model je formulisao i predloio E.F. Codd,1970. god.
-
8/2/2019 P3 - Relacioni Model
3/152
ETF Banja Luka, Slavko Mari3.3Baze podataka
Relacijematematika definicija
Matematika definicija : Relacija je podskup Dekartovog proizvoda
liste domena D1, D2, , Dn-1, Dn, tj.r D1D2 Dn-1Dn,
gdje je
D1D2 Dn-1Dn={(v1, v2, , vn-1, vn)vi Di, i = 1,2, ... ,n.
N-torke(asocijacije izmeu n2 elemenata) matematike relacijemoraju da zadovoljavaju odnosno relaciono svojstvo.
Primjer : vezniskupje matematika relacija, jer predstavlja skupasocijacija izmeu n 2 entiteta, gdje svaki entitet pripada nekom odentitetskih skupova
{(e1, e2, en) | e1 E1, e2 E2, , en En}
gdje je (e1, e2, , en) veza.
-
8/2/2019 P3 - Relacioni Model
4/152
ETF Banja Luka, Slavko Mari3.4Baze podataka
Relacije i relacione eme
Relacijar(u relacionom modelu) se sastoji iz zaglavlja i tijela relacije.
Zaglavlje relacijerje n-torka (A1, A2, ... , An-1, An) iji elementi Aipredstavljaju atribute.
Tijelo relacijeini skup n-torki(v1, v2, , vn-1, vn), pri emu svaka n-torkaima istu kardinalnost kao i n-torkazaglavlja, a svaki element vineke n-torkeje landomena korespondentog atributa (viAi). Nullvrijednost.
Zaglavlje relacije(relacionaema)opisuje relaciju i reprezentuje njentip.Relacionaema je definisana listom atributa.
Na primjer,
R = (A1, A2, ... , An-1, An)
ili alternatnivno
R (A1, A2, ... , An-1, An).
injenicu da je relacija r tipa Roznaavamo sa r (R) i kaemo da je
relacija r definisana na relacionojemiR.
-
8/2/2019 P3 - Relacioni Model
5/152
ETF Banja Luka, Slavko Mari3.5Baze podataka
Stepen relacije i relaciona instanca
Stepen(arnost) relacijer:stepena jedan, unarna,
stepena dva, binarna,
stepena tri , ternarna, ...
stepena n, n-arna.
Relacionaema - odgovara konceptu tipa podatka,
Relacija r - odgovara konceptu promjenljive u programskim jezicima.
Relaciona instanca: skup n-torki relacije r u nekom vremenskom
trenutku.prazna relacija ?
-
8/2/2019 P3 - Relacioni Model
6/152
ETF Banja Luka, Slavko Mari3.6Baze podataka
r m er re ac e - pre s av an epodataka o predmetima
Karakteristika predmeta - predstavlja se atributom (NazivPredmeta,
IdPredmeta, ECTS)Relacija predmet:
Zaglavlje (relaciona ema):
PREDMET = (NazivPredmeta: string, IdPredmeta: string, ECTS: integer)
Tijelo relacije: skup n-torki, npr:
{(Ekspertni sistemi, ES100, 6), (Baze podataka, BP101, 6), (Raunarske mree, RM102, 6), (Internet programiranje, IP100, 7) }
Alternativna predstava:
NazivPredmeta: string IdPredmeta: string ECTS: integer
Ekspertni sistemi ES100 6
Baze podataka BP101 6
Raunarske mree RM102 6
Internet programiranje IP100 7
-
8/2/2019 P3 - Relacioni Model
7/152ETF Banja Luka, Slavko Mari3.7Baze podataka
Korespondencija: tabela - predmet
Relacija Tabelan-torka Red u tabeli
Atribut zaglavlje/naslov kolone
NazivPredmeta: string IdPredmeta: string ECTS: integer
Ekspertni sistemi ES100 6
Baze podataka BP101 6
Raunarske mree RM102 6
Internet programiranje IP100 7
-
8/2/2019 P3 - Relacioni Model
8/152ETF Banja Luka, Slavko Mari3.8Baze podataka
Karakteristike relacije
Ureenost n-torki u relaciji.
Duplikati u relaciji.
Redoslijed atributa u relaciji.
R= {A1, A2, ... , An-1, An}
Korespondencija izmeu atributa i vrijednosti.
n-torke - skupovi ureenih parova (Ai,vi), vi dom (Ai), tj.
ti= {(A1,v1), (A2,v2), , (An-1,vn-1), (An,vn) }.
predmet ={ { (ECTS, 6), (NazivPredmeta, Ekspertni sistemi), (IdPredmeta, ES100)},
{ (IdPredmeta, BP101), (NazivPredmeta, Baze podataka), (ECTS, 6)},
{ (IdPredmeta, RM102), (ECTS, 6), (NazivPredmeta, Raunarske mree)},
{ (NazivPredmeta, Internet programiranje), (ECTS, 7), (IdPredmeta, IP100)} }
-
8/2/2019 P3 - Relacioni Model
9/152ETF Banja Luka, Slavko Mari3.9Baze podataka
Notacija i konvencije
Relaciona ema R, definisana nad atributima A1, A2, , An-1,
An, oznaava se sa:R= (A1, A2, ... , An-1, An), ili
R(A1, A2, ... , An-1, An).
Skup atributa relacije Roznaava se sa attrs(R).injenica da je rrelacija definisana na emi R, oznaava sesa r(R).
n-torkat r, oznaava se sa t =(v1, v2, , vn-1, vn).Vrijednost vin-torke t, koja korespondiraatributu Ai, oznaavase sa t[Ai] ili t.Ai.
-
8/2/2019 P3 - Relacioni Model
10/152ETF Banja Luka, Slavko Mari3.10Baze podataka
Notacija i konvencije
torkadobijena iz tselekcijom liste vrijednosti koje odgovaraju
atributima Ai1, Ai2, Aip, oznaava se sa t[Ai1, Ai2, , Aip] ilit. (Ai1, Ai2, , Aip).
Ako je Xattrs(R), torkakoja se dobija selekcijom listevrijednosti iz n-torke tkoje odgovaraju podskupu atributa X,
oznaava se sa t[X] ili t.X.
Relacione eme se oznaavaju velikim, a relacije definisanenad relacionom emom malim slovom.
Atribut A, koji je element relacione eme R, referencira se saR.A.
-
8/2/2019 P3 - Relacioni Model
11/152ETF Banja Luka, Slavko Mari3.11Baze podataka
Ogranienja u relacionom modelu
Vrste ogranienja:Ogranienja koja potiu od postavki i svojstava odnosnogmodela podataka.
Ogranienja koja se mogu specifikovati odgovarajuimkonceptima i sredstvima na nivou eme baze podataka.
Ogranienja koja se ne mogu eksplicitno specifikovati na nivoueme baze podataka. Ova ogranienja se mogu implementiratikroz odgovarajue segmente aplikativnih programa (aplikativnobazirana ogranienja).
-
8/2/2019 P3 - Relacioni Model
12/152ETF Banja Luka, Slavko Mari3.12Baze podataka
Ogranienja u relacionom modelu
Domenska ogranienja:
Specifikuju doputene vrijednosti atributa - elemenata n-torki.U relacionom modelu: domeni svih atributa atomini. Domen jeatomian ako su svi elementi domena nedjeljivi.
Domen atributa se moe specifikovati asocijacijom odreenogtipa podatka (integer, date, stringitd.) i imena atributa.
Vie atributa mogu imati isti domen.
Npr. atributi ImeStudentai ImeNastavnikamogu imati zajednikidomen DomIme .
Razliiti domeni mogu imati isti skup elemenata/vrijednosti.
Npr., domeni DomDollari DomEuromogu imati isti skup doputenihvrijednosti, ali se oni na logikom nivou smatraju razliitim.
Specijalna nullvrijednost je lan svakog domena. Za odreeneatribute se moe eksplicitno specifikovati ogranienje da nijednan-torkarelacije ne moe za te atribute imati nullvrijednost.
-
8/2/2019 P3 - Relacioni Model
13/152ETF Banja Luka, Slavko Mari3.13Baze podataka
Ogranienja u relacionom modeluKljuevi:
Neka je Kattrs(R)Kje superkljurelacijone emeRako su vrijednosti Kdovoljneda jedinstveno identifikuju svaku n-torku za svaku moguurelaciju r(R) , tj.
ako za svaki par n-torki t1r i t2r vrijedi:
t1t2t1[K] t2[K]
pod mogua relacija r podrazumjeva se relacija rkoja moe dapostoji u sistemu koji modelujemo.
Primjer: {IdPredmeta}je superklju na emi PREDMET, odnosnosuperklju entitetskog skupapredmet.
Superkljul je takoe i {IdPredmeta, ECTS}
Kje kandidatski kljuako je Kminimalno.Primjer: {IdPredmeta}je kandidatski klju za entitetski tip/skupPREDMET/predmet.
Primarni klju i koncept entitetskog integriteta
-
8/2/2019 P3 - Relacioni Model
14/152ETF Banja Luka, Slavko Mari3.14Baze podataka
Ogranienja u relacionom modelu:
Strani kljuevi
Ilustracija:Posmatrajmo relacione eme STUDENT, PREDMET i POLAGANJE_ISPITA:
STUDENT(JMB, ImeStudenta, GodinaStudija, StudijskiProgram)
PREDMET (IdPredmeta, NazivPredmeta, ECTS)
POLAGANJE_ISPITA (JMB, IdPredmeta, DatumIspita, Ocjena).
JMBi IdPredmetasu strani kljuevi na emi POLAGANJE_ISPITA , kojireferenciraju primarne kljueve JMBi IdPredmetana emama STUDENTiPREDMET, respektivno.
Vrijednosti na atributima stranog kljua jedne relacije moraju postojati kaovrijednosti na atributima primarnog (ili kandidatskog) kljua u referenciranojrelaciji, ili biti nullvrijednosti.
-
8/2/2019 P3 - Relacioni Model
15/152ETF Banja Luka, Slavko Mari3.15Baze podataka
Ogranienja u relacionom modelu:
Strani kljuevi
Formalna definicija:
Neka su r1 (R1) i r2(R2) relacije na emama R1 i R2saprimarnim/kandidatskim kljuevima K1 i K2respektivno.
FK R1 je strani klju u R1 koji referencira primarni/kandidatski
klju K2 u R2, ako: atributi stranog kljua FKimaju isti domen kao korespondentni
atributi primarnog/kandidatskog kljua K2eme R2,i
za svaku n-torku t1r1, ili mora postojati n-torka t2r2takva daje t2[K2] = t1[FK], ili je vrijednost t1[FK] = null.
Relacija r1 (relaciona ema R1) se naziva referencirajuarelacija (ema), dok se relacija r2(relaciona ema R2) nazivareferencirana relacija (ema). Navedeni uslovi specifikujuogranienje po referencijalnom integritetu (eng. referentialintegrity constraint) na emama R1 i R2.
-
8/2/2019 P3 - Relacioni Model
16/152ETF Banja Luka, Slavko Mari3.16Baze podataka
Ogranienja u relacionom modelu:
Aplikativno bazirana ogranienja
Generalna ogranienja (Ogranienja za ouvanje semantikogintegriteta).
Primjer:
Ukupnooptereenje studenta (zbir ECTS bodovapredmeta koje je student upisao za datu studijskugodinu) u toku jednog semestra ne smijeprei...bodova
-
8/2/2019 P3 - Relacioni Model
17/152ETF Banja Luka, Slavko Mari3.17Baze podataka
ema relacione baze podataka
Neformalna Def:
Opis sveukupne strukture podataka i ogranienja koja se odnosena podatake u relacionim bazama podataka, naimplementacionom logikom nivou.
Formalna Def:
ema relacione baze podatakaSdbse specifikuje skupomrelacionih emaSdb={R1, R2, ... , Rn}i skupom integritetskihogranienjaIO.
Relaciona baza podatakaRBPje skup relacija RBP = {r1(R1),r2(R2), ... , rn(Rn)}, pri emu svaka relacija mora da zadovoljavaintegritetska ogranienja specifikovana skupom IO.
Instanca relacione baze podatakaje tekui sadraj svihrelacija u odreenom trenutku.
Ako nova instanca zadovoljava integritetska ogranienja, onda jeinstanca baze podatakavalidna, u suprotnom instanca nije
validna.
-
8/2/2019 P3 - Relacioni Model
18/152ETF Banja Luka, Slavko Mari3.18Baze podataka
Dijagram eme bankarskog sistema
Vizuelna predstava eme relacione baze podataka: dijagram
eme baze podataka.Ilustracija za uprotenu bazu podataka o studentima ipredmetima, koja se sastoji iz relacionih ema STUDENT,PREDMET i POLAGANJE_ISPITA.
-
8/2/2019 P3 - Relacioni Model
19/152ETF Banja Luka, Slavko Mari3.19Baze podataka
Mapiranje konceptualnog modela u relacioni model
Slini logiki koncepti MOV i relacionog modela
Entitetski skup RelacijaEntitet n-torka relacije
Entitetski tipRelaciona ema
Svojstva realnih objekata vrijednosti atributa
Vezni skup - Relacija
Veza n-torka relacije ...
MOV koncepti (Entitetski, Vezni tipovi) Relacione koncepteMOV ogranienjaRelaciona ogranienja
M i j k l d l l i i d l
-
8/2/2019 P3 - Relacioni Model
20/152ETF Banja Luka, Slavko Mari3.20Baze podataka
Mapiranje konceptualnog modela u relacioni model
Uproteni MOV dijagram dijela baze podataka univerziteta
M i j k l d l l i i d l
-
8/2/2019 P3 - Relacioni Model
21/152ETF Banja Luka, Slavko Mari3.21Baze podataka
Mapiranje konceptualnog modela u relacioni model
Korespondentni skup relacionih ema
OSOBA (JMB, Ime, GradOsobe)NASTAVNIK (JMB, NastZvanje, Plata, JMBsk)
STUDENT (JMB, AdrStudiranja)
FAKULTET (NazivFak, AdresaFak)
TELEFON (NazivFak, TelefonFak)STUD PROGRAM (IdSP, NazivFak, NazivSP, Ciklus)
PREDMET (IdPredmeta, NazivPredmeta, ECTS)
SADRZI (IdSP, IdPredmeta, Semestar, TipPredmeta)
UPISAN NA (JMB, IdSP, GodinaUpisa, BrojIndeksa, SemestarSP)UPISAO (JMB, IdPredmeta)
ISPIT (IdPredmeta, DatumIspita, Lokacija)
POLAZE (JMB, IdPredmeta, DatumIspita, Ocjena)
PREDAJE (JMB, IdPredmeta, IdSP)
M i j k l d l l i i d l
-
8/2/2019 P3 - Relacioni Model
22/152ETF Banja Luka, Slavko Mari3.22Baze podataka
Mapiranje konceptualnog modela u relacioni model
Dijagram eme baze podataka za uproteni MOV dijagram dijela BP Univ.
Postupak i pravila mapiranja
-
8/2/2019 P3 - Relacioni Model
23/152
ETF Banja Luka, Slavko Mari3.23Baze podataka
Postupak i pravila mapiranjakonceptualnog modela u relacioni model
1) Mapiranje jakih entitetskih tipova.
Jaki entitetski tip X u MOV generie relacionu emu.Atributi
Primarni klju
Primjer
Jaki entitetski tipovi FAKULTET, STUD_PROGRAM i PREDMET
FAKULTET (NazivFak, AdresaFak)
STUD_PROGRAM (IdSP, NazivSP, Ciklus)
PREDMET (IdPredmeta, NazivPredmeta, ECTS)
Postupak i pravila mapiranja
-
8/2/2019 P3 - Relacioni Model
24/152
ETF Banja Luka, Slavko Mari3.24Baze podataka
Postupak i pravila mapiranjakonceptualnog modela u relacioni model
1) Mapiranje jakih entitetskih tipova.
Jaki entitetski tip X u MOV relacionu emu.Atributi
Primarni klju
Primjer
Jaki entitetski tipovi FAKULTET, STUD_PROGRAM i PREDMET
FAKULTET (NazivFak, AdresaFak)
STUD_PROGRAM (IdSP, NazivSP, Ciklus)
PREDMET (IdPredmeta, NazivPredmeta, ECTS)
Postupak i pravila mapiranja
-
8/2/2019 P3 - Relacioni Model
25/152
ETF Banja Luka, Slavko Mari3.25Baze podataka
Postupak i pravila mapiranjakonceptualnog modela u relacioni model
2) Mapiranje slabih entitetskih tipova.
Slabi entitetski tip X u MOV relacionu emu.Jaki entitetski tip Y
Atributi
Primarni klju: ?
Primjer
Slabi entitetski tipISPIT
PK(Y) + diskriminator
ISPIT (IdPredmeta, DatumIspita, Lokacija)
Postupak i pravila mapiranja
-
8/2/2019 P3 - Relacioni Model
26/152
ETF Banja Luka, Slavko Mari3.26Baze podataka
Postupak i pravila mapiranjakonceptualnog modela u relacioni model
3) Mapiranje specijalizacije.
A) Generisanje vie ema za MOV natklasu (X) i potklasu (Y).Relaciona ema za X
Relaciona ema za Y
Atributi X
Atributi Y
Primarni klju X: ?
Primarni klju Y: ?
Primjer
OSOBA, STUDENT, NASTAVNIK
PK(X)
OSOBA (JMB, Ime, GradOsobe)
NASTAVNIK(JMB, NastZvanje, Plata)
STUDENT(JMB, AdrStudiranja)
PK(X)
Postupak i pravila mapiranja
-
8/2/2019 P3 - Relacioni Model
27/152
ETF Banja Luka, Slavko Mari3.27Baze podataka
Postupak i pravila mapiranjakonceptualnog modela u relacioni model
3) Mapiranje specijalizacije.
B) Generisanje vie ema, SAMO ZA POTKLASE. Za svaku potklasuY:
Relaciona ema za Y
Atributi Y
Primarni klju Y: ?Kakva specijalizacija treba da bude ?
Primjer
OSOBA, STUDENT, NASTAVNIK
PK(X)
NASTAVNIK(JMB , Ime, GradOsobe, NastZvanje, Plata)
STUDENT(JMB , Ime, GradOsobe, AdrStudiranja)
Totalna, disjunktna
Postupak i pravila mapiranja
-
8/2/2019 P3 - Relacioni Model
28/152
ETF Banja Luka, Slavko Mari3.28Baze podataka
Postupak i pravila mapiranjakonceptualnog modela u relacioni model
3) Mapiranje specijalizacije.
C) GenerisanjeJEDNE REL. EME ZA SUPERKLASU I POTKLASEsa diskriminatorom.
Atributi ?
Diskriminator
Primarni klju relacione eme: PK(X)Kakva specijalizacija treba da bude ?
Not null ogranienje na atributima potklasa ?
Primjer:
OSOBA, STUDENT, NASTAVNIK OSOBA (JMB , TipOsobe , Ime, GradOsobe, NastZvanje, Plata , AdrStudiranja)
Disjunktna
Ako specijalizacijapreklapajua ?
Postojanje vie n-torki, za svaku specijalizpo jedna !
Postupak i pravila mapiranja
-
8/2/2019 P3 - Relacioni Model
29/152
ETF Banja Luka, Slavko Mari3.29Baze podataka
Postupak i pravila mapiranjakonceptualnog modela u relacioni model
3) Mapiranje specijalizacije.
D) GenerisanjeJEDNE REL. EME ZA SUPERKLASU I POTKLASE savie indikatorskih atributa.
Atributi ?
Indikatorski atributi F1, F2, . . . , Fm(logikog tipa)
Primarni klju : PK(X)Kakva specijalizacija treba da bude ?
Not null ogranienje na atributima potklasa ?
Sve opcije
Postupak i pravila mapiranja
-
8/2/2019 P3 - Relacioni Model
30/152
ETF Banja Luka, Slavko Mari3.30Baze podataka
Postupak i pravila mapiranjakonceptualnog modela u relacioni model
3) Mapiranje specijalizacije.
E) Mapiranje dijeljenih potklasa:
Ukoliko podklasa nasljeuje vie superklasa, mogu se primijeniti razliiteopcije 3A ... 3D za specijalizaciju po vie putanja.
Postupak i pravila mapiranja
-
8/2/2019 P3 - Relacioni Model
31/152
ETF Banja Luka, Slavko Mari3.31Baze podataka
Postupak i pravila mapiranjakonceptualnog modela u relacioni model
4) Mapiranje unija.
Atributi unije ?
Atributi supeklasa ?
Null vrijednosti ?
Nalaenje dodatnih atributa lanova unije ? Pojednostavljene ?
Isti tip primarnog kljua lanova superklasa ?
Specifini atributi unije + VKvjetaki klju
Postupak i pravila mapiranja
-
8/2/2019 P3 - Relacioni Model
32/152
ETF Banja Luka, Slavko Mari3.32Baze podataka
Postupak i pravila mapiranjakonceptualnog modela u relacioni model
5) Mapiranjebinarnih veza sa kardinalnou mapiranja M:M.
M:MVeze na MOV dijagramu ?
M:M tip veze relacionu emu.
Atributi ?
Primarni klju: ?
ta predstavlja torkau relaciji u koju se prevodi vezni skup ?
Relacione eme za UPISAO, UPISAN_NA, SADRI i POLAE:
UPISAOUPISAO (JMB, IdPredmeta),UPISAN_NAUPISAN_NA (JMB, IdSP, GodinaUpisa, BrojIndeksa,
SemestarSP)
SADRISADRI (IdSP, IdPredmeta, Semestar, TipPredmeta)
POLAE
POLAE (JMB, IdPredmeta, DatumIspita, Ocjena)
UPISAO, UPISAN_NA, SADRI i POLAE
PK(X) + PK(Y)
Postupak i pravila mapiranja
-
8/2/2019 P3 - Relacioni Model
33/152
ETF Banja Luka, Slavko Mari3.33Baze podataka
Postupak i pravila mapiranjakonceptualnog modela u relacioni model
6) Mapiranje binarnih veza sa kardinalnou mapiranja 1:M.
1:MVeze na MOV dijagramu ?
Primarni klju veze ?
Totalna participacija tipa sa strane M veze:1:M tip veze se nemapira u relacionu emu.
Primarni klju entitetskog tipa Xpostaje atribut eme Tu koju semapira entitetski tip Y.
ta je PK(X) u T?
ta predstavlja torkau relaciji u koju se prevodi vezni skup tipa Y ?
Parcijalna participacija tipa sa strane M veze:
A) Prevoenje kao za sluaj totalne participacije.
B) Analogno mapiranju M:M tipa veze.
IMA, I_P, IMA_SK
Strani klju koji referencira PK(X) u X
Postupak i pravila mapiranja
-
8/2/2019 P3 - Relacioni Model
34/152
ETF Banja Luka, Slavko Mari3.34Baze podataka
Postupak i pravila mapiranjakonceptualnog modela u relacioni model
6) Mapiranje binarnih veza sa kardinalnou mapiranja 1:M.
1:MVeze na MOV dijagramu ?
Primjer:
VezeIMA i I_P su 1:M
Totalna participacija tipa sa strane M veze1:M tip veze se ne
mapira u relacionu emu STUD_PROGRAMSTUD_PROGRAM ( IdSP, NazivSP, Ciklus, NazivFak)
I_P ?
VezeIMA _SKjetipa 1:M
Parcijalna participacija tipa sa strane MvezeVarijanta bez kreiranja nove relacije NASTAVNIKNASTAVNIK ( JMB, NastZvanje, Plata, JMBsk)
IMA, I_P, IMA_SK
Postupak i pravila mapiranja
-
8/2/2019 P3 - Relacioni Model
35/152
ETF Banja Luka, Slavko Mari3.35Baze podataka
Postupak i pravila mapiranjakonceptualnog modela u relacioni model
7) Mapiranje binarnih veza sa kardinalnou mapiranja 1:1.
Totalna participacija jednog entitetskog tipa u vezi1:1 tip veze se nemapira u relacionu emu
Opcija spajanja relacija ?
Parcijalna participacija oba entitetska tipa u veziA) 1:1 tip veze se ne mapira u relacionu emuKoji primarni klju postaje atribut druge relacije kao strani klju ?
Atributi veze ?
Kada je ovaj pristup pogodan ?B) 1:1 tip veze se mapira u relacionu emuKada je ovaj pristup pogodan ?
Atributi relacije u koju se mapira tip veze ?
Primarni klju ?
Totalna participacija oba entitetska tipa
Postupak i pravila mapiranja
-
8/2/2019 P3 - Relacioni Model
36/152
ETF Banja Luka, Slavko Mari3.36Baze podataka
Postupak i pravila mapiranjakonceptualnog modela u relacioni model
8) Mapiranje n-arnih veza.
N-arni tip vezerelacionu emuAtributi relacione eme?
Primarni klju relacione eme ?
Strani kljuevi u generisanoj relacionoj emi?
PRIMJER: Mapiranje tipa veze PREDAJE M:MVeze na MOV dijagramu ?
PREDAJE
PREDAJE (JMB, IdPredmeta, IdSP)
Postupak i pravila mapiranja
-
8/2/2019 P3 - Relacioni Model
37/152
ETF Banja Luka, Slavko Mari3.37Baze podataka
Postupak i pravila mapiranjakonceptualnog modela u relacioni model
9) Mapiranje agregacije.
Veza koja se tretira kao agregacijarelacionu emu po pravilu zamapiranje veza
Veza (agregacija) se tretira kao entitetski tip vieg nivoa pri mapiranjudrugih veza u kojima uestvuje?
PRIMJER:
KONTROLIEKONTROLIE (JMB, IdPredmeta, NazivFak, IdKontrolora )
Postupak i pravila mapiranja
-
8/2/2019 P3 - Relacioni Model
38/152
ETF Banja Luka, Slavko Mari3.38Baze podataka
Postupak i pravila mapiranjakonceptualnog modela u relacioni model
10) Mapiranje vieznanih atributa.
Vieznani atributrelacionu emuAtributi:
Primarni klju ?
Kompozitni vieznani atribut ?
PRIMJER:
Atribut Telefon TELEFON (NazivFakulteta, Telefon)
Postupak i pravila mapiranja
-
8/2/2019 P3 - Relacioni Model
39/152
ETF Banja Luka, Slavko Mari3.39Baze podataka
Postupak i pravila mapiranjakonceptualnog modela u relacioni model
REZIME
PRIMJENOM PRAVILA 1-10 MAPIRALI SMO MOV MODEL:
SKUP RELACIONIH EMA (RELACIONI MODEL).
-
8/2/2019 P3 - Relacioni Model
40/152
ETF Banja Luka, Slavko Mari3.40Baze podataka
Upitni jezici
Upitni jezik je jezik pomou kojeg korisnik vri ekstrakciju
podataka iz baze.Kategorije jezika
proceduralni
ne-proceduralni (deklarativni)
istijezici:Relaciona algebra
Relacioni Raun torki(Tuple Relational Calculus)
Relacioni Raun Domena (Domain Relational Calculus)
isti jezici ine osnovu, na kojoj se baziraju komercijalni upitnijezici koji se koriste u praktinim aplikacijama.
-
8/2/2019 P3 - Relacioni Model
41/152
ETF Banja Luka, Slavko Mari3.41Baze podataka
Relaciona algebra
Proceduralni jezik
est osnovnih operatoraselekcija
projekcija
unija
razlikaKartezijev proizvod
preimenovanje
Operatori kao ulaz imaju jednu ili vie relacija i kao rezultatprodukuju novu relaciju.
-
8/2/2019 P3 - Relacioni Model
42/152
ETF Banja Luka, Slavko Mari3.42Baze podataka
Operacija selekcije Primjer
Relacija r A B C D
1
5
12
23
7
7
3
10
A=B ^ D > 5(r) A B C D
1
23
7
10
-
8/2/2019 P3 - Relacioni Model
43/152
ETF Banja Luka, Slavko Mari3.43Baze podataka
Operacija Selekcije
Notacija: p(r)pse naziva predikat ili uslov selekcije
Definie se kao :
p(r) = {t| trand p(t)}.
p(predikat ili uslov selekcije) je formula u propozicionomraunu koja se sastoji od lanova (terms) povezanih sa: (and), (or), (not)Svaki lan je oblika:
op ( ili )
gdje je opjedan od: =, , >, .
-
8/2/2019 P3 - Relacioni Model
44/152
ETF Banja Luka, Slavko Mari3.44Baze podataka
Operacija selekcije Primjer
NazivPredmeta IdPredmeta ECTS
Ekspertni sistemi ES100 6
Baze podataka BP101 6
Raunarske mree RM102 6
Arhitektura raunara AR505 6
ECTS=6(predmet)
-
8/2/2019 P3 - Relacioni Model
45/152
ETF Banja Luka, Slavko Mari3.45Baze podataka
Operacija projekcije Primjer
Relacija r: A B C
10
20
30
40
1
1
1
2
A C
11
1
2
=
A C
11
2
A,C (r)
O ij j k ij
-
8/2/2019 P3 - Relacioni Model
46/152
ETF Banja Luka, Slavko Mari3.46Baze podataka
Operacija projekcije
Notacija:
< lista atributa >(r)
gdje < lista atributa >sadri atribute relacije rkoji treba da sepojave u rezultantnoj relaciji.
Rezultat je definisan kao relacija dobijena (iz polazne relacije)brisanjem atributa (kolona tabele) koji nisu navedeni u < listaatributa > .
Duple torkese eliminiu iz rezultata s obzirom da su relacijeskupovi.
Npr. ako elimo da dobijemo listu naziva predmeta i broj ECTSbodova koje ti predmeti imaju, onda to postiemo slijedeomoperacijom projekcije:
NazivPredmeta, ECTS(predmet)
O ij j k ij P i j
-
8/2/2019 P3 - Relacioni Model
47/152
ETF Banja Luka, Slavko Mari3.47Baze podataka
Operacija projekcije PrimjerRelacija predmet:
NazivPredmeta, ECTS(predmet)
NazivPredmeta ECTS
Ekspertni sistemi 6
Baze podataka 6
Raunarske mree 6
Internet programiranje 7
Linearna algebra 7
Arhitektura raunara 6
Kompajleri i interpreteri 5
ECTS(predmet) ??
O ij ij P i j
-
8/2/2019 P3 - Relacioni Model
48/152
ETF Banja Luka, Slavko Mari3.48Baze podataka
Operacija unije - Primjer
Relacije r, s:
r s:
A B
1
2
1
A B
2
3
r
s
A B
1
2
1
3
O ij ij
-
8/2/2019 P3 - Relacioni Model
49/152
ETF Banja Luka, Slavko Mari3.49Baze podataka
Operacija unije
Notacija: rs
Definie se kao:r s= {t| tror ts}
Da bi operacija rsbila validna, moraju biti ispunjeni sljedei
uslovi1. r,smoraju imati isti stepen / broj atributa ili arnost (egl.arity)
2. Domeni atributa moraju biti kompatibilni(npr., druga kolonarmora da sadri isti tip vrijednosti kao druga kolona s)
Npr. lista matinih brojeva osoba koje su nastavnici ili studenti sedobija slijedeom operacijom:
JMB(nastavnik) JMB(student)
O ij ij P i j
-
8/2/2019 P3 - Relacioni Model
50/152
ETF Banja Luka, Slavko Mari3.50Baze podataka
Operacija unije - Primjer
Relacije nastavnik i student:
JMB(nastavnik) JMB(student)
predmet student
JMB NastZvanje Plata JMBsk
1006949100067 vanredni profesor 2000 1907951100012
1002952100005 redovni profesor 2400 null
1907951100012 redovni profesor 2400 null
1804964163303 redovni profesor 2300 1002952100005
1312981163309 docent 1800 1907951100012
JMB AdrStudiranja
1210987100018 Cerska 10 BanjaLuka
0512983100067 Kozarska 23 Banja Luka
0607989100021 Rudarska 102 Banjaluka
2208988105034 Beogradska 2 Banjaluka
JMB
1006949100067
1002952100005
1907951
1000121804964163303
1312981163309
1210987100018
0512983100067
0607989100021
2208988105034
O ij lik P i j
-
8/2/2019 P3 - Relacioni Model
51/152
ETF Banja Luka, Slavko Mari3.51Baze podataka
Operacija razlike Primjer
Relacije r, s:
r s:
A B
1
2
1
A B
2
3
r
s
A B
1
1
O ij lik
-
8/2/2019 P3 - Relacioni Model
52/152
ETF Banja Luka, Slavko Mari3.52Baze podataka
Operacija razlike
Notacija r s
Definie se kao :r s = {t| trand t s}
Operacija razlike se mora izvoditi izmeu kompatibilnihrelacija.
r i smoraju imati ististepen/ broj atributa
Korespondentni domeni atributa relacija r i smoraju biti kompatabilni
Operacija Kartezijev proizvod - Primjer
-
8/2/2019 P3 - Relacioni Model
53/152
ETF Banja Luka, Slavko Mari3.53Baze podataka
Operacija Kartezijev proizvod - Primjer
Relacije r, s:
rx s:
A B
1
2
A B
11112222
C D
1010201010102010
E
aabbaabb
C D
10102010
E
aabbr
s
O ij K t ij i d
-
8/2/2019 P3 - Relacioni Model
54/152
ETF Banja Luka, Slavko Mari3.54Baze podataka
Operacija Kartezijevog proizvoda
Notacija rx s
Definie se kao :rx s= {t q| t rand qs}
Pretpostavljamo da su atributi r(R) i s(S) disjunktni. (tj.,R S= ).
Ukoliko atributi r(R) i s(S) nisu disjunktni, tada moramoupotrijebiti preimenovanje.
Kompozicija operacija
-
8/2/2019 P3 - Relacioni Model
55/152
ETF Banja Luka, Slavko Mari3.55Baze podataka
Kompozicija operacija
Izrazi se mogu graditi koritenjem vie operacija
Primjer: A=C(r x s)
r x s
A=C(r x s)
A B
11
112222
C D
1010
201010102010
E
aa
bbaabb
A B C D E
122
102020
aab
Operacija preimenovanja
-
8/2/2019 P3 - Relacioni Model
56/152
ETF Banja Luka, Slavko Mari3.56Baze podataka
Operacija preimenovanja
Omoguava da imenujemo rezultate izraza relacione algebre, i
da se nakon toga rezultat referencira koristei novo ime.Omoguava takoe da jednoj relaciji dodijelimo vie od jednogimena.
Primjer:
x(E)Vraa izrazEpod imenom X
Ukoliko izraz Erelacione algebre ima n atributa, tada
x(A1, A2, , An)(E)
vraa rezultat izraza Ekao relaciju sa imenom X, koja ima(preimenovane) atribute A1, A2, ., An.
Primjer poslovnog sistema banke
-
8/2/2019 P3 - Relacioni Model
57/152
ETF Banja Luka, Slavko Mari3.57Baze podataka
Primjer poslovnog sistema banke
branch (branch-name, branch-city, assets)
customer (customer-name, customer-street, customer-city)
account (account-number, branch-name, balance)
loan (loan-number, branch-name, amount)
depositor (customer-name, account-number)
borrower (customer-name, loan-number)
RELACIJE
Primjeri upita
-
8/2/2019 P3 - Relacioni Model
58/152
ETF Banja Luka, Slavko Mari3.58Baze podataka
Primjeri upita
Nai sve kredite sa iznosom veim od $1200
Nai broj kredita za sve kredite iji je iznos vei od $1200
amount> 1200 (loan)
loan-number(amount> 1200 (loan))
Primjeri upita
-
8/2/2019 P3 - Relacioni Model
59/152
ETF Banja Luka, Slavko Mari3.59Baze podataka
Primjeri upita
Nai imena svih korisnika (customers) koji imaju kredit (loan),raun (account), ili oboje u banci
Nai imena svih korisnika (customers) koji imaju kredit (loan) iraun (account) u banci
customer-name(borrower) customer-name(depositor)
customer-name(borrower) customer-name(depositor)
Primjeri upita
-
8/2/2019 P3 - Relacioni Model
60/152
ETF Banja Luka, Slavko Mari3.60Baze podataka
Primjeri upita
Nai imena svih korisnika koji imaju kredit u Perryridge filijali.
Nai imena svih korisnika koji imaju kredit u Perryridge filijali alinemaju raun ni u jednoj filijali banke.
customer-name(branch-name = Perryridge
(borrower.loan-number = loan.loan-number(borrower x loan))) customer-name(depositor)
customer-name(branch-name=Perryridge
(borrower.loan-number = loan.loan-number(borrower x loan)))
-
8/2/2019 P3 - Relacioni Model
61/152
ETF Banja Luka, Slavko Mari3.61Baze podataka
Primjeri upita
Nai imena svih korisnika koji imaju kredit u Perryridge filijali.
Upit 2
customer-name
(loan.loan-number = borrower.loan-number
((branch-name = Perryridge(loan)) x borrower))
Upit 1
customer-name(branch-name = Perryridge(borrower.loan-number = loan.loan-number(borrower x loan)))
Primjeri upita
-
8/2/2019 P3 - Relacioni Model
62/152
ETF Banja Luka, Slavko Mari3.62Baze podataka
Primjeri upita
Nai najvee stanje rauna
Preimenovati relaciju accountu d Upit:
balance(account) - account.balance
(account.balance < d.balance
(account xd
(account)))
Formalna definicija relacione algebre
-
8/2/2019 P3 - Relacioni Model
63/152
ETF Banja Luka, Slavko Mari3.63Baze podataka
Formalna definicija relacione algebre
Osnovni izraz u relacionoj algebri je:
neka relacija baze podataka ilikonstantna relacija.
Neka su E1 i E2 izrazi relacione algebre; sljedei izrazi su takoeizrazi relacione algebre:
E1E2E1 - E2
E1 x E2
p
(E1
), Pje predikat na atributima iz E1
s(E1), Sje lista koja sadri neke od atributa iz E1
x(E1), x je novo ime rezultata E1
Dodatne operacije
-
8/2/2019 P3 - Relacioni Model
64/152
ETF Banja Luka, Slavko Mari3.64Baze podataka
Dodatne operacije
Dodatne operacije relacione algebre ne pruaju nove mogunosti
(sve dodatne operacije se mogu izraziti preko osnovnih operatorarelacione algebre), ve samo omoguuju pojednostavljivanje estihupita.
Dodatne operacije:
Presjek (set intersection)
Prirodno spajanje (natural join)
Dijeljenje (division)
Pridjeljivanje (assignment)
Operacija presjeka
-
8/2/2019 P3 - Relacioni Model
65/152
ETF Banja Luka, Slavko Mari3.65Baze podataka
Operacija presjeka
Notacija: rs
Definie se kao: rs={ t| trandts}
Pretpostavka:
r, simaju isti broj kolona (arity)
korespondentni atributi r i s su kompatabilni
Primjetimo da je: rs = r- (r- s)
Operacija presjeka - Primjer
-
8/2/2019 P3 - Relacioni Model
66/152
ETF Banja Luka, Slavko Mari3.66Baze podataka
Operacija presjeka - Primjer
Relacije r, s:
r s
A B
121
A B
23
r s
A B
2
Operacija spajanja relacija (Join operation)
-
8/2/2019 P3 - Relacioni Model
67/152
ETF Banja Luka, Slavko Mari3.67Baze podataka
Tipino se nakon operacije Kartezijevog produkta (cross join operacije),
primjenjuje operacija selekcije na kombinovanim n-torkama iz produktarelacija ri s, pri emu se selektuju samo one kombinacije n-torki kojezadovoljavaju uslov selekcije. Ova (JOIN ili THETA JOIN) operacija sespecifikuje na slijedei nain:
r s
Operacija spajanja relacija (Join operation)
Generalna forma uslova selekcije (join condition) je:
AND AND AND
gdje je svaki condition forme: Ai Bi, gdje su Ai i Biatributi od R i S, kojiimaju isti domen, a je neki od operatora komparacije (=, ,,)
Najea varijanta primjene JOIN operacije je EQUIJOIN i NATURAL JOIN
EQUIJOIN varijanta JOIN operacije koristi samo komparacioni operator = uuslovima za selekciju.
JOIN operacija se koristi da se pripadajue informacije iz vie relacijapredstave u jednoj tabeli. Ove operacije spajanja se esto nazivaju i operacijeunutranjeg spajanja (INNER JOINS).
Operacija prirodnog spajanja (Natural-Join)
-
8/2/2019 P3 - Relacioni Model
68/152
ETF Banja Luka, Slavko Mari3.68Baze podataka
Notacija: r s
Operacija prirodnog spajanja (Natural-Join)
Neka su ri srelacije na emamaRi Srespektivno.Onda, r s je relacija na emiRSkoja se dobije na slijedeinain:
Posmatrajmo svaki par n-torki triz ri tsiz s.
Ako tri tsimaju iste vrijednosti na svakom od atributa iz RS, rezultatu
se dodaje n-torka t, gdje tima iste vrijednosti kao tr na r
tima iste vrijednosti kao tsna s
Primjer:
R= (A, B, C, D)S= (E, B, D)
Rezultantna ema = (A, B, C, D, E)
r sse definie kao:
r.A, r.B, r.C, r.D, s.E
(r.B = s.B
r.D = s.D
(r x s))
Operacija prirodnog spajanja Primjer
-
8/2/2019 P3 - Relacioni Model
69/152
ETF Banja Luka, Slavko Mari3.69Baze podataka
Operacija prirodnog spajanja Primjer
Relacije r, s:
A B
124
12
C D
aab
ab
B
13123
D
aaabb
E
r
A B
11112
C D
aaaab
E
s
r s
Operacija prirodnog spajanja opservacije
-
8/2/2019 P3 - Relacioni Model
70/152
ETF Banja Luka, Slavko Mari3.70Baze podataka
Operacija prirodnog spajanja opservacije
Zapaanje:
Svrha operacije prirodnog spajanja je spajanje pripadajuih n-torki iz dvijurelacija u jednu n-torku(tipino, spajanje n-torki (entiteta) koji su u vezi)
Tabele koje se priprodno spajanju moraju imati ista imena kolona pokojima se vri spajanje.
Implikacije:Prije koritenja operacije, mora se znati da postojezajednike kolone (sa istim imenima) u tabelama koje se priprodnospajanju.
Mogui problemi:
Ako doe do promjene imena zajednie kolone u nekoj tabeli,
Ako se doda nova kolona,
Ako dve tabele imaju kolone koje se esto imenuju na identian nain urazliitim tabelama (npr. userID, datum_pristupa, datum_kreiranja,datum_modifikacije)
Operacija Dijeljenja (Division Operation)
-
8/2/2019 P3 - Relacioni Model
71/152
ETF Banja Luka, Slavko Mari3.71Baze podataka
Operacija Dijeljenja (Division Operation)
Pogodna za upite koji ukljuuju frazu za sve.
Neka su ri srelacije na emama R i S respektivno, gdjeje
R= (A1, , Am, B1, , Bn)
S= (B1, , Bn)Resultat operacije r s je relacija na emi
RS= (A1, , Am), takva da je:
rs= { t | tR-S
(r) us( tu r) }
rs
Operacija Dijeljenja Primjer
-
8/2/2019 P3 - Relacioni Model
72/152
ETF Banja Luka, Slavko Mari3.72Baze podataka
Operacija Dijeljenja Primjer
Relacije r, s:
rs: A
B
1
2
A B
12311
134612
r
s
Drugi primjer operacije dijeljenja
-
8/2/2019 P3 - Relacioni Model
73/152
ETF Banja Luka, Slavko Mari3.73Baze podataka
Drugi primjer operacije dijeljenja
A B
aaaa
aaaa
C D
aaba
babb
E
1111
3111
Relacije r, s:
rs:
D
ab
E
11
A B
aa
C
r
s
Operacija Dijeljenja (nast.)
-
8/2/2019 P3 - Relacioni Model
74/152
ETF Banja Luka, Slavko Mari3.74Baze podataka
Operacija Dijeljenja (nast.)
SvojstvoNeka je q = r s
Onda je qnajvea relacija koja zadovoljava uslov qx sr
Definicija u terminima osnovnih operacija relacione algebre:Neka su r(R) i s(S) relacije, i neka je S R
rs= R-S(r)R-S( (R-S(r) x s)R-S,S(r))
Objanjenje:R-S,S(r) samo preureuje atribute relacije r
R-S(R-S(r) x s)R-S,S(r)) produkuje one n-torke t u
R-S(r) takve da je za neke n-torke us, tur.
perac a pr e van a ss gnmentOperation)
-
8/2/2019 P3 - Relacioni Model
75/152
ETF Banja Luka, Slavko Mari3.75Baze podataka
Operation)
Operacija pridjeljivanja () obezbjeuje pogodan nain da seizraze kompleksni upiti.
Omoguuje specifikaciju upita u formi sekvencijalnog programa koji sesastoji od niza pridjeljivanja
Iza niza operacija pridjeljivanja, slijedi izraz ija je vrijednostfinalni resultat upita.
Izraz se (operatorom pridjeljivanja) mora uvijek pridijeliti privremenojrelacionoj promjenljivoj.
Primjer: Operacija rsse moe realizovati na slijedei nain:
temp1R-S(r)
temp2R-S ((temp1 x s)R-S,S(r))
resulttemp1 temp2
Rezultat izraza sa desne strane operatora pridjeljivanja se pridjeljuje
relacionoj promjenljivoj na lijevoj strani operatora .
Privremene relacione promjenljive, kojima su pridijeljene vrijednosti,
mogu se koristiti u narednim izrazima.
Primjer Upita
-
8/2/2019 P3 - Relacioni Model
76/152
ETF Banja Luka, Slavko Mari3.76Baze podataka
Primjer Upita
Nai sve korisnike koji imaju raun otvoren minimalno u filijalama
Downtown i Uptown.
Gdje CNoznaava customer-name i BNoznaava
branch-name.
Upit 1
CN (BN=Downtown (depositor account) )
CN(BN=Uptown(depositor account))
Upit 2
customer-name, branch-name(depositor account)
temp(branch-name) ({(Downtown), (Uptown)})
Primjer Upita
-
8/2/2019 P3 - Relacioni Model
77/152
ETF Banja Luka, Slavko Mari3.77Baze podataka
Nai sve korisnike koji minimalno imaju raune otvorene u svim
filijalama lociranim u Brooklyn city.
Primjer Upita
customer-name, branch-name(depositor account)
branch-name(branch-city= Brooklyn (branch))
Imenovanje kolona rezultata izraza
-
8/2/2019 P3 - Relacioni Model
78/152
ETF Banja Luka, Slavko Mari3.78Baze podataka
Ako se koristi renameoperator, imena kolona rezultantne relacije koja
se dobija sraunavanjem izraza relacione algebre se mogu specifikovatirename operacijom
Ako se ne koristi renameoperator, imena kolona rezultantne relacije
koja se dobija sraunavanjem izraza relacione algebre su specifikovana
na slijedei nain:
Rezultat operacije selekcije ima ista imena kolona kao i originalna relacija, i
u istom redoslijedu
Rezultat operacije projekcije su imena kolona navedena u listi atributa
operatora projekcije, u istom redoslijedu
Imenovanje kolona rezultata izraza
Proirene Operacije Relacione Algebre
-
8/2/2019 P3 - Relacioni Model
79/152
ETF Banja Luka, Slavko Mari3.79Baze podataka
Generalizovana Projekcija (Generalized Projection)
Agregatne funkcije (Aggregate Functions)
Vanjsko spajanje (Outer Join)
Generalizovana projekcija
-
8/2/2019 P3 - Relacioni Model
80/152
ETF Banja Luka, Slavko Mari3.80Baze podataka
Generalizovana projekcija
Proiruje operaciju projekcije na nain da se dozvoljava koritenjearitmetikih funkcija u projekcionoj listi.
F1, F2, , Fn(E)
Eje bilo koji izraz relacione algebre
Svaki od F1, F2, , Fn su aritmetiki izrazi koji ukljuuju konstante iatribute iz ema referenciranih u E.
Neka je data relacija credit-info(customer-name, limit, credit-balance).Nai koliko jo svaka osoba moe da potroi.
customer-name, limit credit-balance(credit-info)
Agregatne funkcije i operacije
-
8/2/2019 P3 - Relacioni Model
81/152
ETF Banja Luka, Slavko Mari3.81Baze podataka
g g j p j
Agregatna funkcija uzima (kao ulaz) kolekciju vrijednosti i vraajednu vrijednost kao rezultat.
avg: prosjena vrijednostmin: minimalna vrijednostmax: maksimalna vrijednostsum: suma vrijednosticount: broj vrijednosti
Agregatna operacija u relacionoj algebri je oblika
G1, G2, , GngF1( A1), F2( A2),, Fm( Am)(E)
Eje bilo koji izraz relacione algebre
G1, G2, Gnje lista atributa po kojima se vri grupisanje n-torki
rezultata izraza (moe biti prazna)Svaka Fije agregaciona funkcija
Svaki Aije ime atributa
Agregatna Operacija - Primjer
-
8/2/2019 P3 - Relacioni Model
82/152
ETF Banja Luka, Slavko Mari3.82Baze podataka
g g p j j
Relacija r:
A B
C
7
7
3
10
gsum(C) as sum-C(r)sum-C
27
Imenovanje atributa rezultantne relacije
Slino kao kod generalizovane projekcije: Rezultati agregatnih funkcijanemaju ime, mora se koristiti preimenovanje (renaming)
Agregatna Operacija - Primjer
-
8/2/2019 P3 - Relacioni Model
83/152
ETF Banja Luka, Slavko Mari3.83Baze podataka
g g p j j
Relacija accountgrupisana po branch-name(nazivu filijale):
branch-namegsum(balance) as sum-balance (account)
branch-name account-number balance
PerryridgePerryridge
BrightonBrightonRedwood
A-102A-201
A-217A-215A-222
400900
750750700
branch-name sum-balance
PerryridgeBrightonRedwood
13001500700
Agregatne funkcije (nast.)
-
8/2/2019 P3 - Relacioni Model
84/152
ETF Banja Luka, Slavko Mari3.84Baze podataka
g g j ( )
Rezultat agregacije nema ime
Moe se koristiti operacija preimenovanja za imenovanje rezultataZbog pogodnosti, dozvoljava se preimenovanje kao dio operacijeagregacije
branch-namegsum(balance) as sum-balance (account)
Vanjsko spajanje
-
8/2/2019 P3 - Relacioni Model
85/152
ETF Banja Luka, Slavko Mari3.85Baze podataka
j p j j
Proirenje operacije spajanja za indikaciju informacija kojenedostaju.
Izvrava operaciju spajanja i nakon toga u rezultat dodaje n-torkeiz jedne relacije koje nisu spojene ni sa jednom n-torkom drugerelacije.
Koristi nullvrijednosti:
nulloznaava da je vrijednost (atributa) ili nepoznata ili ne postoji
Sva poreenja koja ukljuuju nullvrijednost (uopteno reeno) podefiniciji daju rezultat netano (false).
Kasnije e detaljnije biti opisana semantika poreenja sa nullvrijednostima
Vanjsko spajanje - Primjer
-
8/2/2019 P3 - Relacioni Model
86/152
ETF Banja Luka, Slavko Mari3.86Baze podataka
j p j j j
Relacija loan
Relacija borrower
customer-name loan-number
Jones
SmithHayes
L-170
L-230L-155
300040001700
loan-number amount
L-170L-230L-260
branch-name
DowntownRedwoodPerryridge
Vanjsko spajanje - Primjer
-
8/2/2019 P3 - Relacioni Model
87/152
ETF Banja Luka, Slavko Mari3.87Baze podataka
j p j j j
Unutranje spajanje (inner join)
loan borrower
loan-number amount
L-170L-230
30004000
customer-name
JonesSmith
branch-name
DowntownRedwood
Jones
Smithnull
loan-number amount
L-170
L-230L-260
3000
40001700
customer-namebranch-name
Downtown
RedwoodPerryridge
Lijevo vanjsko spajanje (left outer join)
loan borrower
Vanjsko spajanje - Primjer
-
8/2/2019 P3 - Relacioni Model
88/152
ETF Banja Luka, Slavko Mari3.88Baze podataka
j p j j j
Desno vanjsko spajanje (right outer join)
loan borrower
loan borrower
Puno vanjsko spajanje
loan-number amount
L-170L-230L-155
30004000null
customer-name
JonesSmithHayes
branch-name
DowntownRedwoodnull
loan-number amount
L-170L-230L-260L-155
300040001700null
customer-name
JonesSmithnullHayes
branch-name
DowntownRedwoodPerryridgenull
Null vrijednosti
-
8/2/2019 P3 - Relacioni Model
89/152
ETF Banja Luka, Slavko Mari3.89Baze podataka
j
Mogue je da n-torke imaju null vrijednost za neke od atributa
nulloznaava nepoznatu vrijednost ili vrijednost koja ne postoji. Rezultat bilo koje aritmetikog izraza koji sadri nullvrijednost je
nullvrijednost.
Funkcije agregacije jednostavno ignoriu null vrijednostiTo je stvar konvencije. Mogue je usvojiti pristup da agregatne
funkcije vraaju null kao rezultat, ukoliko je neka od vrijednosti null.U radu sa null vrijednostima koristiemo konvenciju koja je usvojenau SQL standardu
Za eliminisanje duplih vrijednosti i grupisanje, null se tretira kaobilo koja druga vrijednost, i uzma se da su dvije null vrijednostiiste vrijednosti
Alternativa: pretpostaviti da su sve null vrijednosti meusobnorazliite
Obe alternative su stvar usvojenog pravila (konvencije), u daljemtekstu je usvojen pristup koriten u SQLu.
Null vrijednosti
-
8/2/2019 P3 - Relacioni Model
90/152
ETF Banja Luka, Slavko Mari3.90Baze podataka
j
Komparacija sa null vrijednostima kao rezultat vraa specijalnu logikuvrijednost unknown.
Ukoliko bi falsebilo koriteno umjestounknown, tada not (A < 5)ne bi bilo ekvivalentno sa A >= 5
Koristi se logika sa tri vrijednosti: true, false, i unknown: Logikeoperacije koje ukljuuju unknownlogiku vrijednost:
OR: (unknownortrue) = true,(unknownorfalse) = unknown
(unknownor unknown) = unknownAND: (trueand unknown) = unknown,
(falseand unknown) = false,(unknownand unknown) = unknown
NOT: (not unknown) = unknown
U SQL-u Pis unknown rezultuje logikom vrijednou true ako se za
vrijednost predikata P dobije unknown Rezultat predikata selekcije se tretira kao false, ako se kao vrijednost
predikata dobije unknown
Modifikacije baze podataka
-
8/2/2019 P3 - Relacioni Model
91/152
ETF Banja Luka, Slavko Mari3.91Baze podataka
Sadraj baze podataka moe biti modifikovan koritenjemsljedeih operacija:
Brisanje
Umetanje
Auriranje
Sve ove operacije se mogu iskazati koritenjem operatorapridjeljivanja.
Brisanje
-
8/2/2019 P3 - Relacioni Model
92/152
ETF Banja Luka, Slavko Mari3.92Baze podataka
Zahtjev za brisanje se specifikuje slino upitu, sa razlikom da seumjesto prikazivanja korisniku, selektovane n-torke briu iz bazepodataka.
Mogu se brisati samo itave n-torke; ne mogu se brisati samovrijednosti pojedinih atributa
Brisanje se u relacionoj algebri izraava kao:
rrE
gdje je rrelacija i Eje upit relacione algebre.
Primjeri brisanja
-
8/2/2019 P3 - Relacioni Model
93/152
ETF Banja Luka, Slavko Mari3.93Baze podataka
Obrisati sve zapise o raunima u Perryridge filijali.
Obrisati sve raune u filijalama koje se nalaze u Needhamu.
r1branch-city = Needham(account branch)
r2account-number, branch-name
,
balance
(r1)
r3customer-name, account-number(r2 depositor)
account accountr2
depositor depositorr3
Obrisati sve zapise o kreditima iji su iznosi do 50 (ukljuno)
loanloanammount50
(loan)
accountaccountbranch-name = Perryridge(account)
Umetanje
-
8/2/2019 P3 - Relacioni Model
94/152
ETF Banja Luka, Slavko Mari3.94Baze podataka
Podatak (n-torku) moemo ubaciti u neku relaciju, tako da:
Specifikujemo n-torku koja e biti umetnutaNapravimo upit iji je rezultat skup n-torki koje e biti umetnute
U relacionoj algebri, umetanje se izraava na slijedei nain:
r r E
gdje je rrelacija, a Eizraz u relacionoj algebri. Umetanje jedne n-torke moemo izvriti tako to specifikujemo E
kao konstantnu relaciju koja sadri samo jednu n-torku.
Primjeri umetanja
-
8/2/2019 P3 - Relacioni Model
95/152
ETF Banja Luka, Slavko Mari3.95Baze podataka
Umetnuti informaciju u bazu podataka koja specifikuje da Smithima $1200 na raunu A-973 u Perryridge filijali.
Za sve korisnike kredita Perryridge filijaleotvoriti kao poklon,tedni raun sa stanjem od $200. Broj otvorenog tednograunatreba da bude jednak broju kredita.
account account {(A-973, Perryridge,1200)}
depositor depositor {(Smith, A-973)}
r1 (branch-name = Perryridge(borrower loan))
accountaccount loan-number,branch-name ,200(r1)
depositordepositorcustomer-name, loan-number(r1)
Auriranje
-
8/2/2019 P3 - Relacioni Model
96/152
ETF Banja Luka, Slavko Mari3.96Baze podataka
Obezbjeuje mehanizam mijenjanja vrijednosti (atributa) u n-torcibez mijenjanja svihvrijednosti n-torke
Auriranje se moe obezbijediti koritenjem generalizovanogoperatora projekcije
rF1, F2, , Fn (r)
Svaki Fije
i-ti atribut relacije r, ukoliko se i-ti atribut ne aurira, ili
ako se atribut aurira, Fije izraz, koji ukljuuje samo konstante iatribute relacije r, i koji specifikuje novu vrijednosti atributa
Primjeri auriranja
-
8/2/2019 P3 - Relacioni Model
97/152
ETF Banja Luka, Slavko Mari3.97Baze podataka
Obraunati kamate poveavanjem stanja svakog rauna za 5%.
Obraunati kamatu od 6% zasve raune ije je stanje vee od
$10,000, a za ostale raune obraunati 5% kamate
account AN, BN, BAL * 1.06(BAL 10000(account)) AN, BN, BAL *1.05(BAL 10000(account))
accountAN, BN, BAL * 1.05(account)
gdje su AN, BNi BAL redomaccount-number, branch-nameibalance.
Kako bi promijenili samo neke n-torke u relaciji r?
Pogledi
-
8/2/2019 P3 - Relacioni Model
98/152
ETF Banja Luka, Slavko Mari3.98Baze podataka
U nekim sluajevima, nije poeljno da svi korisnici vide itavlogiki model (tj., sve postojee relacije sauvane u bazi
podataka.)
Npr., pretpostavimo da neki radnik banke treba da zna samo brojkredita i ime filijale nekog korisnika, ali ne treba da zna iznoskredita. Ta osoba treba da vidi relaciju opisanu slijedeimizrazom u relacionoj algebri
customer-name, loan-number, branch_name(borrower loan)
Bilo koja relacija koja nije dio logikog modela (ne postoji u bazikao stvarna relacija) ve se moe korisniku uiniti vidljivom kaovirtuelna relacija, naziva se pogled.
Definicija pogleda
-
8/2/2019 P3 - Relacioni Model
99/152
ETF Banja Luka, Slavko Mari3.99Baze podataka
Pogled se definie pomou iskaza create view koji se pie uformi
create view vas
gdje je bilo koji dozvoljeni izraz kojim se specifikuje upitu relacionoj algebri. Ime pogleda je predstavljeno sa v.
Nakon to se pogled definie, naziv pogleda se moe koristiti zareferenciranje virtuelne relacije koja se generie pogledom.
Definisanje pogleda ne rezultuje kreiranjem nove relacije kojaodgovara rezultatu upitnog izraza
Umjesto toga, definicija pogleda rezultuje uvanjem izraza kojim se
specifikuje pogled;
u upitima koji koriste pogled (kao i druge relacije), pogled sezamjenjuje izrazom kojim je definisan.
Primjeri pogleda
-
8/2/2019 P3 - Relacioni Model
100/152
ETF Banja Luka, Slavko Mari3.100Baze podataka
Posmatrajmo pogled (sa nazivom all-customer) koji se sastoji odfilijala i njihovih klijenata.
Sve korisnike Perryridge filijale moemo nai slijedeim upitom nadrelacijom/pogledom all-customer
create view all-customeras
branch-name, customer-name(depositor account)
branch-name, customer-name(borrower loan)
customer-name
(branch-name= Perryridge
(all-customer))
Auriranje kroz pogled
-
8/2/2019 P3 - Relacioni Model
101/152
ETF Banja Luka, Slavko Mari3.101Baze podataka
Modifikacije baze podataka iskazane preko pogleda moraju seprevesti u modifikacije stvarnih relacija u bazi podataka.
Razmotrimo sluaj gdje osoba ima potrebu da vidi podatke okreditu u loanrelaciji osim podatka o iznosu kredita (amount).Pogled koji je dozvoljen osobi, branch-loan, je definisan kao:
create view branch-loanas
branch-name, loan-number(loan)
S obzirom da je dozvoljeno da koristimo pogled gdje god jedozvoljeno ime relacije, osoba moe da napie:
branch-loanbranch-loan{(Perryridge, L-37)}
Auriranje koristei pogled (Nast.)
-
8/2/2019 P3 - Relacioni Model
102/152
ETF Banja Luka, Slavko Mari3.102Baze podataka
Prethodno umetanje mora rezultovati umetanjem n-torke u stvarurelaciju (tabelu) loaniz koje je branch-loankonstruisam.
Umetanje u loanzahtjeva pored podataka za branch_nameiloan_numberi specifikaciju vrijednosti za amount(iznos). Takvaspecifikacija unosa se moe:
Odbiti, uz slanje poruke o greki.
Prihvatiti, uz umetanje n-torke (L-37, Perryridge, null) u relaciju loan Neka auriranja preko pogleda nije mogue prevesti u auriranja
baze podataka
Kreirati pogled v kao branch-name= Perryridge(account))
v v {(L-99, Downtown, 23)} Ostali se ne mogu prevesti jedinstveno
all-customerall-customer {(Perryridge, John)}
Mora se za umetanje izabrati kredit ili raun,
i kreirati novi broj kredita/rauna!
Pogled definisan drugim pogledima
-
8/2/2019 P3 - Relacioni Model
103/152
ETF Banja Luka, Slavko Mari3.103Baze podataka
Jedan pogled moe biti iskoriten u izrazima kojima se definiedrugi pogled
Za pogled v1kaemo dadirektno zavisiod pogleda v2 ukoliko sev2koristi u izrazu koji definiev1
Za pogled relacije v1kaemo dazavisi odpogleda v2ukoliko v1zavisi direktno od v2 ili postoji put zavisnosti od v1 do v2
Ekspanzija pogleda
-
8/2/2019 P3 - Relacioni Model
104/152
ETF Banja Luka, Slavko Mari3.104Baze podataka
Nain da se definie znaenje pogleda definisanog preko drugihpogleda.
Neka je pogled v1 definisan izrazom e1koji moe u sebisadravati referenciranje drugih pogleda.
Ekspanzija pogleda ponavlja sljedee korake supstitucijepogleda:
repeatNai bilo koju novu virtuelnu relaciju (pogled) viu e1Zamijeni virtuelnu relaciju (pogled) vi izrazom kojim jevidefinisan
untilne postoji vie virtuelnih relacija (pogleda) u e1
Sve dok definicije pogleda nisu rekurzivne, ova petlja sezavrava u konanom broju koraka
Ako su v1, v2 i v3 pogledi, navesti primjer kada imamorekurzivnu definiciju pogleda !
Relacioni raun n-torki (tuple ralationalcalculus)
-
8/2/2019 P3 - Relacioni Model
105/152
ETF Banja Luka, Slavko Mari3.105Baze podataka
calculus)
Neproceduralni upitni jezik, gdje je forma svakog upita{t| P(t) }
Rezultat upita je skup svih n-torki t za koje je predikat Pistinit za t
t je n-torka varijabla (tuplevariable), t[A] oznaava vrijednostvarijable tna atributu A
troznaava da n-torka tpripada relaciji r
Pje formulaslina formulama u predikatskom raunu
U formuli moe biti specifikovano vie tuplevarijabli
Formula Predikatnog Rauna
-
8/2/2019 P3 - Relacioni Model
106/152
ETF Banja Luka, Slavko Mari3.106Baze podataka
Elementi koji ine formulu su:
1. ntorka promjenljive, relacije i operator lanstva (npr. t r)
2. Skup atributa i konstante
3. Skup operatora komparacije: (e.g., , , , , , )
4. Skup operatora povezivanja: and (), or (v) not ()
5. Implikacija (): x y, if x if true, then y is true
xyxv y
6. Skup kvantifikatora:
tr (Q(t)) postoji n-torka tu relaciji r
takva da je predikat Q(t) istinit
tr(Q(t)) Qje istinit za sve n-torke tu relaciji r
Varijable tje slobodna promjenljiva, ako nije kvantifikovana sa ili .
U suprotnom, t je vezana (bound) promjenljiva.
RELACIONI RAUN n-torki formalnadefinicija
-
8/2/2019 P3 - Relacioni Model
107/152
ETF Banja Luka, Slavko Mari3.107Baze podataka
j
Forma Izraza: {t |P(t)}gdje je tn-torka (tuple), a P formula-
Predikat. Formula se izgrauje od Atoma.Atomi su:
s r, gdje je stuple varijabla a rrelacija ( n-torka sje u relaciji r)
s[x] u[y], gdje su s, utuple varijable, x, yatributi, a operatorporeenja (, , =, , , )
s[x] c, gdje je ckonstanta u domenu atributa x
Formule
Atom je formula
Ako je P1 formula, onda je formula i P1and (P
1)
Ako su P1 iP2formule, onda su formule i P1 P2; P1 P2i P1 P2
Ako je P1(s) formula koja sadri slobodnu tuple varijablu s, ondasu:
s r(P1(s)) i s r(P1(s))takoe formule
Primjer poslovnog sistema banke
-
8/2/2019 P3 - Relacioni Model
108/152
ETF Banja Luka, Slavko Mari3.108Baze podataka
branch (branch-name, branch-city, assets)
customer (customer-name, customer-street, customer-city) account (account-number, branch-name, balance)
loan (loan-number, branch-name, amount)
depositor (customer-name, account-number)
borrower (customer-name, loan-number)
Primjer upita
-
8/2/2019 P3 - Relacioni Model
109/152
ETF Banja Luka, Slavko Mari3.109Baze podataka
Nai broj kredita, ime filijale, i iznosza date kredite saiznosima preko $1200
Nai broj kredita za svaki kredit iji je iznos vei od $1200
Uoiti da je rezultat relacija na emi (loan-number). Ova rezultantna
relacija je implicitno definisana upitom (tuplevarijabla tje definisanasamo na loan-numberatributu).
{t |sloan (t[loan-number] = s[loan-number] s[amount] 1200)}
{t| tloant[amount] 1200}
Primjeri upita
-
8/2/2019 P3 - Relacioni Model
110/152
ETF Banja Luka, Slavko Mari3.110Baze podataka
Nai imena svih korisnika koji imaju kredit, raun, ili oboje ubanci
{t |sborrower( t[customer-name] = s[customer-name])udepositor( t[customer-name] = u[customer-name])
Nai imena svih korisnika koji imaju i kredit i raun u banci
{t |sborrower( t[customer-name] = s[customer-name])udepositor( t[customer-name] = u[customer-name])
Primjer upita
-
8/2/2019 P3 - Relacioni Model
111/152
ETF Banja Luka, Slavko Mari3.111Baze podataka
Nai imena svih korisnika koji imaju kredit u Perryridge filijali
{t |sborrower( t[customer-name] = s[customer-name]uloan(u[branch-name] = Perryridge
u[loan-number] = s[loan-number]))vdepositor(v[customer-name] =t[customer-name]) }
Nai imena svih korisnika koji imaju kredit u Perryridge filijali, alinemaju raun ni u jednoj filijali banke
{t |sborrower(t[customer-name] = s[customer-name]uloan(u[branch-name] = Perryridge
u[loan-number] = s[loan-number]))}
Primjer upita
-
8/2/2019 P3 - Relacioni Model
112/152
ETF Banja Luka, Slavko Mari3.112Baze podataka
Nai imena svih korisnika koji imaju kredit u Perryridge filijali, igradove u kojima ive
{t |sloan(s[branch-name] = Perryridgeuborrower (u[loan-number] = s[loan-number]
t[customer-name] = u[customer-name]) vcustomer (u[customer-name] = v[customer-name]
t[customer-city] = v[customer-city])))}
Primjer upita
-
8/2/2019 P3 - Relacioni Model
113/152
ETF Banja Luka, Slavko Mari3.113Baze podataka
Nai imena svih korisnika koji imaju raun u svim filijalama kojise nalaze u Brooklynu:
{t | c customer (t[customer.name] = c[customer-name])
sbranch(s[branch-city] = Brooklynuaccount ( s[branch-name] = u[branch-name]
v
depositor ( t
[customer-name
] = v[customer-name] v[account-number] = u[account-number] )) )}
Sigurnost izraza
-
8/2/2019 P3 - Relacioni Model
114/152
ETF Banja Luka, Slavko Mari3.114Baze podataka
Mogue je specifikovati izraze u relacionom raunu n-torki, takveda se kao rezultat generiu beskonane relacije.
Na primjer, {t | (tr)} rezultuje beskonanom relacijom.
Da bi se izbjegle ovakve situacije, skup dozvoljenih izraza seograniava na sigurne izraze.
Izraz {t| P(t)}u relacionom raunu n-torki je siguranukoliko jesvaka komponenta rezultata iz domena formule P (dom(P) ).Domen formule P je skup svih vrijednosti koje se referenciraju uP, kao i mogue vrijednosti tuplepromjenljivih koje se pojavljujuu P. (tuple(n-torka)promjenljive mogu imati vrijednosti bilo kojen-torke korespondentnih relacija baze podataka)
Zapaanje: ovo nije samo sintaksni uslov, ve onemoguava
generisanje beskonanih relacija. Npr. izraz { t| t[A]=5 true } nije siguran --- definie beskonaan
skup ije se vrijednosti atributa ne pojavljuju ni u jednoj relaciji,n-torci niti konstanti u P.
Relacioni raun domena
-
8/2/2019 P3 - Relacioni Model
115/152
ETF Banja Luka, Slavko Mari3.115Baze podataka
Neproceduralni upitni jezik je po snazi ekvivalentan relacionom
raunu n-torki.
Svaki upit je izraz oblika:
{ x1, x2, , xn | P(x1, x2, , xn)}
x1, x2, , xn predstavljaju domenske varijable
Ppredstavlja formulu slinu formuli u predikatskom raunu
RELACIONI RA UN DOMENA (3.5.3) DRC izraz: { | P(x1, x2, ..., xn) }
gdje x i = 1 n reprezentuju variable odreenog
-
8/2/2019 P3 - Relacioni Model
116/152
ETF Banja Luka, Slavko Mari3.116Baze podataka
gdje xi, i =1, , n, reprezentuju variable odreenogdomena,
a P je formula. Formula se izgrauje od atoma. Atomi:
r, gdje je r relacija na natributa a xi, i =1, , n sudomenske varijable ili domenske konstante
x y, gdje su x, ydomenske varijable a operator komparacije-
poreenja (, , =, , , )x c, gdje je ckonstanta u domenu atributa x, a xdomenskavarijabla
Formule:
Atom je formula
Ako je P1
formula, onda su formule i P1 i (P1)
Ako su P1 iP2formule, onda su formule i P1 P2; P1 P2i P1 P2
Ako je P1(x) formula, gdje je xdomenska varijabla, onda su:
x (P1(x)) i x (P1(x)) takoe formule
Primjer upita
-
8/2/2019 P3 - Relacioni Model
117/152
ETF Banja Luka, Slavko Mari3.117Baze podataka
Nai broj kredita, ime filijalei iznosza kredite preko $1200
{c, a | l(c, lborrowerb(l, b, aloan
b= Perryridge))}or {c, a | l(c, lborrowerl, Perryridge, a loan)}
Nai imena svih korisnika koji imaju kredit u Perryridge filijali i iznoskredita:
{c | l, b, a(c, lborrowerl, b, aloana> 1200)}
Nai imena svih korisnika koji imaju kredit preko $1200
{l, b, a | l, b, aloana> 1200}
Primjer upita
-
8/2/2019 P3 - Relacioni Model
118/152
ETF Banja Luka, Slavko Mari3.118Baze podataka
Nai imena svih korisnika koji imaju kredit, raun ili oboje uPerryridge filijali:
{c | s, n(c, s, n customer)
x,y,z(x, y, zbranchy= Brooklyna,b( a, x, baccountc,adepositor))}
Nai imena svih korisnika koji imaju raun u svim filijalamalociranim u Brooklyn:
{c | l(c, lborrowerb,a(l, b, aloanb= Perryridge))
acc(c, accdepositorb,n(acc, b, naccountb= Perryridge))}
-
8/2/2019 P3 - Relacioni Model
119/152
ETF Banja Luka, Slavko Mari3.119Baze podataka
Kraj modula 5
Sigurnost izraza
-
8/2/2019 P3 - Relacioni Model
120/152
ETF Banja Luka, Slavko Mari3.120Baze podataka
Izraz { x1, x2, , xn | P(x1, x2, , xn)}
je siguran ukoliko su ispunjeni sljedei uslovi:
1. Sve vrijednosti koje se pojavlljuju u n-torkama rezultata izrazasu vrijednosti iz dom(P) (tj., vrijednosti rezultata su vrijednostikoje se pojavljuju ili u Pili u nekoj n-torci relacije koja se
pominje u P).2. Za svaku there exists podformulu forme x(P1(x)),
podformula ima true vrijednost ako i samo ako postojivrijednost xiz dom(P1) takva da je P1(x) true.
3. Za svaku for all podformulu forme x (P1 (x)),
podformula ima vrijednost trueako i samo ako je P1(x) true(istinito) za sve vrijednosti xiz dom(P1).
Result of branch-name =Perryridge (loan)
-
8/2/2019 P3 - Relacioni Model
121/152
ETF Banja Luka, Slavko Mari3.121Baze podataka
Loan Number and the Amount of the Loan
-
8/2/2019 P3 - Relacioni Model
122/152
ETF Banja Luka, Slavko Mari3.122Baze podataka
Names of All Customers Who HaveEither a Loan or an Account
-
8/2/2019 P3 - Relacioni Model
123/152
ETF Banja Luka, Slavko Mari3.123Baze podataka
Customers With An Account But No Loan
-
8/2/2019 P3 - Relacioni Model
124/152
ETF Banja Luka, Slavko Mari3.124Baze podataka
Result of borrowerloan
-
8/2/2019 P3 - Relacioni Model
125/152
ETF Banja Luka, Slavko Mari3.125Baze podataka
Result of b h P id (borrower loan)
-
8/2/2019 P3 - Relacioni Model
126/152
ETF Banja Luka, Slavko Mari3.126Baze podataka
Result of branch-name =Perryridge (borrower loan)
Result of customer-name
-
8/2/2019 P3 - Relacioni Model
127/152
ETF Banja Luka, Slavko Mari3.127Baze podataka
Result of the Subexpression
-
8/2/2019 P3 - Relacioni Model
128/152
ETF Banja Luka, Slavko Mari3.128Baze podataka
Largest Account Balance in the Bank
-
8/2/2019 P3 - Relacioni Model
129/152
ETF Banja Luka, Slavko Mari3.129Baze podataka
Customers Who Live on the Same Street and In theSame City as Smith
-
8/2/2019 P3 - Relacioni Model
130/152
ETF Banja Luka, Slavko Mari3.130Baze podataka
y
Customers With Both an Account and a Loanat the Bank
-
8/2/2019 P3 - Relacioni Model
131/152
ETF Banja Luka, Slavko Mari3.131Baze podataka
Result of customer-name, loan-number, amount(borrower loan)
-
8/2/2019 P3 - Relacioni Model
132/152
ETF Banja Luka, Slavko Mari3.132Baze podataka
Result of branch-name(customer-city =H i (customer account depositor))
-
8/2/2019 P3 - Relacioni Model
133/152
ETF Banja Luka, Slavko Mari3.133Baze podataka
Harrison(customer account depositor))
Result of branch-name(branch-city =B kl (branch))
-
8/2/2019 P3 - Relacioni Model
134/152
ETF Banja Luka, Slavko Mari3.134Baze podataka
Brooklyn(branch))
Result of customer-name, branch-name(depositor account)
-
8/2/2019 P3 - Relacioni Model
135/152
ETF Banja Luka, Slavko Mari3.135Baze podataka
The credit-infoRelation
-
8/2/2019 P3 - Relacioni Model
136/152
ETF Banja Luka, Slavko Mari3.136Baze podataka
Result of customer-name, (limit credit-balance)ascredit available(credit-info).
-
8/2/2019 P3 - Relacioni Model
137/152
ETF Banja Luka, Slavko Mari3.137Baze podataka
credit-available(c ed t o)
The pt-worksRelation
-
8/2/2019 P3 - Relacioni Model
138/152
ETF Banja Luka, Slavko Mari3.138Baze podataka
The pt-worksRelation After Grouping
-
8/2/2019 P3 - Relacioni Model
139/152
ETF Banja Luka, Slavko Mari3.139Baze podataka
Result of branch-namesum(salary)(pt-works)
-
8/2/2019 P3 - Relacioni Model
140/152
ETF Banja Luka, Slavko Mari3.140Baze podataka
Result of branch-namesum salary, max(salary) asmax-salary(pt-works)
-
8/2/2019 P3 - Relacioni Model
141/152
ETF Banja Luka, Slavko Mari3.141Baze podataka
The employeeand ft-worksRelations
-
8/2/2019 P3 - Relacioni Model
142/152
ETF Banja Luka, Slavko Mari3.142Baze podataka
The Result of employee ft-works
-
8/2/2019 P3 - Relacioni Model
143/152
ETF Banja Luka, Slavko Mari3.143Baze podataka
The Result of employee ft-works
-
8/2/2019 P3 - Relacioni Model
144/152
ETF Banja Luka, Slavko Mari3.144Baze podataka
Result of employee ft-works
-
8/2/2019 P3 - Relacioni Model
145/152
ETF Banja Luka, Slavko Mari3.145Baze podataka
Result of employee ft-works
-
8/2/2019 P3 - Relacioni Model
146/152
ETF Banja Luka, Slavko Mari3.146Baze podataka
Tuples Inserted Into loanand borrower
-
8/2/2019 P3 - Relacioni Model
147/152
ETF Banja Luka, Slavko Mari3.147Baze podataka
Names of All Customers Who Have aLoan at the Perryridge Branch
-
8/2/2019 P3 - Relacioni Model
148/152
ETF Banja Luka, Slavko Mari3.148Baze podataka
E-R Diagram
-
8/2/2019 P3 - Relacioni Model
149/152
ETF Banja Luka, Slavko Mari3.149Baze podataka
The branchRelation
-
8/2/2019 P3 - Relacioni Model
150/152
ETF Banja Luka, Slavko Mari3.150Baze podataka
The loanRelation
-
8/2/2019 P3 - Relacioni Model
151/152
ETF Banja Luka, Slavko Mari3.151Baze podataka
The borrowerRelation
-
8/2/2019 P3 - Relacioni Model
152/152