Professional Documents
Culture Documents
ZbirkaIspitnihZadataka V 28-12-11
ZbirkaIspitnihZadataka V 28-12-11
Elektrotehniki fakultet
Milo Cvetanovi
Ispiti ............................................................................................................................................. 3
Januarski ispitni rok 2007 08.02.2007. ................................................................................. 4
Februarski ispitni rok 2007 05.03.2007. ............................................................................. 11
Junski ispitni rok 2007 05.07.2007. .................................................................................... 16
Septembarski ispitni rok 2007 06.09.2007. ........................................................................ 22
Oktobarski ispitni rok 2007 28.09.2007. ............................................................................ 27
Januarski ispitni rok 2008 07.02.2008. ............................................................................... 32
Februarski ispitni rok 2008 29.02.2008. ............................................................................. 38
Junski ispitni rok 2008 02.07.2008. .................................................................................... 44
Septembarski ispitni rok 2008 04.09.2008. ........................................................................ 49
Oktobarski ispitni rok 2008 24.09.2008. ............................................................................ 54
Januarski ispitni rok 2009 29.01.2009. ............................................................................... 59
Februarski ispitni rok 2009 17.02.2009. ............................................................................. 65
Junski ispitni rok 2009 16.06.2009. .................................................................................... 71
Septembarski ispitni rok 2009 03.09.2009. ........................................................................ 76
Oktobarski ispitni rok 2009 23.09.2009. ............................................................................ 81
Januarski ispitni rok 2010 24.01.2010. ............................................................................... 86
Februarski ispitni rok 2010 16.02.2010. ............................................................................. 91
Junski ispitni rok 2010 13.06.2010. .................................................................................... 96
Septembarski ispitni rok 2010 05.09.2010. ...................................................................... 101
Oktobarski ispitni rok 2010 29.09.2010. .......................................................................... 106
Oktobarski ispitni rok (drugi) 10.10.2010. ....................................................................... 111
Januarski ispitni rok 2011 16.01.2011. ............................................................................. 116
Februarski ispitni rok 2011 06.02.2011. ........................................................................... 122
Junski ispitni rok 2011 19.06.2011. .................................................................................. 127
Julski ispitni rok 2011 10.07.2011. ................................................................................... 132
Septembarski ispitni rok 2011 04.09.2011. ...................................................................... 137
Oktobarski ispitni rok 2011 25.09.2011. .......................................................................... 142
Kolokvijumi ............................................................................................................................. 147
Kolokvijum 2007 20.01.2007. .......................................................................................... 148
Kolokvijum 2008 02.12.2007. .......................................................................................... 152
Kolokvijum 2009 29.11.2008. .......................................................................................... 156
Kolokvijum 2010 05.12.2009. .......................................................................................... 160
Kolokvijum 2011 12.12.2010. .......................................................................................... 164
Algoritmi .................................................................................................................................. 168
Ispiti
1.(4) Data je ema relacione baze podataka jednog avio prevoznika robe:
KLIJENT(SifK, Naziv, Popust);
MESTO(SifM, Naziv); AGENT(SifA, Ime);
LET(SifL, BrLeta, SifMOd, SifMDo, TerminPoletanja, TerminSletanja, Datum, Status, Kapacitet);
PAKET(SifP, RedniBr, SifA, SifK, Tezina, DatumP, SifMOd, SifMDo);
PREVOZ(SifP, SifL);
RedniBr
23
24
25
26
27
28
29
SifA
A213
A222
A213
A456
A222
A213
A222
SifK
K110
K090
K101
K101
K201
K090
K110
Tezina
20
10
15
30
10
20
10
DatumP
175
175
179
180
181
181
184
SifMOd
M01
M02
M01
M01
M01
M02
M01
SifMDo
M03
M03
M03
M02
M02
M03
M03
_______________________________________________________________________
Odgovor:
1001
1002
1003
1006
1007
1008
M01
M02
M01
M01
M01
M02
35
30
15
40
10
20
_______________________________________________________________________
_______________________________________________________________________
b) Ispitati redom da li je data ema u BC, 3. i 2. normalnoj formi i svaki put u tabeli naznaiti
da li posmatrana zavisnost naruava posmatranu normalnu formu.
BCNF
3NF
2NF
BEGH
GFA
ADC
FBGH
x
x
x
x
x
x
x
x
x
x
x
c) Sprovesti normalizaciju date eme u 3. normalnu formu algoritmom koji garantuje ouvanje
funkcijskih zavisnosti.
_______________________________________________________________________
Odgovor:
N1(B,E,G) N2(G,F,A) N3(A,D,C) N4(F,B,G, H) N5(B,E,D)
_______________________________________________________________________
d) Sprovesti normalizaciju date eme u BC normalnu formu, izdvajajui zavisnosti redosledom
s desna na levo.
_______________________________________________________________________
Odgovor:
N1(F,B,G, H) N2(A,D,C) N3(F,A) N4(D,E,F)
_______________________________________________________________________
e) Ispitati da li je pri postupku u okviru take d) dolo do gubitka funkcijskih zavisnosti i
kojih?
_______________________________________________________________________
Odgovor:
BEGH
_______________________________________________________________________
T1
t1
t2
t3
t4
t5
t6
t7
t8
t9
t10
t11
t12
t13
t14
t15
t16
t17
t18
t19
t20
t21
t22
t23
t24
t25
t26
t27
t28
t29
t30
t31
Read (F)
F:= F 1
Write (F)
T2
T3
T4
Read (B)
B:= B 1
Write (B)
Read (B)
B:= B + 1
Write (B)
Read (D)
D:= D / 5
Read (C)
C:= D 2
Write (C)
Write (D)
Read (F)
F:= F 1
Write (F)
Commit
Read (E)
E:= E 1
Write (E)
Commit
Read (A)
A:= A + B
Write (A)
Commit
Read (D)
D:= D - 3
Write (D)
Commit
a) Proveriti da li je dati redosled serijalizovan i ako jeste navesti sve ekvivalentne serijske
redoslede.
_______________________________________________________________________
Odgovor:
T3T1T4T2
_______________________________________________________________________
b) Ako se za oporavak od kvara koristi mehanizam Pratee stranice. Podaci A, B, C, D, E, i F
nalaze se u razliitim stranicama na disku (podatak A u stranici 1,... , F u stranici 6). Prikazati
izgled relevantnih delova sistema u trenutku kvara, neposredno posle trenutka t31? Koje
operacije mehanizam Pratee Stranice vri posle popravke sistema u cilju vraanja baze u
konzistentno stanje? (itanje ne potvrenih podataka nije dozvoljeno)
_______________________________________________________________________
Odgovor:
7
15
T1
9
14
T2
T3
11
10
13
8
12
T4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
A
B
C
D
E
F
F1
B1
B2
C1
D1
F2
E1
A1
D2
7
15
T1
9
14
T2
11
10
13
T3
8
12
T4
______________________________________________________________________
_______________________________________________________________________
d) Koje operacije zadaje mehanizam u cilju vraanja baze u konzistentno stanje u sluaju
opisanom u taki pod c) ukoliko je poznato da je u trenutku t21 uraena kontrolna taka koja je
zavrena u trenutku t25?
_______________________________________________________________________
Odgovor:
Redo {T2, T3}
Restart {T1}
_______________________________________________________________________
e) U sluaju opisanom u taki pod c) pre poetka posmatranog redosleda vrednosti podataka A,
B, C, D, E i F imaju vrednosti 10, 20, 30, 40, 50 i 60 respektivno. Koje su mogue vrednosti
svakog od podataka u bazi neposredno posle trenutka t17?
_____________________________________________________________________
Odgovor:
Vreme Podatak Mogue vrednosti
10
t17
A
20
t17
B
30
t17
C
40
t17
D
50
t17
E
60
t17
F
_______________________________________________________________________
Vreme
T1
t1
Lx(F)
t2
Rd(F)
t3
F=F-1
t4
Wr(F)
t5
Lx(B)
t6
Un(F)
t7
Lx(D)
t8
Un(B)
T2
T3
T4
t39
Commit
t40
Lx(D)
t41
Rd(D)
t42
D=D/5
t43
Lx(C)
t44
Rd(C)
t45
C=D*2
t46
Wr(C)
t47
Wr(D)
t48
Lx(E)
t9
Lx(F)
t10
Lx(B)
t49
Un(D)
t11
Rd(B)
t50
Un(C)
t12
B=B-1
t51
Rd(E)
t13
Wr(B)
t52
E=E-1
t14
Un(B)
t53
Wr(E)
t54
Un(E)
t55
Commit
t15
Lx(F)
t16
Lx(D)
t17
Rd(F)
t56
t18
F=F-1
t57
t19
Wr(F)
t58
t20
Un(F)
t59
t21
Commit
t60
t22
Lx(F)
t23
Lx(B)
t24
Lx(A)
t25
Un(F)
t26
Rd(B)
t27
B=B+1
t28
Wr(B)
t29
Un(B)
t30
Rd(A)
t31
t32
A=A+B
Wr(A)
t33
Un(A)
t34
Commit
t35
Rd(D)
t36
D=D-3
t37
Wr(D)
t38
Un(D)
t61
F
B
A
D
C
4.(10) Za emu relacione baze podataka jednog avio prevoznika robe iz zadatka 1, potrebno je:
a) Sastaviti SQL skript kojim se formira tabela LET, ukoliko je poznato da se let uvek odvija u
toku jednog dana izmeu dva razliita mesta ije se ifre nalaze u tabeli MESTO, i da status
leta moe biti iz skupa vrednosti {X-nedefinisan, 1-obavljen, 2-let u toku}. Termini poletanja i
sletanja predstavljaju celobrojnu vrednost u opsegu od 1 do 32. Datum je celobrojna vrednost u
opsegu od 1 do 366. Kapacitet je celobrojna vrednost koja oznaava nosivost na letu.
_______________________________________________________________________
Odgovor:
CREATE TABLE Let
(
SifL INT PRIMARY KEY,
BrLeta CHAR(5) NOT NULL,
SifMOd INT NOT NULL REFERENCES Mesto ON UPDATE CASCADE,
SifMDo INT NOT NULL REFERENCES Mesto ON UPDATE CASCADE,
TerminPoletanja INT NOT NULL CHECK(TerminPoletanja BETWEEN 1 AND 32),
TerminSletanja INT NOT NULL CHECK(TerminSletanja BETWEEN 1 AND 32),
Datum INT NOT NULL CHECK(Datum BETWEEN 1 AND 366),
Status CHAR NOT NULL CHECK(Status IN (X, 1, 2)),
Kapacitet INT NOT NULL CHECK(Kapacitet > 0),
CHECK(SifMOd <> SifMDo),
CHECK(TerminPoletanja < TerminSletanja)
);
_______________________________________________________________________
b) ta treba dodati da bi u taki pod a) bilo obezbeeno ogranienje da u toku jednog dana
(datuma) proseno vreme izmeu dva poletanja iz jednog mesta ne sme biti krae od 4 termina.
_______________________________________________________________________
Odgovor:
CHECK ( NOT EXISTS
( SELECT SifMOd
FROM Let
GROUP BY SifMOd, Datum
HAVING (
(((MAX(TerminPoletanja) MIN(TerminPoletanja) + 1) / COUNT(TerminPoletanja)) < 4)
AND
(COUNT(TerminPoletanja) > 1)
)
)
_______________________________________________________________________
Tabela2
Tabela4
Sif1
10
20
30
Opis
S
J
B
Sif2
10
10
10
20
20
30
Opis
J
M
D
B
M
J
Sif4
1
2
3
4
Tabela3
Status
kod1
kod2
kod3
kod4
Sif3
10
10
10
10
10
10
10
10
10
20
20
20
30
Opis
J
J
J
J
M
M
M
D
D
M
M
B
J
Status
kod1
kod2
kod3
kod4
kod1
kod2
kod3
kod1
kod2
kod1
kod2
kod1
kod1
_______________________________________________________________________
Odgovor:
10
20
30
S
J
B
kod2
kod1
kod1
_______________________________________________________________________
_______________________________________________________________________
b) Ispitati redom da li je data ema u BC, 3. i 2. normalnoj formi i svaki put u tabeli naznaiti
da li posmatrana zavisnost naruava posmatranu normalnu formu.
BCNF
3NF
2NF
ABC
BCD
EF
DFGF
x
x
x
x
x
x
x
x
x
x
c) Sprovesti normalizaciju date eme u 3. normalnu formu algoritmom koji garantuje ouvanje
funkcijskih zavisnosti.
_______________________________________________________________________
Odgovor:
R1(A, B, C) R2(B, C, D) R3(E, F) R4(D, F, G) R5(A, B, E)
_______________________________________________________________________
d) Sprovesti normalizaciju date eme u BC normalnu formu, izdvajajui zavisnosti redosledom
s desna na levo.
_______________________________________________________________________
Odgovor:
R1(D, F, G) R2(E, F) R3(B, C, D) R4(A, B, C) R5(A, B, E)
_______________________________________________________________________
e) Ispitati da li je pri postupku u okviru take d) dolo do gubitka funkcijskih zavisnosti i
kojih?
_______________________________________________________________________
Odgovor:
Nije dolo do gubitka funkcijskih zavisnosti.
_______________________________________________________________________
3.(50)
a) Ako se za oporavak od kvara koristi mehanizam Pratee stranice. Podaci A, B, C i D nalaze
se u razliitim stranicama na disku (podatak A u stranici 1,... , D u stranici 4). Prikazati izgled
relevantnih delova sistema u trenutku kvara, neposredno posle trenutka t20? Koje operacije
mehanizam Pratee Stranice vri posle popravke sistema u cilju vraanja baze u konzistentno
stanje? (itanje ne potvrenih podataka nije dozvoljeno)
_______________________________________________________________________
Odgovor:
5
T1
T2
6
9
10
7
8
T3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
A
B
C
D
A1
B1
C1
D1
A2
C2
1
T1
6
9
10
T2
7
8
Oporavak:
T3
Vreme
T1
t1
t2
t3
t4
t5
t6
t7
t8
t9
t10
t11
t12
t13
t14
t15
t16
t17
t18
t19
t20
t21
t22
t23
t24
Read (A)
A:= A 1
Write (A)
T2
T3
Read (B)
B:= B 1
Read (A)
A:= B 2
Write (B)
Read (C)
C:= C + 1
Write (C)
Read (D)
D:= D 1
Write (D)
Commit
Read (C)
C:= C + A
Write (A)
Write (C)
Commit
Read (D)
D:= D / 3
Write (D)
Commit
_______________________________________________________________________
b) Proveriti da li je dati redosled serijalizovan i ako jeste navesti sve ekvivalentne serijske
redoslede.
_______________________________________________________________________
Odgovor:
T3T1T2
_______________________________________________________________________
Op
rd(A)
wr(A)
rd(B)
rd(A)
rd(C)
wr(C)
rd(D)
wr(D)
commit
rd(D)
wr(D)
commit
rd(A)
wr(B)
rd(C)
wr(A)
wr(C)
commit
S
ok
ok
ok
wait
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
RA
WA
CA
RB
WB
CB
RC
WC
CC
RD
WD
CD
TS(T1)
TS(T2)
TS(T3)
200
300
100
200
100
0
100
0
1
200
0
1
200
300
100
100
1
200
1
300
300
0
300
300
0
300
1
0
1
f) Koje operacije zadaje mehanizam u cilju vraanja baze u konzistentno stanje u sluaju
opisanom u taki pod d) ukoliko je poznato da je u trenutku neposredno posle commit
operacije transakcije T1 uraena kontrolna taka koja je zavrena u trenutku neposredno posle
commit operacije transakcije T3? Kako e izgledati sistemski dnevnika u tom sluaju?
________________________________________________________________________
Odgovor:
< T5, starts >
< T5, B, 20, 25>
< T5, D, 40, 50 >
< T5, commits >
< T1, starts >
< T1, A, 10, 15 >
< T2, starts >
< T2, A, 15, 30 >
< T1, commits >
< CHK (T2)>
< T3, starts >
< T3, C, 30, 35>
< T3, commits >
< CHK END>
< T4, starts >
< T4, C, 35, 70 >
< T4, D, 50, 60 >
< T4, commits>
_______________________________________________________________________
Sif1
10
20
30
Naziv
A
B
C
M
2
2
2
N
2
3
1
Tabela2
Sif2
10
10
10
10
20
20
20
20
20
20
30
30
I
1
2
1
2
1
1
2
2
2
1
2
1
J
2
1
1
2
3
1
1
2
K
3
1
2
2
1
3
2
5
1
1
4
5
_______________________________________________________________________
Odgovor:
_______________________________________________________________________
_______________________________________________________________________
b) Ispitati redom da li je data ema u BC, 3. i 2. normalnoj formi i svaki put u tabeli naznaiti
da li posmatrana zavisnost naruava posmatranu normalnu formu.
RS
UVXR
SUV
TR
BCNF
3NF
2NF
c) Sprovesti normalizaciju date eme u 3. normalnu formu algoritmom koji garantuje ouvanje
funkcijskih zavisnosti.
_______________________________________________________________________
Odgovor:
_______________________________________________________________________
d) Sprovesti normalizaciju date eme u BC normalnu formu, izdvajajui zavisnosti redosledom
s desna na levo.
_______________________________________________________________________
Odgovor:
_______________________________________________________________________
e) Ispitati da li je pri postupku u okviru take d) dolo do gubitka funkcijskih zavisnosti i
kojih?
_______________________________________________________________________
Odgovor:
_______________________________________________________________________
T1
t1
t2
t3
t4
t5
t6
t7
t8
t9
t10
t11
t12
t13
t14
t15
t16
t17
t18
t19
t20
t21
t22
t23
t24
t25
t26
t27
t28
t29
t30
t31
t32
t33
Read (C)
C:= C 1
Write (C)
T2
T3
T4
Read (B)
B:= B 1
Read (A)
A:= B 2
Write (B)
Read (C)
C:= C + 1
Write (C)
Read (D)
D:= D / 5
Read (B)
B:= D 2
Write (B)
Write (D)
Read (D)
D:= D 1
Write (D)
Commit
Read (E)
E:= E 1
Write (E)
Read (F)
F:= F + 1
Write (F)
Write (A)
Commit
Read (B)
B:= C / 3
Write (B)
Commit
_______________________________________________________________________
_______________________________________________________________________
d) Koje operacije zadaje mehanizam u cilju vraanja baze u konzistentno stanje u sluaju
opisanom u taki pod c) ukoliko je poznato da je u trenutku t22 uraena kontrolna taka koja je
zavrena u trenutku t30?
_______________________________________________________________________
Odgovor:
_______________________________________________________________________
e) U sluaju opisanom u taki pod d) pre poetka posmatranog redosleda vrednosti podataka A,
B, C, D, E i F imaju vrednosti 10, 20, 30, 40, 50 i 60 respektivno. Koje su mogue vrednosti
svakog od podataka u bazi neposredno posle trenutka t32?
_____________________________________________________________________
Odgovor:
Vreme Podatak Mogue vrednosti
t32
A
t32
B
t32
C
t32
D
t32
E
t32
F
_______________________________________________________________________
Vreme
t1
t2
t3
t4
t5
t6
t7
T1
T2
T3
T4
t36
t37
t38
t39
t40
t41
t42
t43
t8
t44
t9
t45
t10
t46
t11
t47
t12
t48
t13
t49
t14
t50
t15
t51
t16
t52
t17
t53
t18
t54
t19
t55
t20
t56
t21
t57
t22
t58
t23
t59
t24
t60
t25
t61
t26
t27
t28
t29
t30
t31
t32
t33
t34
t35
Sif1
10
20
30
Na
A
B
C
Ds
DT
ZR
MC
Tabela2 Sif2
10
20
30
40
50
60
70
80
90
100
110
120
Dt
1
1
2
2
2
5
6
6
6
8
8
9
Qt
20
10
10
20
30
10
10
20
30
20
10
10
Pr
1
2
1
2
1
1
2
2
2
1
1
2
_______________________________________________________________________
Odgovor:
50
_______________________________________________________________________
Sif1
30
10
20
20
10
30
20
10
20
30
10
30
_______________________________________________________________________
b) Ispitati redom da li je data ema u BC, 3. i 2. normalnoj formi i svaki put u tabeli naznaiti
da li posmatrana zavisnost naruava posmatranu normalnu formu.
RTS
BCNF
3NF
2NF
USXR
SUV
x
x
x
x
TR
c) Sprovesti normalizaciju date eme u 3. normalnu formu algoritmom koji garantuje ouvanje
funkcijskih zavisnosti.
_______________________________________________________________________
Odgovor:
D1(T, S) D2(S, X, R, U, V)
_______________________________________________________________________
d) Sprovesti normalizaciju date eme u BC normalnu formu, izdvajajui zavisnosti redosledom
sleva na desno.
_______________________________________________________________________
Odgovor:
D1(U, S, X, R) D2(S, U, V) D3(T, S)
_______________________________________________________________________
e) Ispitati da li je pri postupku u okviru take d) dolo do gubitka funkcijskih zavisnosti i
kojih?
_______________________________________________________________________
Odgovor:
Nije dolo do gubitka funkcijskih zavisnosti.
_______________________________________________________________________
3.(50)
a) Ako se za oporavak od kvara koristi mehanizam Pratee stranice. Podaci A, B, C i D nalaze
se u razliitim stranicama na disku (podatak A u stranici 1,... , D u stranici 4). Prikazati izgled
relevantnih delova sistema u trenutku kvara, neposredno posle trenutka t20? Koje operacije
mehanizam Pratee Stranice vri posle popravke sistema u cilju vraanja baze u konzistentno
stanje? (itanje ne potvrenih podataka nije dozvoljeno)
_______________________________________________________________________
Odgovor:
5
T1
T2
6
9
10
7
8
T3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
A
B
C
D
C1
B1
C2
B2
D1
A1
3
T1
6
9
10
T2
7
8
Oporavak:
T3
Vreme
T1
t1
t2
t3
t4
t5
t6
t7
t8
t9
t10
t11
t12
t13
t14
t15
t16
t17
t18
t19
t20
t21
t22
t23
t24
Read (C)
C:= C 1
Write (C)
T2
T3
Read (B)
B:= B 1
Read (D)
D:= B 2
Write (B)
Read (C)
C:= C + 1
Write (C)
Read (B)
B:= B 1
Write (B)
Commit
Read (A)
A:= A + D
Write (D)
Write (A)
Commit
Read (D)
D:= D / 3
Write (D)
Commit
_______________________________________________________________________
b) Proveriti da li je dati redosled serijalizovan i ako jeste navesti sve ekvivalentne serijske
redoslede.
_______________________________________________________________________
Odgovor:
T2T1T3
_______________________________________________________________________
Op
rd(C)
wr(C)
rd(B)
rd(D)
wr(B)
rd(C)
rd(A)
wr(D)
wr(A)
commit
rd(D)
rd(C)
wr(C)
rd(B)
wr(B)
commit
rd(C)
wr(C)
rd(D)
wr(D)
commit
S
ok
ok
ok
ok
ok
rb
ok
ok
ok
ok
rb
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
RA
WA
CA
RB
WB
CB
RC
WC
CC
RD
WD
CD
TS(T1)
TS(T2)
TS(T3)
200
300
100
200
200
300
300
300
0
400
300
300
300
0
1
0
1
400
500
400
400
400
0
1
1
500
500
0
500
500
1
0
1
f) Koje operacije zadaje mehanizam u cilju vraanja baze u konzistentno stanje u sluaju
opisanom u taki pod d) ukoliko je poznato da je u trenutku neposredno posle commit
operacije transakcije T2 uraena kontrolna taka koja je zavrena u trenutku neposredno posle
commit operacije transakcije T4? Kako e izgledati sistemski dnevnika u tom sluaju?
_______________________________________________________________________
Odgovor:
< T2, starts >
< T2, A, 10, 25>
< T2, C, 30, 50 >
< T2, commits >
< CHK ( )>
< T4, starts >
< T4, B, 20, 15 >
< T5, starts >
< T5, D, 40, 30 >
< T4, commits >
< CHK END>
< T3, starts >
< T3, C, 50, 35>
< T3, commits >
< T1, starts >
< T1, A, 25, 70 >
< T1, D, 30, 25 >
< T1, commits >
_______________________________________________________________________
Sif1
10
20
30
Na
A
B
C
Ds
DT
ZR
MC
Tabela2 Sif2
10
20
30
40
50
60
70
80
90
100
110
120
Dt
1
1
2
2
2
5
6
6
6
8
8
9
Qt
20
10
10
20
30
10
10
20
30
20
10
10
Pr
1
2
1
2
1
1
2
2
2
1
1
2
_______________________________________________________________________
Odgovor:
_______________________________________________________________________
Sif1
30
10
20
20
10
30
20
10
20
30
10
30
_______________________________________________________________________
b) Ispitati redom da li je data ema u BC, 3. i 2. normalnoj formi i svaki put u tabeli naznaiti
da li posmatrana zavisnost naruava posmatranu normalnu formu.
RSV
URXR
SUV
TR
BCNF
3NF
2NF
c) Sprovesti normalizaciju date eme u 3. normalnu formu algoritmom koji garantuje ouvanje
funkcijskih zavisnosti.
_______________________________________________________________________
Odgovor:
_______________________________________________________________________
d) Sprovesti normalizaciju date eme u BC normalnu formu, izdvajajui zavisnosti redosledom
sleva na desno.
_______________________________________________________________________
Odgovor:
_______________________________________________________________________
e) Ispitati da li je pri postupku u okviru take d) dolo do gubitka funkcijskih zavisnosti i
kojih?
_______________________________________________________________________
Odgovor:
_______________________________________________________________________
3.(50)
a) Ako se za oporavak od kvara koristi mehanizam Pratee stranice. Podaci A, B, C i D nalaze
se u razliitim stranicama na disku (podatak A u stranici 1,... , D u stranici 4). Prikazati izgled
relevantnih delova sistema u trenutku kvara, neposredno posle trenutka t24? Koje operacije
mehanizam Pratee Stranice vri posle popravke sistema u cilju vraanja baze u konzistentno
stanje? (itanje ne potvrenih podataka nije dozvoljeno)
_______________________________________________________________________
Odgovor:
T1
T2
T3
Oporavak:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
T1
T2
T3
Vreme
T1
t1
t2
t3
t4
t5
t6
t7
t8
t9
t10
t11
t12
t13
t14
t15
t16
t17
t18
t19
t20
t21
t22
t23
t24
Read (C)
C:= C 1
T2
T3
Read (A)
A:= A 1
Read (C)
C:= A 2
Write (C)
Write (A)
Commit
Read (C)
C:= C + 1
Write (C)
Read (B)
B:= B 1
Write (B)
Read (A)
A:= A + C
Write (C)
Write (A)
Commit
Read (D)
D:= D / 4
Write (D)
Commit
_______________________________________________________________________
b) Koje su vrednosti svakog od podatka u bazi ukoliko pre poetka izvravanja datog redosleda
podaci A, B, C i D imaju vrednosti 10, 20, 30 i 40 respektivno?
_______________________________________________________________________
Odgovor:
Podatak Vrednosti
A
B
C
D
_______________________________________________________________________
t1
t2
t3
t4
t5
t6
t7
t8
t9
t10
t11
t12
t13
t14
t15
t16
t17
t18
t19
t20
t21
t22
t23
t24
t25
t26
t27
t28
t29
t30
t31
t32
t33
t34
t36
t37
Op
RA
WA
CA
RB
WB
CB
RC
WC
CC
RD
WD
CD
TS(T1)
TS(T2)
TS(T3)
200
300
100
f) Koje operacije zadaje mehanizam u cilju vraanja baze u konzistentno stanje u sluaju
opisanom u taki pod d) ukoliko je poznato da je u trenutku neposredno posle Write(C)
operacije transakcije T2 uraena kontrolna taka koja je zavrena u trenutku neposredno posle
Write(B) operacije transakcije T2? Kako e izgledati sistemski dnevnika u tom sluaju?
_______________________________________________________________________
Odgovor:
_______________________________________________________________________
Sif1
10
20
30
Na
A
B
C
Ds
DT
ZR
MC
Tabela2 Sif2
10
20
30
40
50
60
70
80
90
100
110
120
Dt
1
1
2
2
2
5
6
6
6
8
8
9
Qt
20
10
10
20
30
10
10
20
30
20
10
10
Pr
1
2
1
2
1
1
2
2
2
1
1
2
_______________________________________________________________________
Odgovor:
10
30
10
20
1
1
2
2
100
70
80
260
_______________________________________________________________________
Sif1
30
10
20
20
10
30
20
10
20
30
10
30
_______________________________________________________________________
b) Ispitati redom da li je data ema u BC, 3. i 2. normalnoj formi i svaki put u tabeli naznaiti
da li posmatrana zavisnost naruava posmatranu normalnu formu.
BCNF
3NF
2NF
RSV
URXR
SUV
x
x
x
x
x
x
TR
c) Sprovesti normalizaciju date eme u 3. normalnu formu algoritmom koji garantuje ouvanje
funkcijskih zavisnosti.
_______________________________________________________________________
Odgovor:
B1(R, S, X) B2(S, U, V) B3(T, R)
_______________________________________________________________________
d) Sprovesti normalizaciju date eme u BC normalnu formu, izdvajajui zavisnosti redosledom
sleva na desno.
_______________________________________________________________________
Odgovor:
B1(S, V) B2(R, S) B3(R, U, X) B4(T, R)
_______________________________________________________________________
e) Ispitati da li je pri postupku u okviru take d) dolo do gubitka funkcijskih zavisnosti i
kojih?
_______________________________________________________________________
Odgovor:
Izgubljena funkcijska zavisnost SU
_______________________________________________________________________
3.(50)
a) Ako se za oporavak od kvara koristi mehanizam Pratee stranice. Podaci A, B, C i D nalaze
se u razliitim stranicama na disku (podatak A u stranici 1,... , D u stranici 4). Prikazati izgled
relevantnih delova sistema u trenutku kvara, neposredno posle trenutka t24? Koje operacije
mehanizam Pratee Stranice vri posle popravke sistema u cilju vraanja baze u konzistentno
stanje? (itanje ne potvrenih podataka nije dozvoljeno)
_______________________________________________________________________
Odgovor:
9
10
T1
T2
7
8
11
6
5
T3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
A
B
C
D
C1
A1
C2
B1
C3
A2
D1
9
10
T1
7
8
11
T2
6
5
Oporavak:
T3
Vreme
T1
t1
t2
t3
t4
t5
t6
t7
t8
t9
t10
t11
t12
t13
t14
t15
t16
t17
t18
t19
t20
t21
t22
t23
t24
Read (C)
C:= C 1
T2
T3
Read (A)
A:= A 1
Read (C)
C:= A 2
Write (C)
Write (A)
Commit
Read (C)
C:= C + 1
Write (C)
Read (B)
B:= B 1
Write (B)
Read (A)
A:= A + C
Write (C)
Write (A)
Commit
Read (D)
D:= D / 4
Write (D)
Commit
_______________________________________________________________________
b) Koje su vrednosti svakog od podatka u bazi ukoliko pre poetka izvravanja datog redosleda
podaci A, B, C i D imaju vrednosti 10, 20, 30 i 40 respektivno?
_______________________________________________________________________
Odgovor:
Podatak Vrednosti
38
A
19
B
19
C
10
D
_______________________________________________________________________
Op
rd(C)
rd(A)
rd(C)
wr(c)
rd(A)
wr(c)
wr(A)
commit
rd(C)
wr(C)
rd(B)
wr(B)
rd(D)
wr(D)
commit
rd(A)
rd(C)
wr(C)
wr(A)
commit
S
ok
ok
ok
rb
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
RA
WA
CA
RB
WB
CB
RC
WC
CC
RD
WD
CD
TS(T1)
TS(T2)
TS(T3)
200
300
100
200
100
400
200
200
200
0
1
0
1
300
300
300
300
0
300
300
1
400
400
400
400
0
1
0
1
0
1
_________________________________________________________________________
f) Koje operacije zadaje mehanizam u cilju vraanja baze u konzistentno stanje u sluaju
opisanom u taki pod d) ukoliko je poznato da je u trenutku neposredno posle Write(C)
operacije transakcije T2 uraena kontrolna taka koja je zavrena u trenutku neposredno posle
Write(B) operacije transakcije T2? Kako e izgledati sistemski dnevnika u tom sluaju?
_______________________________________________________________________
Odgovor:
< T1, starts >
< T3, starts >
< T3, C, C0, C1>
< T3, A, A0, A1>
< T3, commits >
< T2, starts >
< T2, C, C1, C2>
< CHK (T1,T2)>
< T2, B, B0, B1>
< CHK END>
< T1, C, C0, C3>
< T1, A, A1, A2>
< T1, commits >
_________________________________________________________________________
_______________________________________________________________________
b) Napisati odgovarajui SQL kojim se to ogranienje proverava.
_______________________________________________________________________
Odgovor:
CREATE ASSERTION Univerzalni
CHECK ( NOT EXISTS ( SELECT *
FROM Kriterijum K
WHERE K.Univerzalan = 0
AND ( SELECT COUNT (*)
FROM Pripada P
WHERE P.SifKr = K.SifKr
)>1
)
);
_______________________________________________________________________
Sif1
10
20
30
Naziv
A
B
C
M
2
2
2
N
2
3
1
Tabela2
Sif2
10
10
10
10
20
20
20
20
20
20
30
30
I
1
2
1
2
1
1
2
2
2
1
2
1
J
2
1
1
2
3
1
1
2
K
3
1
2
2
1
3
2
5
1
1
4
5
_______________________________________________________________________
Odgovor:
1
2
1
2
1
2
1
1
2
2
3
3
12
7
23
14
8
5
_______________________________________________________________________
_______________________________________________________________________
b) Ispitati redom da li je data ema u BC, 3. i 2. normalnoj formi i svaki put u tabeli naznaiti
da li posmatrana zavisnost naruava posmatranu normalnu formu.
BCNF
3NF
2NF
RS
UVXR
SUV
x
x
x
x
x
x
TR
c) Sprovesti normalizaciju date eme u 3. normalnu formu algoritmom koji garantuje ouvanje
funkcijskih zavisnosti.
_______________________________________________________________________
Odgovor:
B1(R, S) B2(U, X, R) B3(S, U, V) B4(T, R)
_______________________________________________________________________
d) Sprovesti normalizaciju date eme u BC normalnu formu, izdvajajui zavisnosti redosledom
s desna na levo.
_______________________________________________________________________
Odgovor:
B1(S, U, V) B2(R, S) B3(R, X) B4(T, R)
_______________________________________________________________________
e) Ispitati da li je pri postupku u okviru take d) dolo do gubitka funkcijskih zavisnosti i
kojih?
_______________________________________________________________________
Odgovor:
Nema gubitka funkcijskih zavisnosti
_______________________________________________________________________
T1
t1
t2
t3
t4
t5
t6
t7
t8
t9
t10
t11
t12
t13
t14
t15
t16
t17
t18
t19
t20
t21
t22
t23
t24
t25
t26
t27
t28
t29
t30
t31
t32
t33
Read (C)
C:= C 1
Write (C)
T2
T3
T4
Read (B)
B:= B 1
Read (A)
A:= B 2
Write (B)
Read (C)
C:= C + 1
Write (C)
Read (D)
D:= D / 5
Read (B)
B:= D 2
Write (B)
Write (D)
Read (D)
D:= D 1
Write (D)
Commit
Read (E)
E:= E 1
Write (E)
Read (F)
F:= F + 1
Write (F)
Write (A)
Commit
Read (B)
B:= C / 3
Write (B)
Commit
T1
T2
T3
11
10
13
8
15
14
9
12
T4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
A
B
C
D
E
F
C1
B1
C2
B2
D1
D2
E1
F1
A1
B3
7
16
T1
4
2
5
8
15
14
T2
T3
9
12
T4
____________________________________________________________________
b) Proveriti da li je dati redosled serijalizovan ukoliko se naprave sledee izmene u redosledu:
u transakcijima T1 i T2 operacije (Read(B) uklone i u transakciji T3 operacije (Read(B), B:=B1) zamene sa (B:=20) i operacije (Read(F), F:=F+1, Write(F)) zamene sa (E:=20, Write(E)).
Ukoliko novodobijeni redosled jeste serijalizovan onda navesti sve ekvivalentne serijske
redoslede.
_______________________________________________________________________
Odgovor:
T2 T3 T1 T4
_______________________________________________________________________
_______________________________________________________________________
d) Koje operacije zadaje mehanizam u cilju vraanja baze u konzistentno stanje u sluaju
opisanom u taki pod c) ukoliko je poznato da je u trenutku t22 uraena kontrolna taka koja je
zavrena u trenutku t30?
_______________________________________________________________________
Odgovor:
Redo{ T1, T3 } Restart{ T2}
_______________________________________________________________________
e) U sluaju opisanom u taki pod d) pre poetka posmatranog redosleda vrednosti podataka A,
B, C, D, E i F imaju vrednosti 10, 20, 30, 40, 50 i 60 respektivno. Koje su mogue vrednosti
svakog od podataka u bazi neposredno posle trenutka t32?
_____________________________________________________________________
Odgovor:
Vreme Podatak Mogue vrednosti
10, 38
t32
A
20, 19
t32
B
31
t32
C
39
t32
D
50
t32
E
60, 61
t32
F
_______________________________________________________________________
T1
t1
Ls(C)
t2
Rd(C)
t3
Lx(C)
t4
Wr(C)
T2
T3
T4
t34
Un(F)
t35
Un(A)
t36
Commit
t37
Ls(B)
t38
Rd(B)
t39
Lx(B)
t40
Wr(B)
t41
Un(C)
t42
Un(B)
t43
Commit
t5
Ls(B)
t6
Rd(B)
t7
Ls(A)
t8
Rd(A)
t9
Lx(B)
t10
Wr(B)
t44
Ls(C)
t11
Ls(F)
t45
Rd(C)
t12
Lx(F)
t46
Lx(C)
t13
Lx(A)
t47
Wr(C)
t14
Un(B)
t48
Ls(D)
t49
Rd(D)
t15
Ls(C)
t16
Ls(D)
t50
Lx(D)
t17
Rd(D)
t51
Wr(D)
t18
Ls(B)
t52
Un(C)
t19
Rd(B)
t53
Un(D)
t20
Lx(B)
t54
Commit
t21
Wr(B)
t55
t22
Lx(D)
t56
t23
Wr(D)
t57
t24
Ls(E)
t58
t25
Rd(E)
t59
t26
Lx(E)
t60
t27
Un(D)
t61
t28
Un(B)
t29
Wr(E)
t30
Un(E)
t31
t32
Rd(F)
Wr(F)
t33
Wr(A)
Dt
1
1
2
2
2
5
Qt
20
10
10
20
30
10
Pr
1
2
1
2
1
1
Weight
12
17
17
14
12
19
_______________________________________________________________________
Odgovor:
_______________________________________________________________________
_______________________________________________________________________
b) Ispitati redom da li je data ema u BC, 3. i 2. normalnoj formi i svaki put u tabeli naznaiti
da li posmatrana zavisnost naruava posmatranu normalnu formu.
RV
USX
SRUV
TXR
BCNF
3NF
2NF
c) Sprovesti normalizaciju date eme u 3. normalnu formu algoritmom koji garantuje ouvanje
funkcijskih zavisnosti.
_______________________________________________________________________
Odgovor:
_______________________________________________________________________
d) Sprovesti normalizaciju date eme u BC normalnu formu, izdvajajui zavisnosti redosledom
sleva na desno.
_______________________________________________________________________
Odgovor:
_______________________________________________________________________
e) Ispitati da li je pri postupku u okviru take d) dolo do gubitka funkcijskih zavisnosti i
kojih?
_______________________________________________________________________
Odgovor:
_______________________________________________________________________
3.(50)
a) Ako se za oporavak od kvara koristi mehanizam Pratee stranice. Podaci A, B, C i D nalaze
se u razliitim stranicama na disku (podatak A u stranici 1,... , D u stranici 4). Prikazati izgled
relevantnih delova sistema u trenutku kvara, neposredno posle trenutka t24? Koje operacije
mehanizam Pratee Stranice vri posle popravke sistema u cilju vraanja baze u konzistentno
stanje?
_______________________________________________________________________
Odgovor:
T1
T2
T3
Oporavak:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
T1
T2
T3
Vreme
T1
t1
t2
t3
t4
t5
t6
t7
t8
t9
t10
t11
t12
t13
t14
t15
t16
t17
t18
t19
t20
t21
t22
t23
t24
Read (C)
C:= C 1
T2
T3
Read (B)
B:= B 1
Read (C)
C:= B 2
Write (C)
Write (B)
Commit
Read (C)
C:= C + 1
Write (C)
Read (B)
B:= B 1
Write (B)
Read (D)
D:= D + C
Write (D)
Write (C)
Commit
Read (D)
D:= D / 4
Write (D)
Commit
_______________________________________________________________________
b) Koje su vrednosti svakog od podatka u bazi ukoliko pre poetka izvravanja datog redosleda
podaci A, B, C i D imaju vrednosti 10, 20, 30 i 40 respektivno?
_______________________________________________________________________
Odgovor:
Podatak Vrednosti
A
B
C
D
_______________________________________________________________________
Op
RA
WA
CA
RB
WB
CB
RC
WC
CC
RD
WD
CD
TS(T1)
TS(T2)
TS(T3)
200
300
100
_________________________________________________________________________
f) Koje operacije zadaje mehanizam u cilju vraanja baze u konzistentno stanje u sluaju
opisanom u taki pod d) ukoliko je poznato da je u trenutku neposredno posle Write(C)
operacije transakcije T1 uraena kontrolna taka koja je zavrena u trenutku neposredno posle
Read(D) operacije transakcije T2? Kako e izgledati sistemski dnevnika u tom sluaju?
_______________________________________________________________________
Odgovor:
_______________________________________________________________________
Dt
1
1
2
2
2
5
Qt
20
10
10
20
30
10
Pr
1
2
1
3
1
1
Weight
12
17
17
NULL
NULL
19
_______________________________________________________________________
Odgovor:
_______________________________________________________________________
_______________________________________________________________________
b) Ispitati redom da li je data ema u BC, 3. i 2. normalnoj formi i svaki put u tabeli naznaiti
da li posmatrana zavisnost naruava posmatranu normalnu formu.
RV
USX
SRUV
TXR
BCNF
3NF
2NF
c) Sprovesti normalizaciju date eme u 3. normalnu formu algoritmom koji garantuje ouvanje
funkcijskih zavisnosti.
_______________________________________________________________________
Odgovor:
_______________________________________________________________________
d) Sprovesti normalizaciju date eme u BC normalnu formu, izdvajajui zavisnosti redosledom
sleva na desno.
_______________________________________________________________________
Odgovor:
_______________________________________________________________________
e) Ispitati da li je pri postupku u okviru take d) dolo do gubitka funkcijskih zavisnosti i
kojih?
_______________________________________________________________________
Odgovor:
_______________________________________________________________________
3.(50)
a) Ako se za oporavak od kvara koristi mehanizam Pratee stranice. Podaci A, B, C i D nalaze
se u razliitim stranicama na disku (podatak A u stranici 1,... , D u stranici 4). Prikazati izgled
relevantnih delova sistema u trenutku kvara, neposredno posle trenutka t24? Koje operacije
mehanizam Pratee Stranice vri posle popravke sistema u cilju vraanja baze u konzistentno
stanje?
_______________________________________________________________________
Odgovor:
T1
T2
T3
Oporavak:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
T1
T2
T3
Vreme
T1
t1
t2
t3
t4
t5
t6
t7
t8
t9
t10
t11
t12
t13
t14
t15
t16
t17
t18
t19
t20
t21
t22
t23
t24
Read (C)
Read (B)
C:= C + B
Write (C)
B:= B 5
T2
T3
Read (C)
C:= 50
Write (C)
Commit
Read (C)
C:= C + 1
Write (C)
Read (B)
B:= B 1
Write (B)
Read (D)
D:= D + C
Write (D)
Write (B)
Commit
Read (A)
A:= A * 2
Write (A)
Commit
_______________________________________________________________________
b) Koje su vrednosti svakog od podatka u bazi ukoliko pre poetka izvravanja datog redosleda
podaci A, B, C i D imaju vrednosti 10, 20, 30 i 40 respektivno?
_______________________________________________________________________
Odgovor:
Podatak Vrednosti
A
B
C
D
_______________________________________________________________________
Op
RA
WA
CA
RB
WB
CB
RC
WC
CC
RD
WD
CD
TS(T1)
TS(T2)
TS(T3)
300
200
100
_________________________________________________________________________
f) Koje operacije zadaje mehanizam u cilju vraanja baze u konzistentno stanje u sluaju
opisanom u taki pod d) ukoliko je poznato da je u trenutku neposredno posle Write(C)
operacije transakcije T2 uraena kontrolna taka koja je zavrena u trenutku neposredno posle
Read(D) operacije transakcije T1? Kako e izgledati sistemski dnevnika u tom sluaju?
_______________________________________________________________________
Odgovor:
_______________________________________________________________________
Sif
10
20
30
40
50
60
70
Dt
1
1
2
2
2
5
4
Qt
20
10
10
20
30
10
20
Pr
1
2
1
3
1
1
4
Weight
800
700
900
1000
700
700
900
_______________________________________________________________________
Odgovor:
_______________________________________________________________________
_______________________________________________________________________
b) Ispitati redom da li je data ema u BC, 3. i 2. normalnoj formi i svaki put u tabeli naznaiti
da li posmatrana zavisnost naruava posmatranu normalnu formu.
XRV
USXR
RUT
TVS
BCNF
3NF
2NF
c) Sprovesti normalizaciju date eme u 3. normalnu formu algoritmom koji garantuje ouvanje
funkcijskih zavisnosti.
_______________________________________________________________________
Odgovor:
_______________________________________________________________________
d) Sprovesti normalizaciju date eme u BC normalnu formu, izdvajajui zavisnosti redosledom
sdesna na levo.
_______________________________________________________________________
Odgovor:
_______________________________________________________________________
e) Ispitati da li je pri postupku u okviru take d) dolo do gubitka funkcijskih zavisnosti i
kojih?
_______________________________________________________________________
Odgovor:
_______________________________________________________________________
3.(50)
a) Ako se za oporavak od kvara koristi mehanizam Pratee stranice. Podaci A, B, C, D i E
nalaze se u razliitim stranicama na disku (podatak A u stranici 1,... , E u stranici 5). Prikazati
izgled relevantnih delova sistema u trenutku kvara, neposredno posle trenutka t24? Koje
operacije mehanizam Pratee Stranice vri posle popravke sistema u cilju vraanja baze u
konzistentno stanje?
_______________________________________________________________________
Odgovor:
T1
T2
T3
Oporavak:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
T1
T2
T3
Vreme
T1
t1
t2
t3
t4
t5
t6
t7
t8
t9
t10
t11
t12
t13
t14
t15
t16
t17
t18
t19
t20
t21
t22
t23
t24
Read (E)
E:= E 1
Write (E)
T2
T3
Read (C)
C:= 50
Write (C)
Read (B)
B:= B 1
Write (B)
Read (C)
C:= C + 1
Write (C)
Read (A)
A:= A * 2
Write (A)
Commit
Read (D)
D:= D + E
Write (D)
Commit
Read (A)
A:= A + C
Write (A)
Commit
_______________________________________________________________________
b) Koje su vrednosti svakog od podatka u bazi ukoliko pre poetka izvravanja datog redosleda
podaci A, B, C, D i E imaju vrednosti 10, 20, 30, 40 i 50 respektivno?
_______________________________________________________________________
Odgovor:
Podatak Vrednosti
A
B
C
D
E
_______________________________________________________________________
Vreme
t1
t2
t3
t4
t5
t6
t7
T1
T2
T3
t36
t37
t38
t39
t40
t41
t42
t43
t8
t44
t9
t45
t10
t46
t11
t47
t12
t48
t13
t49
t14
t50
t15
t51
t16
t52
t17
t53
t18
t54
t19
t55
t20
t56
t21
t57
t22
t58
t23
t59
t24
t60
t25
t61
t26
t27
t28
t29
t30
t31
t32
t33
t34
t35
A
D
_________________________________________________________________________
f) Koje operacije zadaje mehanizam u cilju vraanja baze u konzistentno stanje u sluaju
opisanom u taki pod d) ukoliko je poznato da je u trenutku neposredno posle Write(D)
operacije transakcije T1 uraena kontrolna taka koja je zavrena u trenutku neposredno posle
Read(A) operacije transakcije T3? Kako e izgledati sistemski dnevnika u tom sluaju?
_______________________________________________________________________
Odgovor:
_______________________________________________________________________
Dt
1
1
2
2
2
5
Qt
20
10
10
20
30
10
Pr
1
2
1
3
1
1
Weight
12
17
17
NULL
NULL
19
_______________________________________________________________________
Odgovor:
12
17
19
NULL
1
2
1
2
_______________________________________________________________________
2.(4) Dat je deo eme relacione baze podataka, prikazati tri mogua modela entiteta i odnosa
kojima data ema odgovara. Primarni kljuevi su podvueni a strani kljuevi zaokrueni.
(razlike postii uvoenjem razliitih tipova odnosa, posrednih i neposrednih, a ne promenom
kardinalnosti nad istim odnosima)
A(A1, A2); B(A1, C2, B1); C(C1, C2, C3); D(A1, D1, D2)
_______________________________________________________________________
Odgovor:
A
C
(0,N)
A1
A2
(0,N)
C1
C2
C3
B1
A
I
D
C
(0,N)
A1
A2
D1
D2
(0,N)
C1
C2
C3
B1
(0,1)
I
A1
A2
B
B1
I
C1
C2
C3
D
I
D1
D2
D
D1
D2
_______________________________________________________________________
3.(8) Dat je deo eme relacione baze podataka lanca prodavnica. Potrebno je obezbediti
ogranienje da svaka prodavnica mora da ima tano dva menadera. Poznato je da opis
celobrojna vrednost koja moe imati sledee vrednosti (0 nedefisano, 1 radnik, 99
menader). Napisati SQL koji obezbeuje traeno ogranienje i navesti na kom nivou se ono
proverava.
PRODAVNICA (SifP, Adresa, Povrina)
RADNIK (SifR, Ime, BrLK)
RADI (SifR, SifP, DatumPocetka, DatumKraja, OpisPosla)
_______________________________________________________________________
Odgovor:
CREATE ASSERTION TacnoDvaMenadzera
CHECK (NOT EXISTS (SELECT *
FROM Prodavnica P
WHERE 2 <> (SELECT COUNT (*)
FROM Radi R
WHERE R.SifP=P.SifP AND R.OpisPosla=99)));
_______________________________________________________________________
_______________________________________________________________________
b) Ispitati redom da li je data ema u BC, 3. i 2. normalnoj formi i svaki put u tabeli naznaiti
da li posmatrana zavisnost naruava posmatranu normalnu formu.
XRV
BCNF
3NF
2NF
USXR
RUT
TVS
c) Sprovesti normalizaciju date eme u 3. normalnu formu algoritmom koji garantuje ouvanje
funkcijskih zavisnosti.
_______________________________________________________________________
Odgovor:
Data ema je ve u 3NF.
_______________________________________________________________________
d) Sprovesti normalizaciju date eme u BC normalnu formu, izdvajajui zavisnosti redosledom
sdesna na levo.
_______________________________________________________________________
Odgovor:
C1(T, V, S) C2(R, U, T) C3(X, R, V)
_______________________________________________________________________
e) Ispitati da li je pri postupku u okviru take d) dolo do gubitka funkcijskih zavisnosti i
kojih?
_______________________________________________________________________
Odgovor:
Izgubljena funkcijska zavisnost USXR
______________________________________________________________________
5.(34)
a) Ako se za oporavak od kvara koristi mehanizam Pratee stranice. Podaci A, B, C, D i E
nalaze se u razliitim stranicama na disku (podatak A u stranici 1,... , E u stranici 5). Prikazati
izgled relevantnih delova sistema u trenutku kvara, neposredno posle trenutka t24? Koje
operacije mehanizam Pratee Stranice vri posle popravke sistema u cilju vraanja baze u
konzistentno stanje?
_______________________________________________________________________
Odgovor:
6
6
1
11
11
2
Vreme
T1
T2
T3
3
t1
Read (E)
T1
T1
4
t2
E:= E 1
5
t3
Write (E)
t4
Read (C)
6
7
7
t
5
C:= 50
7
10
10
t6
Write (C)
8
t7
Read (B)
9
T2
T2
t8
B:= B 1
10
t9
Write (B)
11
t10
Read (C)
12
t11
C:= C + 1
8
8
13
t12
Write (C)
9
9
t13
Read (A)
14
12
12
t
14
A:= A * 2
15
T3
T3
t
Write (A)
15
16
t16
Commit
17
t17
Read (D)
18
t18
D:= D + E
19
t
Write (D)
19
Oporavak:
1. Commit izvren (prikazano na slici):
Oporavak: nije potreban
2. Commit nije izvren:
Oporavak: Restart {T3}
t20
t21
t22
t23
t24
Commit
Read (A)
A:= A + C
Write (A)
Commit
_______________________________________________________________________
b) Koje su vrednosti svakog od podatka u bazi ukoliko pre poetka izvravanja datog redosleda
podaci A, B, C, D i E imaju vrednosti 10, 20, 30, 40 i 50 respektivno?
_______________________________________________________________________
Odgovor:
Podatak Vrednosti
51
A
19
B
31
C
89
D
49
E
_______________________________________________________________________
Vreme
T1
t1
Lk(E)
t2
Rd(E)
t3
Wr(E)
t4
Lk(B)
t5
Lk(D)
t6
Un(E)
t7
Un(B)
T2
T3
t36
Wr(A)
t37
Un(E)
t38
Un(A)
t39
Commit
t40
t41
t42
t43
t8
Lk(E)
t44
t9
Lk(B)
t45
t10
Lk(C)
t11
Lk(A)
t47
t12
Un(E)
t48
t13
Un(B)
t49
t14
Rd(C)
t15
Wr(C)
t51
t16
Un(C)
t52
t46
t50
t17
Lk(E)
t53
t18
Lk(B)
t54
t19
Rd(B)
t55
t20
Wr(B)
t56
t21
Lk(C)
t57
t22
Un(B)
t58
t23
Rd(C)
t59
t24
Wr(C)
t60
t25
Un(C)
t61
t26
Rd(A)
t27
Wr(A)
t28
Un(A)
t29
Commit
t30
Rd(D)
t31
t32
Wr(D)
Un(D)
t33
Commit
E
B
A
D
t34
Lk(A)
t35
Rd(A)
_________________________________________________________________________
f) Koje operacije zadaje mehanizam u cilju vraanja baze u konzistentno stanje u sluaju
opisanom u taki pod d) ukoliko je poznato da je u trenutku neposredno posle Write(D)
operacije transakcije T1 uraena kontrolna taka koja je zavrena u trenutku neposredno posle
Read(A) operacije transakcije T3? Kako e izgledati sistemski dnevnika u tom sluaju?
_______________________________________________________________________
Odgovor:
< T1, starts >
< T1, E, E1 >
< T2, starts >
< T2, C, C1 >
< T3, starts >
< T3, B, B1 >
< T3, C, C2 >
< T2, A, A1 >
< T2, commits >
< T1, D, D1 >
< CHK (T1,T3)>
< T1, commits >
< CHK END>
_______________________________________________________________________
Sif
10
20
30
40
50
60
70
Dt
1
1
2
2
2
5
4
Qt
20
10
10
20
30
10
20
Pr
1
2
1
3
1
1
4
Weight
800
700
900
1000
700
700
900
_______________________________________________________________________
Odgovor:
30
40
70
900
1000
900
_______________________________________________________________________
2. (4) Model entiteta i odnosa, prikazan na slici, prevesti u emu relacione baze podataka, uz
naznaku svih stranih kljueva zaokruivanjem.
_______________________________________________________________________
Odgovor:
Ent-A: (A1, A2)
Ent-B: (B1, B2)
Ent-C: (A1, C1)
Ent-D: (B1, D1)
Ent-E: (A1, E1, E2)
V1: (B1B, B1D)
V2: (B1B, A1)
_______________________________________________________________________
3.(8) Dat je deo eme relacione baze podataka lanca prodavnica. Potrebno je napisat iskaz
relacione algebre koji vraa isti rezultat kao i dati SQL upit.
PRODAVAC (SifP, Ime);
_______________________________________________________________________
_________________________________________________________________
b) Ispitati redom da li je data ema u BC, 3. i 2. normalnoj formi i svaki put u tabeli naznaiti
da li posmatrana zavisnost naruava posmatranu normalnu formu.
URS
BCNF
3NF
2NF
x
x
x
XUSR
TSU
RUT
x
x
x
c) Sprovesti normalizaciju date eme u 3. normalnu formu algoritmom koji garantuje ouvanje
funkcijskih zavisnosti.
_______________________________________________________________________
Odgovor:
D1(U, R) D2(T, S, U) D3(R, T) D4(X, R)
_______________________________________________________________________
5.(9) Dati su ema relacije R(A, C, D, E, F) i skup funkcijskih zavisnosti F={AD, CE,
FA, EF}. Navodei konkretnu relaciju nad emom R pokazati da dekompozicija eme R
na R1(A, D), R2(C, E) i R3(F, A) nije bez gubitaka.
_______________________________________________________________________
Odgovor:
A
a0
a0
a0
c1
c0
c2
d0
d0
d0
e1
e0
e0
f0
f1
f1
_______________________________________________________________________
6.(36)
a) Ako se za oporavak od kvara koristi mehanizam Pratee stranice. Podaci A, B, C i D nalaze
se u razliitim stranicama na disku (podatak A u stranici 1,... , D u stranici 4). Prikazati izgled
relevantnih delova sistema u trenutku kvara, neposredno posle trenutka t24? Koje operacije
mehanizam Pratee Stranice vri posle popravke sistema u cilju vraanja baze u konzistentno
stanje?
_______________________________________________________________________
Odgovor:
T1
T2
5
10
9
7
8
11
T3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
A
B
C
D
C1
C2
C3
B1
D1
B2
A1
5
10
9
7
8
11
T1
T2
Oporavak:
T3
Vreme
T1
t1
t2
t3
t4
t5
t6
t7
t8
t9
t10
t11
t12
t13
t14
t15
t16
t17
t18
t19
t20
t21
t22
t23
t24
Read (C)
Read (B)
C:= C + B
Write (C)
B:= B 5
T2
T3
Read (C)
C:= 50
Write (C)
Commit
Read (C)
C:= C + 1
Write (C)
Read (B)
B:= B 1
Write (B)
Read (D)
D:= D + C
Write (D)
Write (B)
Commit
Read (A)
A:= A * 2
Write (A)
Commit
_______________________________________________________________________
b) Da li (u sluaju opisanom u prethodnoj taki) vrednosti u bazi podataka nakon uspenog
izvravanja datog redesoleda odgovaraju nekom serijskom redosledu? Navesti sve takve
redoslede.
_______________________________________________________________________
Odgovor:
Ne odgovaraju nijednom serijskom redosledu.
_______________________________________________________________________
Op
Rd(C)
Rd(B)
Wr(C)
Rd(C)
Rd(C)
Rd(D)
Wr(D)
Wr(B)
Commit
Rd(C)
Wr(C)
Commit
Rd(C)
Wr(C)
Rd(B)
Wr(B)
Rd(A)
Wr(A)
Commit
S
Ok
Ok
Ok
Rb
Rb
Ok
Ok
Ok
Ok
Ok
Ok
Ok
Ok
Ok
Ok
Ok
Ok
Ok
Ok
RA
WA
CA
RB
WB
CB
RC
WC
CC
RD
WD
CD
TS(T1)
TS(T2)
TS(T3)
300
200
100
300
300
300
400
500
300
300
300
0
1
1
400
400
0
1
500
500
500
500
500
500
0
1
0
1
_________________________________________________________________________
f) Koje operacije zadaje mehanizam u cilju vraanja baze u konzistentno stanje u sluaju
opisanom u taki pod d) ukoliko je poznato da je u trenutku neposredno posle Write(C)
operacije transakcije T2 uraena kontrolna taka koja je zavrena u trenutku neposredno posle
Read(D) operacije transakcije T1? Kako e izgledati sistemski dnevnika u tom sluaju?
_______________________________________________________________________
Odgovor:
< T1, starts >
< T1, C, C0, C1 >
< T3, starts >
< T3, C, C1, C2 >
< T3, commits >
< T2, starts >
< T2, C, C2, C3 >
<CHK (T1,T2)>
< T2, B, B0, B1 > Undo{ T2} Redo{ T1} Restart{ T2}
<CHK END>
< T1, D, D0, D1 >
< T1, B, B1, B2 >
< T1, commits >
_______________________________________________________________________
1. (8) Za model entiteta i odnosa, prikazan na slici, kreirat SQL iskaz kojim se definie
ogranienje da hirurg mora imati dodeljenu bar jednu operacionu salu.
HIRURG
SifH
Ime
BrPeata
Lokal
(1,N)
KORISTI
Dan
OP.SALA
(0,N) SifS
BrSale
Veliina
_______________________________________________________________________
Odgovor:
CREATE ASSERTION BarJednaSala
CHECK (NOT EXISTS (SELECT *
FROM Hirurg
WHERE SifH NOT IN (SELECT SifH FROM Koristi)
)
);
______________________________________________________________________
2.(8) Dat je deo eme relacione baze podataka prevoznika robe. Potrebno je napisat SQL iskaz
koji vraa isti rezultat kao i dati iskaz relacione algebre.
KLIJENT(SifK, Naziv, Popust); AGENT(SifA, Ime); MESTO(SifM, Naziv);
PAKET(SifP, RedniBr, SifA, SifK, Tezina, DatumP, SifMOd, SifMDo);
))
_______________________________________________________________________
_______________________________________________________________________
b) Ispitati redom da li je data ema u BC, 3. i 2. normalnoj formi i svaki put u tabeli naznaiti
da li posmatrana zavisnost naruava posmatranu normalnu formu.
BCNF
3NF
2NF
XZZYB
YACG
CW
BG
XZG
x
x
x
x
x
x
x
x
x
x
x
x
c) Sprovesti normalizaciju date eme u 3. normalnu formu algoritmom koji garantuje ouvanje
funkcijskih zavisnosti.
_______________________________________________________________________
Odgovor:
_______________________________________________________________________
4.(9) Odrediti projekciju skupa funkcijskih zavisnosti F={ABC, CFG, EHG, GA} na
relaciju R(A, F, E). Da li je u tom sluaju relacija R u BC normalnoj formi?
_______________________________________________________________________
Odgovor:
Fna R ={AF, EAF}
_______________________________________________________________________
5.(36)
a) Ako se za oporavak od kvara koristi mehanizam Pratee stranice. Podaci A, B, C i D nalaze
se u razliitim stranicama na disku (podatak A u stranici 1,... , D u stranici 4). Prikazati izgled
relevantnih delova sistema u trenutku kvara, neposredno posle trenutka t20? Koje operacije
mehanizam Pratee Stranice vri posle popravke sistema u cilju vraanja baze u konzistentno
stanje?
_______________________________________________________________________
Odgovor:
5
6
T1
T2
7
8
9
11
10
T3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
A
B
C
D
C1
A1
C2
B1
D1
C3
A2
5
6
Vreme
T1
7
8
9
T2
11
10
T3
t1
t2
t3
t4
t5
t6
t7
t8
t9
t10
t11
t12
t13
t14
t15
t16
t17
t18
t19
t20
T1
T2
T3
Read (C)
Read (A)
Read (C)
Rollback
Read (A)
Write (C)
Write (A)
Commit
Read (C)
Write (C)
Read (B)
Write (B)
Read (D)
Write (D)
Commit
Read (A)
Read (C)
Write (C)
Write (A)
Commit
Oporavak:
1. Commit izvren: nita
2. Commit nije izvren: Restart {T3}
_______________________________________________________________________
b) Koje su vrednosti svakog od podatka u bazi nakon uspenog zavretka prikazanog redosleda
ukoliko je poznato da pre poetka izvravanja datog redosleda podaci A, B, C i D imaju
vrednosti 10, 20, 30 i 40 respektivno, i ukoliko se pretpostavi da se sa svakim proitanim
podatkom unutar transakcije obavlja obrada X=2*X (tj. kao da za svaki podatak koji
transakcija koristi, vri obradu Read(X); X=2*X; Write (X)?
_______________________________________________________________________
Odgovor:
Podatak Vrednosti
40
A
40
B
240
C
80
D
_______________________________________________________________________
Op
rd(C)
rd(A)
rd(C)
wr(c)
rd(A)
wr(c)
wr(A)
commit
rd(C)
wr(C)
rd(B)
wr(B)
rd(D)
wr(D)
commit
rd(A)
rd(C)
wr(C)
wr(A)
commit
S
ok
ok
ok
rb
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
RA
WA
CA
RB
WB
CB
RC
WC
CC
RD
WD
CD
TS(T1)
200
TS(T2)
300
TS(T3)
100
200
100
400
200
200
200
0
1
0
1
300
300
300
300
0
300
300
1
400
400
400
400
0
1
0
1
0
1
_______________________________________________________________________
e) Koje operacije zadaje mehanizam u cilju vraanja baze u konzistentno stanje u sluaju
opisanom u taki pod d) ukoliko je poznato da je u trenutku neposredno posle Write(D)
operacije transakcije T2 uraena kontrolna taka koja je zavrena u trenutku neposredno posle
Read(A) operacije transakcije T3? Kako e izgledati sistemski dnevnika u tom sluaju?
_______________________________________________________________________
Odgovor:
< T1, starts >
< T3, starts >
< T3, aborts >
< T1, C, C0 ,C1>
< T1, A, A0 ,A1>
< T1, commits >
< T2, starts >
< T2, C, C1 ,C2>
< T2, B, B0 ,B1>
< T2, D, D0 ,D1>
< CHK (T2)>
< T2, commits >
< T3, starts >
< CHK END>
_______________________________________________________________________
1. (8) Za model entiteta i odnosa, prikazan na slici, kreirat SQL iskaz kojim se definie
ogranienje da inenjer moe da koristi samo resurse koji pripadaju projekatima na kojima je
angaovan.
Resurs
SifR
Datum
Iznos
(0,N)
Koristi
Inzenjer
(0,N) SifI
Ime
Oblast
(0,N)
Radi_na
(0,N)
Projekat
SifP
Naziv
Datum
_______________________________________________________________________
Odgovor:
CREATE ASSERTION UpotrebaResursa
CHECK (NOT EXISTS (SELECT *
FROM Koristi K, Resurs R
WHERE K.SifR=R.SifR
AND R.SifP NOT IN (SELECT P.SifP
FROM Radi_Na P
WHERE P.SifI=K.SifI
)
)
);
_______________________________________________________________________
2.(8) Dat je deo eme relacione baze podataka prevoznika robe. Potrebno je napisat iskaz
relacionog rauna torki koji vraa isti rezultat kao i dati SQL iskaz.
KLIJENT(SifK, Naziv, Popust); AGENT(SifA, Ime); MESTO(SifM, Naziv);
PAKET(SifP, RedniBr, SifA, SifK, Tezina, DatumP, SifMOd, SifMDo);
SELECT SifA
FROM Agent
WHERE SifA NOT IN (SELECT SifA
FROM Paket P, Klijent K
WHERE P.SifK=K.SifK AND K.Popust <= 30);
_______________________________________________________________________
Odgovor:
{t | p ( p Agent t[ SifA] = p[ SifA] r , s (r Paket s Klijent
r[ SifK ] = s[ SifK ] s[ Popust ] 30 r[ SifA] = p[ SifA]))}
______________________________________________________________________
_______________________________________________________________________
b) Ispitati redom da li je data ema u BC, 3. i 2. normalnoj formi i svaki put u tabeli naznaiti
da li posmatrana zavisnost naruava posmatranu normalnu formu.
ABCD
BCNF
3NF
2NF
BCFG
x
x
AG
GB
CG
x
x
x
x
c) Sprovesti normalizaciju date eme u 3. normalnu formu algoritmom koji garantuje ouvanje
funkcijskih zavisnosti.
_______________________________________________________________________
Odgovor:
_______________________________________________________________________
d) Da li je dekompozicija relacije R na relacije R1(A, B, C, D) i R2 (A, C, F, G) bez gubitaka
pri spajanju? Ako jeste, onda objasniti zato, a potom odrediti u kojoj se normalnoj formi
nalazi ova dekompozicija.
_______________________________________________________________________
Odgovor:
R1 R2 = {A, C} (R1 , R2)
F1={ ABCD, CB } , F2={ACFG, CFG} 2NF
_______________________________________________________________________
4.(36)
a) Ako se za oporavak od kvara koristi mehanizam Pratee stranice. Podaci A, B, C,D i E
nalaze se u razliitim stranicama na disku (podatak A u stranici 1,... , E u stranici 5). Prikazati
izgled relevantnih delova sistema u trenutku kvara, neposredno posle trenutka t15? Koje
operacije mehanizam Pratee Stranice vri posle popravke sistema u cilju vraanja baze u
konzistentno stanje?
_______________________________________________________________________
Odgovor:
6
11
T1
7
10
T2
T3
8
9
10
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
A
B
C
D
E
E1
C1
B1
C2
A1
D1
6
11
T1
7
10
T2
2
3
10
T3
Vreme
T1
t1
t2
t3
t4
t5
t6
t7
t8
t9
t10
t11
t12
t13
t14
t15
t16
t17
Read (E)
Write (E)
T2
T3
Read (C)
Write (C)
Read (B)
Write (B)
Read (C)
Write (C)
Read (A)
Write (A)
Commit
Read (D)
Write (D)
Commit
Read (A)
Write (A)
Commit
Oporavak:
Restart {T3}
_______________________________________________________________________
b) Koje su vrednosti svakog od podatka u bazi nakon uspenog zavretka prikazanog redosleda
ukoliko je poznato da pre poetka izvravanja datog redosleda podaci A, B, C, D i E imaju
vrednosti 10, 20, 30, 40 i 50 respektivno, i ukoliko se pretpostavi da se sa svakim proitanim
podatkom unutar transakcije obavlja obrada X=2*X (tj. kao da za svaki podatak koji
transakcija koristi, vri obradu Read(X); X=2*X; Write (X)?
_______________________________________________________________________
Odgovor:
Podatak Vrednosti
40
A
40
B
60
C
80
D
100
E
_______________________________________________________________________
T1
t1
Lk(E)
t2
Rd(E)
t3
Wr(E)
t4
Lk(B)
t5
Lk(D)
t6
Un(E)
t7
Un(B)
t8
T2
T3
t37
Un(E)
t38
Un(A)
t39
Commit
t40
t41
t42
t43
t44
t45
Lk(E)
t46
t9
Lk(B)
t10
Lk(C)
t47
t11
Lk(A)
t48
t12
Un(E)
t49
t13
Un(B)
t50
t14
Rd(C)
t15
Wr(C)
t52
t16
Un(C)
t53
t51
t17
Lk(E)
t54
t18
Lk(B)
t55
t19
Rd(B)
t56
t20
Wr(B)
t57
t21
Lk(C)
t58
t22
Un(B)
t59
t23
Rd(C)
t60
t24
Wr(C)
t61
t25
Un(C)
t26
Rd(A)
t27
Wr(A)
t28
Un(A)
t29
Commit
t30
Rd(D)
t31
t32
Wr(D)
Un(D)
t33
Commit
E
B
A
D
t34
Lk(A)
t35
Rd(A)
t36
Wr(A)
Da Commit od T3 nije bio u sistemskom dnevniku: Undo{T3} Redo{T1, T2} Restart{ T3}
_______________________________________________________________________
e) Koje operacije zadaje mehanizam u cilju vraanja baze u konzistentno stanje u sluaju
opisanom u taki pod d) ukoliko je poznato da je u trenutku neposredno posle Write(D)
operacije transakcije T1 uraena kontrolna taka koja je zavrena u trenutku neposredno posle
Read(A) operacije transakcije T3? Kako e izgledati sistemski dnevnika u tom sluaju?
_______________________________________________________________________
Odgovor:
< T1, starts >
< T1, E, E0 ,E1>
< T2, starts >
< T2, C, C0 ,C1>
< T3, starts >
< T3, B, B0 ,B1>
< T3, C, C1 ,C2>
< T2, A, A0 ,A1>
< T2, commits >
< T1, D, D0 ,D1>
<CHK (T1, T3)>
< T1, commits >
<CHK END>
< T3, A, A1 ,A2>
< T3, commits >
Redo{T1, T3}
_______________________________________________________________________
(0,N)
Odrzava
Laboratorija
(0,1) SifL
BrSale
Mesta
(0,1)
Pripada
(0,N)
Odsek
SifO
Naziv
a) Kreirati novi model entiteta i odnosa tako da se obezbedi ogranienje da inenjer moe da
odrava samo one laboratorije za koje je poznato kom odseku pripadaju.
_______________________________________________________________________
Odgovor:
Inzenjer
SifI
Ime
Iskustvo
Laboratorija
SifL
BrSale
Mesta
(0,1)
Pripada
(0,N)
Odsek
SifO
Naziv
(0,1)
(0,N)
Odrzava
_______________________________________________________________________
b) Kreirati SQL iskaz kojim se bez modifikacije modela, prikazanog na slici, definie
ogranienje da inenjer moe da odrava samo one laboratorije za koje je poznato kom odseku
pripadaju.
_______________________________________________________________________
Odgovor:
CREATE ASSERTION Odrzavanje
CHECK (NOT EXISTS (SELECT *
FROM Odrzava
WHERE SifL NOT IN (SELECT SifL
FROM Pripada )
)
);
_______________________________________________________________________
_______________________________________________________________________
b) Ispitati redom da li je data ema u BC, 3. i 2. normalnoj formi i svaki put u tabeli naznaiti
da li posmatrana zavisnost naruava posmatranu normalnu formu.
BAD
BCNF
3NF
2NF
BCFE
EAB
x
DFAC
AE
x
c) Sprovesti normalizaciju date eme u 3. normalnu formu algoritmom koji garantuje ouvanje
funkcijskih zavisnosti.
_______________________________________________________________________
Odgovor:
ema je ve u 3NF.
_______________________________________________________________________
d) Sprovesti normalizaciju date eme u BC normalnu formu, izdvajajui zavisnosti redosledom
sleva na desno.
_______________________________________________________________________
Odgovor:
R1(B, A, D) R2(E, B) R3(C, E, F)
_______________________________________________________________________
e) Ispitati da li je pri postupku u okviru take d) dolo do gubitka funkcijskih zavisnosti i
kojih?
_______________________________________________________________________
Odgovor:
Izgubljena je: DFAC
_______________________________________________________________________
4.(36)
a) Ako se za oporavak od kvara koristi mehanizam Pratee stranice. Podaci A, B, C,i D nalaze
se u razliitim stranicama na disku (podatak A u stranici 1,... , D u stranici 4). Prikazati izgled
relevantnih delova sistema u trenutku kvara, neposredno posle trenutka t22? Koje operacije
mehanizam Pratee Stranice vri posle popravke sistema u cilju vraanja baze u konzistentno
stanje?
_______________________________________________________________________
Odgovor:
9
10
T1
T2
7
8
4
6
5
T3
Oporavak:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
A
B
C
D
C1
A1
C2
B1
C3
A2
9
10
T1
5
2
4
T2
6
5
T3
Vreme
T1
t1
t2
t3
t4
t5
t6
t7
t8
t9
t10
t11
t12
t13
t14
t15
t16
t17
t18
t19
t20
t21
t22
t23
t24
Read (C)
C:= C 1
T2
T3
Read (A)
A:= A 1
Read (C)
C:= A 2
Write (C)
Write (A)
Commit
Read (C)
C:= C + 1
Write (C)
Read (B)
B:= B 1
Write (B)
Read (A)
A:= A + C
Write (C)
Write (A)
Commit
Read (D)
D:= D / 4
Write (D)
Commit
Restart {T2}
_______________________________________________________________________
b) Koje su vrednosti svakog od podatka u bazi nakon uspenog zavretka prikazanog redosleda
ukoliko je poznato da pre poetka izvravanja datog redosleda podaci A, B, C, i D imaju
vrednosti 10, 20, 30, i 40 respektivno?
_______________________________________________________________________
Odgovor:
Podatak Vrednosti
38
A
19
B
19
C
10
D
_______________________________________________________________________
T1
T2
t2
t3
L(A)
t37
t38
t39
t4
L(A)
t5
t7
t8
t9
t10
t11
t35
t36
L(C)
Rd(C)
t6
T3
L(C)
t40
t41
Rd(A)
Wr(C)
Wr(A)
t42
t43
t44
Comm
Un(C)
Un(A)
t45
t46
t47
t12
t13
t14
t15
t16
t17
t18
t19
t20
L(A)
Rd(A)
t48
L(C)
Rd(C)
Wr(C)
Wr(A)
t50
Comm
Un(A)
Un(C)
t54
t49
t51
t52
t53
t55
t56
t21
L(C)
t57
t22
Rd(C)
Wr(C)
L(B)
Rd(B)
t58
t23
t24
t25
t26
t28
Wr(B)
L(D)
Rd(D)
t29
Wr(D)
t30
Comm
Un(C)
Un(B)
Un(D)
t27
t31
t32
t33
t34
t59
t60
t61
_______________________________________________________________________
e) Neka se za redosled iz take a) za oporavak od kvara koristi mehanizam Sistemskog
Dnevnika sa Neodloenim Upisom. Poznato je da je u trenutku neposredno posle Write(C)
operacije transakcije T2 uraena kontrolna taka koja je zavrena u trenutku neposredno posle
Write(B) operacije transakcije T2. Prikazati izgled sistemskog dnevnika i navesti operacije koje
sistem zadaje posle popravke sistema, u cilju vraanja baze u konzistentno stanje ukoliko je
kvar nastao neposredno posle trenutka t22?
_______________________________________________________________________
Odgovor:
< T1, starts >
< T3, starts >
< T3, C, C0, C1>
< T3, A, A0, A1>
< T3, commits >
< T2, starts >
< T2, C, C1, C2>
< CHK (T1,T2)>
< T2, B, B0, B1>
< CHK END>
< T1, C, C0, C3>
< T1, A, A1, A2>
< T1, commits >
_______________________________________________________________________
1. (8) Za model entiteta i odnosa, prikazan na slici, kreirati SQL iskaze kojim se definiu sva
ogranienja koja iz modela proistiu.
Radnik
SifO
Ime
(1,1)
Inzenjer
Oblast
Menadzer
BrProjekata
Procenat
_______________________________________________________________________
Odgovor:
CREATE TABLE Radnik (SifO INT PRIMARY KEY, ...)
CREATE TABLE Inzenjer (SifO INT PRIMAR KEY REFERENCES Radnik, ...)
CREATE TABLE Menadzer (SifO INT PRIMAR KEY REFERENCES Radnik, ...)
CREATE ASSERTION Specijalizacija
CHECK ( NOT EXISTS (SELECT *
FROM Radnik
WHERE (SifO NOT IN (SELECT SifO FROM Inzenjer)
AND
SifO NOT IN (SELECT SifO FROM Menadzer)
)
OR
(SifO IN (SELECT SifO FROM Inzenjer)
AND
SifO IN (SELECT SifO FROM Menadzer)
)
)
)
_______________________________________________________________________
2.(5) Za emu relacione baze podataka koja nastaje na osnovu modela prikaznog u zadatku 1,
treba sastaviti iskaz relacione algebre koji vraa parove ifara Menadera i Inenjera koji imaju
isto ime.
______________________________________________________________________
Odgovor:
SifO,Ime( Radnik Inzenjer ) t1(SifO, Ime)
_______________________________________________________________________
3.(5) Za svaki od navedenih parova vrednosti atributa Katedra i Iskustvo navesti da li naruava
navedeno ogranienje (staviti oznaku X pored onih koji naruavaju):
CONSTRAINT Test CHECK (CASE WHEN Katedra = 'RTI'
THEN CASE WHEN Iskustvo < 4
THEN 1 ELSE 0 END
ELSE 1 END = 1)
Katedra
RTI
RTI
EL
NULL
RTI
NULL
Iskustvo
NULL
6
3
NULL
2
1
Ogranienje
x
x
ABCD
BCNF
3NF
2NF
BCFG
AG
x
x
GB
CG
x
x
x
x
c) Sprovesti normalizaciju date eme u 3. normalnu formu algoritmom koji garantuje ouvanje
funkcijskih zavisnosti.
_______________________________________________________________________
Odgovor:
R1(A, C, D) R2(C, F, G) R3(G, B)
_______________________________________________________________________
d) Da li je dekompozicija relacije R na relacije R1(A, B, C, D) i R2 (A, C, F, G) bez gubitaka
pri spajanju? Ako jeste, onda objasniti zato, a potom odrediti u kojoj se normalnoj formi
nalazi ova dekompozicija.
_______________________________________________________________________
R1 R2 {A, C} ; {A, C} R1 ; {A, C} R2
2NF
Odgovor:
_______________________________________________________________________
5.(34)
a) Ako se za oporavak od kvara koristi mehanizam Pratee stranice. Podaci A, B, C i D nalaze
se u razliitim stranicama na disku (podatak A u stranici 1,... , D u stranici 4). Prikazati izgled
relevantnih delova sistema u trenutku kvara, neposredno posle trenutka t15? Koje operacije
mehanizam Pratee Stranice vri posle popravke sistema u cilju vraanja baze u konzistentno
stanje?
_______________________________________________________________________
Odgovor:
7
10
T1
5
9
T2
T3
6
8
2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
A
B
C
D
C1
C2
C3
A1
D1
A2
7
10
Vreme
T1
5
9
T2
3
1
2
T3
t1
t2
t3
t4
t5
t6
t7
t8
t9
t10
t11
t12
t13
t14
t15
t16
t17
T1
T2
T3
Read (C)
Write (C)
Read (C)
Write (C)
Read (C)
Write (C)
Read (A)
Write (A)
Read (D)
Write (D)
Commit
Read (A)
Write (A)
Commit
Read (B)
Write (B)
Commit
T1
T2
t1
L(C)
t2
Rd(C)
t3
Wr(C)
t4
L(D)
t5
Un(C)
T3
t38
t39
t40
t41
t42
t43
t6
L(B)
t44
t7
L(C)
t45
t8
Rd(C)
t46
t9
Wr(C)
t47
t10
L(A)
t48
t11
Un(C)
t49
t12
L(C)
t50
t13
Rd(C)
t51
t14
Wr(C)
t52
t15
Rd(A)
t53
t16
Wr(A)
t54
t17
Un(A)
t55
t18
Rd(D)
t56
t19
Wr(D)
t57
t20
Un(D)
t58
t21
Commit
t59
t22
L(A)
t60
t23
Un(C)
t61
t24
Rd(A)
t25
Wr(A)
t26
Un(A)
t27
Commit
t28
Rd(B)
t29
Wr(B)
t30
Un(B)
t31
t32
Commit
t33
t34
t35
t36
t37
C
A
a
1
2
3
4
b
w
x
z
y
SELECT *
FROM Tabela1 LEFT OUTER JOIN Tabela2
ON a = c AND d = 't'
WHERE d IS NULL;
Tabela2
c
d
1
r
3
s
3
t
_______________________________________________________________________
Odgovor:
1
2
4
w
x
y
null
null
null
null
null
null
_______________________________________________________________________
2.(12) Napisati SQL iskaz za kreiranje tabele R(A, B, C, D) sa svim potrebnim ogranienjima
ukoliko je poznato da traba da vai skup funkcijskih zavisnosti F={ABCD, BA, CD}, i
ukoliko su svi atributi celobrojnog tipa.
______________________________________________________________________
Odgovor:
CREATE TABLE R (
A INT PRIMARY KEY,
B INT NOT NULL UNIQUE,
C INT NOT NULL,
D INT NOT NULL,
CHECK (1 => ( SELECT COUNT(DISTINCT D)
FROM R
GROUP BY C)
)
)
_______________________________________________________________________
BCNF
3NF
2NF
ADCG
CDFG
ABG
GD
CG
x
x
x
x
x
x
x
x
x
x
x
c) Sprovesti normalizaciju date eme u 3. normalnu formu algoritmom koji garantuje ouvanje
funkcijskih zavisnosti.
_______________________________________________________________________
Odgovor:
R1(A, C, B) R2(G, D) R3(C, G) R4(A, F)
_______________________________________________________________________
d) Sprovesti normalizaciju date eme u BC normalnu formu, izdvajajui zavisnosti redosledom
sa desna na levo.
_______________________________________________________________________
Odgovor:
R1(C, G) R2(A, B) R3(C, D) R4(A, C) R5(A, D) R6(A, F)
R3(C, D) moe da izostane u reenju zavisno od redosleda uklanjanja zavisnosti
_______________________________________________________________________
e) Ispitati da li je pri postupku u okviru take d) dolo do gubitka funkcijskih zavisnosti i
kojih?
_______________________________________________________________________
Odgovor:
Izgubljena: G D
_______________________________________________________________________
4.(36)
a) Ako se za oporavak od kvara koristi mehanizam Pratee stranice. Podaci A, B, C i D nalaze
se u razliitim stranicama na disku (podatak A u stranici 1,... , D u stranici 4). Prikazati izgled
relevantnih delova sistema u trenutku kvara, neposredno posle trenutka t23? Koje operacije
mehanizam Pratee Stranice vri posle popravke sistema u cilju vraanja baze u konzistentno
stanje?
_______________________________________________________________________
Odgovor:
T1
T2
5
8
7
9
10
11
T3
Oporavak:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
A
B
C
D
C1
C2
D1
B1
C3
B2
A1
5
8
7
6
8
1
T1
T2
T3
Vreme
T1
t1
t2
t3
t4
t5
t6
t7
t8
t9
t10
t11
t12
t13
t14
t15
t16
t17
t18
t19
t20
t21
t22
t23
t24
Read (C)
Read (B)
C:= C + B
Write (C)
B:= B 5
T2
T3
Read (C)
C:= 50
Write (C)
Commit
Read (C)
C:= C + 1
Read (D)
D:= D + C
Write (D)
Write (B)
Commit
Write (C)
Read (B)
B:= B 1
Write (B)
Read (A)
A:= A * 2
Write (A)
Commit
Restart{T2}
_______________________________________________________________________
b) Koje su vrednosti svakog od podatka u bazi nakon uspenog izvravanja posmatranog
redosleda ukoliko, pre poetka izvravanja datog redosleda, podaci A, B, C i D imaju vrednosti
10, 20, 30 i 40 respektivno?
_______________________________________________________________________
Odgovor:
Podatak Vrednosti
20
A
14
B
51
C
90
D
_______________________________________________________________________
T1
T2
T3
Ls(C)
Rd(C)
t3
Ls(B)
t4
Rd(B)
t5
Lx(C)
t6
Wr(C)
t7
Ls(C)
t8
t34
Rd(A)
t35
Lx(A)
t36
Wr(A)
t37
Un(C)
t38
Un(B)
t39
Un(A)
t40
Commit
t41
t42
Ls(C)
t43
t9
Ls(D)
t10
Rd(D)
t11
Ex(D)
t45
t12
Wr(D)
t46
t13
Lx(B)
t47
t14
Wr(B)
t15
Un(C)
t49
t16
Un(D)
t50
t17
Un(B)
t51
t18
Commit
t52
t44
t48
t19
Ls(C)
t53
t20
Rd(C)
t54
t21
Lx(C)
t55
t22
Wr(C)
t56
t23
Un(C)
t57
t24
Commit
t58
t25
Ls(C)
t59
t26
Rd(C)
t60
t27
Lx(C)
t61
t28
Wr(C)
t29
Ls(B)
t30
Rd(B)
t31
t32
Lx(B)
Wr(B)
t33
Ls(A)
_________________________________________________________________________
f) Koje operacije zadaje mehanizam u cilju vraanja baze u konzistentno stanje u sluaju
opisanom u taki pod d) ukoliko je poznato da je u trenutku neposredno posle Read(D)
operacije transakcije T1 uraena kontrolna taka koja je zavrena u trenutku neposredno posle
Write(D) operacije transakcije T1? Kako e izgledati sistemski dnevnika u tom sluaju?
_______________________________________________________________________
Odgovor:
<T1, starts>
<T1, C, C0, C1>
<T3, starts>
<T3, C, C1, C2>
<T3, commits>
<T2, starts>
<CHK(T1, T2)>
<T1, D, D0, D1>
<CHK END>
<T1, B, B0, B1>
<T1, commits>
<T2, C, C2, C3>
<T2, B, B0, B1>
_______________________________________________________________________
_______________________________________________________________________
BCNF
3NF
2NF
ABFC
CFB
CDA
BDAE
CF
BF
c) Sprovesti normalizaciju date eme u 3. normalnu formu algoritmom koji garantuje ouvanje
funkcijskih zavisnosti.
_______________________________________________________________________
Odgovor:
R1(A, B, C) R2(B, D, A, E) R3(B, F)
_______________________________________________________________________
d) Sprovesti normalizaciju date eme u BC normalnu formu, izdvajajui zavisnosti redosledom
sa desna na levo.
_______________________________________________________________________
Odgovor:
R1(B, F) R2(C, B) R3(A, C, D, E)
_______________________________________________________________________
e) Ispitati da li je pri postupku u okviru take d) dolo do gubitka funkcijskih zavisnosti i
kojih?
_______________________________________________________________________
Odgovor:
ABFC, BDAE
_______________________________________________________________________
f) Da li je dekompozicija relacije R na relacije R1(A, D) , R2 (B, E, F), R3 (A, C) i R4 (C, E)
bez gubitaka pri spajanju? Objasniti.
_______________________________________________________________________
Odgovor: Dekompozicija je sa gubitkom
R1 ,F1={}
R2 ,F2={BF}
R3 ,F3={}
R4 ,F4={}
R1 R2 ={}
R2 R3 ={}
R3 R4 ={C} x-> R3
R3 R4 ={C} x-> R4
R1 R3 ={A} x-> R1
R1 R3 ={A} x-> R3
R2 R4 ={E} x-> R2
R2 R4 ={E} x-> R4
R1 R4 ={}
_______________________________________________________________________
5.(34)
a) Ako se za oporavak od kvara koristi mehanizam Pratee stranice. Podaci A, B, C i D nalaze
se u razliitim stranicama na disku (podatak A u stranici 1,... , D u stranici 4). Prikazati izgled
relevantnih delova sistema u trenutku kvara, neposredno posle trenutka t23? Koje operacije
mehanizam Pratee Stranice vri posle popravke sistema u cilju vraanja baze u konzistentno
stanje?
_______________________________________________________________________
Odgovor:
T1
5
10
9
7
8
T2
6
1
T3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
A
B
C
D
C1
C2
C3
B1
D1
B2
5
10
9
T1
7
8
T2
3
1
T3
Vreme
T1
t1
t2
t3
t4
t5
t6
t7
t8
t9
t10
t11
t12
t13
t14
t15
t16
t17
t18
t19
t20
t21
t22
t23
t24
Read (C)
Read (B)
C:= C + B
Write (C)
B:= B 5
T2
T3
Read (C)
C:= 50
Write (C)
Read (C)
C:= C + 1
Write (C)
Read (B)
B:= B 1
Write (B)
Commit
Read (D)
D:= D + C
Write (D)
Write (B)
Commit
Read (A)
A:= A + C
Write (A)
Commit
_______________________________________________________________________
b) Koje su vrednosti svakog od podatka u bazi nakon uspenog izvravanja posmatranog
redosleda ukoliko, pre poetka izvravanja datog redosleda, podaci A, B, C i D imaju vrednosti
10, 20, 30 i 40 respektivno?
_______________________________________________________________________
Odgovor:
Podatak Vrednosti
A
60
B
15
C
50
D
90
_______________________________________________________________________
T1
t1
Lk(C)
t2
Rd(C)
t3
Lk(B)
t4
t5
Rd(B)
Wr(C)
t6
Lk(D)
t7
Un(C)
T2
T3
t33
t34
t35
t36
t37
t38
t39
t40
t8
Lk(C)
t9
Rd(C)
t10
Wr(C)
t11
Lk(A)
t12
Un(C)
t13
Lk(C)
t14
t15
Rd(C)
Wr(C)
t16
Lk(B)
t41
t42
t43
t44
t45
t46
t47
t48
t49
t17
Rd(D)
t50
t18
Wr(D)
t51
t19
t52
t20
Wr(B)
Un(D)
t21
Un(B)
t54
t22
Comm
t55
t53
t23
Lk(B)
t56
t24
Rd(B)
t57
t25
Wr(B)
t58
t26
Un(C)
t59
t27
Un(B)
t60
t28
Comm
t61
t29
Rd(A)
t30
Wr(A)
Un(A)
Comm
t31
t32
Mogue vrednosti
10
20, 19, 15
30, 31, 50
40, 90
_________________________________________________________________________
f) Koje operacije zadaje mehanizam u cilju vraanja baze u konzistentno stanje u sluaju
opisanom u taki pod d) ukoliko je poznato da je u trenutku neposredno posle Read(D)
operacije transakcije T1 uraena kontrolna taka koja je zavrena u trenutku neposredno posle
Read(A) operacije transakcije T3? Kako e izgledati sistemski dnevnika u tom sluaju?
_______________________________________________________________________
Odgovor:
<T1, start>
<T1, C, C1>
<T3, start>
<T3, C, C2>
<T2, start>
<T2, C, C3>
<T2, B, B1>
<T2, commit>
<CHK (T1, T3)>
<T1, D, D1 >
<T1, B, B2>
<T1, commit>
<CHK END>
Redo{T1} Restart{T3}
_______________________________________________________________________
2.(4) Za deo relacione eme opisan u prethodnom zadatku treba napisati iskaz relacionog
rauna domena koji vraa informacije o prvim pristupima podacima. Za svaki prvi pristup je
potrebno vratiti ifru transakcije, adresu podatka i trenutak prvog pristupa tom podatku u
okviru te transakcije.
______________________________________________________________________
Odgovor:
{<SifT, Adresa, Trenutak>|SifP,Op(<SifP, Adresa, Op, Trenutak,SifT> Pristup
AND SifP2, Op2, Trenutak2(<SifP2, Adresa, Op2, Trenutak2,SifT>Pristup
AND Trenutak2<Trenutak))}
_______________________________________________________________________
BCNF
3NF
2NF
BCE
CFA
X
X
BDA
DE
ACFDE
BF
c) Sprovesti normalizaciju date eme u 3. normalnu formu algoritmom koji garantuje ouvanje
funkcijskih zavisnosti.
_______________________________________________________________________
Odgovor:
R1(B, C, F) R2(C, F, A, D) R3(D, E)
_______________________________________________________________________
d) Sprovesti normalizaciju date eme u BC normalnu formu, izdvajajui zavisnosti redosledom
sa desna na levo.
_______________________________________________________________________
Odgovor:
R1(D, E) R2(A, C, F, D) R3(B, C, F)
_______________________________________________________________________
e) Ispitati da li je pri postupku u okviru take d) dolo do gubitka funkcijskih zavisnosti i
kojih?
_______________________________________________________________________
Odgovor:
Nema gubitaka
_______________________________________________________________________
f) Napisati SQL skript koji na osnovu sadraja tabele R popunjava tabele kreirane na osnovu
rezultata dekompozicije dobijene u taki d). U svakoj od tabela naznaiti primarni klju.
_______________________________________________________________________
Odgovor:
INSERT INTO R1(B, C, F) SELECT DISTINCT B, C, F FROM R;
INSERT INTO R2(D, E) SELECT DISTINCT D, E FROM R;
INSERT INTO R3(A, C, F, D) SELECT DISTINCT A, C, F, D FROM R;
_______________________________________________________________________
4.(34)
a) Ako se za oporavak od kvara koristi mehanizam Pratee stranice. Podaci A, B, C i D nalaze
se u razliitim stranicama na disku (podatak A u stranici 1,... , D u stranici 4). Prikazati izgled
relevantnih delova sistema u trenutku kvara, neposredno posle trenutka t22? Koje operacije
mehanizam Pratee Stranice vri posle popravke sistema u cilju vraanja baze u konzistentno
stanje?
_______________________________________________________________________
Odgovor:
6
9
T1
7
8
T2
T3
5
10
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
A
B
C
D
C1
C2
C3
A1
D1
B1
Oporavak:
Restart{T3}
6
9
Vreme
T1
7
8
T2
3
2
8
T3
t1
t2
t3
t4
t5
t6
t7
t8
t9
t10
t11
t12
t13
t14
t15
t16
t17
t18
t19
t20
t21
t22
t23
t24
T1
T2
T3
Read (C)
Read (B)
C:= C + B
Write (C)
B:= B 5
Read (C)
C:= 50
Write (C)
Read (C)
C:= C + 1
Write (C)
Read (A)
A:= A 1
Write (A)
Commit
Read (D)
D:= D + C
Write (D)
Commit
Write (B)
Read (A)
A:= A + C
Write (A)
Commit
_______________________________________________________________________
b) Koje su vrednosti svakog od podatka u bazi nakon uspenog izvravanja posmatranog
redosleda ukoliko, pre poetka izvravanja datog redosleda, podaci A, B, C i D imaju vrednosti
10, 20, 30 i 40 respektivno?
_______________________________________________________________________
Odgovor:
Podatak Vrednosti
A
59
B
15
C
50
D
90
_______________________________________________________________________
T1
T2
T3
t1
Lk(B)
t2
Lk(D)
t3
Lk(C)
t4
t5
Rd(C)
Rd(B)
t6
Wr(C)
t7
Un(C)
t8
Lk(A)
t9
Un(D)
t10
Lk(D)
t11
Lk(C)
t12
t13
Rd(C)
Wr(C)
t14
Un(C)
t15
t37
t38
t39
t40
t41
t42
t43
t44
t45
t46
t47
t48
t49
t50
t51
t52
Lk(D)
t16
Rd(D)
t53
t17
Wr(D)
t54
t18
Un(D)
t55
t19
Comm
t56
t20
Lk(D)
t57
t21
Lk(C)
t58
t22
Rd(C)
t59
t23
Wr(C)
t60
t24
Lk(A)
t61
t25
Un(D)
t26
Rd(A)
t27
Wr(A)
t28
Un(C)
t29
Un(A)
t30
Comm
t31
B
D
t32
Wr(B)
Rd(A)
t33
Wr(A)
t34
Un(B)
t35
Un(A)
t36
Comm
Mogue vrednosti
10, 9
20, 15
30, 50, 51
40, 90
Undo{T3}
Redo{T1, T2}
Restart{T3}
_________________________________________________________________________
f) Koje operacije zadaje mehanizam u cilju vraanja baze u konzistentno stanje u sluaju
opisanom u taki pod d) ukoliko je poznato da je u trenutku neposredno posle Read(D)
operacije transakcije T1 uraena kontrolna taka koja je zavrena u trenutku neposredno posle
Write(B) operacije transakcije T3? Kako e izgledati sistemski dnevnika u tom sluaju?
_______________________________________________________________________
Odgovor:
<T3, start>
<T3, C, C0, C1>
<T1, start>
<T1, C, C1, C2>
<T2, start>
<T2, C, C2, C3>
<T2, A, A0, A1>
<T2, commit>
<CHK (T1, T3)>
<T1, D, D0, D1>
<T1, commit>
<T3, B, B0, B1>
<CHK END>
Undo{T3}
Redo{T1}
Restart{T3}
_______________________________________________________________________
1. (6) Za model entiteta i odnosa, prikazan na slici, kreirati SQL iskaz kojim se kreira tabela
Je_Instaliran ukoliko je poznato da se datumi uvaju u vidu celobrojnih vrednosti.
Program
Naziv
Verzija
Datum
(0,1)
Racunar
IPAdresa
Cpu
HD
(0,N)
Je_Instaliran
DatumInst
Operater
(0,N) SifO
Ime
BrTel
_______________________________________________________________________
Odgovor:
CREATE TABLE Je_Instaliran
( Naziv CHAR(20) NOT NULL,
Verzija INT NOT NULL,
SifO INT NOT NULL REFERENCES Operater ON UPDATE CASCADE,
IPAdresa CHAR(11) NOT NULL REFERENCES Racunar ON UPDATE CASCADE,
DatumIns INT NOT NULL,
FOREIGN KEY (Naziv, Verzija) REFERENCES Program ON UPDATE CASCADE,
PRIMARY KEY (Naziv, Verzija)
);
_______________________________________________________________________
2.(4) Za model entiteta i odnosa opisan u prethodnom zadatku, kreirat SQL iskaz kojim se
definie ogranienje da datum programa mora biti manji od datuma kada je obavljena njegova
instalacija (DatumInst) na nekom od raunara.
______________________________________________________________________
Odgovor:
CREATE ASSERTION Datumi
CHECK (NOT EXIST (SELECT *
FROM Je_Instaliran J, Program P
WHERE J.Naziv = P.Naziv AND J.Verzija = P.Verzija
AND P.Datum >= J.DatumInst
)
);
_______________________________________________________________________
BCNF
3NF
2NF
BCCA
CFA
X
X
BAD
DE
ACD
EFC
c) Sprovesti normalizaciju date eme u 3. normalnu formu algoritmom koji garantuje ouvanje
funkcijskih zavisnosti.
_______________________________________________________________________
Odgovor:
R1(C, F, A) R2(B, D) R3(D, E) R4(A, C, D) R5(E, F, C)
_______________________________________________________________________
d) Sprovesti normalizaciju date eme u BC normalnu formu, izdvajajui zavisnosti redosledom
sa leva na desno.
_______________________________________________________________________
Odgovor:
R1(C, F, A) R2(D, E) R3(D, F, C) R4(B, D)
R1(C, F, A) R2(D, E) R3(D, F, C) R4(B, F, C)
_______________________________________________________________________
e) Ispitati da li je pri postupku u okviru take d) dolo do gubitka funkcijskih zavisnosti i
kojih?
_______________________________________________________________________
Odgovor:
Nije dolo do gubitka.
_______________________________________________________________________
4.( 40)
a) Ako se za oporavak od kvara koristi mehanizam Pratee stranice. Podaci A, B, C i D nalaze
se u razliitim stranicama na disku (podatak A u stranici 1,... , D u stranici 4). Prikazati izgled
relevantnih delova sistema u trenutku kvara, neposredno posle trenutka t22? Koje operacije
mehanizam Pratee Stranice vri posle popravke sistema u cilju vraanja baze u konzistentno
stanje?
_______________________________________________________________________
Odgovor:
6
4
1 A
9
9
2 B
Vreme
T1
T2
T3
T1
3 C
T1
t1
Read (C)
4 D
t2
Read (B)
5 C1
t3
C:= C + B
7
7
t4
Write (C)
6 C2
10
10
t
5
B:= B 5
7 C3
t
Read
(C)
6
B1
8
T2
T2
t7
C:= C + 1
9 A1
t
Write (C)
8
10 D2
t9
Read (C)
11
5
5
t10
C:= 40
8
8
12
t11
Write (C)
9
9
13
T3
t
Write (B)
T3
12
t13
Read (A)
14
t14
A:= A + C
15
t
Write (A)
15
16
t16
Commit
17
t17
Read (D)
18
t18
D:= D + C
19
t
Write (D)
19
t20
t21
t22
t23
t24
Commit
Read (A)
A:= A + C
Write (A)
Commit
____________________________________________________________________________
b) Koje su vrednosti svakog od podatka u bazi nakon uspenog izvravanja posmatranog
redosleda ukoliko podaci A, B, C i D na poetku imaju vrednosti 10, 20, 30 i 40 respektivno?
____________________________________________________________________________
Odgovor:
Podatak Vrednosti
A
91
B
15
C
31
D
80
____________________________________________________________________________
c) Da li je redosled sa slike serijalizabilan? Odrediti sve ekvivalentne serijske redoslede.
____________________________________________________________________________
Odgovor: T3 T1 T2
____________________________________________________________________________
T3
T3
T3
T1
T2
T3
T3
T3
T3
T1
T1
T1
T1
T1
T2
T2
T2
T2
T2
Op
Rd(C)
Rd(B)
Wr(C)
Rd(C)
Rd(C)
Wr(B)
Rd(A)
Wr(A)
Commit
Rd(C)
Wr(C)
Rd(A)
Wr(A)
Commit
Rd(C)
Wr(C)
Rd(D)
Wr(D)
Commit
RA
WA
CA
RB
WB
CB
RC
WC
CC
RD
WD
CD
TS(T1)
TS(T2)
TS(T3)
200
300
100
100
300
0
1
ok
ok
ok
wait
wait
ok
ok
100
ok
100
ok
ok
ok
ok
200
ok
200
ok
ok
ok
ok
ok
ok
100
100
100
0
1
1
200
200
0
1
1
300
300
0
300
1
Mogue vrednosti
10, 60
20, 15
30, 50, 51, 40
40, 80
_________________________________________________________________________
g) Koje operacije zadaje mehanizam u cilju vraanja baze u konzistentno stanje u sluaju
opisanom u taki pod e) ukoliko je poznato da je u trenutku neposredno posle Read(D)
operacije transakcije T2 uraena kontrolna taka koja je zavrena u trenutku neposredno posle
Write(A) operacije transakcije T1? Kako e izgledati sistemski dnevnika u tom sluaju?
_______________________________________________________________________
Odgovor:
<T3, start>
<T3, C, C0, C1>
<T1, start>
<T1, C, C1, C2>
<T2, start>
<T2, C, C2, C3>
<T3, B, B0, B1>
<T3, A, A0, A1>
<T3, commit>
<CHK(T1, T2)>
<T2, D, D0, D1>
<T2, commit>
_______________________________________________________________________
1. (6) Za model entiteta i odnosa, prikazan na slici, kreirati iskaz relacionog rauna domena
koji vraa nazive programa instaliranih na dva ili vie raunara.
Program
Naziv
Verzija
Datum
(0,1)
Racunar
IPAdresa
Cpu
HD
(0,N)
Je_Instaliran
DatumInst
Operater
(0,N) SifO
Ime
BrTel
_______________________________________________________________________
Odgovor:
_______________________________________________________________________
BCNF
3NF
2NF
BDCA
CEDB
X
BAD
DE
ACD
EBC
c) Sprovesti normalizaciju date eme u 3. normalnu formu algoritmom koji garantuje ouvanje
funkcijskih zavisnosti.
_______________________________________________________________________
Odgovor:
ema je ve u 3NF.
_______________________________________________________________________
d) Sprovesti normalizaciju date eme u BC normalnu formu, izdvajajui zavisnosti redosledom
sa leva na desno.
_______________________________________________________________________
Odgovor:
R1(A, C, E) R2(C, E, D, B)
_______________________________________________________________________
e) Ispitati da li je pri postupku u okviru take d) dolo do gubitka funkcijskih zavisnosti i
kojih?
_______________________________________________________________________
Odgovor:
Nije dolo do gubitka funkcijskih zavisnosti.
_______________________________________________________________________
4.( 40)
a) Ako se za oporavak od kvara koristi mehanizam Pratee stranice. Podaci A, B, C i D nalaze
se u razliitim stranicama na disku (podatak A u stranici 1,... , D u stranici 4). Prikazati izgled
relevantnih delova sistema u trenutku kvara, neposredno posle trenutka t23? Koje operacije
mehanizam Pratee Stranice vri posle popravke sistema u cilju vraanja baze u konzistentno
stanje?
_______________________________________________________________________
Odgovor:
5
3
1 A
10
10
2 B
Vreme
T1
T2
T3
3 C
T1
T1
t1
Read (C)
4 D
t2
C:= C + 1
5 C1
t3
Write (C)
7
7
t4
Read (C)
6 C2
10
10
t
Read (B)
5
7 C3
t
6
C:= C + B
8 B1
T2
T2
t
Write (C)
7
9 A1
t8
B:= B 5
10 D1
t9
Read (C)
11
6
6
t10
C:= 40
8
8
12
t11
Write (C)
9
9
13
t
Write (B)
T3
T3
12
t13
Read (A)
14
t14
A:= A + C
15
t
Write (A)
15
16
t16
Commit
17
t17
Read (D)
18
t18
D:= D + C
19
t
Write (D)
19
Oporavak: Restart{T1}
t20
t21
t22
t23
t24
Commit
Read (D)
D:= D + C
Write (D)
Commit
____________________________________________________________________________
b) Koje su vrednosti svakog od podatka u bazi nakon uspenog izvravanja posmatranog
redosleda ukoliko podaci A, B, C i D na poetku imaju vrednosti 10, 20, 30 i 40 respektivno?
____________________________________________________________________________
Odgovor:
Podatak Vrednosti
A
60
B
15
C
31
D
111
____________________________________________________________________________
c) Da li je redosled sa slike serijalizabilan? Odrediti sve ekvivalentne serijske redoslede.
____________________________________________________________________________
Odgovor: Nije serijalizabilan.
____________________________________________________________________________
T1
T2
T3
t34
t35
t36
t37
t38
t39
t40
t7
t41
t8
t42
t9
t10
t43
t44
t11
t45
t12
t46
t13
t47
t14
t48
t15
t49
t16
t50
t17
t51
t18
t52
t19
t53
t20
t54
t21
t55
t22
t56
t23
t57
t24
t58
t25
t59
t26
t60
t27
t61
t28
t29
t30
t31
t32
t33
Mogue vrednosti
10, 61
20, 15
30, 31, 51, 40
40, 80
Undo {T1}
Redo {T2, T3}
Restart {T1}
_________________________________________________________________________
g) Koje operacije zadaje mehanizam u cilju vraanja baze u konzistentno stanje u sluaju
opisanom u taki pod e) ukoliko je poznato da je u trenutku neposredno posle Read(D)
operacije transakcije T2 uraena kontrolna taka koja je zavrena u trenutku neposredno posle
Read(D) operacije transakcije T1? Kako e izgledati sistemski dnevnika u tom sluaju?
_______________________________________________________________________
Odgovor:
<T1, start>
<T1, C, C0, C1>
<T3, start>
<T3, C, C1, C2>
<T2, start>
<T2, C, C2, C3>
<T3, B, B0, B1>
<T3, A, A0, A1>
<T3, commit>
<CHK (T1, T2)>
<T2, D, D0, D1>
<T2, Commit>
<CHK END>
Undo {T1}
Redo {T2}
Restart {T1}
______________________________________________________________________
1. (6) Za model entiteta i odnosa, prikazan na slici, kreirati iskaz relacionog rauna domena
koji vraa nazive programa instaliranih na dva ili vie raunara.
Program
Naziv
Verzija
Datum
(0,N)
Racunar
IPAdresa
Cpu
HD
(0,N)
Je_Instaliran
DatumInst
Operater
(0,N) SifO
Ime
BrTel
_______________________________________________________________________
Odgovor:
_______________________________________________________________________
2.(4) Za model entiteta i odnosa iz prethodnog zadatka, kreirati SQL iskaz kojim se definie
ogranienje da sav softver na raunaru mora biti instaliran od strane jednog operatera.
______________________________________________________________________
Odgovor:
CHECK ( NOT EXISTS ( SELECT J1.IPAdresa, J2.IPAdresa
FROM Je_Instaliran J1, Je_Instaliran J2
WHERE J1.IPAdresa = J2. IPAdresa
AND J1.SifO <> J2.SifO
)
)
_______________________________________________________________________
BCNF
3NF
2NF
BCE
CFA
X
X
BDA
DE
ACFDE
BF
c) Sprovesti normalizaciju date eme u 3. normalnu formu algoritmom koji garantuje ouvanje
funkcijskih zavisnosti.
_______________________________________________________________________
Odgovor:
R1(B, C, F) R2(C, F, A, D) R3(D, E)
_______________________________________________________________________
d) Sprovesti normalizaciju date eme u BC normalnu formu, izdvajajui zavisnosti redosledom
sa desna na levo.
_______________________________________________________________________
Odgovor:
R1(D, E) R2(A, C, F, D) R3(B, C, F)
_______________________________________________________________________
e) Ispitati da li je pri postupku u okviru take d) dolo do gubitka funkcijskih zavisnosti i
kojih?
_______________________________________________________________________
Odgovor:
Nema gubitka funkcijskih zavisnosti.
_______________________________________________________________________
f) Napisati SQL skript koji na osnovu sadraja tabele R popunjava tabele kreirane na osnovu
rezultata dekompozicije dobijene u taki d). U svakoj od tabela naznaiti primarni klju.
_______________________________________________________________________
Odgovor:
INSERT INTO R1(D, E) SELECT DISTINCT D, E FROM R;
INSERT INTO R2(A, C, F, D) SELECT DISTINCT A, C, F, D FROM R;
INSERT INTO R3(B, C, F) SELECT DISTINCT B, C, F FROM R;
_______________________________________________________________________
4.(34)
a) Ako se za oporavak od kvara koristi mehanizam Pratee stranice. Podaci A, B, C i D nalaze
se u razliitim stranicama na disku (podatak A u stranici 1,... , D u stranici 4). Prikazati izgled
relevantnih delova sistema u trenutku kvara, neposredno posle trenutka t22? Koje operacije
mehanizam Pratee Stranice vri posle popravke sistema u cilju vraanja baze u konzistentno
stanje?
_______________________________________________________________________
Odgovor:
5
3
1 A
10
10
2 B
Vreme
T1
T2
T3
3 C
T1
T1
t1
Read (C)
4 D
t2
C:= C + 1
5 C1
t3
Write (C)
7
7
t4
Read (C)
6 C2
10
10
t
Read (B)
5
7 C3
t
6
C:= C + B
8 B1
T2
T2
t
Write (C)
7
9 A1
t8
B:= B 5
10 D1
t9
Read (C)
11
6
6
t10
C:= 40
8
8
12
t11
Write (C)
9
9
13
t
Write (B)
T3
T3
12
t13
Read (A)
14
t14
A:= A + C
15
t
Write (A)
15
16
t16
Commit
17
t17
Read (D)
18
t18
D:= D + C
19
t
Write (D)
19
Oporavak: Restart{T1}
t20
t21
t22
t23
t24
Commit
Read (D)
D:= D + C
Write (D)
Commit
____________________________________________________________________________
b) Koje su vrednosti svakog od podatka u bazi nakon uspenog izvravanja posmatranog
redosleda ukoliko podaci A, B, C i D na poetku imaju vrednosti 10, 20, 30 i 40 respektivno?
____________________________________________________________________________
Odgovor:
Podatak Vrednosti
A
60
B
15
C
31
D
111
____________________________________________________________________________
c) Da li je redosled sa slike serijalizabilan? Odrediti sve ekvivalentne serijske redoslede.
____________________________________________________________________________
Odgovor: Nije serijalizabilan.
____________________________________________________________________________
T1
t1
L(D)
t2
L(C)
t3
Rd(C)
t4
Wr(C)
t5
T2
T3
t38
t39
t40
t41
t42
U(C)
t6
L(B)
t7
L(D)
t8
t37
t43
t44
t45
L(D)
t46
t9
Rd(D)
t10
Wr(D)
t47
t11
U(D)
t48
t12
Comm
t49
t50
t13
L(D)
t14
L(C)
t15
Rd(C)
t52
t16
Rd(B)
t53
t17
Wr(C)
t54
t18
U(C)
t55
t19
W(B)
t56
t20
U(B)
t57
t21
L(A)
t58
t22
U(D)
t59
t23
Rd(A)
t60
t24
Wr(A)
t61
t25
U(A)
t26
Comm
t27
L(D)
t28
L(C)
t29
Rd(C)
t30
Wr(C)
t31
t32
U(C)
Rd(D)
t33
Wr(D)
t34
U(D)
t35
Comm
t36
t51
B
D
A
Undo {T1}
Redo {T2, T3}
Restart {T1}
Mogue vrednosti
10, 61
20, 15
30, 31, 51, 40
40, 80
_________________________________________________________________________
g) Koje operacije zadaje mehanizam u cilju vraanja baze u konzistentno stanje u sluaju
opisanom u taki pod e) ukoliko je poznato da je u trenutku neposredno posle Read(D)
operacije transakcije T2 uraena kontrolna taka koja je zavrena u trenutku neposredno posle
Read(D) operacije transakcije T1? Kako e izgledati sistemski dnevnika u tom sluaju?
_______________________________________________________________________
Odgovor:
<T1, start>
<T1, C, C0, C1>
<T3, start>
<T3, C, C1, C2>
<T2, start>
<T2, C, C2, C3>
<T3, B, B0, B1>
<T3, A, A0, A1>
<T3, commit>
<CHK (T1, T2)>
<T2, D, D0, D1>
<T2, Commit>
<CHK END>
Undo {T1}
Redo {T2}
Restart {T1}
_______________________________________________________________________
_______________________________________________________________________
6.(4) Za deo relacione eme opisan u prethodnom zadatku treba napisati iskaz relacionog
rauna domena koji vraa informacije o prvim pristupima podacima. Za svaki prvi pristup je
potrebno vratiti ifru transakcije, adresu podatka i trenutak prvog pristupa tom podatku u
okviru te transakcije.
______________________________________________________________________
Odgovor:
{< SifT , Adresa, Trenutak >| SifP1Op(< SifP, Adresa, Op, Trenutak , SifT > Pristup
SifP 2, Op 2, Trenutak 2(< SifP 2, Adresa, Op 2, Trenutak 2, SifT > Pristup
Trenutak2 < Trenutak))}
_______________________________________________________________________
B
T
F
NULL
T
NULL
Ogranienje
2. (9) Neka je data tabela Osoba(SifO, Ime, Pol), pri emu atribut Pol moe imati dve vrednosti
(Z-ena, M-mukarac). Potrebno je napisati SQL upit koji e vratiti meovite parove osoba koji
e plesati (tj. svaki par treba da se sastoji od jedne ene i jednog mukarca). Svaka osoba sme
da se pojavi najvie u jednom paru (osobe koji nemaju svoj par, nije potrebno ispisivati).
______________________________________________________________________
Odgovor:
SELECT O1.SifO, O1.Ime, O2.SifO, O2.Ime
FROM Osoba O1, Osoba O2
WHERE O1.Pol = Z AND O2.Pol = M
AND ( SELECT COUNT(*)
FROM Osoba O3
WHERE O3.SifO < O1.SifO AND O3.Pol = Z
)
AND ( SELECT COUNT(*)
FROM Osoba O4
WHERE O4.SifO < O2.SifO AND O4.Pol = M
);
_______________________________________________________________________
_______________________________________________________________________
b) Ispitati redom da li je data ema u BC, 3. i 2. normalnoj formi i svaki put u tabeli naznaiti
da li posmatrana zavisnost naruava posmatranu normalnu formu.
BDCA
BCNF
3NF
2NF
X
X
CEDB
BAD
ACD
EBC
c) Sprovesti normalizaciju date eme u 3. normalnu formu algoritmom koji garantuje ouvanje
funkcijskih zavisnosti.
_______________________________________________________________________
Odgovor:
R1(B, C, A) R2(A, C, D) R3(E, B)
_______________________________________________________________________
d) Sprovesti normalizaciju date eme u BC normalnu formu, izdvajajui zavisnosti redosledom
sa desna na levo.
_______________________________________________________________________
Odgovor:
R1(A, C, D) R2(B, A) R3(B, C) R4(B, E)
_______________________________________________________________________
e) Ispitati da li je pri postupku u okviru take d) dolo do gubitka funkcijskih zavisnosti i
kojih?
_______________________________________________________________________
Odgovor:
Nema gubitka funkcijskih zavisnosti.
_______________________________________________________________________
t20
t21
t22
t23
t24
Write (C)
Read (A)
A:= A + C
Write (A)
Commit
____________________________________________________________________________
b) Koje su vrednosti svakog od podatka u bazi nakon uspenog izvravanja posmatranog
redosleda ukoliko podaci A, B, C i D na poetku imaju vrednosti 10, 20, 30 i 40 respektivno?
____________________________________________________________________________
Odgovor:
Podatak Vrednosti
A
51
B
15
C
31
D
100
____________________________________________________________________________
c) Da li je redosled sa slike serijalizabilan ukoliko se ukloni operacija Read(C) u transakciji T1?
Odrediti sve ekvivalentne serijske redoslede u tom sluaju.
____________________________________________________________________________
Odgovor: T2T1T3
____________________________________________________________________________
Op
rd(C)
rd(B)
rd(C)
wr(C)
wr(C)
wr(B)
rd(A)
wr(A)
commit
rd(C)
wr(C)
rd(A)
wr(A)
commit
rd(C)
wr(C)
rd(D)
wr(D)
commit
S
ok
ok
ok
rb
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
ok
RA
WA
CA
RB
WB
CB
RC
WC
CC
RD
WD
CD
200
TS(T1)
100
200
200
400
200
200
200
0
1
1
300
300
300
300
0
1
1
400
400
0
400
400
1
0
1
TS(T2)
200
TS(T3)
300
<T2, start>
<T1, start>
<T1, C, C0, C1>
<T3, start>
<T1, D, D0, D1>
<T1, commit>
<T2, C, C1, C2>
<T2, B, B0, B1>
<T2, A, A0, A1>
<T2, commit>
<T3, C, C2, C3>
Undo {T3}
Redo {T1, T2}
Restart {T3}
<T2, start>
<T1, start>
<T1, C, C0, C1>
<T3, start>
<T1, D, D0, D1>
<T1, commit>
<T2, C, C1, C2>
<T2, B, B0, B1>
<CHK (T2, T3)>
<T2, A, A0, A1>
<T2, commit>
<CHK END>
<T3, C, C2, C3>
Undo {T3}
Redo {T2}
Restart {T3}
_________________________________________________________________________
g) Koje su mogue vrednosti svakog od podataka u bazi neposredno pre trenutka t22 ako je izgled
sistemskog dnevnika kao u taki pod f) i ukoliko pre poetka izvravanja transakcija podaci A, B,
C i D imaju vrednosti 10, 20, 30 i 40 respektivno?
_______________________________________________________________________
Odgovor:
Podatak Mogue vrednosti
A
10, 20
B
20, 15
C
60, 10, 61
D
100
_______________________________________________________________________
1.(8) Neka tabela A(Sif, Podatak, Kod) sadri podatke celobrojnog tipa, pri emu kolona Kod
moe imati tri mogue vrednosti (1, 2, ili 3). Napisati SQL iskaz kojim se podaci iz tabele A
prebacuju u tabelu B(Sif, PodatakK1, PodatakK2, PodatakK3) u kojoj se u kolonama za podatke
PodatakaK1,...,PodatakK3 nalazi podatak u onoj koloni koja odgovara kodu podatka, dok se
preostale kolone popunjavaju sa NULL, kao to je navedeno u primeru.
A
Sif
10
20
30
40
Podatak
23
77
52
21
Kod
2
1
1
3
Sif
10
20
30
40
PodatakK1
PodatakK2
23
PodatakK3
77
52
21
____________________________________________________________________________
Odgovor:
INSERT INTO B(Sif, PodatakK1, PodatakK2, PodatakK3)
SELECT Sif,
CASE WHEN Kod=1 THEN Podatak ELSE NULL END,
CASE WHEN Kod=2 THEN Podatak ELSE NULL END,
CASE WHEN Kod=3 THEN Podatak ELSE NULL END
FROM A;
____________________________________________________________________________
2. (6) Za model entiteta i odnosa, prikazan na slici, kreirati SQL iskaz za kreiranje tabele
Ugovor. Za atribute u svim entitima usvojiti proizvoljan tip podatka.
Firma
SifF
Naziv
(2)
Advokat
BrLicence
Ime
Adresa
Ugovor
(0,1)
BrojU
Trajanje
Vrednost
AEDC
BFAD
ADF
EBC
X
X
c) Sprovesti normalizaciju date eme u 3. normalnu formu algoritmom koji garantuje ouvanje
funkcijskih zavisnosti.
_______________________________________________________________________
Odgovor:
R1(B, D, C, A) R2(B, F, A) R3(A, D, F) R4(E, B, C) R5(E, A)
_______________________________________________________________________
d) Sprovesti normalizaciju date eme u BC normalnu formu, izdvajajui zavisnosti redosledom
sa desna na levo.
_______________________________________________________________________
Odgovor:
R1(E, B, C) R2(A, D, F) R3(E, A)
_______________________________________________________________________
e) Ispitati da li je pri postupku u okviru take d) dolo do gubitka funkcijskih zavisnosti i
kojih?
_______________________________________________________________________
Odgovor:
BDCA, BFAD
_______________________________________________________________________
4.(34)
a) Ako se za oporavak od kvara koristi mehanizam Pratee stranice. Podaci A, B, C i D nalaze
se u razliitim stranicama na disku (podatak A u stranici 1,... , D u stranici 4). Prikazati izgled
relevantnih delova sistema u trenutku kvara, neposredno posle trenutka t22? Koje operacije
mehanizam Pratee Stranice vri posle popravke sistema u cilju vraanja baze u konzistentno
stanje?
_______________________________________________________________________
Odgovor:
5
5
1 A
8
8
2 B
Vreme
T1
T2
T3
3 C
T1
T1
t1
Read (A)
4 D
t2
A:= A + 3
5 A1
t3
Write (A)
7
7
t4
Read (C)
6 C1
9
9
t
Read (B)
5
7 C2
t
6
C:= C + B
8 D1
T2
T2
t
Write (C)
7
9 D2
t8
B:= B 5
10 B1
t9
Read (C)
11
6
3
t10
C:= 40
10
2
12
t11
Write (C)
5
5
13
t
Read
(D)
T3
T3
12
t13
14
D:= D + A
t14
Write (D)
15
t
Commit
15
16
t16
Read (D)
17
t17
D:= D + C
18
t18
Write (D)
19
t
Commit
19
t20
t21
t22
t23
t24
Write (B)
Read (A)
A:= A + C
Write (A)
Commit
____________________________________________________________________________
b) Koje su vrednosti svakog od podatka u bazi nakon uspenog izvravanja posmatranog
redosleda ukoliko podaci A, B, C i D na poetku imaju vrednosti 10, 20, 30 i 40 respektivno?
____________________________________________________________________________
Odgovor:
Podatak Vrednosti
63
A
15
B
50
C
93
D
____________________________________________________________________________
c) Da li je redosled sa slike serijalizabilan? Odrediti sve ekvivalentne serijske redoslede.
____________________________________________________________________________
Odgovor: T1T3T2
____________________________________________________________________________
T1
t1
Lk(D)
t2
Lk(A)
t3
Rd(A)
t4
Wr(A)
t5
T2
T3
t38
t39
t40
t41
t42
Un(A)
t6
Lk(B)
t7
Lk(D)
t8
t37
t43
t44
t45
Lk(D)
t46
t9
Rd(D)
t10
Wr(D)
t47
t11
Un(D)
t48
t12
Comm
t49
t50
t13
Lk(D)
t14
Lk(A)
t15
Lk(C)
t52
t16
Un(D)
t53
t17
Rd(C)
t54
t18
Rd(B)
t55
t19
Wr(C)
t56
t20
Un(C)
t57
t51
t21
Lk(D)
t58
t22
Lk(C)
t59
t23
Rd(C)
t60
t24
Wr(C)
t61
t25
Un(C)
t26
Rd(D)
t27
Wr(D)
t28
Un(D)
t29
Comm
B
D
t30
Wr(B)
t31
t32
Un(B)
Rd(A)
t33
Wr(A)
t34
Un(A)
t35
Comm
t36
Undo{T3}
Redo{T1, T2}
Restart{T3}
Mogue vrednosti
10, 13
20, 15
30, 50, 40
40, 53, 93
_________________________________________________________________________
g) Koje operacije zadaje mehanizam u cilju vraanja baze u konzistentno stanje u sluaju
opisanom u taki pod e) ukoliko je poznato da je u trenutku neposredno posle Read(D)
operacije transakcije T2 uraena kontrolna taka koja je zavrena u trenutku neposredno posle
Read(A) operacije transakcije T3? Kako e izgledati sistemski dnevnika u tom sluaju?
_______________________________________________________________________
Odgovor:
<T1, start>
<T1, A, A0, A1>
<T3, start>
<T3, C, C0, C1>
<T2, start>
<T2, C, C1, C2>
<T1, D, D0, D1>
<T1, commit>
<CHK (T2, T3)>
<T2, D, D1, D2>
<T2, commit>
<T3, B, B0, B1>
<CHK END>
Undo{T3}
Redo{T2}
Restart{T3}
_______________________________________________________________________
1.(8) Neka pogled Lista(Broj) sadri listu celih brojeva. Napisati SQL iskaz kojim se ova lista
brojeva saima u neprekidne nizove. Preciznije, za svaki neprekidni niz treba ispisati donju i
gornju granicu niza. Ukoliko se niz sastoji od jednog broja, onda kao donju i gornju granicu
treba prikazati taj isti broj.
____________________________________________________________________________
Odgovor:
CREATE VIEW BrojPrethodnih (b, p)
AS SELECT L1.Broj, COUNT(L2.Broj) L1.Broj,
FROM Lista L1, Lista L2
WHERE L2.Broj <= L1.Broj
GROUP BY L1.Broj;
SELECT MIN (b) as Donja, MAX(b) as Gornja
FROM BrojPrethodnih
GROUP BY p;
____________________________________________________________________________
2. (6) Napisati iskaz relacionog rauna domena koji odgovara datom SQL iskazu. Tabela Test
je kreirana sa:
CREATE TABLE Test(a INT NOT NULL, b, INT NOT NULL, c INT NOT NULL UNIQUE);
SELECT a, b, max(c)
FROM Test
WHERE b > 2
GROUP BY a, b;
________________________________________________________
Odgovor:
{<a, b, m>|a, b, m(<a,b,m>Test b>2
c,d,e(<c,d,e>Test c=a d=b e>m))}
________________________________________________________
BCNF
3NF
2NF
AGCBD
EFD
BFCAF
DFB
BCE
c) Sprovesti normalizaciju date eme u 3. normalnu formu algoritmom koji garantuje ouvanje
funkcijskih zavisnosti.
_______________________________________________________________________
Odgovor: Ve je u 3NF.
Fc={AGCBD, EFD, BFCA, DFB,BCE}
_______________________________________________________________________
d) Sprovesti normalizaciju date eme u BC normalnu formu, izdvajajui zavisnosti redosledom
sa desna na levo.
_______________________________________________________________________
Odgovor:
R1(B, C, E) R2(D, F, B) R3(A, G, C, D) R4(A, G, C, F)
_______________________________________________________________________
e) Ispitati da li je pri postupku u okviru take d) dolo do gubitka funkcijskih zavisnosti i
kojih?
_______________________________________________________________________
Odgovor:
AGCB, BFCA, EFD
_______________________________________________________________________
7
3
T2
T3
6
8
10
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
A
B
C
D
B1
A1
A2
B2
D1
D2
5
9
T1
1
3
T2
6
8
10
T3
Vreme
T1
t1
t2
t3
t4
t5
t6
t7
t8
t9
t10
t11
t12
t13
t14
t15
t16
t17
t18
t19
t20
t21
t22
t23
t24
Read (B)
B:= B * 2
Write (B)
T2
T3
Read (A)
Read (B)
A:= A + B
Write (A)
B:= B 5
Read (A)
A:= 40
Write (A)
Read (D)
D:= D + B
Write (B)
Read (D)
D:= D - A
Write (D)
Commit
Write (D)
Commit
Read (C)
C:= C + A
Write (C)
Commit
____________________________________________________________________________
b) Koje su vrednosti svakog od podatka u bazi nakon uspenog izvravanja posmatranog
redosleda ukoliko podaci A, B, C i D na poetku imaju vrednosti 10, 20, 30 i 40 respektivno?
____________________________________________________________________________
Odgovor:
Podatak Vrednosti
40
A
15
B
70
C
10
D
____________________________________________________________________________
c) Da li je redosled sa slike serijalizabilan ukoliko se operacije Read(D) i D:=D-A u transakciji
T3, zamene operacijom D:=20? Odrediti sve ekvivalentne serijske redoslede u tom sluaju.
____________________________________________________________________________
Odgovor: T1T3T2
____________________________________________________________________________
T1
t1
Lk(B)
t2
Rd(B)
t3
Wr(B)
T2
T3
t37
t38
t39
t4
Lk(A)
t5
Rd(A)
t6
Lk(B)
t7
Lk(D)
t9
Rd(D)
t40
t41
t42
t43
Lk(A)
t8
t36
t44
t45
t10
Wr(D)
t46
t11
Comm
t47
t12
Un(B)
t48
t13
Un(D)
t49
t50
t14
Lk(B)
t15
Rd(B)
t51
t16
Wr(A)
t52
t17
Wr(B)
t53
t18
Lk(D)
t54
t19
Rd(D)
t55
t20
Wr(D)
t56
t21
Comm
t57
t22
Un(A)
t58
t23
Un(B)
t59
t24
Un(D)
t60
t25
Lk(A)
t26
Rd(A)
t27
Wr(A)
t28
Lk(C)
t29
Rd(C)
t30
Wr(C)
t31
t32
Comm
Un(A)
t33
Un(C)
t34
t35
t61
<T1, start>
<T1, B, B0, B1>
<T3, start>
<T3, A, A0, A1>
<T2, start>
<T2, A, A1, A2>
<T3, B, B1, B2>
<T1, D, D0, D1>
<T1, commit>
<T3, D, D1, D2>
<T3, commit>
<T1, start>
<T1, B, B0, B1>
<T3, start>
<T3, A, A0, A1>
<T2, start>
<T2, A, A1, A2>
<T3, B, B1, B2>
<T1, D, D0, D1>
<T1, commit>
<T3, D, D1, D2>
<CHK (T2, T3)>
<T3, commit>
<CHK END>
Undo{T2}
Redo{T1, T3}
Restart{T2}
Undo{T2}
Redo{T3}
Restart{T2}
_________________________________________________________________________
g) Koje su mogue vrednosti svakog od podataka u bazi neposredno posle trenutka t22 ako
je izgled sistemskog dnevnika kao u taki pod f) i ukoliko pre poetka izvravanja
transakcija podaci A, B, C i D imaju vrednosti 10, 20, 30 i 40 respektivno?
_______________________________________________________________________
Odgovor:
Podatak Mogue vrednosti
10, 50, 40
A
40, 35
B
30
C
80, -10
D
_______________________________________________________________________
1.(5) Neka tabela Pojavljivanje(IdProizvodaA, IdProizvodaB, Broj, Datum) sadri ifre dva
razliita proizvoda i broj njihovog zajednikog pojavljivanja na raunima odredjenog datuma.
Kolone IdProizvodaA i IdProizvodaB su celobrojnog tipa i referenciraju istu tabelu Proizvod.
Nikakve druge pretpostavke o ureenosti ne postoje, izuzev da nijedna od kolona ne prihvata
NULL. Napisati SQL iskaz kojim se za svaki par proizvoda ispisuje ukupan broj pojavljivanja
(bez obzira na datum).
____________________________________________________________________________
Odgovor:
SELECT CASE WHEN IdProizvodaA <= IdProizvodaB
THEN IdProizvodaA
ELSE IdProizvodaB END AS s1,
CASE WHEN IdProizvodaA <= IdProizvodaB
THEN IdProizvodaB
ELSE IdProizvodaA END AS s2,
SUM (Broj)
FROM Pojavljivanja
GROUP BY s1, s2;
____________________________________________________________________________
2. (5) Neka je data tabela Prodaja(IdKupca, Datum) u kojoj svaki red predstavlja informaciju
da je odreeni kupac, odreenog datuma, obavio kupovinu. Napisati SQL iskaz koji za svakog
kupca koji je kupovao dva ili vie puta izraunava prosean broj dana izmeu datuma njegovih
kupovina.
____________________________________________________________________________
Odgovor:
SELECT IdKupca, (MAX(Datum) - MIN(Datum)) / (COUNT(*)-1) AS ProsecanBrDana
FROM Prodaja
GROUP BY IdKupca
HAVING COUNT(*) > 1;
____________________________________________________________________________
3. (4) Napisati SQL iskaz koji vraa vrednosti iz kolona a, b i c za one redove u tabeli Test kod
kojih je kolana d jednaka vrednosti 0. Ukoliko postoji vei broj redova sa istim vrednostima a,
b i c, onda je potrebno da se ta kombinacija vrednosti pojavi u rezultatu samo jednom i to pod
uslovom da je u svim takvim redovima kolona d jednaka vrednosti 0.
Tabela Test je kreirana sa: CREATE TABLE Test(a INT, b INT, c INT, d INT);
____________________________________________________________________________
Odgovor:
SELECT a, b, c
FROM Test
GROUP BY a, b, c
HAVING MIN(d) = MAX(d)
AND MIN(d) = 0
AND COUNT(*) = COUNT(d); -- da se izbegne NULL u koloni d
___________________________________________________________________________
4.(22) Dati su ema relacije R(A, B, C, D, E, F, G) i skup funkcijskih zavisnosti F={GBBD,
EGCDB, BFEAF, DFBG, BCEC}. Potrebno je:
a) Odrediti skup kandidat kljueva KK date eme.
_______________________________________________________________________
Odgovor: KK={DF, BGF, EGF}
_______________________________________________________________________
b) Ispitati redom da li je data ema u BC, 3. i 2. normalnoj formi i svaki put u tabeli naznaiti
da li posmatrana zavisnost naruava posmatranu normalnu formu.
BCNF
3NF
2NF
GBBD
EGCDB
BFEAF
DFBG
BCEC
X
c) Sprovesti normalizaciju date eme u 3. normalnu formu algoritmom koji garantuje ouvanje
funkcijskih zavisnosti.
_______________________________________________________________________
Odgovor:
Fc={GBD, EGCB, BFEA, DFBG, BCE}
R1(E, G, C, B) R2(B, F, E, A) R3(D, F, B, G)
_______________________________________________________________________
d) Sprovesti normalizaciju date eme u BC normalnu formu, izdvajajui zavisnosti redosledom
sa leva na desno.
_______________________________________________________________________
Odgovor:
R1(G, B, D) R2(B, C, E) R3(G, C, B) R4(A, E, F, G)
_______________________________________________________________________
e) Ispitati da li je pri postupku u okviru take d) dolo do gubitka funkcijskih zavisnosti i
kojih?
_______________________________________________________________________
Odgovor:
EGCDB, BFEA, DFBG
_______________________________________________________________________
7
3
T2
T3
6
4
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
A
B
C
D
B1
A1
A2
B2
5
4
T1
1
3
T2
6
4
8
T3
Vreme
T1
t1
t2
t3
t4
t5
t6
t7
t8
t9
t10
t11
t12
t13
t14
t15
t16
t17
t18
t19
t20
t21
t22
Read (B)
B:= B * 2
T2
T3
Read (A)
Read (D)
D:= D 5
Read (D)
B:= D + B
Write (B)
Commit
A:= A + D
Write (A)
Read (A)
A:= 40
Write (A)
Read (B)
B:= B 5
Write (B)
Commit
Read (C)
C:= C + A
Write (C)
Commit
____________________________________________________________________________
b) Koje su vrednosti svakog od podatka u bazi nakon uspenog izvravanja posmatranog
redosleda ukoliko podaci A, B, C i D na poetku imaju vrednosti 10, 20, 30 i 40 respektivno?
____________________________________________________________________________
Odgovor:
Podatak Vrednosti
40
A
75
B
70
C
40
D
____________________________________________________________________________
c) Da li je redosled sa slike serijalizabilan? Ukoliko jeste, odrediti sve ekvivalentne serijske
redoslede.
____________________________________________________________________________
Odgovor: T1T3T2
____________________________________________________________________________
T1
t1
Sh(B)
t2
Rd(B)
T2
T3
t38
t39
t3
Sh(A)
t4
Rd(A)
t5
Sh(D)
t6
Rd(D)
t7
Sh(D)
t8
Rd(D)
t37
t40
t41
t42
t43
t44
t45
t46
t9
Ex(B)
t10
Wr(B)
t47
t11
Un(D)
t48
t12
Un(B)
t49
t13
Comm
t50
t51
t14
Ex(A)
t15
Wr(A)
t52
t16
Sh(B)
t53
t17
t54
Sh(A)
t18
Rd(B)
t55
t19
Ex(B)
t56
t20
Wr(B)
t57
t21
Un(A)
t58
t22
Un(D)
t59
t23
Un(B)
t60
t24
Comm
t61
t25
Rd(A)
t26
Ex(A)
t27
Wr(A)
t28
Sh(C)
t29
Rd(C)
t30
Ex(C)
t31
t32
Wr(C)
Un(A)
t33
Un(C)
t34
Comm
t35
t36
<T1, start>
<T3, start>
<T1, B, B0, B1>
<T1, commit>
<T3, A, A0, A1>
<T2, start>
<T2, A, A1, A2>
<T3, B, B1, B2>
<T3, commit>
<T1, start>
<T3, start>
<T1, B, B0, B1>
<T1, commit>
<T3, A, A0, A1>
<T2, start>
<T2, A, A1, A2>
<T3, B, B1, B2>
<CHK (T2, T3)>
<T3, commit>
<CHK END>
Undo{T2}
Redo{T1, T3}
Restart{T2}
Undo{T2}
Redo{T3}
Restart{T2}
_________________________________________________________________________
g) Koje su mogue vrednosti svakog od podataka u bazi neposredno pre trenutka kvara, ako je
izgled sistemskog dnevnika kao u taki pod f) i ukoliko pre poetka izvravanja transakcija
podaci A, B, C i D imaju vrednosti 10, 20, 30 i 40 respektivno?
_______________________________________________________________________
Odgovor:
Podatak Mogue vrednosti
40
A
75
B
30
C
40
D
_______________________________________________________________________
1.(3) Neka su date tabele Plan(SifP, Kategorija, IznosP) i Racun(SifR, IznosR, SifP) u kojima
su svi atributi celobrojni i nijedan ne prihvata NULL. Tabela Plan sadri planirane iznose, pri
emu moe postojati vie planova za istu kategoriju. Tabela Racun sadri raune, pri emu za
svaki plan moe postojati vie rauna. Napisati SQL iskaz koji za svaku kategoriju vraa
ukupan planirani iznos i ukupan iznos rauna.
____________________________________________________________________________
Odgovor:
CREATE VIEW kategorija_plan_trosak (Kategorija, Planirano, Potroseno)
AS SELECT Kategorija, IznosP, 0
FROM Plan
UNION
SELECT Kategorija, 0, IznosR
FROM Plan P, Racun R
WHERE P.SifP = R.SifP;
SELECT Kategorija, SUM(Planirano), SUM(Potroseno)
FROM kategorija_plan_trosak
GROUP BY Kategorija;
____________________________________________________________________________
2. (3) Neka su date tabele Plan i Racun kao to je opisanu u zadatku 1. Napisati iskaz
relacionog rauna domena koji vraa ifre onih planova za koje postoje bar dva rauna iji je
zbir vei od planiranog iznosa plana na koji se ti rauni odnose.
____________________________________________________________________________
Odgovor:
{< > | , (, , >
SifR1, IznosR1(<SifR1, IznosR1, SifP>Racun
SifR1, IznosR1(<SifR1, IznosR1, SifP>Racun
SifR1 SifR2 IznosR1+IznosR2>IznosP)))}
____________________________________________________________________________
BCNF
3NF
2NF
AFBDC ECCDB
X
DABG
X
GFABG
BCEF
X
c) Odrediti kako izgleda svaka od funkcijskih zavisnosti iz skupa F nakon uklanjanja suvinih
atributa sa leve i desne strane svake (kanonini pokriva).
_______________________________________________________________________
Odgovor:
Fc={AFBC, ECDB, DABG, GFAB, BCEF}
_______________________________________________________________________
d) Sprovesti normalizaciju date eme u BC normalnu formu, izdvajajui zavisnosti redosledom
sa leva na desno.
_______________________________________________________________________
Odgovor:
R1(E, C, D, B) R2(E, C, F) R3(A, C, E, G)
_______________________________________________________________________
e) Ispitati da li je pri postupku u okviru take d) dolo do gubitka funkcijskih zavisnosti i
kojih?
_______________________________________________________________________
Odgovor:
AFBDC, DABG, GFAB
_______________________________________________________________________
4. (8) Neka je data relaciona ema R(A, C). Da li se bez poznavanja skupa funkcijskih
zavisnosti F koji vai nad emom R, moe odgovoriti na pitanje u kojoj normalnoj formi (2NF,
3NF, BCNF) se nalazi relaciona ema R? Obrazloiti odgovor.
____________________________________________________________________________
Odgovor:
ema je u BCNF,zbog toga to nad emom
od dva atributa mogu da vae samo
trivijalne i superkljune funkcijske zavisnosti.
___________________________________________________________________________
5
7
T2
T3
6
4
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
A
B
C
D
A1
A2
C1
B1
2
4
T1
5
7
T2
6
4
8
T3
Vreme
T1
t1
t2
t3
t4
t5
t6
t7
t8
t9
t10
t11
t12
t13
t14
t15
t16
t17
t18
t19
t20
t21
t22
t23
t24
Read (B)
B:= B * 2
T2
T3
Read (A)
A:= 30
Write (A)
Read (A)
Read (D)
D:= D 5
A:= A + D
Write (A)
Read (C)
C:= C + A
Write (C)
Commit
Read (B)
B:= B 5
Write (B)
Commit
Read (D)
D:= D * 2
B:= D - B
Write (D)
Write (B)
Commit
____________________________________________________________________________
b) Koje su vrednosti svakog od podatka u bazi nakon uspenog izvravanja posmatranog
redosleda ukoliko podaci A, B, C i D na poetku imaju vrednosti 10, 20, 30 i 40 respektivno?
____________________________________________________________________________
Odgovor:
Podatak
A
B
C
D
Vrednosti
45
40
60
80
____________________________________________________________________________
c) Da li je redosled sa slike serijalizabilan? Ukoliko jeste, odrediti sve ekvivalentne serijske
redoslede.
____________________________________________________________________________
Odgovor: Redosled nije serijalizabilan.
____________________________________________________________________________
T1
t1
Lk(A)
t2
Rd(A)
t3
Wr(A)
t4
Lk(C)
t5
Jedan od moguih
trenutaka kvara
T2
T3
t37
t38
t39
t40
t41
t42
Un(A)
t6
Lk(A)
t7
Rd(A)
t8
Lk(D)
t43
t44
t45
t46
t9
Rd(D)
t10
Wr(A)
t47
t11
Lk(B)
t48
t12
Un(A)
t49
t13
Un(D)
t50
t14
Rd(B)
t15
Wr(B)
t52
t16
Un(B)
t53
t17
Commit
t54
t51
t18
Rd(C)
t55
t19
Wr(C)
t56
t20
Un(C)
t57
t21
Commit
t58
t22
Lk(B)
t59
t23
Rd(B)
t60
t24
Lk(D)
t61
t25
Rd(D)
t26
Wr(D)
t27
Un(D)
t28
Wr(B)
t29
Un(B)
t30
Commit
t31
t32
t33
t34
t35
t36
<T1, start>
<T2, start>
<T2, A, A0, A1>
<T3, start>
<T3, A, A1, A2>
<T2, C, C0, C1>
<T2, commit>
<T3, B, B1, B2>
<T3, commit>
<T1, start>
<T2, start>
<T2, A, A0, A1>
<T3, start>
<T3, A, A1, A2>
<T2, C, C0, C1>
<T2, commit>
<T3, B, B1, B2>
<CHK (T1, T3)>
<T3, commit>
<CHK END>
Undo{T1}
Redo{T2, T3}
Restart{T1}
Undo{T1}
Redo{T3}
Restart{T1}
_________________________________________________________________________
g) Koje su mogue vrednosti svakog od podataka u bazi neposredno pre trenutka kvara, ako
je izgled sistemskog dnevnika kao u taki pod f) i ukoliko pre poetka izvravanja
transakcija podaci A, B, C i D imaju vrednosti 10, 20, 30 i 40 respektivno?
_______________________________________________________________________
Odgovor:
Podatak Mogue vrednosti
65
A
15
B
60
C
40
D
_______________________________________________________________________
Kolokvijumi
1.(4) Posmatra se deo baze podataka za potrebe vodovodne mree. U sistemu se vodi
evidencija o vodovodnim cevima, njihovoj duini, preniku, materijalu kao i projektnom
planu po kome je montiranje obavljeno. Cev se mora prostirati izmeu dva vodovodna
kolena. Vodovodna kolena mogu imati vei broj prikljuaka (evidentira se maksimalni
broj prikljuaka), a mogu biti redovno odravana od strane jednog ili vie inenjera.
Projektni plan (datum donoenja, planirana cena) mora imati jednog glavnog inenjera, dok
na njegovoj implementaciji moe uestvovati vie inenjera, ali samo onih koji odravaju
bar jedno (proizvoljno) vodovodno koleno. Inenjer koji radi na implementaciji plana moe
uestvovati sa 45, 75 ili 100% radnog vremena.
Za opisani sistem sastaviti model entiteta i odnosa tako to treba:
a. Ukloniti suvine (odnosno dodati potrebne) atribute/entitete.
b. Izmeu entiteta dobijenih u prethodnoj taki dodati neposredne i posredne odnose.
_______________________________________________________________________
Odgovor:
PLAN
INZENJER
E
SifP
Datum
Cena
SifI
Ime
(0,N)
(0,N)
E
RADI_NA
(0,N)
ODRZAVA
Procenat
CEV
SifC
Duzina
Precnik
Materijal
(0,N)
KOLENO
(2)
E
SifK
MaxBrPrikljuaka
_______________________________________________________________________
2.(4) Model entiteta i odnosa prikazan na slici treba prevesti u emu relacione baze
podataka, uz naznaku svih primarnih kljueva podvlaenjem, a stranih kljueva
zaokruivanjem.
B
A
E
B1
B2
(0,1)
A1
A2
A3
(0,1)
(0,N)
(0,N)
E
E1
F1
F2
G
G1
(0,N)
H
H1
H2
H3
C
(1,1)
D
(0,N)
C1
C2
_______________________________________________________________________
Odgovor:
A: A ( A1, A2, A3, B1 )
B: B ( B1, B2 )
C: C ( C1, C2, A1, G1 )
D: D ( B1, C1 )
E: E ( B1, E1 )
F: F ( B1, F1, F2 )
G:
H: H ( H1, H2, H3, C1 )
I: I ( A1, H1, C1 )
_______________________________________________________________________
3. Dat je deo eme relacione baze podataka kompanije za potrebe upravljanjem ljudskim
resursima u toku jedne godine. Datumi se predstavljaju kao celobrojne vrednost u opsegu
od 1 do 365. U bazi se evidentira svaki dan odsustva sa nekog posla.
RADNIK (SifR, Ime, Adresa, SifD)
DEPARTMAN (SifD, Naziv)
ODSUSTVO (SifO, SifR, Datum, Razlog, Ozbiljnost)
POSAO (SifP, SifR, DatumPocetka, DatumKraja, Opis, SifZ)
RADNIZADATAK (SifZ, Naziv, BrRadnika, SifD)
a.(3) Za svako od navedenih ogranienja navesti u zagradi najnii nivo na kome mogu biti
proverena ukoliko se koristi DDL standardnog SQL. U zagradi ispred tvrenja upisati: K
za proveru na nivou kolone, T za proveru na nivou tabele, B za proveru na nivou baze,
i N nije mogua provera standardnim SQL.
( B ) Atribut Datum u tabeli ODSUSTVO mora biti u periodu kada je radnik bio
angaovan, to je evidentirano u tabeli POSAO.
( T ) Svaki posao evidentiran u tabeli POSAO mora imati DatumKraja vei od
DatumPocetka.
( K ) Atribut BrRadnika mora biti vei od nule.
b.(2) ta treba da stoji na mestu oznaenom sa *** da bi sledei upit relacione algebre kao
rezultat dao ifre i imena radnika koji su uestvovali i pri tom odsustvovali sa ozbiljnou
jednakom 4, na svakom radnom zadatku koji je imao broj radnika vei od 50, a sa druge
strane, nisu nikad uestvovali ni na jednom radnom zadatku na kome je bilo manje od 10
radnika.
* ** t 2 ( SifR)
_______________________________________________________________________
Odgovor:
t1 /
SifZ
(RadniZadatak)) t 2(SifR)
BrRadnika >50
_______________________________________________________________________
c. (5) Sastaviti SQL skript koji brie sve informacije o radniku ukoliko je sakupio vie od
40 negativnih poena. Radnik dobija negativni poen za svako odsustvo sa posla. Sluajevi
odsustva od vie uzastopnih dana, raunaju se kao jedno odsustvo.
_______________________________________________________________________
Odgovor:
CREATE VIEW BrPoena (SifR, BrP)
AS SELECT O1.SifR, COUNT(*)
FROM Odsustvo O1
WHERE NOT EXISTS (SELECT *
FROM Odsustvo O2
WHERE O2.SifR = O1.SifR
AND O2.Datum = O1.Datum + 1
)
GROUP BY O1.SifR;
DELETE FROM Radnik
WHERE SifR IN (SELECT SifR FROM BrPoena WHERE BrP > 40);
_______________________________________________________________________
d. (2) Sastaviti SQL skript koji za sve radne zadatke koji su imali jedno ili vie odsustva
vraa njegovu ifru, naziv i broj radnika koji je odsustvovao na tom radnom zadatku.
_______________________________________________________________________
Odgovor:
SELECT Z.SifZ, Z.Naziv, COUNT(DISTINCT O.SifR)
FROM RadniZadatak Z, Posao P, Odsustvo O
WHERE Z.SifZ = P.SifZ AND P.SifR = O.SifR
AND O.Datum BETWEEN P.DatumPocetka AND P.DatumKraja
GROUP BY Z.SifZ, Z.Naziv;
_______________________________________________________________________
KRITERIJUM
KONKURS
(0,N)
SifKr
Naziv
Opis
PRIPADA
(0,N)
Univerzal
SifKo
Naziv
Datum
VREDNOST
SifVr
Opis
KANDIDAT
(0,N)
(0,N)
ZADOVOLJAVA
SifKa
Ime
Prezime
Adresa
StrSprema
_______________________________________________________________________
_______________________________________________________________________
2.(3) Dat je deo eme relacione baze podataka, prikazati tri mogua modela entiteta i
odnosa kojima data ema odgovara. Primarni kljuevi su podvueni a strani kljuevi
zaokrueni. (razlike postii uvoenjem razliitih tipova odnosa, posrednih i neposrednih, a
ne promenom kardinalnosti nad istim odnosima)
A(A1, A2); B(A1, C2, B1); C(C1, C2, C3); D(A1, D1, D2)
_______________________________________________________________________
Odgovor:
A
C
(0,N)
A1
A2
(0,N)
C1
C2
C3
B1
A
I
D
C
(0,N)
A1
A2
D1
D2
(0,N)
C1
C2
C3
B1
(0,1)
I
A1
A2
B
B1
I
C1
C2
C3
D
I
D1
D2
D
D1
D2
_______________________________________________________________________
______________________________________________________________________
Odgovor:
SELECT DISTINCT P.Ime
FROM Razgovori R, Uplate U, Pretplatnici P
WHERE R.SifP = U.SifP
AND R.DatumR = U.DatumU
AND R.CenaR >= U.Iznos
AND U.Iznos >200
AND R.SifP = P.SifP
_______________________________________________________________________
b. (2) Sastaviti SQL skript kojim se za sve razgovore ija je cena vea i jednaka 25, cena
smanjuje za 10%, a svih ija je cena manja od 25, poveava za 15% .
_______________________________________________________________________
Odgovor:
UPDATE Razgovori
SET CenaR = CenaR * 1.80
WHERE CenaR >= 25;
UPDATE Razgovori
SET CenaR = CenaR * 1.15
WHERE CenaR < 25;
UPDATE Razgovori
SET CenaR = CenaR * 0.5
WHERE CenaR >= 45;
_______________________________________________________________________
c. (5) Sastaviti SQL skript koji vraa ifre i brojeve telefona pretplatnika koji su (u toku
posmatrane godine) imali najdui period u kome je funkcija cene razgovora po datumu (
fCenaR ( DatumR) ) bila monotono neopadajua.
_______________________________________________________________________
Odgovor:
CREATE VIEW Periodi (SifP, DatumP, DatumK)
AS SELECT R1.SifP, R1.DatumR, MAX(R2.DatumR)
FROM Razgovori R1, Razgovori R2
WHERE R1.DatumR < R2.DatumR AND R1.CenaR < R2.CenaR, AND R1.SifP = R2.SifP
AND NOT EXISTS ( SELECT *
FROM Razgovori R3
WHERE R3.DatumR BETWEEN R1.DatumR AND R2.DatumR
AND R3.SifP = R1.SifP
AND R3.CenaR < ANY ( SELECT R4.CenaR
FROM Razgovori R4
WHERE R4.SifP = R1.SifP
AND R4.DatumR BETWEEN R1.DatumR AND
R3.DatumR
)
)
GROUP BY R1.SifP, R1.DatumR;
SELECT P.SifP, P.BrTelefona
FROM Pretplatnici P
WHERE P.SifP IN ( SELECT R.SifP
FROM Periodi R
WHERE (R.DatumK R.DatumP) = ( SELECT MAX(DatumK - DatumP)
FROM Periodi
)
);
_______________________________________________________________________
1. (7) Posmatra se deo baze podataka za potrebe nastavnikih servisa. U sistemu se vodi
evidencija o predmetima i obavezama koje studeni moraju da ispune u okviru tih predmeta.
Za studenta se prati broj indeksa, ime i matini broj. Za predmet su pored naziva, fonda
asova, obaveza koje je student duan da ispuni, definisani i predmeti koji su preduslov za
polaganje tog ispita. Svaka obaveza ima definisan maksimalni broj poena koje je mogue
ostvariti kao i neophodan prag poena kako bi obaveza bila priznata kao ispunjena, takoe
se evidentira se i koliko je poena student ostvario. Student ima pravo na nadoknadu
obaveze. Student takoe moe da proizvoljan broj puta ponovi neku od obaveza kako bi
ostvario vei broj poena. Pri ponovnom ispunjenju obaveze, prethodno ispunjenje obaveze
se ne brie iz evidencije, ve se oznaava kao nevalidno.
Za model prikazan na slici potrebno je ukloniti suvine (odnosno dodati potrebne)
atribute/entitete, a potom dodati potrebne neposredne i posredne odnose (slabe entitete nije
potrebno duplo zaokruivati).
_______________________________________________________________________
Odgovor:
(0,N)
PREDMET
PREDUSLOV
SifP
Naziv
Fond
(0,N)
ISPUNJENJE
E
E
SifI
BrPoena
Validnost
OBAVEZA
SifO
Max
Prag
STUDENT
SifS
Ime
BrIndeksa
MatBr
_______________________________________________________________________
2. (3) Model entiteta i odnosa, prikazan na slici, prevesti u emu relacione baze podataka,
uz naznaku svih stranih kljueva zaokruivanjem.
_______________________________________________________________________
Odgovor:
Ent-A: (A1, A2)
Ent-B: (E2, B1, B2)
Ent-C: (E2, C1)
Ent-D: (E2)
Ent-E: (E2, E1)
V1: (A1, E2)
V2: (E2B, E2D)
_______________________________________________________________________
3. Dat je deo eme relacione baze podataka za potrebe kompanije za distribuciju robe. Pri
tome se u tabeli PRODAJA evidentira svaka pojedinana prodaja neke robe koju je
odreeni distributer obavio:
ROBA (SifR, Naziv, Opis);
DISTRIBUTER (SifD, Naziv, Adresa);
PRODAJA (SifN, Datum, Kolicina, Cena, SifD, SifR);
a.(4) Napisati SQL upit koji vraa isti rezultat kao i sledei upit relacionog rauna domena:
{< SifD >| Naziv, Adresa (< SifD, Naziv, Adresa > distributer
SifNA, DatA, CenaA, SifRA(< SifNA, DatA,120, CenaA, SifD, SifRA > prodaja
SifNB, DatB, KolB, SifDB, CenaB(< SifNB, DatB, KolB, CenaB, SifDB, SifRA > prodaja
CenaA > CenaB)))}
______________________________________________________________________
Odgovor:
SELECT DISTINCT D.SifD
FROM DISTRIBUTER D, PRODAJA P
WHERE D.SifD = P.SifD
AND P.Kolicina = 120
AND NOT EXISTS ( SELECT *
FROM PRODAJA P2
WHERE P.SifR = P2.SifR
AND P.Cena > P2.Cena
);
-- tabela DISTRIBUTER nije morala da se koristi, jer se u rezultatu koristi samo SifD
_______________________________________________________________________
b. (6) Sastaviti SQL skript koji za sve distributere koji su prodali odreenu robu vri
njihovo rangiranje na osnovu ukupne koliine te robe koju su oni prodali. Drugim reima,
svi distributeri koji su prodali neku robu, dobie rang na osnovu toga koliko su te robe
prodali. Skript treba da vrati ifru distributera, ifru robe i rang tog distributera za tu robu.
Distributer koji je prodao najvie odreene robe ima rang 1. Isti rang imaju distributeri koji
su prodali istu koliinu robe. Distributer koji nikada nisu prodali odreenu robu ne dobijaju
rang za tu robu. (Napomena: nije dozvoljena upotreba funkcije DENSE_RANK)
_______________________________________________________________________
Odgovor:
CREATE VIEW UkupnaProdaja (SifD, SifR, Ukupno)
AS SELECT SifD, SifR, SUM(Kolicina)
FROM PRODAJA
GROUP BY SifD, SifR;
_______________________________________________________________________
(0,N)
U_vezi_GE
Uslov
Obavlja
(0,1)
(0,N)
U_vezi_EE
Pripada
(0,N)
(0,N)
Grananje
Element
SifE
(0,N) Naziv
(0,N)
(0,1)
U_vezi_EG
SifG
Opis
(0,N)
(1,1)
(0,N)
Dijagram
SifD
Naziv
Datum
Opis
Proces
Aktivnost
Svrha
Trajanje
(0,N)
Pristupa
Objekat
(0,N) SifO
2. (3) Model entiteta i odnosa, prikazan na slici, prevesti u emu relacione baze podataka,
uz naznaku svih stranih kljueva zaokruivanjem. (Napomena: idenstifikaciona zavisnost je
prikazana punom linijom, a egzistencijalna isprekidanom)
Ent-A
A1
A2
Ent_D
D1
D2
(2)
E
(0,N)
(1,1)
Ent-B
B1
B2
(0,1)
V1
(0,N)
V2
O
Ent-E
E1
Ent-C
C1
(0,N)
_______________________________________________________________________
Odgovor:
Ent-A: (A1, A2, B11, B12)
Ent-B: (B1, B2)
Ent-C: (B1, C1)
Ent-D: (D1, D2, A1, B1)
Ent-E: (B1, E1)
V1:
V2: (A1, B1, O)
3. Dat je deo eme relacione baze podataka fakulteta, kod koga postoje odseci koji se
granaju na vei broj pododseka.
STUDENT (SifS, Ime, BrIndeksa);
NASTAVNIK (SifN, Ime);
ODSEK (SifO, Naziv, BrStudenata, SifONad);
PREDMET (SifP, Naziv, SifO);
ODSLUSAO (SifS, SifP);
ROK(SifR, Naziv, DatumPocetka, DatumKraja);
ISPIT(SifI, SifP, Datum, SifR);
POLAGANJE (SifL, SifI, SifS, Ocena, Datum, SifN, Komentar);
a.(5) Napisati SQL skript kojim se formira tabela POLAGANJE ukoliko je poznato da je
komentar niz od 25 karaktera sa podrazumevanom vrednou Prazno. Ocena mora biti u
opsegu od 3 do 10 (3udaljen, 4nije izaao). Komentar ne sme imati podrazumevanu
vrednost ukoliko je ocena jednaka 3, u ostalim sluajevima vrednost komentara nije bitna.
Datum polaganja mora biti nakon datuma odravanja ispita, a pre kraja ispitnog roka.
Datumi se evidentiraju kao celobrojne vrednosti.
______________________________________________________________________
Odgovor:
CREATE TABLE Polaganje
( SifL INT PRIMARY KEY,
SifI INT NOT NULL REFERENCES Ispit ON UPDATE CASCADE,
SifS INT NOT NULL REFERENCES Student ON UPDATE CASCADE,
Ocena INT NOT NULL CHECK (Ocena BETWEEN 3 AND 10),
Datum INT NOT NULL CHECK (Datum BETWEEN 1 AND 365),
SifN INT NOT NULL REFERENCES Nastavnik ON UPDATE CASCADE,
Komentar CHAR(25) NOT NULL DEFAULT = Prazno,
CHECK (Ocena > 3 OR Komentar <> Prazno)
)
CREATE ASSERTION DatumIspita
CHECK (NOT EXISTS ( SELECT *
FROM Polaganje P, Ispit I, Rok R
WHERE P.SifI = I.SifI AND I.Rok = R.Rok
AND P.Datum >= I.Datum AND P.Datum <= R.DatumKraja
)
)
-- provera da li je isti predmet poloen vie puta, ili isti ispit vie puta, nije ocenjivan
_______________________________________________________________________
b. (3) Sastaviti SQL skript koji vraa ukupan broj studenata na odseku sa ifrom RZ.
Odsekom se smatra konkretan odsek i svi njegovi pododseci (i pododseci tih pododseka
itd.).
_______________________________________________________________________
Odgovor:
WITH RECURSIVE SviRZOdseci(SifO, BrStudenata, SifONad)
AS SELECT SifO, BrStudenata, SifONad
FROM Odsek
WHERE SifO=RZ
UNION
SELECT O.SifO, O.BrStudenata, O.SifONad
FROM Odsek O, SviRZOdseci R
WHERE O.SifONad=R.SifO
SELECT SUM(BrStudenata)
FROM SviRZOdseci;
_______________________________________________________________________
c. (5) Sastaviti SQL skript koji vraa ifre i imena studenata koji mogu da prijave ispit za
predmet sa ifrom MAT1. Neki od preduslova su da student mora da odslua predmet, i da
sme da ima najvie tri pokuaja polaganja. Ukoliko je student prijavio, a nije izaao na ispit
to se evidentira ocenom 4, odnosno ocenom 3 ukoliko je udaljen sa ispita, i u oba sluaja to
se rauna kao pokuaj.
_______________________________________________________________________
Odgovor:
CREATE VIEW StudentiNotOK(SifS)
AS SELECT P.SifS
FROM Polaganje P, Ispit I
WHERE P.SifI=I.SifI AND I.SifP=MAT1
GROUP BY P.SifS, I.SifP
HAVING (COUNT(*) > 2) OR (MAX(P.Ocena) > 5);
SELECT SifS, Ime
FROM Student
WHERE SifS IN (SELECT SifS FROM Odslusao WHERE SifP=MAT1)
AND SifS NOT IN (SELECT SifS FROM StudentiNotOK);
_______________________________________________________________________
1. (7) Posmatra se baza podataka za potrebe centralnog registra graana, u kome se uvaju
informacije o dugovanjima i uplatama za potrebe zdravstvenog i socijalnog osiguranja.
Osiguranik je fiziko lice koje pored informacije o imenu, prezimenu, matinom broju
(JMBG), adresi ima i informaciju o linom broju osiguranika (LBO). Osiguranik moe biti
sam nosilac osiguranja, ali i ne mora (pri emu je onda potrebno voditi evidenciju o tome
ko je nosilac osiguranja i srodstvu izmeu njih). Ukoliko je osiguranik sa invaliditetom,
onda moe imati odobren popust. Osiguranik ne mora sve vreme biti pokriven osiguranjem.
Odnosno treba voditi evidenciju u toku kog perioda je prijavljen (poetak i kraj), koji je
osnov osiguranja, kao i tome ko je obveznik osiguranja. Obveznik osiguranja je pravno lice
koje ima naziv, adresu, PIB i JMBG. U sistemu se vodi evidencija i o tome da li na osnovu
nekog osiguranja, odreeni obveznik za odreenog osiguranika, za neki obraunski period
duguje iznose za zdravstveno osiguranje, penziono i invalidsko osiguranje i nezaposlenost.
Za model prikazan na slici potrebno je ukloniti suvine (odnosno dodati potrebne)
atribute/entitete, a potom dodati potrebne neposredne i posredne odnose.
_______________________________________________________________________
Odgovor:
Ima_nosioca
Srodstvo
(0,N)
Osiguranik
SifO
ImePrezime
JMBG
LBO
NosilacOsig
Invalid
Popust
(0,1)
Osiguranje
SifR
DatumOd
DatumDo
Osnov
E
Dugovanje
SifD
ObrPeriod
IznosZdr
IznosPIO
IznosNez
Obveznik
SifP
Naziv
Adresa
PIB
JMBG
2. (3) Model entiteta i odnosa, prikazan na slici, prevesti u emu relacione baze podataka,
uz naznaku svih stranih kljueva zaokruivanjem. (Napomena: idenstifikaciona zavisnost je
prikazana punom linijom, a egzistencijalna isprekidanom)
Ent-D
Ent-A
(0,N)
D1
D2
V2
O
(0,1)
A1
Ent-B
B1
B2
(2)
I
(1,1)
(0,1)
Ent-C
C1
C2
(0,N)
V1
Ent-E
E1
_______________________________________________________________________
Odgovor:
Ent-A: (B11, B12, A1)
V1:
3. Dat je deo eme relacione baze podataka prevoza. U bazi se vodi evidencija o linijama
prevoza i njihovim usputnim stanicama. Celokupna mapa evidentirana je u tabeli Lokacija,
poput mree kvadratnog oblika (podruje podeljeno na blokove identine veliine). Svaka
lokacija se evidentira samo jednom i pri tome se koordinate uvaju kao celobrojne
vrednosti.
Linija:
Slavija,1,1,br1
Terazije,2,1,br2
Moskva,2,2,br3
Trg,2,3,br4
Muzej,3,3,br5
Park,3,2,br6
3
2
1
Y
1
X
a.(7) Napisati SQL skript kojim se formira tabela STANICA ukoliko je poznato da je naziv
stanice niz od 25 karaktera koji mora biti definisan i ima podrazumevanu vrednost
Prazno. Svaka stanica ima svoj redni broj u okviru linije prevoza na kojoj se nalazi.
Treba obezbediti da za svaku lokaciju kroz koju linija prevoza prolazi mora da postoji
odgovarajua stanica kao i da linija prevoza mora biti poligonalna linija.
______________________________________________________________________
Odgovor:
CREATE TABLE Stanica
( SifS INT PRIMARY KEY,
NazivS CHAR(25) NOT NULL DEFAULT = Prazno,
SifK INT NOT NULL REFERENCES Lokacija ON UPDATE CASCADE,
RedBr INT NOT NULL CHECK (RedBr > 0),
SifL INT NOT NULL REFERENCES Linija ON UPDATE CASCADE,
UNIQUE(SifL, RedBr),
);
CREATE ASSERTION PoligonalnaLinija
CHECK ( NOT EXISTS ( SELECT *
FROM Stanica S, Lokacija L
WHERE S.SifK = L.SifK AND S.RedBr > 1
AND NOT EXISTS (SELECT *
FROM Stanica S2, Lokacija L2
WHERE S2.SifL = S.SifL
AND S2.RedBr = S.RedBr 1
AND S2.SifK = L2.SifK
AND ( ( (L2.X-L.X) IN (-1, 1)
AND L2.Y = L.Y)
OR
( (L2.Y-L.Y) IN (-1, 1)
AND L2.X = L.X)
)
)
)
);
_______________________________________________________________________
b. (3) Sastaviti iskaz relacione algebre koji vraa parove ifara linija koje imaju bar jednu
zajedniku lokaciju.
_______________________________________________________________________
Odgovor:
S1.SifS <S2.SifS
S1.SifK =S2.SifK
_______________________________________________________________________
c. (5) Sastaviti SQL skript koji vraa ifre i nazive onih linija kod kojih je broj usputnih
stanica za jedan vei od minimalnog rastojanju izmeu lokacija poetne i krajnje stanice.
_______________________________________________________________________
Odgovor:
CREATE VIEW LinijaStanice(SifL, NazivL, BrStanica, PocX, PocY, KraX, KraY)
AS SELECT L.SifL, L.NazivL, L.BrStanica, L1.X, L1,Y, L2.X, L2.Y
FROM Linija L, Stanica S1, Stanica S2, Lokacija L1, Lokacija L2
WHERE L.SifL = S1.SifL AND L.SifL=S2.SifL
AND S1.RedBr = 1 AND S2.RedBr = L.BrStanica
AND S1.SifK = L1.SifK AND S2.SifK = L2.SifK;
SELECT SifL, NazivL
FROM LinijaStanica
WHERE BrStanica = 1 + (CASE WHEN PocX>KraX THEN PocX-KraX ELSE KraX-PocX END) +
(CASE WHEN PocY>KraY THEN PocY-KraY ELSE KraY-PocY END);
_______________________________________________________________________
Algoritmi