2.GYAKORLAT (ADATBÁZISOK)
   

   
   I.RÉSZ: gépes SQL egytáblás lekérdezések, vetítés és kiválasztás műveletei
   
   - Előkészítjük az SQL gyakorláshoz a környezetet, létrehozzuk a táblákat SQL-ben
   - ELTE-s ORACLE ADATBÁZIS szerverek elérése -->> adatbazis_eleres.html
   - Az ABKR-felépítése, SQL főbb részei és utasításai: SQL01_bevezetes.pdf 
   - Oracle demo példa HR séma: Schema Diagrams -> hasonló lesz az órai példa: 
     E/K diagramja: Entitások: Dolgozó, Osztály; Kapcsolatok: sok-egy kapcsolatok 
  
     
   - Az E/K modellt átalakítjuk relációs modellre:
     -- 1a.) lépés: Entitások átírása relációsémákra
       Osztaly (oazon, onev, telephely)
       Dolgozo (dkod, dnev, foglalkozas, belepes, fizetes, jutalek) 
     -- 1b.) lépés: Kapcsolatok átírása relációsémákra
       dolg(dkod, oazon)
       fonok(dkod, fonoke)
      -- 2.lépés Táblák összevonása után a végső adatbázis séma:
       Osztaly (oazon, onev, telephely)
       Dolgozo (dkod, dnev, foglalkozas, fonoke, belepes, fizetes, jutalek, oazon) 
    
   - Lekérdezésekkel kezdünk, de ahhoz, hogy az SQL lekérdezéseket kipróbáljuk 
     létre kell hoznunk a táblákat, a scriptben szereplő utasításokat később tanuljuk: 
     create table táblanév (oszlopnév típus, stb, megszorítások) részletesen 7.gyak.
     lesz az Oracle alapvető adattípusai: Oracle_tipusok.txt (varchar2, number, date)
   
   - Gyakorlatok példáihoz a táblák létrehozása Oracle SQL-ben 
        >> createSzeret   -- 1.példa: szeret(nev, gyumolcs)
        >> createDolgozo -- 2.példa: osztaly, dolgozo, fiz_kategoria
   
  FELADATOK: Egy tábla lekérdezése (oszlopok vetítése és sorok kiválasztása)
 - SELECT.1.rész: select lista from T where feltétel <=> pi lista sigma feltétel (T)
   
 - Rel.algebra vetítés művelete (SQL-ben multihalmaz -> rel.alg.-ban halmaz!)
 1.  Adjuk meg a dolgozók között előforduló foglalkozások neveit! (select lista)
 2.  Adjuk meg a dolgozók között előforduló foglalkozások neveit (DISTINCT is),
     az eredmény halmaz legyen, vagyis minden foglalkozást csak egyszer írjuk ki!
 3. Adjuk meg a dolgozók kódját, nevét és az éves fizetését, amikor kifejezést
     használunk az oszlopnevek helyén, ott adjunk új oszlopnevet ("éves fizetés")
   
 - Rel.algebra kiválasztás művelete és az SQL SELECT utasítás WHERE feltétele
 - NULL hiányzó érték, lásd SQL Lang.Ref. Nulls, 3 értékű logika, lásd igazságtábla
 4. Kik azok a dolgozók, akiknek a fizetése > 2800? (kiválasztás: elemi feltételek)
 5. Adjuk meg azokat a dolgozókat, akiknek a foglalkozása 'MANAGER' (kar.tip.érték)
 6. Kik azok a dolgozók, akiknek a fizetése 2000 és 4500 között van? (dkod, dnev)
     (1.mo: where-ben: intervallum); (HF 2.mo: rel.alg.kiválasztás: összetett feltétel
 7. Kik azok a dolgozók, akik a 10-es vagy a 20-as osztályon dolgoznak?
     (1.mo: where-ben: in feltétel); (HF 2.mo: rel.alg.kiválasztás: összetett feltétel) 
 8. Adjuk meg azon dolgozókat, akik nevének második betűje 'A' (where: like)
 9. Kik azok a dolgozók, akiknek a jutaléka nagyobb, mint 600?
10. Kik azok a dolgozók, akiknek a jutaléka kisebb-vagy-egyenlő, mint 600?
11. Kik azok a dolgozók, akiknek a jutaléka ismeretlen/hiányzó adat. (NULL felt)
12. Kik azok a dolgozók, akiknek a jutaléka ismert (vagyis nem NULL)
   
  - Az eredménytábla sorainak rendezése (SELECT utasítás ORDER BY záradéka)
     (Ez itt nem alap relációs algebrai művelet, de az SQL lekérdezésekben hasznos)
13. Listázzuk ki a dolgozókat foglalkozásonként, azon belül nevenként rendezve.
14. Listázzuk ki a dolgozókat fizetés szerint csökkenőleg rendezve.
15. Rendezés segítségével az első N sor elérése Oracle 12.2 adatbázisban,
      lásd Row Limiting Examples.html (forrás: Oracle Database SQL Lang. Ref. html)
  
    Összefoglalás: 2.gyak. II. SQL SELECT utasítás egytáblás lekérdezések 
   - Oracle segédanyagok: SQL02_select_lista.pdf;  SQL03_where_feltetel.pdf
     Az Oracle demo lekérdezésekhez elég szinonimát használni: createHRsyn.txt
     de a legjobb, ha az ott szereplő Employees táblákra vonatkozó példákat a
     Dolgozo (dkod, dnev, foglalkozas, fonoke, belepes, fizetes, jutalek, oazon)
     saját tábláin alkalmazza (átírja a megfelelő táblanév, oszlopnév, értékekre). 
      

   
   II.RÉSZ: RELÁCIÓS ADATMODELL, RELÁCIÓS ALGEBRAI LEKÉRDEZÉSEK
   - H.F.: Ullman-Widom Tankönyv 2.4. fejezetét átnézni: UW_24_RelAlg.pdf 
     a Tankönyvben szereplő Filmek példáján nézze át a relációs algebrát.   
   - Ö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évszínésznév)
         Stúdiók (név, cím)
   
-- Köv.gyakorlaton relációs algebrai lekérdezések jönnek a Tankönyv feladatai:
   - Relációs algebrához relax környezet táblákkal: dbis uibk github io/relax
   - Tk. 2.4.1. Termékek-feladatok.pdf  feladatok köv.héten Relax_PC_Termek.txt  
   - Tk. 2.4.3. Csatahajók-feladatok.pdf otthoni gyakorlás Relax_Csatahajok.txt