Osztás (hányados)


Az osztás, más néven hányados operátor a lekérdezésekben a „minden” kifejezésére szolgál.

Jelölés: R÷S

Mint látható, paraméterként két alaprelációt kell megadni. Az osztás művelet eredménye pedig egy olyan T reláció, amelyben azok az attribútumok szerepelnek, amelyek részei R-nek, de nincsenek benne S-ben, és minden sornak van megfelelő bejegyzése S-ben. Tehát az osztás egy speciális lekérdezésre adja meg a választ: keressük az R reláció azon sorait, amelyek mellett az S reláció mindegyik sora előfordul.
Tulajdonsága, hogy a T eredményreláció és az S alapreláció Descartes – szorzatával kapott ts rekordok vannak benne az R relációban (T×S⊆R).
Az osztás műveletnek van egy fontos előfeltétele, mégpedig az, hogy csak olyan relációkra alkalmazható, amelyekre igaz az, hogy a második reláció (S) mindegyik attribútuma szerepel az első (R) relációban.


1.Példa:

Keressük meg, hogy melyik az a gyümölcs, amelyet Pécsett és Sárváron egyaránt termesztenek.

R:
GYÜMÖLCS VÁROS
alma Pécs
alma Sárvár
alma Győr
körte Pécs
szilva Sárvár
S:
VÁROS
Pécs
Sárvár

R÷S:
GYÜMÖLCS
alma


2.Példa:

R:
A kód B kód
a1 b1
a1 b2
a1 b3
a1 b4
a2 b1
a2 b2
a3 b2
a4 b2
a4 b4
S1:
B kód
b2
S2:
B kód
b2
b4
S3:
B kód
b1
b2
b4
R÷S1:
A kód
a1
a2
a3
a4
R÷S2:
A kód
a1
a4
R÷S3:
A kód
a1










Megjegyzés:

Az osztás művelet kifejezhető más relációs algebrai alapműveletekkel.
Először egy egyszerűbb esetet tárgyalunk, amely akkor alkalmazható, amikor az osztó attribútumai sorrendben az osztandó utolsó attribútumai. Tehát egy osztási művelet T-vel jelölt eredményrelációja szorzás, különbség és vetítés használatával:
T = T1 – T2 , ahol T1 = πL(R) és T2 = πL( (T1×S)–R ).
Az előbbi egyenletekben a T1 és T2 részeredmény-relációk, míg az L egy olyan attribútumlista, amelynek elemei az R reláció azon attribútumai, amelyek nincsenek benne az S relációban (L = R séma – S séma).

Az 1.példa részletezése az előbbiek szerint:

Az L='gyümölcs' attribútumlista egyetlen elemből fog állni, mégpedig a „GYÜMÖLCS” attribútumból, mivel ez nem szerepel az S relációban.

1. T1GYÜMÖLCS(R):
GYÜMÖLCS
alma
körte
szilva
2. T1×S:
GYÜMÖLCS VÁROS
alma Pécs
körte Pécs
szilva Pécs
alma Sárvár
körte Sárvár
szilva Sárvár

3. (T1×S)-R:
GYÜMÖLCS VÁROS
szilva Pécs
körte Sárvár
4.T2= πL((T1×S)-R):
GYÜMÖLCS
szilva
körte

5. T1-T2:
GYÜMÖLCS
alma


3.Példa:

Általános eset:
Ha az osztó attribútumai sorrendben nem az osztandó utolsó attribútumai. Ekkor meg kell változtatni az osztandó reláció sémáját. Ez a következő vetítéssel tehető meg: πL,S(R) .
Keressük azt a várost, amelyikben mindegyik (mind a három) gyümölcsöt termesztik.


R:
GYÜMÖLCS VÁROS
alma Pécs
körte Pécs
alma Sárvár
körte Sárvár
alma Győr
szilva Győr
szilva Pécs
S:
GYÜMÖLCS
alma
körte
szilva






1. πVÁROS(R):
VÁROS
Pécs
Sárvár
Győr
2. T1×S:
VÁROS GYÜMÖLCS
Pécs alma
Pécs körte
Pécs szilva
Sárvár alma
Sárvár körte
Sárvár szilva
Győr alma
Győr körte
Győr szilva

A következő lépésben kellene a T1×S relációból az R relációt kivonni. Ez a rossz sorrend miatt helytelen eredményt adna. Megoldás: egy vetítés művelettel rendezni kell az R reláció attribútumait, hogy azonos legyen a sémája a kisebbítendő T1×S reláció sémájával. Ez a πL, S(R) művelettel tehető meg, ami a példában: πVÁROS,GYÜMÖLCS(R). Így az azonos sémájú attribútumok különbsége már jó eredményt fog adni. A további lépések ugyanazok, mint az 1. példában.

3.πVÁROS,GYÜMÖLCS(R):
VÁROS GYÜMÖLCS
Pécs alma
Pécs körte
Sárvár alma
Sárvár körte
Győr alma
Győr szilva
Pécs szilva
4. (T1×S)-R:
VÁROS GYÜMÖLCS
Sárvár szilva
Győr körte

5.πVÁROS((T1×S)-R):
VÁROS
Sárvár
Győr

6. T=T1-T2:
VÁROS
Pécs


4.Példa:

Több attribútum esetén:
R:
A B C D E
a a x 1 x
a a z 1 x
a b z 1 x
a a z 1 y
a b z 3 y
a a z 1 z
a b z 1 z
a b y 1 z
S:
B D
a 1
b 1

1. πA,C,E (R):
A C E
a x x
a z x
a z y
a z z
a y z

2.πA,C,E(R) x S:
A C E B D
a x x a 1
a z x a 1
a z y a 1
a z z a 1
a y z a 1
a x x b 1
a z x b 1
a z y b 1
a z z b 1
a y z b 1
3.πA,C,E,B,D(R):
A C E B D
a x x a 1
a z x a 1
a z x b 1
a z y a 1
a z y b 3
a z z a 1
a y z b 1





4. πA,C,E(R)xS-πA,C,E,B,D(R):
A C E B D
a y z a 1
a x x b 1
a z y b 1

5. πA,C,E( (πA,C,E(R)xS) -πA,C,E,B,D(R)):
A C E
a y z
a x x
a z y

6.πA,C,E(R)-
πA,C,E((πA,C,E(R)xS)-πA,C,E,B,D(R)):
A C E
a z x
a z z