A következőkben további példákat adunk a relációalgebrai műveletek használatának illusztrálására. Mindegyik példa az 5.4. ábra adatbázisára hivatkozik. Általában ugyanaz a kérdés számos módon megválaszolható a különféle műveletek felhasználásával. Mi minden kérdést egyféle módon fogunk megválaszolni, és az olvasóra hagyjuk az ekvivalens formulák kitalálását.
1. lekérdezés. Kérdezze le az összes olyan dolgozónak a nevét és a lakcímét, aki a „Kutatás” osztályon dolgozik!
KUTATÁS_OSZT ← σOnév = 'Kutatás'( OSZTÁLY )
KUTATÁS_DOLG ← ( KUTATÁS_OSZT ⋈Oszám = Osz DOLGOZÓ )
EREDMÉNY ← πVnév, Knév, Lakcím( KUTATÁS_DOLG )
Egyetlen kifejezésként felírva, a lekérdezés az alábbi alakot ölti:
πVnév, Knév, Lakcím( σOnév = 'Kutatás'( OSZTÁLY ⋈Oszám = Osz DOLGOZÓ ) )
Ezt a lekérdezést meg lehetne adni másképpen is; például az összekapcsolás és a szelekció műveletek sorrendje felcserélhető, vagy az összekapcsoló attribútumok valamelyikének átnevezése után az összekapcsolás helyettesíthető egy természetes összekapcsolással.
2. lekérdezés. Minden kecskeméti projekt esetén listázza ki a projekt számát, a projektet irányító osztály számát, valamint az osztályvezető vezetéknevét, lakcímét és születési dátumát!
KECSKEMÉTI_PROJ ← σPhelyszín = 'Kecskemét'( PROJEKT )
IR_OSZT ← ( KECSKEMÉTI_PROJ ⋈Osz = Oszám OSZTÁLY )
PROJ_OSZT_VEZ ← ( IR_OSZT ⋈Vez_szsz = Szsz DOLGOZÓ )
EREDMÉNY ← πPszám, Oszám, Vnév, Lakcím, Szdátum( PROJ_OSZT_VEZ )
3. lekérdezés. Adja meg azoknak a dolgozóknak a vezeték- és keresztnevét, akik minden olyan projekten dolgoznak, amit az 5-ös számú osztály irányít!
OSZT5_PROJ( Psz ) ← πPszám( σOsz = 5( PROJEKT ) )
DOLG_PROJ( Szsz, Psz ) ← πDsz, Psz( DOLGOZIK_RAJTA )
E_DOLG_SZSZ ← DOLG_PROJ ÷ OSZT5_PROJ
EREDMÉNY ← πVnév, Knév( E_DOLG_SZSZ * DOLGOZÓ )
4. lekérdezés. Készítse el azon projektek projektszámainak listáját, amelyekhez köze van „Kovács” vezetéknevű dolgozónak, akár a projekten munkálkodó dolgozóként, akár a projektet irányító osztály vezetőjeként!
KOVÁCSOK( Dszsz ) ← πSzsz( σVnév = 'Kovács'( DOLGOZÓ ) )
KOVÁCS_MUNKÁS_PROJ ← πPsz( DOLGOZIK_RAJTA * KOVÁCSOK )
VEZETŐK ← πVnév, Oszám( DOLGOZÓ ⋈Szsz = Vszsz OSZTÁLY )
KOVÁCS_IR_OSZT( Osz ) ← πOszám( σVnév = 'Kovács'( VEZETŐK ) )
KOVÁCS_IR_PROJ ← πPszám( KOVÁCS_IR_OSZT * PROJEKT )
EREDMÉNY ← ( KOVÁCS_MUNKÁS_PROJ ∪ KOVÁCS_IR_PROJ )
Egyetlen kifejezésként felírva, a lekérdezés az alábbi alakot ölti:
πPsz( DOLGOZIK_RAJTA ⋈Dszsz = Szsz ( πSzsz( σVnév = 'Kovács'( DOLGOZÓ ) ) ) ∪ πPsz( ( πOszám( σVnév = 'Kovács'( πVnév, Oszám( DOLGOZÓ ) ) ) ⋈Szsz = Vez_szsz OSZTÁLY ) ) ⋈Oszám = Osz PROJEKT )
5. lekérdezés. Kérdezze le azoknak a dolgozóknak a vezeték- és keresztnevét, akiknek nincs egyetlen hozzátartozójuk sem!
Ez egy olyan típusú lekérdezésre példa, amely a kivonás műveletet használja.
ÖSSZES_DOLG ← πSzsz( DOLGOZÓ )
DOLG_HTVAL( Szsz ) ← πDszsz( HOZZÁTARTOZÓ )
DOLG_HT_NÉLKÜL ← ( ÖSSZES_DOLG − DOLG_HTVAL )
EREDMÉNY ← πVnév, Knév( DOLG_HT_NÉLKÜL * DOLGOZÓ )
Egyetlen kifejezésként felírva, a lekérdezés az alábbi alakot ölti:
πVnév, Knév( ( πSzsz( DOLGOZÓ ) − ρSzsz( πDszsz( HOZZÁTARTOZÓ ) ) ) * DOLGOZÓ )
6. lekérdezés. Listázza ki azoknak az osztályvezetőknek a nevét, akiknek legalább egy hozzátartozójuk van!
VEZETŐK( Szsz ) ← πVez_szsz( OSZTÁLY )
DOLG_HTVAL( Szsz ) ← πDszsz( HOZZÁTARTOZÓ )
VEZETŐ_HTVAL ← ( VEZETŐK ∩ DOLG_HTVAL )
EREDMÉNY ← πVnév, Knév( VEZETŐ_HTVAL * DOLGOZÓ )
Amint azt korábban említettük, ugyanaz a lekérdezés többféle módon is megadható. A műveletek például gyakran különböző sorrendben is alkalmazhatók. Továbbá egyes műveletek helyettesíthetők másokkal; például a metszet művelet a 6. lekérdezésben helyettesíthető egy természetes összekapcsolással. Egy feladatként próbálja meg megcsinálni a fenti példa lekérdezéset különböző műveletek felhasználásával![24] Bemutattuk, hogyan lehet egyetlen relációalgbrai kifejezéssel felírni a 1., 4. és 5. lekérdezéseket. Próbálja meg a többi lekérdezést is egyetlen kifejezéssel felírni! A 6.6. és 6.7. alfejezetekben megmutatjuk, hogyan lehet felírni ezeket a lekérdezéseket más relációs nyelveken.
[24] A lekérdezés-optimalizálás során a rendszer kiválaszt egy olyan műveletsorozatot, amellyel a lekérdezés a lehető leghatékonyabban hajtódik végre.