p3 - relacioni model

Upload: preradovicg

Post on 05-Apr-2018

246 views

Category:

Documents


2 download

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