UL/FRI/VSP-RI/PB1/Izpiti/2006-01-26

Iz E-študij, proste zakladnice študentskega znanja

< UL | FRI | VSP-RI | PB1 | Izpiti
Skoči na: navigacija, iskanje

Izpit z dne 26.01.2006
UL/FRI/VSP-RI/PB1


Čas pisanja: 60 minut.
Literatura: vse.

Izvirnik z rešitvami (pdf) - prosim prepiši tekst naloge in rešitve

1. naloga

PB vsebuje relacije s shemami:

stranka(sid, ime, mesto, popust)
agent(aid, ime, mesto, procent)
izdelek(iid, ime, mesto, zaloga, cena)
narocilo(nid, mesec, sid, aid, iid, kosov)

Dano imamo poizvedbo:

SELECT DISTINCT n1.aid
FROM narocilo n1
WHERE n1.sid='S1' AND n1.aid IN
 (SELECT n2.aid
  FROM narocilo n2
  WHERE n2.sid='S2');

a) Ugotovite pomen gornje poizvedbe in ga zapišite v naravnem (slovenskem) jeziku.

b) Zgornjo poizvedbo zapišite BREZ uporabe vgnezdenih poizvedb.

Rešitev a)

Izpišite nepodvojene šifre agentov, ki prodajajo strankama s šiframa S1 in S2 (obema!).

Rešitev b)

SELECT DISTINCT n1.aid
FROM narocilo n1, narocilo n2
WHERE n1.sid='S1'
AND n2.sid='S2'
AND n1.aid=n2.aid;

MySQL ne podpira INTERSECT(presek)

SELECT DISTINCT aid FROM narocilo WHERE narocilo.sid='S1'
INTERSECT
SELECT DISTINCT aid FROM narocilo WHERE narocilo.sid='S2'

2. naloga

Zapišite izraz v relacijski algebri, ki je pomensko ekvivalenten poizvedbi iz prve naloge.

Rešitev

πaidsid='S1'(narocilo))\cap\piaidsid='S2'(narocilo))

3. naloga

Ugotovite, ali je izmenični razpored ukazov transakcij T1 in T2 zaporedniški. Če ni, napiši razlog (detaljno argumentiraj!) in napiši zaporedniški vrstni red izvajanja ukazov transakcij T1 in T2 z uporabo protokola PXC.

t T1: Odštej T2: Prištej
1 Začetek
2 PoiščiPreberi(X,x)
3 Začetek
4 PoiščiPreberi(X,z)
5 x=x-10
6 z=z+10
7 Ažuriraj(X,x)
8
9 Ažuriraj(X,z)
10
11 Pomni
12 Pozabi

Rešitev

Razpored ukazov ni zaporedniški, ker prevede do izgube ažuriranj. Razpored ukazov s protokolom PXC je naslednji:

t T1: Odštej T2: Prištej
1 Začetek
2 E-PoiščiPreberi(X,x)
3 Začetek
4 E-PoiščiPreberi(X,z)
(čaka na odobritev)
5 x=x-10
6,7 Ažuriraj(X,x)
8 Pomni
9 (zaseženje odobreno,
ukaz se izvede)
10 z=z+10
11, 12 Ažuriraj(X,z)
13 Pozabi

4. naloga

Za ORIGINALNI razpored ukazov transakcij T1 in T2 iz prejšnje naloge napišite fragment dnevniških zapisov. SUPB uporablja obnavljanje z dnevnikom in kopijo, ažuriranje fizične podatkovne baze pa se vrši z neposrednim ažuriranjem. Začetna vrednost v podatkovni bazi je X=10. Pri vodenju dnevnika uporabite dejanske čase (stolpec t v originalni tabeli).

Rešitev

<T1, 1, Zacetek, Odstej>
<T2, 3, Zacetek, Pristej>
<T1, 7, StaraVrednost, Spremeni, (X,10)>
<T1, 8, NovaVrednost,  Spremeni, (X, 0)>
<T2, 9, StaraVrednost, Spremeni, (X,10)>
<T2,10, NovaVrednost,  Spremeni, (X,20)>
<T1,11, Pomni>
<T2,12, Pozabi>
Osebna orodja
Imenski prostori
Različice
Dejanja
navigacija

Tiskanje/izvoz
orodja