Релациони модел података

Download Report

Transcript Релациони модел података

Profesor:
Prof. Dr Milorad K. Banjanin
Osnove relacionog
modela podataka
Strukturalna, operacijska i
integritetna komponenta
relacionog modela podataka
Student:
Vasiljević Milan
Jedan od aspekata sa kog
se mogu izučavati baze
podataka
Modeli
podataka su
specifične
teorije pomoću
kojih se
specifikuje i
projektuje neka
konkretna baza
podataka ili
informacioni
sistem uopšte.
Komponenete modela podataka
Struktura
modela
Ograničenja
Ograničenja na
vrijednosti podataka u
modelu, koja u svakom
trenutka posmatranja
moraju biti zadovoljena.
Ova ograničenja se
obično nazivaju
statičkim pravilima
integriteta baze
podataka.
Skup koncepata za
opis objekata
sistema, njihovih
atributa i njihovih
međusobnih veza
Operacije
Operacije nad konceptima
strukture, preko kojih je
moguće prikazati i mjenjati
vrijednosti podataka u bazi
Dinamička pravila
integriteta
Strukturalna komponenta
primitivni i složeni koncepti ,”gradivni” elementi modela podataka
pravila za kreiranje složenih koncepata
služi za modeliranje LSA, kao statičke strukture sistema – šeme BP
Operacijska komponenta
upitni jezik (QL)
jezik za manipulisanje podacima (DML)
jezik za definiciju podataka (DDL)
služi za modeliranje dinamike izmene stanja
Integritetna
komponenta
skup tipova ograničenja
(uslova integriteta)
.
služi za modeliranje
ograničenja nad podacima
u BP
Nivoi
apstrakcije
određeni modelom podataka.
nivo konteksta
• nivo tipa
opisuje npr. nivo logičke
strukture
atributa - šeme
. nivo konkretizacije
• nivo pojave tipa
opisuje npr. nivo logičke
strukture podataka
Razlikujemo pet vrsta modela
podataka
• Hijerarhijski model
• Mrežni model
• Model objekti-veze
• Relacioni model
• Objektni model
Strukturalna komponenta
I
Relacioni model podataka
Primitivni kocepti u RMP
Atribut – reprezentuje
svojstvo klase entiteta
ili veza u realnom
sistemu (RS )
Domen – specifikacija
skupa mogućih
vrijednosti koje neki
atributi mogu da
dobiju
Polazna pretpostavka strukturalne
komponente RMP
Na kojoj se zasnivaju neke tehnike
projektovanja relacione šeme BP
Poznat je skup svih atributa sistema
– univerzalni skup atributa
U = {A1,…, An}
Poznat je skup svih domena sistema
– univerzalni skup domena
D = {D1,…, Dk}
Pravilo pridruživanja domena
atributima
• svakom atributu obavezno se pridružuje tačno jedan
domen
Dom: U → D, (Ai U)(Dom(Ai)  D)
U :
A1, A2, …, Ai, Aj, …, An
D1
D2
Di
Dk
Primjer :
U = { JMB, IME, POL, SPR, NAP }
D = {DIDS, DIME, DPOL, DNAP }
– Opis semantike
navedenih atributa
• JMB – matični broj
radnika
• IME – ime radnika
• POL – pol
• SPR – šifra projekta
• NAP – naziv projekta
– Opis semantike
uvedenih domena
• DIDS – 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 dužine
30}
Pridruživanje domena atributima
U = {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 dužine 30}
Konvencije u označavanju
– skup atributa X = {A, B, C} skraćeno se
zapisuje u formi
X = A+B+C
X = ABC
ili
obavezno u slučaju
višeslovnih
mnemoničkih
oznaka atributa
– izraz X  Y, gdje su X i Y skupovi
atributa, skraćeno se zapisuje kao XY
Primitivni koncepti nivoa
konteksta
– domen
– atribut
•
Primitivni koncept nivoa
konkretizacije
– vrijednost
•
Kreiranje svih ostalih (složenih) koncepata
strukturalne komponente RMP
– kombinovanjem (strukturiranjem) primitivnih
koncepata
– korišćenjem definisanih pravila u RMP
•
Skup primitivnih i složenih koncepata RMP
– za opis LSA (nivo konteksta) i LSP (nivo
konkretizacije)
Nivo konteksta
Nivo konkretizacije
Domen
Vrijednost
Atribut
Podatak
Skup atributa
Torka (n - torka)
Šema relacije
Relacija
Šema BP
Baza podataka
Torka
– REPREZENTUJE JEDNU POJAVU ENTITETA ILI VEZE
– pomoću torke se svakom atributu, iz nekog skupa
atributa, dodjeljuje konkretna vrijednost-iz skupa mogućih
vrijednosti definisanog domenom
U = {A1,…, An}
DOM =

n
I =1
(dom(Ai))– skup svih mogućih vrijednosti
torka predstavlja preslikavanje
t : U→DOM, (Ai U)(t(Ai)  dom(Ai))
Primjer
– U = {JMB, IME, POL, SPR,
NAP}
– Torka t1 definisana je na
Torka t1 može
se
sledeći
način
prikazati kao
• tskup
1(JMB) = 101
podataka
• t (IME) = Ana
t1 = {(JMB, 101),1(IME,
• t1ž),
(SPR) = 1100
Ana), (POL,
t1(POL) = ž
(SPR, 1100), (NAP,
Univerzitetski
IS)}
•t1(NAP)=Univerzitetski
IS–
– Zadata je i torka t2
t2 = {(JMB, 210), (IME,
Aca), (POL, m),
(SPR, 0105), (NAP,
Polaris)}
Restrikcija (“skraćenje”) torke t
– na skup atributa X  U
– oznaka: t[X]
– svakom atributu iz skupa X pridružuje se
ona
Primjer
imala polazna torka t
– t2vrijednost
= {(JMB, koju
210),je(IME,
Aca), (POL, m),
– formalno
0105), (NAP, Polaris)}
• X (SPR,
U, t: U→DOM,
je X = JMB+IME
• t[X]:–XNeka
→ DOM
(A
X)(t[X](A)
t(A)) (IME, Aca)}
– t2[X]
= {(JMB,= 210),
• Relacija
Primjer
Primjer
– nad skupom atributa U
–U
{JMB,
IME,
–R
==
{A,
B, C},
R POL,
 U SPR, NAP}
– r1(U)
= {t1, t2skup
}
–•predstavlja
konačan
torki
dom(A) = {a1, a2}
• t1svih
= {(JMB,
101),
(IME,
Skup
mogućih
torki
nadAna),
dom(B)
= {b
,(SPR,
b2} realnih
–•reprezentuje
entiteta
1skup
(POL,
ž),
1100),
skupom atributa U - Tuple(U)
•ilidom(C)
{c1, c2}
veza
(NAP,=Univerzitetski
IS)}
– t1•=t2{(A,
a1), (B,
b1(IME,
), (C, Aca),
c1)}
= {(JMB,
210),
– formalno
(POL,
(SPR,
0105),
– t2 = {(A,
a2m),
), (B,
b2),
(C, c2)}
Polaris)}
r(U)
{t | t:(NAP,
|
r
|

ℕ0
– t3= {(A,
aU→DOM},
),
(B,
b
),
(C,
c
)}
1
1
2
– r(R) = {t1, t2, t3}
Radnik
t1
JMB
IME POL SPR
NAP
101pomoćuAna
ž 1100 Univerzitetski
tabele
IS
relaciju predstavlja kompletansadržaj tabele
t2
Aca kratko,
m tabela
0105
210
Polaris
poredak atributa (kolona tabele) ne utiče na
informacije koje sa sobom nosi relacija - nebitan
r(R)
A
B
C
t1
a1
b1
c1
t2
t3
poredak torki u relaciji ne utiče na informacije koje sa
sobom nosi relacija - nebitan
U relaciji se ne mogu pojaviti dve identične torke
a
b2 dva puta prikazana
c2
– to je onda 2ista torka, samo
a1
b1
c2
Operacijska
komponenta
Jezik za
manipulaciju
podacima u RMP
Jezik za definiciju
podataka u RMP
Upitni jezik u
RMP
– operacije za ažuriranje relacija
• dodavanje nove torke (Add)
• brisanje postojeće torke (Delete)
• modifikacija podataka postojeće
torke (Update)
– operacije za upravljanje šemom
BP
• kreiranje, brisanje i
modifikovanje delova šeme BP
– operacije za izražavanje upita
nad jednom relacijom,
ili skupom relacija
• pružanje podataka na uvid
korisniku
Upitni jezik sačinjavaju
x
operatori za izražavanje upita
x
pravila za formiranje operanada upita -izraza
x
zasnovana na
teoriji skupova
i skupovnih
pravila
operacija
za primenu tih operatora
Vrste teoretskih upitnih jezika u RMP
x
relaciona algebra
x
relacioni račun
nad domenima
– zasnovani na
predikatskom
računu I reda
nad torkama
Osnovne skupovne operacije nad
relacijama
Unija r(R)  s(R) = {t | t  r  t  s}
r s
Presjek r(R) ∩ s(R) = {t | t  r  t  s}
Razlika r(R) − s(R) = {t | t  r  t ∉ s}
Primjer
r
A
B
s
A
B
a1
b1
a1
b1
a2
b2
a3
b3
rs
r-s
A
a1
a2
B
b1
b2
a3
b3
A
B
a1
b1
A
B
a2
b2
Primjer
Selekcija
Selektovaće se samo one
torke, za koje je formula F
tačna
• zahtjeva se formalno
definisanje sintakse za
zapisivanje
selekcionih
formula Ftipa F
logičkom
formulom
σF(r(R)),
F ::= PLT > 5000
torki
iz
relacije
omogućava izbor
(selektovanje) torki relacijeizražava se kriterijum po
po
kojem
r
JMB IME
POL
SPR
PLT
nekom kriterijumu se torke relacije r selektuju
σF (r(R)) = {t  r | F (t)}
101
Ana
ž
11
3400
Aca
Upit
– prikazati
čija
JMB radnike
IME
POL
110 Ivo
od 4000 i rade na
110sa šifrom
Ivo m
projektu
11
111 Olja
– σ PLT111
> 4000  SPR
=11 (r) ž
Olja
m
14
4200
102
je
plataPLT
veća
SPR
m
11 7000
11 7000
ž
11
11 7200
7200
σF
Projekcija (restrikcija) relacije
Primjer
P- pilot
izdvajanje
vrijednosti
A - tip aviona
pojedinih
kolona
izLrelacije
- broj leta
r
 PA(r(PAL))
A
L
Aca
747
101
Ivo
projektovanje
Aca
relacije na
podskup skupaAna
atributa
Upit:
– prikazati pilote i tipove
aviona na kojima lete:
–
P
X R
737
101
747
DC9
102
110
 X(r(R)) = {t[X] | t 
P
A
Aca
Ivo
747
737
Ana
DC9
r(R)}
Prirodni spoj relacija
r ► ◄s
A
B
C
D
Date su relacije r(R) i s(S)
a1
b1
spajanje
torki različitih
r(R)
► ◄ s(S) = {t  Tuple(RS) | t[R]
a1
b1
relacija po osnovu
istih
a1
b3
Primjer
vrijednosti zajedničkih
atributa
r
A
B
C
a1
b1

r ct[S]
1
c3
d1

s}
d
2
d3
B
C
D
c1
b1
c1
d1
b1
c1
d2
b3
c3
d3
b4
c2
d2
a1
b2
c2
a1
b3
c3
s
c1
Primjer
Radproj
Radnik
Upit Upit
JMB
SPR
– Izlistati
matične
brojeve ibrojeve
imena radnika, koji
rade na
–
izlistati
matične
JMB IME PLT
projektuPOL
sa šifrom 11
radnika, šifre i nazive
101
101projekata
Ana
ž rade
–
JMB+IME(3400
σna
SPR =
11 (Radproj
) ► ◄ Radnik), ili
kojima
101
Radproj
Projekat
JMB+IME4200
(σ►
SPR◄
= 11
(m
Radproj ► ◄ Radnik))
102 – –Aca
102
110
Ivo
7000
m
JMB ž
SPR
111 Olja 7200
101
11
SPR
NAP
101
14
JMB
IME
11
X25
102
14
Projekat
101
Ana
13
Polaris
110
13
110
Ivo
14
Univ.
110
11
IS
11
14
14
110
13
NAP
110
11
x25
Univ. Is
Univ. IS
Polaris
X25
Dekartov proizvod relacija
Theta spajanje relacija
spajanje formiranjem svih mogućih kombinacija torki
iz dvije relacije
R∩S=∅
r(R) × s(S) = {t  Tuple(RS) | t[R]  r  t[S]  s}
selektovanje torki po nekom
kriterijumu iz Dekartovog
proizvoda relacija
r(R) ► ◄ s(S) =
F
σF(r × s)
r
Primjer
– date su relacije
• r - red vožnje Niš – Beograd
• s - red vožnje Beograd - Novi Sad
PNI
DBG
06:00 09:00
08:00 10:30
13:00 16:00
Upit
– pregled svih mogućih varijanti za
putovanje od Niša
do Novog Sada s presedanjem u Beogradu
–
r►◄
r►◄
DBG < PBG
DBG < PBG
s=
s
s
σDBG < PBG (r × s)
PNI
DBG
PBG
PBG
DNS
10:00
11:15
12:00
13:30
DNS
06:00 09:00 10:00 11:15
06:00 09:00 10:00 13:30
08:00 10:30 12:00 13:30
Pojava nad šemom relacije
(R, O)
x
Šema relacije
x
bilo koja relacija r(R), takva da zadovoljava
sva
ograničenja iz skupa O
imenovani par
N(R, O)
N - naziv šeme relacije
O - skup ograničenja
(može biti izostavljen)
šeme relacije
R - skup atributa šeme
relacije
Primer
– Data je šema relacije
Letovi({P, A, L}, O)
– O = {“Pilot može da leti samo na jednom tipu aviona”}
Let 1
P
A
L
Pop 747 101
Pop 747 102
Ana 737 103
Let 2
P
A
L
Pop 747 101
Pop 737 102
Ana 737 103
Da li prikazane relacije predstavljaju pojave nad
datom šemom relacije?
Relaciona šema
baze podataka
(imenovani) par
(S, I)
I - skup
S - skup šema relacija
S = {(Ri, Oi) | i  {1,..., n}}
međurelacionih
ograničenja
Primjer
Zadate su šeme
relacija
Radnik({JMB, IME, PRZ, DATR},
{“Ne postoje dva radnika sa istom vrijednošću za JMB. Svaki
radnik posjeduje vrijdnost za JMB.”})
Angažovanje({SPR, JMB, BRC},
{“Ne može se isti radnik na istom projektu angažovati više od
jedanput. Pri angažovanju, vrijednosti za JMB i SPR su uvijek
poznate.”})
Projekat({SPR, NAP},
{“Ne postoje dva projekta sa istom vrijdnošću za SPR. Svaki
projekat posjeduje vrijdnost za SPR.”})
S = {Radnik, Projekat, Angažovanje}
I={
“radnik ne može biti angažovan na projektu, ako nije zaposlen”;
“na projektu ne može biti angažovan ni jedan radnik, dok
projekat ne bude registrovan”
}
Relaciona baza podataka
jedna pojava nad zadatom relacionom šemom baze
podataka (S, I)
s: S → {ri | i  {1,..., n}}, ( i)s(Ri, Oi) = ri
svakoj šemi relacije iz skupa S odgovara jedna
njena pojava
skup relacija s mora da zadovoljava
sva
međurelaciona ograničenja iz skupa I
reprezentuje jedno stanje realnog sistema
ažurira se, jer promene stanja realnog sistema treba
da prate odgovarajuće promene podataka u BP
Nivo konteksta
({(R1 , O1),..., (Rn, On)}, I )
Šema BP
statička (sporo
promjenljiva)
kategorija
sistema BP
relaciona BP
dinamička (stalno promejnljiva)
kategorija
sistema BP
Nivo konkretizacije
{r1(R1),..., rn(Rn)}
formalno konzistentnom stanju
suštinski konzistentnom stanju
baza podataka RBP = {ri | i {1,..., n}} nad šemom ako
(S, I) nalazi se u
– se nalazi u formalno
ako
konzistentnom stanju i
– predstavlja vjernu sliku
stanja realnog sistema
» u praksi, nivo pojave
grešaka u BP sveden je na
stanje BP
ispod 2-3%
–( ri  RBP) (ri
zadovoljava sva
ograničenja
Konzistentno
odgovarajuće šeme
(Ri, Oi))
– RBP zadovoljava sva
međurelaciona
ograničenja iskazana
putem I
SUBP može da kontroliše formalnu konzistentnost
Integritetna komponenta
Karakteristike tipa
ograničenja
formalizam za zapisivanje (definicija)
pravilo za interpretaciju (validaciju)
oblast definisanosti
oblast interpretacije
skup operacija nad bazom podataka koje mogu
dovesti do narušavanja ograničenja datog tipa
skup mogućih akcija kojima se objezbeđuje
očuvanje validnosti baze podataka, pri pokušaju
narušavanja ograničenja datog tipa
Definisana putem
tipova ograničenja
tip logičke strukture atributa
nad kojom se ograničenje
definiše
tip logičke strukture
podataka nad kojom se
ograničenje
interpretira
definiše se za svaku
operaciju koja može
dovesti do
narušavanja
ograničenja
8
7
6
5
4
3
2
1
funkcionalna zavisnost
ograničenje referencijalnog
integriteta
zavisnost sadržavanja
ograničenje jedinstvenosti vrijednosti
atributa
integritet entiteta (ograničenje ključa)
ograničenje torke
ograničenje vrijednosti atributa
ograničenje domena
definiše se nad
skupom ili nizom šema
relacija, koji sadrži
bar dva člana
višerelaciono
ograničenje
definiše se
nad tačno
jednom
šemom
relacije
jednorelaciono
(unutarrelaciono,
lokalno)
ograničenje
definiše se izvan
konteksta šeme
relacije
Oblasti definisanosti u RMP
vanrelacion
o
ograničenje
interpretira se nad
barem dvije, bilo
koje relacije
interpretira se nad
tačno jednom
vrijednošću nekog
atributa
interpretira se
nad jednom
torkom bilo
koje relacije
interpretira se
nad skupom
torki bilo koje
relacije
Specifikacija Ograničenje domena
id(D) = (Tip, Dužina, Uslov)
domena
D(id(D), Predef)
logički uslov
tip podatka (primitivni domen), ili
naziv prethodno
domena definisanog domena
oznaka
ograničenje (integritet) domena
predstavlja jedinu obaveznu
predefinisana vrijednost domena
komponentu
specifikacije
ograničenja domena
mora da zadovolji ograničenja tipa,
dužine i uslova
dužina tipa
podatka
ne navodi za domene čiji
tip ne predstavlja primitivni domen
navodi se samo za tipove
podataka (primitivne domene) koji
to zahtevaju
mora da ga zadovoljava svaka
vrijednost iz skupa mogućih
vrijednosti domena
interpretacija ograničenja
moguća za bilo koju
vrijednost – konstantu d
oznaka id(D)(d)
Primjeri
– DPrezime((String, 30, Δ), Δ)
– DDatum((Date, Δ, d ≥ '01.01.1900'), Δ)
– DOcena((Number, 2, d ≥ 5  d ≤ 10), Δ)
• Δ - komponenta u specifikaciji nije zadata
• ω, ili ? (u literaturi)
ili
Nula (nedostajuća, izostavljena)
vrednost
• NULL (u literaturi i SQL-u)
specijalna vrijednost
nula vrijednost a priori
zadovoljava svako
označava se posebnim simbolom
ograničenje domena
moguća značenja
skup mogućih vrednosti svih domena proširuje se
nula vrijednošću
DOM  {ω}
• nepoznata - postojeća vrijednost
atributa
• nepostojeća vrijednost atributa
• neinformativna vrijednost atributa
Specifikacija atributa šeme relacije
Ograničenje vrijednosti atributa
id(N, A) = (Domen, Null)
ograničenje vrijednosti
atributa
oznaka (naziv)
domena atributa
ograničenje nula vrijednosti atributa
• T - dozvola dodjele nula vrijednosti
Atributu u r(N)
•  - zabrana dodele nula vrijednost
i atributu u r(N)
obavezne komponente
specifikacije
• ako se navede
, onda je on važeći
• u protivnom, važeći je
Predef odgovarajućeg
Domena, ili
prvog sledećeg nasleđenog
domena, za koji je Predef
definisan
Ograničenje torke
predstavlja skup ograničenja
vrijednosti atributa,
kojem je pridodat
logički uslov
izražava ograničenja na
moguće vrijednosti unutar
jedne torke
Uslov
formalno, za šemu
relacije N(R, O)
id(N) = id(R) =
({id(N, A) | A  R}, Uslov)
• logički uslov koji svaka torka
mora da zadovolji
• može, u ulozi operanda, da
sadrži bilo koji atribut date
šeme relacije
interpretacija ograničenja
• moguća za bilo koju torku
nad skupom atributa R, id(N)(t)
Ključ šeme relacije
minimalni podskup skupa atributa
šeme relacije, na
osnovu kojeg se jedinstveno može identifikovati
svaka torka relacije nad datom šemom
1.
formalno, X je ključ ako
( u, v  r(R))(u[X] = v[X]  u = v)
2. ( Y  X)(¬ 1.)
oblast interpretacije
skup torki (relacija) nad
datom šemom relacije
u određenim situacijama (u procesu projektovanja
šeme BP) skup ograničenja
šeme relacije zadaje se
samo kao skup ključeva
N(R, K)
šeme relacije N(R, K)
O
G
R
A
N
I
Č
E
Nj
E
K
Lj
Č
A
ključ X  K, X  R
oznaka
primaran (ključni)
Keyatribut
(N, X)
– pripada barem jednom ključu
za sve atribute ključa nula vrijednosti
šeme relacije
su zabranjene
( Ki K)( A Ki)(Null(N, A) =  )
Vrste atributa šeme relacije,
s obzirom na ključeve
neprimaran (sporedni) atribut
koristi se u ulozi
– ne pripada ni jednom ključu šeme
asocijativne
svaka šema relacije
mora(simboličke)
posedovati
relacije
najmanje adrese
jedan za
povezivanje
ključ
(K ≠ ∅) podataka u
• proizilazi iz definicije
pojmaključ,
relacije
jedan relacijama
izabrani
od svih
svaka šema relacije
ekvivalentnih
ključeva
oznaka
Kp
(N)poseduje tačno
treba
da
ekvivalentni ključevi
• svi ključevi skupa ključeva K jedan primarni
ključ
primarni ključ
Ograničenje jedinstvenosti
vrijednosti atributa šeme relacije N(R, O)
Uniqueness Constraint Unique(N, X)
X - skup atributa, X  R
zahteva 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 ograničenja jedinstvenosti u šemi N(R, O)
Uniq = {Unique(N, X) | X  R}
Primjer
Radnik({IME, PRZ, DATR, JMB}, O)
– Uniq  O
– Uniq = {Unique(Radnik, JMB)}
– Unique(Radnik, JMB)
zahjteva da ako radnik posjeduje ne-nula
vrednost za JMB,
onda je ta vrijednost jedinstvena u
relaciji nad šemom Radnik
Skup svih ograničenja šeme
relacije
praktično, kada šemu relacije treba implementirati u
datom SUBP, zadaje se kao unija
skupa ključeva
ograničenja jedinstvenosti
ograničenja torke
N(R, K  Uniq  {id(R)})
Zavisnost sadržavanja
– date su šeme relacije Ni(Ri, Oi) i Nj(Rj, Oj)
– dati su domenski kompatibilni nizovi atributa
X = (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 sadržavanja
Ni[X]  Nj[Y]
– važi 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 Nj
Primjer
– date su relacije r(Ni) i s(Nj)
– važi zavisnost sadržavanja
Ni[B]  Nj[B]
s
r
A
B
a1
b1
a2
b2
B
C
b1
c1
b2
c1
b3
c2
Ograničenje
referencijalnog
integriteta
zavisnost
sadržavanja Ni[X]  Nj[Y],
kada je Y ključ
šeme relacije Nj(Rj, Kj)
Ni - referencirajuća šema
relacije
Nj - referencirana
šema relacije
Primjer
– Angažovanje[JMB]  Radnik[JMB]
– Angažovanje[SPR]  Projekat[SPR]
Radnik
JMB
SPR
101
11
101
11
102
14
Projekat
JMB
IME
PRZ
DATR
101
Ana
Pap
12.12.65.
102
Aca
Tot
13.11.48.
110
Ivo
Ban
01.01.49.
111
Olja
Kun
06.05.71.
SPR
NAP
11
X25
13
Polaris
14
Univ.IS
Funkcionalna zavisnost (FZ)
logička posledica
implikacioni problem
rešiti implikacioni problem
, znači utvrditi da li važi F |= f
• FZ f je logička posledica
od skupa FZ F
• oznaka: F |= f
– ako svaka relacija r
koja zadovoljava F
zadovoljava i f
• skup FZ F2 je logička
posledica od skupa FZ F1
• oznaka: F1 |= F2
– ako ( f  F2)(F1 |= f)
zatvarač (zatvorenje) skupa FZ
ekvivalentnost skupova FZ
• oznaka: F1 ≡ F2
• ako F1 |= F2  F2 |= F1
• oznaka F +
– skup koji sadrži sve logičke
posledice od F
– F+ = {f | F |= f }
• važi za svaki F da F  F +
• F1 |= F2 akko F2 +  F1+
F1 ≡ F2 akko F1 + = F2 +
Armstrongova pravila izvođenja
refleksivnost
Y  X |− X → Y
proširenje
X → Y, W  V |− XV → YW
pseudotranzitivnost
X → Y, YV → Z |− XV → Z
Izvedena pravila izvođenja
Sistem Armstrongovih pravila izvođenja je:
refleksivnost, proširenje i pseudotranizitivnost
Korektan
(neprotivurečan)
svaka logička posledica
nekog skupa FZ
može se izvesti
primenom AP iz tog skupa
svaka FZ koja se
izvede primenom
AP iz nekog skupa FZ
predstavlja logičku
posledicu tog skupa FZ
ne može se eliminisati kao
suvišno ni jedno od tri pravila
izvođenja, a da prethodna
dva svojstva ostanu očuvana
kompletan
Neredundantan
(minimalan)
Funkcionalna
zavisnost
je nepotpuna
je tranzitivna
ako sadrži logički suvšan
atribut na lijevoj strani
ako važi X→Y  F+ i Y→Z  F+,
a ne važi da je Y→X  F+
( X'  X)(X'→Y  F+)
Ključ šeme relacije i FZ
X je ključ šeme relacije (R, F), ako važi
1. iz F slijedi X→R (X→R  F +)
2. X je minimalni skup atributa sa osobinom 1.
¬(X'  X)(X'→R  F +)
Zatvarač (zatvorenje)
skupa atributa
skup svih atributa
koji funkcionalno
zavise od X
X F+ = {A  U | X→A  F +}
Fundamentalan
za teoriju
i praksu
relacionog MP
ne projektuju se
ostala ograničenja
šeme BP, dok se ne
preciziraju ključevi
svih šema relacija
Statička pravila integriteta daju uslove koje podaci treba
da zadovolje u stacionarnom stanju,odnosno po okončanju
bilo koje transakcije
Dinamička pravila integriteta -akcija koju treba
preduzeti kada neka operacija ažuriranja
BP naruši definisano ograničenje
(operacija,ograničenje,akcija)
Ograničenje je uslov
ili skup uslova koji
ograničava
opis objekta ili događaja
Koncept je generalizovana ideja o nekom
fenomenu ili objektu kome
je dat određen naziv
Jezik za manipulisanje podacima DML ( DATA MANIPULATION LANGUAGE )
omogućava korisniku izvršavanje operacija nad BP koja je definisana jezikom
za opis podataka.
Jezik za opis podataka DDL ( DATA DEFINITION LANGUAGE )
omogućava opis podataka na tri nivoa :
Na nivou korisnika u vidu
određene podšeme
Integracija podataka više
aplikacija ostvaruje se
formiranjem nove
logičke strukture nazvane
ŠEMOM BP nad skupom
atributa tipova zapisa
datoteka
Na nivou logičke strukture
podataka
Na nivou fizičke
strukture podataka
SQL (engl. Structured Query Language) je standardni relacioni
upitni jezik. Omogućava definisanje podataka, ažuriranje,
kontrolu, konzistentnost, konkurentni rad i jezik za održavanje
rečnika podataka.
Podšema je dio logicke strukture BP koji je
dovoljan za realizaciju jedne aplikacije
Apstrakcija je kontrolisano uključivanje detalja,
“sakrivanje detalja” odnosno
izvlačenje opštih karakteristika
u opisivanju nekog sistema
Niži nivoi – detaljno opisivanje
sistema
Viši nivoi – jasno opisivanje
sistema
Predikatski račun prvog reda
Afirmativna rečenica koja ima smisla i koja je istinita ili neistinita naziva se sud
Afirmativna rečenica koja ima smisla i koja sadrži jedan ili više promjenljivih
parametara i koja postaje sud uvijek kada parametri iz rečenice dobiju konkretnu
vrijednost naziva se predikat.Broj parametara u predikatu naziva se dužina
predikata. Npr X2 + Y2 < 1
Činjenica da u predikatskom računu promjenljiva x uzima svoju vrijednost
iz nekog skupa R označava se sa x : R
Predikatski ili kvantifikatorski račun je matematička teorija čiji su objekti formule
koje predstavljaju predikate
Definišu se atomske formule i pravila izvođenja složenijih formula
Referencijalni Integritet -(zaštita od pogrešnog unosa) je
sistem pravila da bi se osiguralo da veze između zapisa u
povezanim tabelama budu važeće i da ne bismo slučajno
obrisali ili izmjenili podatke.
Čekiramo samo ako:
- odgovarajuće polje iz prve tabele je primarni ključ
- da povezana polja imaju isti tip podataka
- obe tabele su u istoj bazi
Prema tome referencijalni integritet osigurava postojanost svih
podataka u bazi
Predefinisani (primitivni) domen
– predstavlja predefinisani, atomicni tip podataka
• ugraden u definiciju modela podataka
• prakticno, zavisi od softverskog okruženja koje
podržava
Korisnicki definisani (izvedeni) domen
izabrani model podataka
– definiše se
– primjeri
• korišcenjem vec postojeceg domena
• teoretski: , , , , neograniceni znakovni, boolean
– predefinisanog, ili
• prakticni: integer, float, double, decimal,
– korisnicki definisanog
boolean, string
• putem pravila za definisanje domena, ugradenih u
definiciju modela podataka
– može predstavljati skup
• atomicnih podataka, ili
• složenih podataka
– primjeri
• DOCENA ::= {d | d 5 d 10}
• DNAZIV ::= String(30)