2.GYAKORLAT (ADATBÁZISOK)
   
   Témakör: Lekérdezések kifejezése alap relációs algebrában
   >> 1.RÉSZ - Ullman-Widom Tankönyv példa adatbázisaira rel.alg.feladatok 
   >> 2.RÉSZ - 1.gyak.folyt. egyszerű táblákra nehezebb rel.alg.lekérdezések
   

   
   1.RÉSZ: Ullman-Widom Tankönyv 2.4. fejezete: UW_24_RelAlg.pdf 
       H.F.: Tankönyv Filmek példáján nézze át a Tankönyv kidolgozott példáit!
    
    - Összetett kulcs használata /A Tankönyv Filmek példája:     
     
     - Egyed/kapcsolatok átírása, majd Filmek és Gyártó táblák összevonása 
       után a Tankönyvben szereplő példákban az átnevezték az oszlopokat: 
   
         Filmek (cím, év, hossz, műfaj, stúdiónév)
         Színészek (név, cím, nem, születésidátum)
         Szerepelbenne (filmcím, filmév, színésznév)
         Stúdiók (név, cím)
   

   
   Tankönyv 2.4.1. PC-Termékek példája - relációs algebrai lekérdezések
   - Alapok: Relációs algebrához relax környezet táblákkal: dbis uibk github io/relax
   - A relációs algebrai műveletek eredménye halmaz, vagyis ez az implementáció
     minden művelet elvégzése után automatikusan megszünteti az ismétlődéseket. 
     A relációs algebrai fület használjuk, ez a szintaxis érzékeny a kis-nagybetűre,
     algebrában a szűrőfeltételben nem használható alkérdés (az csak SQL-ben).
   
   - Volt az 1.gyak: Szeret(nev, gyumolcs) táblára vonatkozó lekérdezések (folyt.lent)
     Unér műveletek: pi-vetítés, sigma-kiválasztás, rho-átnevezés (táblák v. oszlopok)
     Halmazműveletek: unió (union), halmazműv.különbség (-), metszet (intersect)
     Tábla átnevezése, önmagával vett direkt szorzata (sorpárok összevetésére)
     
   - A mai 2.gyak: Tankönyv 2.4.szakasz 2.4.1.feladat: Termékek-feladatok.pdf
   - Itt most olyan megoldásokat keressünk, amit előbb szavakkal írjuk le hogyan
     keresnéd ki a táblázatokból a lekérdezés eredményét, majd azt formalizáljuk
     alap relációs algebrai lekérdezésként adunk meg (kapcsolata SQL SELECT-tel).   
   - Ha a relációs algebrában segédváltozókat is használunk, ahhoz az SQL-ben
     munkatáblákat, vagyis a select lekérdezés előtti with záradékot vagy
     inline nézeteket, vagyis FROM listán (alkérdés) sorváltozó-t rendelünk.
     
   - Táblák létrehozása Relax-ban: Relax_PC_Termek.txt       
   - Alosztályok használata az E/K diagramban, öröklési osztályhierarchia:       
     
   -- Osztályhierarchia átalakítása relációkká, három stratégia hogyan alakítjuk át:
      1.) E/K típusú átalakítás (4 tábla lesz, ezt használjuk, csak a kulcs öröklődik) 
      2.) Objektumorientált megközelítésben való átalakítás (minden attr.öröklődik)
      3.) Nullértékek használata relációk egyesítéséhez (egy táblában minden attr.)
   
   -- Relációs sémák E/K típusú átalakítással:
          Termek(gyarto, modell, tipus)
          PC(modell, sebesseg, memoria, merevlemez, ar)
          Laptop(modell, sebesseg, memoria, merevlemez, kepernyo, ar)
          Nyomtato(modell, szines, tipus, ar)
        
   FELADATOK: Lekérdezések kifejezése alap relációs algebrában (fv-ek nélkül) 
    1. Melyek azok a PC modellek, amelyek sebessége legalább 3.00?
    2. Mely gyártók készítenek legalább száz gigabájt méretű merevlemezzel
        rendelkező laptopot?
    3. Adjuk meg a B gyártó által gyártott összes termék modellszámát és árát,
        típustól függetlenül.
    4. Adjuk meg valamennyi színes lézernyomtató modellszámát.
    5. Melyek azok a gyártók, akik laptopot árulnak, PC-t viszont nem?
    6. Melyek azok a merevlemezméretek, amelyek legalább két PC-ben megtalálhatók?
    7. Adjuk meg azokat a PC modell párokat, amelyek ugyanolyan gyorsak és
        a memóriájuk is ugyanakkora. Egy pár csak egyszer jelenjen meg, azaz
        ha már szerepel az (i, j), akkor a (j, i) ne jelenjen meg.
    8. Melyik gyártó gyártja a leggyorsabb számítógépet (PC-t vagy laptopot)?
    9. Melyik gyártó gyárt legalább három, különböző sebességű PC-t?
  10. Melyek azok a gyártók, akik pontosan három típusú PC-t forgalmaznak?
   
 --- --- --- ---     
   -- További gyakorló feladatok a Tankönyv 2.4.szakasz 2.4.3.lekérdezési feladai:
      Tk. 2.4.3. Csatahajók-feladatok.pdf H.F. otthoni gyakorlás Relax_Csatahajok.txt
  
     
   2.RÉSZ: A korábbi relációs algebrai feladatokat is folytatjuk új kérdésekkel:  
  -- Szeret (nev, gyumolcs) tábla létrehozása relax-ban: Relax_Szeret.txt
      Szeret (nev, gyumolcs) tábla sok-sok kapcsolatot ír le, azaz egy vevő
      több gyümölcsöt is szerethet és egy gyümölcsöt több vevő is szerethet.
   
   Rövid emlékeztető, SQL lekérdezések átírása relációs algebrába
   - Egyszerű SFW lekérdezések <=> vetítés kiválasztás szorzás
       SELECT lista        -- 3.  <=> 3. pi lista 
       FROM R, S, ...      -- 1.  <=> ______ __________ 1. (R x S x ...)
       [WHERE feltétel] -- 2.  <=> ______ 2. sigma feltétel
   
   - SQL lekérdezésekben a halmazműveletek használata: 
     Fontos! Az SQL-ben a halmazműveleteket nem táblákra, hanem
     SFW lekérdezésekre alkalmazzuk (azonos dimenzió, kompatibilis típus)
   - Alapértelmezésben halmazként értelmezve: duplikációk nélkül
     "ALL" kiegészítőszóval multihalmazként értelmezve (multiplicitás)
 
      SFW
           {UNION [ALL] | MINUS | INTERSECT }
      SFW
 
-- Megjegyzés: Relációs algebrában használhatunk segédváltozókat, aminek
   az átírása SQL-be többféleképpen történhet vagy WITH munkatabla as (SFW)
   záradékban adjuk meg közvetlenük a SELECT záradék előtt, ekkor a FROM listán
   nem csupán valódi táblák, hanem ezek a munkatáblák is szerepelhetnek vagy
   a FROM listán bezárójelezett alkérdést, ú.n. inline nézetet is használhatunk
   FROM (SFW) temp_táblanév, ahol (SFW) = (SELECT ... FROM ... WHERE ...)  
 
   FELADATOK: Lekérdezések kifejezése alap relációs algebrában (fv-ek nélkül) 
- volt 1.gyak.: Tábla önmagával vett direkt szorzata, halmazműveletek
 1. Kik szeretik az almát?
 2. Kik nem szeretik az almát? (de valami mást igen)
 3. Kik szeretik vagy az almát vagy a körtét?
 4. Kik szeretik az almát is és a körtét is?
 5. Kik azok, akik szeretik az almát, de nem szeretik a körtét?
 6. Kik szeretik vagy az almát vagy a körtét, de csak az egyiket?
 7. Kik szeretnek legalább kétféle gyümölcsöt? (direkt szorzattal)
 8. Kik szeretnek legalább háromféle gyümölcsöt?
 9. Kik szeretnek legfeljebb kétféle gyümölcsöt?
10. Kik szeretnek pontosan kétféle gyümölcsöt?  
   
 - folyt. 2.gyak: Hányados (minden kifejezése) relációs algebrában 
11. Kik szeretnek minden gyümölcsöt?
     (Kik szeretik az összes olyan gyümölcsöt, amit valaki szeret?)
12. Kik azok, akik legalább azokat a gyümölcsöket szeretik, mint Micimackó?
13. Kik azok, akik legfeljebb azokat a gyümölcsöket szeretik, mint Micimackó?
14. Kik azok, akik pontosan azokat a gyümölcsöket szeretik, mint Micimackó?