6.5. Példák relációalgebrai lekérdezésekre

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!

Egyetlen kifejezésként felírva, a lekérdezés az alábbi alakot ölti:

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!

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!

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!

Egyetlen kifejezésként felírva, a lekérdezés az alábbi alakot ölti:

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.

Egyetlen kifejezésként felírva, a lekérdezés az alábbi alakot ölti:

6. lekérdezés.  Listázza ki azoknak az osztályvezetőknek a nevét, akiknek legalább egy hozzátartozójuk van!

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.