osnove relacionog modela podataka

Click here to load reader

Post on 01-Jan-2016

67 views

Category:

Documents

0 download

Embed Size (px)

DESCRIPTION

Profesor: Prof. Dr Milorad K. Banjanin. Student: Vasiljević Milan. Osnove relacionog modela podataka. Strukturalna, operacijska i integritetna komponenta relacionog modela podataka. Jedan od aspekata sa kog se mogu izučava ti baz e podataka. - PowerPoint PPT Presentation

TRANSCRIPT

Osnove relacionog modela podataka

Osnove relacionogmodela podatakaStrukturalna, operacijska iintegritetna komponentarelacionog modela podataka

Profesor:Prof. Dr Milorad K. BanjaninStudent:Vasiljevi MilanJedan od aspekata sa kog se mogu izuavati baze podataka

Modeli podatakaModeli podataka su specifine teorije pomou kojih se specifikuje i projektuje neka konkretna baza podataka ili informacioni sistem uopte.

2. nivo konkretizacije nivo pojave tipa opisuje npr. nivo logike strukture podataka

Integritetna komponentaNivoi apstrakcijeskup tipova ogranienja (uslova integriteta).nivo konteksta nivo tipa opisuje npr. nivo logike strukture atributa - eme

odreeni modelom podataka.slui za modeliranje ogranienja nad podacima u BP55Razlikujemo pet vrsta modela podatakaHijerarhijski modelMreni modelModel objekti-vezeRelacioni modelObjektni modelStrukturalna komponenta IRelacioni model podataka

Primitivni kocepti u RMP Atribut reprezentuje svojstvo klase entiteta ili veza u realnom sistemu (RS ) Domen specifikacija skupa moguih vrijednosti koje neki atributi mogu da dobijuPolazna pretpostavka strukturalne komponente RMPNa kojoj se zasnivaju neke tehnike projektovanja relacione eme BPPoznat je skup svih atributa sistema univerzalni skup atributa U = {A1,, An}

Poznat je skup svih domena sistema univerzalni skup domena D = {D1,, Dk}Pravilo pridruivanja domena atributimasvakom atributu obavezno se pridruuje tano jedan domen Dom: U D, (Ai U)(Dom(Ai) D)U : A1, A2, , Ai, Aj, , An

D1D2DiDkPrimjer :U = { JMB, IME, POL, SPR, NAP }D = {DIDS, DIME, DPOL, DNAP } Opis semantike navedenih atributaJMB matini broj radnikaIME ime radnikaPOL polSPR ifra projektaNAP naziv projekta Opis semantike uvedenih domenaDIDS domen za identifikacione brojeve {1,2,...,100000}DIME domen za imena radnika {Ana, Aca, Iva}DPOL domen za pol osobe {m,}DNAP domen za nazive projekta {stringovi duine 30}

Pridruivanje domena atributimaU = {JMB, IME, POL, SPR, NAP}D ={DIDS, DIME, DPOL DNAP}

Dom(JMB) = DIDS, dom(JMB) = {1, 2,, 100000}Dom(IME) = DIME, dom(IME) = {Ana, Aca, Iva,}Dom(POL) = DPOL, dom(POL) = {m, } Dom(SPR) = DIDS, dom(SPR) = {1, 2,, 100000}Dom(NAP) = DNAP, dom(NAP) = {stringovi do duine 30}Konvencije u oznaavanju skup atributa X = {A, B, C} skraeno se zapisuje u formi

X = ABCiliX = A+B+Cobavezno u sluaju vieslovnih mnemonikih oznaka atributa izraz X Y, gdje su X i Y skupovi atributa, skraeno se zapisuje kao XY

Primitivni koncepti nivoa konteksta domen atribut

Primitivni koncept nivoa konkretizacije vrijednost Kreiranje svih ostalih (sloenih) koncepatastrukturalne komponente RMP kombinovanjem (strukturiranjem) primitivnihkoncepata korienjem definisanih pravila u RMPSkup primitivnih i sloenih koncepata RMP za opis LSA (nivo konteksta) i LSP (nivo konkretizacije)Nivo kontekstaDomenAtributSkup atributaema relacijeema BPNivo konkretizacijeVrijednostPodatakTorka (n - torka)RelacijaBaza podatakaFormalno za:

U = {A1,, An}

DOM = n I =1 (dom(Ai)) skup svih moguih vrijednostiTorka

torka predstavlja preslikavanjet : UDOM, (Ai U)(t(Ai) dom(Ai))

REPREZENTUJE JEDNU POJAVU ENTITETA ILI VEZE pomou torke se svakom atributu, iz nekog skupaatributa, dodjeljuje konkretna vrijednost-iz skupa moguih vrijednosti definisanog domenomPrimjer U = {JMB, IME, POL, SPR, NAP} Torka t1 definisana je na sledei nain t1(JMB) = 101 t1(IME) = Ana t1(SPR) = 1100t1(POL) = t1(NAP)=Univerzitetski IS

Torka t1 moe se prikazati kao skup podatakat1 = {(JMB, 101), (IME, Ana), (POL, ),(SPR, 1100), (NAP, Univerzitetski IS)} Zadata je i torka t2t2 = {(JMB, 210), (IME, Aca), (POL, m),(SPR, 0105), (NAP, Polaris)} na skup atributa X U oznaka: t[X] svakom atributu iz skupa X pridruuje se ona vrijednost koju je imala polazna torka t formalno X U, t: UDOM, t[X]: X DOM(A X)(t[X](A) = t(A))

Primjer t2 = {(JMB, 210), (IME, Aca), (POL, m),(SPR, 0105), (NAP, Polaris)} Neka je X = JMB+IME t2[X] = {(JMB, 210), (IME, Aca)}Restrikcija (skraenje) torke t Relacija nad skupom atributa U predstavlja konaan skup torki reprezentuje skup realnih entiteta ili veza formalnor(U) {t | t: UDOM}, | r | 0Skup svih moguih torki nadskupom atributa U - Tuple(U)Primjer U = {JMB, IME, POL, SPR, NAP} r1(U) = {t1, t2} t1 = {(JMB, 101), (IME, Ana), (POL, ), (SPR, 1100),(NAP, Univerzitetski IS)} t2 = {(JMB, 210), (IME, Aca), (POL, m), (SPR, 0105),(NAP, Polaris)}Primjer R = {A, B, C}, R U dom(A) = {a1, a2} dom(B) = {b1, b2} dom(C) = {c1, c2} t1 = {(A, a1), (B, b1), (C, c1)} t2 = {(A, a2), (B, b2), (C, c2)} t3 = {(A, a1), (B, b1), (C, c2)} r(R) = {t1, t2, t3}Uobiajena reprezentacija relacije pomou tabelerelaciju predstavlja kompletansadraj tabele kratko, tabela poredak torki u relaciji ne utie na informacije koje sasobom nosi relacija - nebitanU relaciji se ne mogu pojaviti dve identine torke to je onda ista torka, samo dva puta prikazana

RadnikJMBIMEPOLSPRNAPt1101Ana1100Univerzitetski ISt2210Acam0105Polarisr(R)ABCt1a1b1c1t2a2b2c2t3a1b1c2poredak atributa (kolona tabele) ne utie nainformacije koje sa sobom nosi relacija - nebitan PrimjeriOperacijskakomponenta

Jezik za manipulaciju podacima u RMPJezik za definiciju podataka u RMPUpitni jezik u RMP operacije za auriranje relacija dodavanje nove torke (Add) brisanje postojee torke (Delete) modifikacija podataka postojee torke (Update) operacije za upravljanje emom BP kreiranje, brisanje i modifikovanje delova eme BP operacije za izraavanje upita nad jednom relacijom,ili skupom relacija pruanje podataka na uvid korisnikuUpitni jezik sainjavajuoperatori za izraavanje upitaxpravila za formiranje operanada upita -izrazaxpravila za primenu tih operatoraxVrste teoretskih upitnih jezika u RMPxxrelacioni raunrelaciona algebrazasnovana na teoriji skupova i skupovnih operacijanad torkamanad domenima zasnovani na predikatskom raunu I redaOsnovne skupovne operacije nad relacijamaUnija r(R) s(R) = {t | t r t s}Presjek r(R) s(R) = {t | t r t s}Razlika r(R) s(R) = {t | t r t s}PrimjerrABa1b1a2b2sABa1b1a3b3 r sABa1b1a2b2a3b3 r sABa1b1 r - sABa2b22424Selekcijatorki iz relacijeomoguava izbor (selektovanje) torki relacije ponekom kriterijumuF (r(R)) = {t r | F (t)}logikom formulom F izraava se kriterijum po kojemse torke relacije r selektujuSelektovae se samo one torke, za koje je formula Ftana zahtjeva se formalno definisanje sintakse za zapisivanjeselekcionih formula tipa FPrimjerF(r(R)), F ::= PLT > 5000rJMBIMEPOLSPRPLT101Ana113400102Acam144200110Ivom117000111Olja117200FUpit prikazati radnike ija je plata vea od 4000 i rade naprojektu sa ifrom 11 PLT > 4000 SPR=11 (r)JMBIMEPOLSPRPLT110Ivom117000111Olja117200Projekcija (restrikcija) relacijeizdvajanje vrijednosti pojedinih kolona iz relacijeprojektovanje relacije na podskup skupa atributaX R X(r(R)) = {t[X] | t r(R)}PrimjerP- pilotA - tip avionaL - broj letarPALAca747101Ivo737101Aca747102AnaDC9110Upit: prikazati pilote i tipoveaviona na kojima lete: PA(r(PAL))PAAca747Ivo737AnaDC9Prirodni spoj relacijarABCa1b1c1a1b2c2a1b3c3spajanje torki razliitih relacija po osnovu istihvrijednosti zajednikih atributaDate su relacije r(R) i s(S)r(R) s(S) = {t Tuple(RS) | t[R] r t[S] s}PrimjersBCDb1c1d1b1c1d2b3c3d3b4c2d2r sABCDa1b1c1d1a1b1c1d2a1b3c3d3PrimjerRadnikRadprojProjekatJMBIMEPLTPOL101Ana3400102Aca4200m110Ivo7000m111Olja7200JMBSPR1011110114102141101311011SPRNAP11X2513Polaris14Univ. ISUpit izlistati matine brojeve radnika, ifre i naziveprojekata na kojima rade Radproj ProjekatJMBSPRNAP10111x2510114Univ. Is10214Univ. IS11013Polaris11011X25Upit Izlistati matine brojeve i imena radnika, koji rade naprojektu sa ifrom 11 JMB+IME(SPR = 11 (Radproj) Radnik), ili JMB+IME(SPR = 11 (Radproj Radnik))JMBIME101Ana110 IvoDekartov proizvod relacijaspajanje formiranjem svih moguih kombinacija torkiiz dvije relacijeR S = r(R) s(S) = {t Tuple(RS) | t[R] r t[S] s}Theta spajanje relacijaselektovanje torki po nekom kriterijumu iz Dekartovogproizvoda relacijar(R) F s(S) = F(r s)Primjer date su relacije r - red vonje Ni Beograd s - red vonje Beograd - Novi SadrPNIDBG06:0009:0008:0010:3013:0016:00sPBGDNS10:0011:1512:0013:30Upit pregled svih moguih varijanti za putovanje od Niado Novog Sada s presedanjem u Beogradu r DBG < PBG s = DBG < PBG (r s)r DBG < PBG sPNIDBGPBGDNS06:0009:0010:0011:1506:0009:0010:0013:3008:0010:3012:0013:30STRUKTURALNA KOMPONENTA IIema relacijeimenovani parN(R, O)N - naziv eme relacije (moe biti izostavljen)R - skup atributa eme relacijeO - skup ogranienja eme relacije(R, O)xbilo koja relacija r(R), takva da zadovoljava svaogranienja iz skupa OxPojava nad emom relacijePrimer Data je ema relacijeLetovi({P, A, L}, O) O = {Pilot moe da leti samo na jednom tipu aviona}Let 1PALPop747101Pop747102Ana737103Da li prikazane relacije predstavljaju pojave naddatom emom relacije?Let 2PALPop747101Pop737102Ana737103Relaciona ema baze podatakaS - skup ema relacijaS = {(Ri, Oi) | i {1,..., n}}I - skup meurelacionih ogranienja(imenovani) par(S, I)PrimjerZadate su eme relacijaS = {Radnik, Projekat, Angaovanje}I = {radnik ne moe biti angaovan na projektu, ako nije zaposlen;na projektu ne moe biti angaovan ni jedan radnik, dokprojekat ne bude registrovan}(S, I) predstavlja jednu relacionu emu BPRadnik({JMB, IME, PRZ, DATR},{Ne postoje dva radnika sa istom vrijednou za JMB. Svakiradnik posjeduje vrijdnost za JMB.})Angaovanje({SPR, JMB, BRC},{Ne moe se isti radnik na istom projektu angaovati vie odjedanput. Pri angaovanju, vrijednosti za JMB i SPR su uvijekpoznate.})Projekat({SPR, NAP},{Ne postoje dva projekta sa istom vrijdnou za SPR. Svakiprojekat posjeduje vrijdnost za SPR.})Relaciona baza podataka jedna pojava nad zadatom relacionom emom bazepodataka (S, I)s: S {ri | i {1,..., n}}, ( i)s(Ri, Oi) = risvakoj emi relacije iz skupa S odgovara jedna njena pojava skup relacija s mora da zadovoljava svameurelaciona ogranienja iz skupa Ireprezentuje jedno stanje realnog sistemaaurira se, jer promene stanja realnog sistema trebada prate odgovarajue promene podataka u BPBaza podataka({(R1 , O1),..., (Rn, On)}, I ){r1(R1),..., rn(Rn)}Nivo kontekstaNivo konkretizacijeema BPstatika (sporo promjenljiva)kategorijasistema BPrelaciona BPdinamika (stalno promejnljiva)kategorijasistema BPKonzistentno stanje BPSUBP moe da kontrolie formalnu konzistentnostbaza podataka RBP = {ri | i {1,..., n}} nad emom(S, I) nalazi se uformalno konzistentnom stanjusutinski konzistentnom stanjuako( ri RBP) (ri zadovoljava sva ogranienja odgovarajue eme(Ri, Oi)) RBP zadovoljava sva meurelaciona ogranienja iskazanaputem I

ako se nalazi u formalno konzistentnom stanju i predstavlja vjernu sliku stanja realnog sistema u praksi, nivo pojave greaka u BP sveden je na ispod 2-3%Integritetna komponentaKarakteristike tipa ogranienjapravilo za interpretaciju (validaciju)formalizam za zapisivanje (definicija)oblast definisanostioblast interpretacijeskup operacija nad bazom podataka koje mogu dovesti do naruavanja ogranienja datog tipaskup moguih akcija kojima se objezbeuje ouvanje validnosti baze podataka, pri pokuaju naruavanja ogranienja datog tipaDefinisana putem tipova ogranienjatip logike strukture atributa nad kojom se ogranienjedefinietip logike strukture podataka nad kojom se ogranienjeinterpretiradefinie se za svaku operaciju koja moe dovesti donaruavanja ogranienja

ogranienje domenaogranienje vrijednosti atributaogranienje torkeintegritet entiteta (ogranienje kljua)ogranienje jedinstvenosti vrijednosti atributa13542zavisnost sadravanja6ogranienje referencijalnog integriteta 7funkcionalna zavisnost8Tipovi ogranienja u relacionom modelupodatakaOblasti definisanosti u RMPvanrelaciono ogranienjejednorelaciono (unutarrelaciono, lokalno)ogranienjevierelaciono ogranienjedefinie se izvan konteksta eme relacijedefinie se nad tano jednom emom relacijedefinie se nad skupom ili nizom ema relacija, koji sadribar dva lanaOblasti interpretacije u RMPogranienje vrijednostiogranienje torkerelaciono ogranienjemeurelaciono ogranienjeinterpretira se nad tano jednom vrijednou nekog atributainterpretira se nad barem dvije, bilo koje relacijeinterpretira se nad skupom torki bilo koje relacijeinterpretira se nad jednom torkom bilo koje relacijeSpecifikacija domenaD(id(D), Predef)naziv domenaogranienje (integritet) domenapredefinisana vrijednost domenaOgranienje domenaid(D) = (Tip, Duina, Uslov)tip podatka (primitivni domen), ilioznaka prethodno definisanog domenaduina tipa podatkalogiki uslovpredstavlja jedinu obaveznu komponentu specifikacijeogranienja domenanavodi se samo za tipove podataka (primitivne domene) kojito zahtevajune navodi za domene iji tip ne predstavlja primitivni domenmora da ga zadovoljava svaka vrijednost iz skupa moguihvrijednosti domenamora da zadovolji ogranienja tipa, duine i uslovainterpretacija ogranienjamogua za bilo koju vrijednost konstantu doznaka id(D)(d)Primjeri DPrezime((String, 30, ), ) DDatum((Date, , d '01.01.1900'), ) DOcena((Number, 2, d 5 d 10), ) - komponenta u specifikaciji nije zadataNula (nedostajua, izostavljena) vrednostspecijalna vrijednostoznaava se posebnim simbolommogua znaenjaskup moguih vrednosti svih domena proiruje senula vrijednouDOM {} , ili ? (u literaturi) ili NULL (u literaturi i SQL-u) nepoznata - postojea vrijednost atributa nepostojea vrijednost atributa neinformativna vrijednost atributanula vrijednost a priori zadovoljava svako ogranienje domenaSpecifikacija atributa eme relacijeA R, N(R, O) zadaje se za svaki atribut eme relacije(id(N, A), Predef)ogranienje vrijednosti atributapredefinisana vrijednost atributaOgranienje vrijednosti atributaid(N, A) = (Domen, Null)oznaka (naziv) domena atributaogranienje nula vrijednosti atributa T - dozvola dodjele nula vrijednosti Atributu u r(N) - zabrana dodele nula vrijednosti atributu u r(N)obavezne komponente specifikacije ako se navede, onda je on vaei u protivnom, vaei je Predef odgovarajueg Domena, iliprvog sledeeg nasleenog domena, za koji je PredefdefinisanOgranienje torkeizraava ogranienja na mogue vrijednosti unutarjedne torkepredstavlja skup ogranienja vrijednosti atributa,kojem je pridodat logiki uslovformalno, za emu relacije N(R, O)id(N) = id(R) = ({id(N, A) | A R}, Uslov)Uslov logiki uslov koji svaka torka mora da zadovolji moe, u ulozi operanda, da sadri bilo koji atribut dateeme relacijeinterpretacija ogranienja mogua za bilo koju torku nad skupom atributa R, id(N)(t)Klju eme relacijeminimalni podskup skupa atributa eme relacije, naosnovu kojeg se jedinstveno moe identifikovatisvaka torka relacije nad datom emomskup torki (relacija) naddatom emom relacijeoblast interpretacijeformalno, X je klju ako ( u, v r(R))(u[X] = v[X] u = v) ( Y X)( 1.)u odreenim situacijama (u procesu projektovanjaeme BP) skup ogranienja eme relacije zadaje sesamo kao skup kljuevaN(R, K)OGRANIENjE

KLjAeme relacije N(R, K)klju X K, X RoznakaKey(N, X)za sve atribute kljua nula vrijednosti su zabranjene( Ki K)( A Ki)(Null(N, A) = )Vrste atributa eme relacije, s obzirom na kljueveprimaran (kljuni) atribut pripada barem jednom kljuu eme relacijeneprimaran (sporedni) atribut ne pripada ni jednom kljuu eme relacijesvaka ema relacije mora posedovati najmanje jedanklju (K ) proizilazi iz definicije pojma relacijeekvivalentni kljuevi svi kljuevi skupa kljueva Kprimarni kljujedan izabrani klju, od svih ekvivalentnih kljuevaoznaka Kp(N)svaka ema relacije treba da poseduje tano jedan primarnikljukoristi se u ulozi asocijativne (simbolike) adrese zapovezivanje podataka u relacijama

Ogranienje jedinstvenostivrijednosti atributa eme relacije N(R, O)Uniqueness Constraint Unique(N, X)X - skup atributa, X Rzahteva da ne-nula kombinacija vrijednosti atributa bude jedinstvena u relaciji nad N(R, O)formalno ( u, v r(R))(( A X)(u[A] v[A] ) (u[X] = v[X] u = v))oblast interpretacije skup torki - relacija nad datom emom N(R, O)skup svih ogranienja jedinstvenosti u emi N(R, O)Uniq = {Unique(N, X) | X R}PrimjerRadnik({IME, PRZ, DATR, JMB}, O) Uniq O Uniq = {Unique(Radnik, JMB)} Unique(Radnik, JMB)zahjteva da ako radnik posjeduje ne-nulavrednost za JMB,onda je ta vrijednost jedinstvena u relaciji nad emom RadnikSkup svih ogranienja eme relacijepraktino, kada emu relacije treba implementirati udatom SUBP, zadaje se kao unijaskupa kljuevaogranienja jedinstvenostiogranienja torkeN(R, K Uniq {id(R)})

Zavisnost sadravanja date su eme relacije Ni(Ri, Oi) i Nj(Rj, Oj) dati su domenski kompatibilni nizovi atributaX = (A1,..., An), ( l {1,..., n})(Al Ri),Y = (B1,..., Bn), ( l {1,..., n})(Bl Rj),( l {1,..., n})(dom(Al) dom(Bl)) oznaka (pravilo zapisivanja)Ni[X] Nj[Y]

Zavisnost sadravanjaNi[X] Nj[Y] vai ako je za bilo koje dvije relacije r(Ri, Oi) i s(Rj, Oj)zadovoljeno( u r)( v s)( l {1,..., n})(u[Al] = u[Al] = v[Bl]) oblast definisanosti niz od dvije eme relacije oblast interpretacije relacije nad emama Ni i NjPrimjer date su relacije r(Ni) i s(Nj) vai zavisnost sadravanja Ni[B] Nj[B]rABa1b1a2b2sBCb1c1b2c1b3c2Ogranienje referencijalnog integritetaNi - referencirajua ema relacijeNj - referencirana ema relacijezavisnost sadravanja Ni[X] Nj[Y], kada je Y kljueme relacije Nj(Rj, Kj)

JMBIMEPRZDATR101AnaPap12.12.65.102AcaTot13.11.48.110IvoBan01.01.49.111OljaKun06.05.71.SPRNAP11X2513Polaris14Univ.ISJMBSPR101111011110214RadnikProjekatAngaovanjePrimjer Angaovanje[JMB] Radnik[JMB] Angaovanje[SPR] Projekat[SPR] izraz oblika f: XY gde su X i Y skupovi atributa f je oznaka FZ X i Y su podskupovi skupa U oznaka f se, u notaciji, esto izostavljasemantika ako je poznata X vrijednost, poznata je i Y vrijednost svakoj X vrijednosti odgovara samo jedna Y vrijednostrelacija r zadovoljava FZ XY ako vai( u, v r)(u[X] = v[X] u[Y] = v[Y])oblast interpretacije relacija r(N) ili r(U)skup FZ se oznaava sa F F = {JMBIME, JMB+MES+GODBRC,...}Funkcionalna zavisnost (FZ)logika posledicaimplikacioni problemzatvara (zatvorenje) skupa FZekvivalentnost skupova FZ FZ f je logika posledica od skupa FZ F oznaka: F |= f ako svaka relacija r koja zadovoljava F zadovoljava i f skup FZ F2 je logika posledica od skupa FZ F1 oznaka: F1 |= F2 ako ( f F2)(F1 |= f)reiti implikacioni problem, znai utvrditi da li vai F |= f oznaka: F1 F2 ako F1 |= F2 F2 |= F1 oznaka F + skup koji sadri sve logike posledice od F F+ = {f | F |= f } vai za svaki F da F F + F1 |= F2 akko F2 + F1+F1 F2 akko F1 + = F2 +Armstrongova pravila izvoenjaIzvedena pravila izvoenjarefleksivnostY X | X Yproirenje X Y, W V | XV YWpseudotranzitivnost X Y, YV Z | XV Zuniranje desnih stranaX Y, X Z | X YZdekompozicija desnih stranaX Y, V Y | X VX Y, Y Z | X ZSistem Armstrongovih pravila izvoenja je:refleksivnost, proirenje i pseudotranizitivnostKorektan (neprotivurean)kompletansvaka logika posledica nekog skupa FZ moe se izvestiprimenom AP iz tog skupasvaka FZ koja se izvede primenom AP iz nekog skupa FZpredstavlja logiku posledicu tog skupa FZNeredundantan (minimalan)ne moe se eliminisati kao suvino ni jedno od tri pravilaizvoenja, a da prethodna dva svojstva ostanu ouvanaFunkcionalna zavisnost je nepotpunaje tranzitivna ako sadri logiki suvan atribut na lijevoj strani( X' X)(X'Y F+)ako vai XY F+ i YZ F+, a ne vai da je YX F+Klju eme relacije i FZX je klju eme relacije (R, F), ako vai 1. iz F slijedi XR (XR F +) 2. X je minimalni skup atributa sa osobinom 1. (X' X)(X'R F +)Zatvara (zatvorenje) skupa atributaskup svih atributa koji funkcionalnozavise od XX F+ = {A U | XA F +}Generisanje kljua eme relacijepolazi se od R i vri se redukcijaizbacivanje atributa i izraunavanjem zatvaraa ostatkaPojam kljuaFundamentalan za teoriju i praksu relacionog MPne projektuju se ostala ogranienja eme BP, dok se nepreciziraju kljuevi svih ema relacija ____ __ ______Predefinisani (primitivni) domen predstavlja predefinisani, atomicni tip podataka ugraden u definiciju modela podataka prakticno, zavisi od softverskog okruenja koje podravaizabrani model podataka primjeri teoretski: , , , , neograniceni znakovni, boolean prakticni: integer, float, double, decimal, boolean, stringKorisnicki definisani (izvedeni) domen definie se koricenjem vec postojeceg domena predefinisanog, ili korisnicki definisanog putem pravila za definisanje domena, ugradenih u definiciju modela podataka moe predstavljati skup atomicnih podataka, ili sloenih podataka primjeri DOCENA ::= {d | d 5 d 10} DNAZIV ::= String(30)