ADATBÁZISOK-1 GYAKORLAT [prog.inf: IP-08AB1G]
  ELTE, 2015/2016-os tanév II.félévében  [2016.febr]
 
 
 
   Előadás: Hétfő 10:15-11:45 D.ép.0-821 Bolyai terem [link: AB1EA.html]
   Gyakorlat: [1] Csüt. 8:30-10:00 [2] Csüt. 12:15-13:45 |2-124 MS-labor
   A gyakorlat kötelező, katalógus van, legfeljebb 4 hiányzás lehetséges.
   Ellenőrzésre jelenléti ív (név-> 4kar-kód) hallgato/[jelszóval] [itt:.pdf]
   A gyakorlat célja: az előadáson szereplő alapfogalmak, algoritmusok, és
   az adatbázisok-szemlélet gyakorlatban való elsajátítása. Az a cél, hogy
   a hallgatók minél hatékonyabban tudjanak SQL és PL/SQL feladatokat
   megoldani, és azt is értsék hogyan történik a lekérdezések kiértékelése.
   
   Gyakorlatok anyaga és a dolgozatok időpontja:
      | 1.GY: 02.11. 2.GY: 02.18   |  3.GY: 02.25.  | ZH1 - 4.GY: 03.03. |
      | 5.GY: 03.10.  |  6.GY: 03.17.  |--| 7.GY: 03.31. | ZH2 - 8.GY: 04.07.
      | 9.GY: 04.14.  | 10.GY: 04.21. | 11.GY: 04.28.  | ZH3 - 12.GY: 05.05.
      | JavZH - 13.GY: 05.12. fenti 3 ZH közül az egyik pótolható/javítható |
      | JavZH/GyakUV: 05.24.  Kedd 12:15-13:45 Déli ép. 2-315 PC4 labor |
      | JavZH/GyakUV: 05.27. Péntek 10:15-11:45 Déli ép. 2-315 PC4 labor |
      | GyakUV: 05.31.[Neptun] Kedd 12:15-13:45 Déli ép. 2-315 PC4 labor |
       
   A gyakorlatok gépes részéhez: Oracle adatbázisok elérése, SQL developer
   Oracle Példatár feladatai: Feladatok.pdf  (SQL: 1-6.fej., PL/SQL: 8-10.fej.)
    -- Példatár feladataihoz scriptek: createEmpDept(en) vagy createDolg(hu)
   Tankönyv feladatai: Termékek-feladatok.pdfCsatahajók-feladatok.pdf
    -- Tankönyv feladataihoz a scriptek: createTermékekcreateCsatahajók
    
   Oracle SQL segédanyagok: ebben az eduSQL mappában
    -- lekérdezésekhez a scriptek: createHRsyn (elég szinonimákat használni)
    -- később, DML-utasításokhoz: createHRtables (itt saját tábláink legyenek)
   Oracle PL/SQL segédanyagok: ebben az eduPLSQL mappában  
    -- itt a plsql_ fájlok forrása: innen  -- és a PL/SQL könyvhöz a scriptek: itt
    -- Tankönyvtár: PL/SQL programozás Oracle 10g-ben (Gábor A.-Juhász I.)
   Oracle 11gR2 Online Docu: -- Tanszéki szerveren  -- Oracle oldalán --
    -- SQL Language Reference: HTML  PDF (2009.10)  HTML  PDF (2014.07)
    -- PL/SQL Language Refer.:  HTML  PDF (2010.03)  HTML  PDF (2014.12)
    
   1.GY: 2016.02.11.  --- SQL előkészítés: create table, insert, egyszerű select 
   > Ismerkedés, Oracle adatbázisok elérése, SQL Developer használata
  -- -- --
  (1A) Relációséma, táblák létrehozása és táblák feltöltése adatsorokkal
   > SQL DDL: relációséma, adattípusok, megszorítások: create table
   > SQL DML: relációelőfordulás, táblák feltöltése adatsorokkal: insert 
   > Első feladat: Az OracleDoc Data Types fejezetének a segítségével
      (vagy az ebből kivett oszloptípusok segédlettel) hozzunk létre táblákat!
  -- -- --
  (1B) Vetítés és kiválasztás művelete a relációs algebrában és SQL-ben
   > Relációs algebra unér műveletei (vetítés, kiválasztás, átnevezés)     
   > Órai gyakorló feladatok: FeladatokDolg.txt, ehhez: createDolg (no constr)
      dolgozo, osztaly táblákgépeljük be párhuzamosan az alábbi mintapéldákkal:
   > Oracle Példák: -- lekérdezésekhez elég szinonimákat venni: createHRsyn 
      >> Bevezetés (HR séma táblái), Sample Schemas: Fig.4-1 HR és OE sémák
      >> 1/1.lecke (vetítés kiterjesztése, kifejezések)
      >> 1/2.lecke (kiválasztás, kiválasztott sorok rendezése)
   > Oracle PéldatárFeladatok.pdf 
   
   2.GY: 2016.02.18.  --- Rel.alg. és SELECT: egy tábla lekérdezése 
  -- -- --
  (2A) Feladatok relációs algebrai lekérdezésekre; Rel.Alg. -> SQL SELECT
   > Relációs algebra alapműveletei: Termékek->lásd EA, Csatahajók->GYAK
   >  Szeret tábla és feladatok, ehhez a tábla létrehozása: create_szeret
   > Tk.2.4. Relációs algebrai feladatok (Tk.2.4.1.feladat) Termékek feladatai
      relációs algebrai kifejezésekkel, kifejezőfák átírása SQL lekérdezésekre
   > Tankönyv feladatai: Termékek-feladatok.pdfCsatahajók-feladatok.pdf  
   > Tankönyv feladataihoz a scriptek: create Termékekcreate Csatahajók
  -- -- --
  (2B) Vetítés és kiválasztás kiterjesztése, kifejezések, függvények az SQL-ben
   > Oracle Példák: -- lekérdezésekhez elég szinonimákat venni: createHRsyn 
      >> 1/3.lecke (sorfüggvények használata a SELECT és WHERE záradékban)
   > További példák, see Examples:  SQL Language Reference >> 5 Functions:
      Sorfüggvények: pl. Karakteres függvények: SUBSTRRPAD, ...,  INSTR, ...
      pl. Dátum függvények: MONTHS_BETWEEN, ..., pl. Konverziós: TO_DATE, ...
      pl. Null érték kezelése, helyettesítő érték megadása: NVL, COALESTE, ...
             Figyelem! COALESTE példában: FROM product_information
             mivel ez a tábla nem az HR, hanem OE sémában szerepel, ezért
             itt ki kell írni a táblatulajdonost: FROM OE.product_information
             (ugyanis csak a HR owner tábláihoz hoztuk létre a szinonimákat).
  -- -- --
   > Órai gyakorló feladatok: FeladatokDolg.txt, ehhez: createDolg (no constr)
   > Feladatok: Oracle Példatár Feladatok.pdf 1.fejezet 1.1.-1.18. feladatok
      Megj.: 1.14.feladatban foglalkozás szerint rendezve (nem csoportosítva)
   > HF: befejezni az Oracle Példatár 1.1.-1.18. feladatokat! 
    
   3.GY: 2016.02.25.  --- SELECT: kifejezések, összesítés, csoportosítás 
  -- -- --
  (3A) Feladatok kiterjesztett relációs algebrai lekérdezésekre <->SQL SELECT
   > Kiterjesztett relációs algebra egy relációra vonatkozó unér műveletei:
      kiterjesztett vetítés, ismétlődő sorok megszüntetése, összesítések,
      csoportosítási művelet, rendezési művelet (később: binér műveletek)
  -- -- --
  (3B) Egy táblára vonatkozó csoportosító lekérdezések, teljes SELECT utasítás
   > SELECT DISTINCT, FROM, WHERE, GROUP BY, HAVING és ORDER BY záradékok
   > Oracle Példák: -- lekérdezésekhez elég szinonimákat venni: createHRsyn 
       >> 1/4.lecke (csoportosítás, group by és having záradékok)
  -- -- --
   > Órai gyakorló feladatok: FeladatokDolg.txt, ehhez: createDolg (no constr)
   > Feladatok: Oracle Példatár Feladatok.pdf 2.fejezet 2.1-2.24 feladatok
   > HF: befejezni az Oracle Példatár 2.1.-2.24. feladatokat! 
     
   4.GY: 2016.03.03.  --- ZH1: Egy táblára vonatkozó lekérdezések  
   > I.ZH témaköre:  
  -- -- --
   (4A) 1-3.előadások anyaga:
   > Tk.2.4. Relációs algebra, Tk.5.1-5.2.
Kiterjesztett relációs algebra,
   > Tk.6.1. select, where, order by záradékok
(SQL egytáblás lekérdezések)
   > Tk.6.4. kifejezések használata, összesítések, group by, having záradékok
  -- -- --
   (4B) 1-3.gyakorlatok anyaga:
    > Egy táblára vonatkozó egyszerű és csoportosító lekérdezések
    > Oracle Példatár 1. és 2. fejezeteinek feladatai
  -- -- --
   > I.ZH feladatlapok hallgato/[jelszóval] 2016.03.03. zh1A, zh1B, zh1C, zh1D
   > Eredmények: Az I.ZH-án elért részpontok hallgato/[jelszóval] [itt:.pdf]
    
   5.GY: 2016.03.10.  --- SELECT: többtáblás lekérdezések, alkérdések
  -- -- --  --
  (5A) Több táblára vonatkozó lekérdések, többféle megoldás joinnal, alkérdéssel
   > Oracle Példák: -- lekérdezésekhez elég szinonimákat venni: createHRsyn 
      >> 1/5.lecke (összekapcsolások, a külső join is)  
   > További példák: Példák összekapcsolásokra és outer join-okra
  > Egy feladat kétoldali külső összekapcsolásra: Adjuk meg osztályonként
      a dolgozók összfizetését (department_name, sum(salary)) formában
      a hr.employees és hr.departments táblák adatai alapján, amelyekre
      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 írjuk ki, amelyek nevében van 'B' betű,
          plusz a FIKTIV osztályt.
          --- Megoldás/ellenőrzésként: lásd itt
   > Alkérdések használata (ezen a héten elsősorban a where záradékban)    
      >> 1/6.lecke és  2/6.lecke (alkérdések)
   > Halmazműveletek (egyesítés, metszet és különbség az SQL-ben)
      >> 1/7.lecke  (halmaz- és multihalmaz műveletek)
   > Megbeszéljük a teljes select utasítás szemantikáját és algebrai kiértékelését
  -- -- --
   > Órai gyakorló feladatok: FeladatokDolg.txt, ehhez: createDolg (no constr)
   > Feladatok: Oracle Példatár Feladatok.pdf 3.fejezet feladatai
      Összekapcsolások és alkérdések használatával többféle módon oldjuk meg!
   > HF: befejezni az Oracle Példatár 3.1.-3.20. feladatokat!     
    
   6.GY: 2016.03.17.  --- SELECT Kérdés/Válasz +SQL DML utasítások 
  -- -- --  --
  (6A) DML (insert, delete, update), +Konzultáció: Példatár 3.fejezet feladataiból 
   > Oracle Példák: -- DML-utasításokhoz saját táblák létrehozása: createHRtables 
      >> 1/8.lecke  SQL DML-utasítások (insert, update, delete) és a tranzakciók
  -- -- --  --
  (6B) DDL (create table) Táblák és megszorítások létrehozása
   > Oracle Példák (Megj.: de a nézetek: köv.gyak, ill. indexek: AB2GY-on lesznek)
       >> 1/9.lecke  SQL DDL (táblák és megszorítások létrehozása)
       >> 2/1.lecke  SQL DDL (innen: csak a megszorítások létrehozása kell)
   > További segédletek: create table, típusok, megszorítások (.txt)
  -- -- --
   > Órai gyakorló feladatok: DML_feladatok.txt, ehhez itt: createDolg (no constr)
   > HF: Oracle Példatár 5-6.fejezet feladatai: DML-utasítások és DDL-utasítások
       
   7.GY: 2016.03.31.  --- Lekérdezések Datalogban, Rekurzió, WITH záradék 
  -- -- --  --
   > II.ZH előtti összefoglalás, konzultáció, kérdés/válasz
   > 1-6.előadások anyaga: Tankönyv 1-2., 5-7. és 10.2 fejezetei konzultáció
   > Oracle Példatár 1-3. és 5.fejezet feladataiból konzultáció: kérdés/válasz
  -- -- --  --    
   (7A) Tankönyv feladatai: Termékek-feladatok.pdfCsatahajók-feladatok.pdf
      A korábbi relációs algebrai kifejezőfákat írjuk át Datalog szabályokra is
      >> Szeret tábla és feladatok, ehhez a tábla létrehozása: create_szeret
      >> Segédanyag:  6.előadás.pdf >>>Rel.alg.kif.-> Datalog átírás.pdf
  -- -- --  --
   (7B) Rekurzió. Az Eljut feladat --- Ehhez: create_jaratok_tabla.txt
   > Tk.10.2. Az Eljut-feladat. Rekurzió az SQL-ben: WITH RECURSIVE
      >> Segédanyag:  6.előadás.pdf (papíron: Datalog -> SQL átírás)
   > Oracle Példák (gépes kipróbálásra, papíros zárthelyin nem szerepel)
       >> 2/6.lecke (WITH záradék -- alkérdések után 16-18.o.)
       >> 2/7.lecke Hierarchikus lekérdezések -- hiera_lekerd.txt
   > További példák az Oracle SQL Lang.Ref.11.2.pdf dokumentációban:
      -- Hierarchikus lekérdezések: Chapter 9 - SQL Queries and Subqueries
          innen Hierarchical Queries 9-3 és Hierarchical Query Examples  9-5
      -- Rekurzió with-utasítással: itt 19-36 Subquery Factoring: Example
       
   8.GY: 2016.04.07.  --- Több táblára vonatkozó lekérdezések, és rekurzió 
   > II.ZH témaköre:  
  -- -- --
   (8A) 1-6.előadások anyaga:
           Tankönyv 1.fej. Alapok, 2.4. Rel.algebra, 
5.1-5.2. Kiterj.rel.algebra,
           6.1-6.4. SQL SELECT, 6.5. SQL DML, 7.1-7.5. és 8.1-8.2. SQL DDL
           [5.3-]5.4. Datalog, innen csak ez: Rel.alg.kifejezést átírni Datalogba
           10.2. Rekurzió a Datalogban és az SQL-1999-es szabványban
           [Megj.: 7.EA anyagát a PL/SQL-t a 9-12. gyakorlatokon vesszük]
  -- -- --
   (8B) 1-7.gyakorlatok anyaga:
            Több táblára vonatkozó lekérdezések

            >> Oracle Példatár 1-3. fejezeteinek feladatai
             SQL DML és DDL utasításai
            >> Oracle Példatár 5-6. fejezeteinek feladatai
  -- -- --
   > II.ZH feladatlapok hallgato/[jelszóval] 2016.04.07. zh2A, zh2B, zh2C
   > Eredmények: Az II.ZH-án elért részpontok hallgato/[jelszóval] [itt:.pdf]
    
   9.GY: 2016.04.16.  --- PL/SQL alapok, vezérlési szerkezetek, select into 

  -- -- --  --
  (9A) PL/SQL 7EA anyagát a 9-11. gyakorlaton dolgozzuk fel, lásd PL/SQL--1/4
   > PL/SQL feladatok: --- ehhez, mint a DML-hez volt: createDolg (no constraint)
     -- A PL/SQL blokk előtt minden alkalommal állítsuk be: SET SERVEROUTPUT ON
     1.) Az első feladat: Írjuk ki PL/SQL blokkból: 'Szia Világ!', majd egészítsük ki,
          kérjen be egy nevet, számot, dátumot és ezeket is írassuk ki a programból!
     2.) Írjuk ki KING fizetését (olvasás táblából változóba), abban az esetben,
          ha ismert, hogy pontosan egy KING nevű dolgozó szerepel a táblában,
          lásd példa-2-25 select-into (itt a 2-25 példában blokk: begin ... end; /
            át kell tenni az end;-et a végére!) SELECT INTO-t akkor használjuk,
            ha a lekérdezés pontosan egy sort ad, ha a lekérdezés több sorral
            tér vissza, akkor  kurzort kell használni, lásd köv.gyakorlat anyagát).
     3.) Adjuk meg egy főnök azonosítóját, és töröljük a közvetlen beosztottjait, és
          írassuk ki hány beosztottja volt, lásd  példa-6-4 implicit kurzor attribútumok. 
  -- -- --  --    
   > További feladatok: Oracle Példatár Feladatok.pdf 8.fejezet 8.1.-8.9.feladatok
      Változóhasználat, vezérlési szerkezetek a PL/SQL-ben  --- Plusz segítség: itt
      > HF: Befejezni az Oracle Példatár 8.fejezet 8.1-8.9 feladatait!
   
  -- -- --  --
  (9B) Az "Eljut feladat" megvalósítása PL/SQL-ben, lásd 7EA: PL/SQL--2/4
   > Az Eljut-feladat a Tankönyv (Ullman-Widom kék könyv) 10.2 szakaszára épül
   > Adott Jaratok(legitarsasag, honnan, hova, koltseg, indulas, erkezes) táblában
      repülőjáratok adatait tároljuk (honnan-hova várospárok). Azt keressük, hogy
      Dallasból mely városokba tudunk eljutni (közvetlenül vagy egy/több átszállással). 
   > Ezzel a scripttel jaratok_tabla.txt készítsünk saját táblát, ami alapján dolgozunk.
   > Rek1.feladat: Mely (x, y) várospárokra lehetséges egy vagy több átszállással
      eljutni x városból y városba? -- Ehhez készítsünk egy Eljut(honnan, hova) táblát, 
      a sorait a járatok tábla alapján PL/SQL programmal töltsük fel (ciklust szervezni, 
      az insert 2.alakja: több sor felvitele alkérdéssel/járatok és eljut táblák alapján).
      >>> (csak ha kell, egy kis segítség, további ötletek és a megoldás vázlata: itt)
  -- -- --  --
   > Rek2.feladat: Mely (x,y) város párokra hány átszállással és milyen költségekkel
      lehetséges egy vagy több átszállással eljutni x városból y városba? -- Ehhez is
      készítsünk Eljut2(honnan, hova, atszallas, koltseg) táblát, a sorait programmal.
    >> Papíron megoldandó feladat: Fejezzük ki az SQL-1999-es szabvány SELECT
         WITH RECURSIVE utasítással, hogy mely mely városokba (hova) tudunk eljutni
         'DAL' (Dallas)-ból legfeljebb 3 átszállással és legfeljebb 5000 költségből.
          >>> (csak ha kell, egy kis segítség WITH RECURSIVE papíros részéhez itt)
   > Rek3.feladat: Tegyük fel, hogy nemcsak az érdekel, hogy el tudunk-e jutni az
      egyik városból a másikba, hanem az is, hogy utazásunk során az átszállások is
      ésszerűek legyenek, ez azt jelenti, hogy ha több járattal utazunk, akkor nézni
      kell átszálláskor az érkező járatnak legalább egy órával a rákövetkező indulás
      előtt meg kell érkeznie. (Tegyük fel, hogy nincs egy napnál hosszabb utazás!)
   > Rek4.feladat: A fenti feladatokat oldjuk meg PL/SQL-ben úgy is, hogy ne csak
      a várospárokat, hanem a teljes útvonalat is listázzuk ki.
   > HF: 11.gyakorlatra befejezni a Rek2 és Rek3 feladatokat (Rek4 feladat szorgalmi)
      
   10.GY: 2016.04.21.  --- PL/SQL Több sort visszaadó lekérdezések, kurzorok
  -- -- --  --
  (10) PL/SQL 7EA anyagát a 9-11. gyakorlaton dolgozzuk fel, a mai: PL/SQL--3/4
   > PL/SQL feladatok: --- ehhez, mint a DML-hez volt: createDolg (no constraint)
     -- A PL/SQL blokk előtt minden alkalommal állítsuk be: SET SERVEROUTPUT ON
     1-4.) Lásd az előző heti gyakorlaton az első PL/SQL feladatokat!
     5.) Írjuk ki a dolgozók nevét és fizetését!
          -- több sort visszaadó lekérdezés, kurzor használata, lásd  példa-6-7 
     6.) Írjuk ki a 3. 5. és 8. legnagyobb fizetésű dolgozó nevét, fizetését!
          -- kurzor attribútumok, lásd példa-6-14 
     7.) Írjuk ki azon dolgozók nevét és fizetését, akik fizetése nagyobb mint 
          egy olyan szám, amelyet a felhasználó fog majd futás közben megadni!
          -- felhasználói/helyettesítő változók: &numerikus_valt, '&karakteres_valt'
     8.) Írjuk ki azon dolgozók nevét, fizetését és osztálykódját, akik a felhasználó
          által megadott osztályon dolgoznak! A felhasználó által megadott betű
          legyen A, R, S (Accounting ...) a 10, 20, 30-as osztály esetén.
          -- paraméteres kurzor, lásd példa-6-17 
     9.) Növeljük meg a hivatalnokok (CLERK) fizetését a saját fizetésük 20%-ával!
          -- for update kurzor módosításhoz, lásd ugyanez a feladat: példa-6-43 
   10.) Módosítsuk a dolgozók nevét írjuk át, hogy csak a kezdőbetű legyen nagy,
          a többi betű kicsi, továbbá a dolgozók fizetését is növeljük meg 2 %-kal!
          -- for update kurzor módosításhoz, lásd példa-6-43 
  -- -- --  --    
   > További feladatok: Oracle Példatár Feladatok.pdf 9.fejezet 9.1.-9.14.feladatok
      Hivatkozási és összetett adattípusok, kurzor, ROWID" feladatai --- Segítség: itt 
      > HF: Befejezni az Oracle Példatár 9.fejezet 9.1-9.10 feladatait!
    
   11.GY: 2016.04.28.   --- PL/SQL: tárolt eljárások/függvények, kivételkezelés 
  -- -- --  --
  (11) PL/SQL 7EA anyagát a 9-11. gyakorlaton dolgozzuk fel, a mai: PL/SQL--4/4
   > PL/SQL feladatok: --- ehhez, mint a DML-hez volt: createDolg (no constraint)
     -- A PL/SQL blokk előtt minden alkalommal állítsuk be: SET SERVEROUTPUT ON
     1-10.) Lásd az előző heti gyakorlaton az első PL/SQL feladatokat: ezeket most
          írjuk át eljárásokra/függvényekre, plusz legyen benne hiba- és kivételkezelés! 
     2.) Írjuk ki KING fizetését (olvasás táblából változóba és a képernyőre való kiíratás)
          abban az esetben,  ha pontosan egy KING nevű dolgozó szerepel a táblában, 
          viszont ha nincs ilyen nevű dolgozó vagy több ilyen is van, akkor azt írjuk ki!
          Előre definiált kivételek: NO_DATA_FOUND, TOO_MANY_ROWS, lásd példa-11-5
     (...) Előre definiált és felhasználói kivételek. Alprogramok (függvények, eljárások)
     11.) a.) Írjunk meg egy függvényt, ami az azonosító alapján visszaadja a nevet!
            b.) Írjunk meg egy eljárást, ami az azonosító alapján egy OUT változóban
            visszaadja a nevet! (alprogramok: függvények és eljárások/procedúrák)
     12.) Írjunk meg egy függvényt, ami visszaadja a paraméterében levő magánhangzók
            számát. Majd módosítsuk a fizetéseket ennek a függvénynek a segítségével.
            (itt most a módosítást az UPDATE utasítással végezzük, és nem plsql-ben)
  -- -- --  --
   > Gyakorló feladatok az Oracle Példatárból
   > Feladatok: Oracle Példatár 10.fejezet példái/feladatai, pl. kivételkezelésre:
      Írjunk egy olyan eljárást, amely kivételkezelést is tartalmaz és a jutalmat 
      az emp táblából létrehozott dolg tábla jutalék (comm) értékéhez adja hozzá! 
      A jutalom a dolgozó fizetésének 10%-a, ha a fizetés 3000 dollár alatt van,
      egyébként csak egy "Boldog Karácsonyt!" üdvözletet kap. --- Segítség: itt:5a
  -- -- --  --
   A korábbi PL/SQL HF-feladatokat és a mai órai gyakorlást is próbaként töltsük fel
   <Nev>.txt nevű szövegfájlban ebbe a zh mappába: \\nas2.inf.elte.hu\zh\sila
   Köv.héten gépes ZH: teljes félév gyakorlati gépes részének anyaga (SQL, PL/SQL)
     
   12.GY: 2016.05.05.   --- III.ZH: SQL DDL és DML utasítások, és PL/SQL 
    -- ZH: Csütörtökön! (Az idei Neumann-nap kedden lesz, nem csütörtökön!)

     > III.ZH témaköre: gépes ZH a teljes SQL nyelvből és az Oracle PL/SQL-ből
         Tk.6.5. DML, 7-8.fej.DDL, 
9.3-9.4.SQL/PSM (PL/SQL), 10.2.Rekurzió (WITH) 
         Eddigi gyakorlatok gépes anyaga: Oracle Példatár 1-10.fejezet feladatai

     > Ellenőrzésre jelenléti ív (név-> 4kar-kód) hallgato/[jelszóval] [itt:.pdf]
     > Eredmények: Az III.ZH-án elért részpontok hallgato/[jelszóval] [itt:.pdf]

   13.GY: 2016.05.12.   --- Konzultáció: A félév zárása, Kérdés/Válasz 
      > Konzultáció: Kérdés/Válasz, 
      > Gyakorlati jegyek zárása (név-> 4kar-kód) hallgato/[jelszóval] [itt:.pdf]
      > JavZH - 13.GY: 05.12. fenti 3 ZH közül az egyik pótolható/javítható
      | JavZH/GyakUV: 05.24.  Kedd 12:15-13:45 Déli ép. 2-315 PC4 labor |
      | JavZH/GyakUV: 05.27. Péntek 10:15-11:45 Déli ép. 2-315 PC4 labor |
      | GyakUV: 05.31.[Neptun] Kedd 12:15-13:45 Déli ép. 2-315 PC4 labor |