5.gyak. Lekérdezések kifejezése kiterjeszett relációs algebrában,
külső összekapcsolások, csoportosítás és összesítések, alkérdések 
   
Feladatok: Lekérdezések kiterjesztett relációs algebrával és SELECT utasítással.
Relációs műveletek multihalmazokon. Kiterjesztett műveletek a relációs algebrában:
ismétlődések megszüntetése (delta), összesítési műveletek, a csoportosítási művelet
(gamma), csoportkiválasztási művelet (szigma), rendezés (tau).
Összekapcsolások különböző fajtái, külső összekapcsolások (outer join)
A hányados (minden-típusú kérdések) kifejezése relációs algebrában, kiértékelő fát
átírva SQL-be, illetve SQL korrelált alkérdésekkel felírva. Összefoglalás.    
  

E3. Kiterjesztett relációs algebra
   
Segédanyag: Lekerd  (nézzük meg SQL-ben is + a Külső join  művelet példáit is!)
Az alábbi lekérdezéseket fejezzük ki SQL SELECT-tel, majd írjuk át a lekérdezést
kiterjesztett relációs algebrai operátorokat felhasználó kifejezéssé, majd rajzoljuk fel
a kifejezésfát is.
- Adjuk meg foglalkozásonként az átlagfizetést, de csak azokra a foglalkozásokra,
   ahol az átlagfizetés nagyobb mint 1500.
- Adjuk meg osztályonként az osztály nevét és az adott osztályon dolgozók számát
  a dolgozók száma (létszám) szerint növekvő sorrendben.
 

A gépes gyakorlat áttekintése: 
> 1. Demo példák
   -- Ehhez előkészítés: HR séma tábláihoz készítsük el a szinonimákat create_synonym
   -- HR séma a dokumentációban: Sample Schemas - Schema Diagram: HR
> 2. Órai gyakorló feladatok  
    -- Feladatok: table_dolgozo.txt és a táblák létrehozása: create_dolg
> 3. A példatár feladatai önálló gyakorlásra
   --  lásd Feladatok.pdf  (2.fejezet feladatai) és a táblák létrehozása: cr_dept_emp 
    
1.Demo példák: HR séma tábláihoz (lásd Oracle-doksik)
 

1.6. Összekapcsolások az SQL-ben
     
Segédanyag: >> Összekapcsolások (hu)
   
Feladat külső joinra: Adjuk meg osztályonként a dolgozók összfizetését
(department_name, sum(salary)) formában hr.employees és hr.departments
táblák adatai alapján
1. Azok az osztályok is jelenjenek meg ahol nem dolgozik senki, ott az összfizetés 0 legyen.
2. Ha van olyan dolgozó, akinek nincs osztálya, azokat egy 'FIKTIV' nevű osztályon gyűjtsük össze.
3. Csak azokat az osztályokat jelenítsük meg, amelyek nevében van 'B' betű, plusz a FIKTIV osztályt.
-- Megoldás/ellenőrzésként: lásd itt
    
1.7. Halmazműveletek
 
Segédanyag: >> Halmazműveletek (en)
 

1.8. Alkérdések. Korrelált alkérdések.

Segédanyag: >> Alkérdések I. és Alkérdések II. (en)
 
Feladat: A szeret táblára vonatkozó relációs algebrai feladatait átírtuk
SQL SELECT-re a 2.gyakorlaton, ennek a folytatása a hányados átírása
relációs algebrai alapműveletekkel, majd az ehhez tartozó kiértékelő fát
írjuk át SQL-be, illetve SQL korrelált alkérdésekkel felírva is nézzük meg.
-- Megoldás/ellenőrzésként: lásd itt


2.) Az órai gyakorlatok példái:
Fejezd ki a lekérdezéseket SQL SELECT-tel!
   
A gyakorlatok feladatai itt: table_dolgozo.txt  -- táblák létrehozása: create_dolg
Feladatok az 5.gyakorlatra
 
- Adjuk meg, hogy mely dolgozók fizetése jobb, mint a saját osztályán (ahol dolgozik)
   dolgozók átlagfizetése (korrelált alkérdéssel)
- Adjuk meg, hogy mely dolgozók átlagjövedelme jobb, mint a saját osztályának az
   átlagjövedelme, ahol a jövedelem a fizetés és jutalék összege, ahol nincs jutalék
   megadva, ott a 0 helyettesítő értékkel számoljunk (NVL függvény alkalmazása).
- Adjuk meg, hogy az egyes osztályokon hány ember dolgozik (azt is, ahol 0=senki).
- Adjuk meg osztályonként a dolgozók összfizetését az osztály nevét megjelenítve
   ONEV, SUM(FIZETES) formában, és azok az osztályok is jelenjenek meg ahol
   nem dolgozik senki, ott az összfizetés 0 legyen. Valamint ha van olyan dolgozó,
   akinek nincs megadva, hogy mely osztályon dolgozik, azokat a dolgozókat
   egy 'FIKTIV' nevű osztályon gyűjtsük össze. Minden osztályt a nevével plusz 
   ezt a 'FIKTIV' osztályt is jelenítsük meg az itt dolgozók összfizetésével együtt.     
       
 3.) A példatár feladatai önálló gyakorlásra:
-- 
Lásd Feladatok.pdf  (3-4.fejezet feladatai)  és a táblák létrehozása  cr_dept_emp 
    
Fel a lap tetejére                          Vissza az AB1gyak oldalára (főmenü)