Természetes összekapcsolás (natural join)


Két reláció szorzásánál gyakrabban van szükségünk arra, hogy összekapcsoljunk relációkat oly módon, hogy csak azokat párosítjuk, amelyek valamilyen módon összeillenek. Az összeillesztés legegyszerűbb módja két reláció természetes összekapcsolása.

Az R és az S relációk természetes összekapcsolását az RS kifejezéssel jelöljük.

E művelet használatával R és S relációknak csak azokat a sorait párosítjuk össze, amelyek értékei megegyeznek az R és az S sémájának összes közös attribútumán. Pontosabban definiálva: legyenek A1, A2, …, An azok az attribútumok, amelyek megtalálhatók mind az R, mind pedig az S sémájában. Ekkor az R egy r sorának és S egy s sorának párosítása akkor és csak akkor sikeres, ha az r és az s megfelelő értékei megegyeznek az összes A1, A2, …, An attribútumon.
Ha az r és s sorok párosítása az RS összekapcsolásban sikeres, akkor a párosítás eredménye egy olyan, összekapcsolt sornak nevezett sor, amelyben az R és S sémájának egyesítésében szereplő összes attribútumhoz egyetlen komponens tartozik. Az összekapcsolt sor megegyezik az r sorral az R reláció összes attribútumán, és megegyezik az s sorral az S reláció összes attribútumán. Mivel az r és s összekapcsolása sikeres volt, így tudjuk, hogy az r és s megegyezik azokon az attribútumokon, amelyek mind az R, mind pedig az S sémájában szerepelnek. Ezért az összekapcsolt sor is megegyezik mind az r, mind az s sorokkal a mindkét sémában szereplő attribútumokon. Az összekapcsolt sor szerkezetét az alábbi ábra szemlélteti (az egyenlő értékek a közös attribútumukon azonos színnel vannak jelölve) :



1.Példa:

R:
A B
1 4
2 5
S:
B C D
4 3 5
5 10 2
8 4 9


RS:
A B C D
1 4 3 5
2 5 10 2

Ebben a példában az R és S egyetlen közös attribútuma a B. Az R reláció első sora csak az S első sorával párosítható sikeresen. Mindkét sor B attribútumának értéke ekkor „2”. Ez a párosítás lesz az eredményreláció első sora (1, 4, 3, 5). Az R reláció második sora is S relációnak csak egyik sorával párosítható össze. Ebből kapjuk az eredményreláció második sorát (2, 5, 10, 2).
Megjegyzendő, hogy az S harmadik sorát nem lehet párosítani R egyik sorával sem, ezért nincs is semmilyen hatása az RS művelet eredményére nézve. Az ilyen sort, amelyet nem lehet sikeresen párosítani az összekapcsolásban szereplő másik reláció egyetlen sorával sem, lógó sornak is nevezzük.


2.Példa:

Most nézzünk olyan példát is, amelyben van olyan sor, amelyik egynél több sorral is párosítható , és ahol a két reláció sémájának nem egy közös attribútuma van. A következő relációkra ezek a feltételek teljesülnek, mivel az R első sora sikeresen párosítható az S első két sorával (az S relációnak harmadik sora az R reláció második és harmadik sorával) és a relációknak két közös attribútumuk (B és C) is van, melyek komponenseinek egyezni kell.
R:
A B C
1 4 6
4 7 9
2 7 9
S:
B C D
4 6 3
4 6 2
7 9 13
RS:
A B C D
1 4 6 3
1 4 6 2
4 7 9 13
2 7 9 13


Megjegyzés:

A természetes összekapcsolás kifejezhető más műveletek segítségével, mégpedig ezek a szorzás, kiválasztás és vetítés :

RS = πLC(R×S))

ahol C feltétel R.A1 = S.A1 AND R.A2 = S.A2 AND … AND R.An = S.An alakú és az A1, A2, … , An olyan attribútumok, amelyek mind az R, mind az S sémájában szerepelnek, tehát R séma S séma = {A1, A2, …, An}.
Az L pedig egy olyan attribútumlista, amelyben szerepel az R összes attribútuma és emellett az S-ből mindazok az attribútumok, amelyek nincsenek benne az R reláció sémájában, tehát
L = R séma + (S séma – R séma) .

3.Példa

1.lépés:

Az R és S relációk természetes összekapcsolásának kifejezéséhez először vegyük az R×S Descartes – szorzatot:
R:
A B C
1 4 3
2 8 4
S:
B C D
4 3 5
4 10 2
8 4 9

R×S:
A R.B R.C S.B S.C D
1 4 3 4 3 5
1 4 3 4 10 2
1 4 3 8 4 9
2 8 4 4 3 5
2 8 4 4 10 2
2 8 4 8 4 9

2.lépés:

Alkalmazzuk a kiválasztás operátort.
Ki kell választani azokat a sorokat, amelyek a feltétel szerint, mind az R.B – S.B és mind az R.C – S.C attribútumpárokon azonos értékekkel rendelkeznek. Ekkor a részeredmény:

A R.B R.C S.B S.C D
1 4 3 4 3 5
2 8 4 8 4 9

3.lépés:

Utolsó lépésként pedig mindegyik közös attribútumból, vagyis a B és C attribútumokból, csak egy példányt őrizzünk meg. Ezt az A, R.B, R.C, D attribútumokra vetítéssel tehetjük meg. Így kapjuk meg az RS végeredményét:
πA, R.B, R.C, DR.B=S.B AND R.C=S.C( R×S ) )


Végeredmény:
A R.B R.C D
1 4 3 5
2 8 4 9