Zad. 4. Znaleźć identyfikatory tych klientów, którzy składali
zamówienia wyłącznie przez agenta o identyfikatorze a03.
Pozornie narzucające sie, ale biedne rozwiązanie algebraiczne
(Z gdzie aid = ‘a03’)[kidj
Dowód niepoprawności tego rozwiązania:
Z
id |
data |
kid |
aid |
pid |
iiość |
kwota |
zOl |
01.10.2007 |
kOl |
a03 |
p03 |
10 |
100 |
z02 |
02.10.2007 |
kOl |
aOl |
p04 |
50 |
500 |
z03 |
05.10.2007 |
k02 |
a02 |
p06 |
200 |
1000 |
z05 |
01.10.2007 |
k03 |
a03 |
pOl |
1 |
10 |
Z gdzie aid = 'a03'
id |
data |
kid |
aid |
pid |
ilość |
kwota |
zOl |
01.10.2007 |
kOl |
a03 |
p03 |
10 |
100 |
z05 |
01.10.2007 |
k03 |
a03 |
pOl |
1 |
10 |
(Z gdzie aid =1a03’)[kid] kid kOl k03
A jak widać z powyższej instancji relacji Z klient o identyfikatorze kOl złożył zamówienie z02 poprzez agenta aOl!
Poprawne rozwiązanie algebraiczne
Znajdujemy klientów, którzy złożyli przynajmniej jedno zamówienie przez innego agenta niż a03:
T = (Z gdzie aid o ‘a03 ’)[kid]
Bazy danych. Wykład 6
Andrzej Grzybowski - Instytut Fizyki, Uniwersytet Śląski