ADATBÁZIS-KEZELÉS ELŐADÁS   [FIZIKUS: if1c1i05] 
  ELTE, 2016/2017-es tanév I.félévében [2016.szept]  
 
 
   
   Előadás időpontja:
Szerda 10:15-11:45 + 12:00-12:45 (3x 45', egy szünettel) 
   helye: Déli ép. 2-202 (PC3 labor) (2x 45') + 12 órától 2-520 (MI labor) (1x 45'),
   de a harmadik óra is a 2-202 PC3-ban van, amikor nincsenek itt a levelezősök! 
   Az előadás nem kötelező, de gépes laborban van Oracle adatbázis gyakorlattal.
   >> Az előadások órai diasorozata: [ ebben a mappában]
   >> Gyakorló feladatok: Oracle Példatár Feladatok.pdf
   >> Segédletek: hallgato/[jelszóval] [ebben a mappában]
    
   Tudnivalók a vizsgáról és követelmények: A szóbeli vizsga két részből áll:
   1.) Az előadásokhoz kapcsolódó saját beadandó feladat gépes bemutatása
   2.) További kérdések (alapfogalmak és feladatok megoldása)
   Beadandó feladat: Saját adatbázis tervezése és megvalósítása, lekérdezések.
    A terveket (az E/K diagramot vagy UML osztálydiagramot) papíron ceruzával
    felrajzolva elegendő a vizsgára behozni, de a feladat leírását és megvalósítását
    SQL-ben DDL (create table/view/index), DML (insert, delete, update, select) script
   és a saját táblákon alapuló lekérdezési feladatokat (SQL select, PL/SQL program)
   egyszerű szövegben e-mailben (nincs csatolás) kell beküldeni legalább 24 órával
   a vizsga kezdete előtt! Vizsgák időpontja: vizsgaidőszakban Szerda 10:00 órától 
   
   Tankönyv: Jeffrey D. Ullman, Jennifer Widom: Adatbázisrendszerek Alapvetés 
                                     Második átdolgozott kiadás, Panem, 2009. (a kék könyv)
       

   « | 01. | 02. | 03. | 04. | 05. | 06. | 07. | 08. | 09. | 10. | 11. | 12. | 13. | #  

   1.EA: 2016.09.14. --- Relációs adatmodell alapismeretek, séma-előfordulás
      >>>  1.előadás.pdf  --- Minden, ami egytáblás lekérdezésekhez kell
   > Tk.2.1. Strukturált és félig-strukturált adatmodellek áttekintése
   > Tk.2.2. A relációs modell alapjai, sémák, sorok, előfordulás, kulcsok
   > Tk.2.3. Egyszerű relációsémák definiálása SQL-ben (folyt.köv.)
   > Tk.2.4. Relációs algebra egytáblás műveletei: vetítés és kiválasztás   
   > Tk.6.1. Egyszerű egytáblás lekérdezések az SQL-ben, select utasítás
       select, from és where záradékai, nullérték, műveletek nullértékekkel,
       az ismeretlen igazságérték (U), háromértékű (T, F, U) logika.
   
   Gépes gyak: Az első előadáshoz kapcsolódóan az Oracle gyakorlatban 
   > Ismerkedés, Oracle adatbázisok elérése, SQL Developer használata
   > 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 
   >> Egy egyszerű tábla létrehozása:szeret és feladatok: Rel.alg.feladatok
   

   « | 01. | 02. | 03. | 04. | 05. | 06. | 07. | 08. | 09. | 10. | 11. | 12. | 13. | #  
   2.EA: 2016.09.21. --- Egy táblára vonatkozó lekérdezések az SQL-ben 
   Gépes gyak: Az első előadáshoz kapcsolódóan az Oracle gyakorlatban 
    >> Oracle-gyakorlat: adatbázisok elérése, SQL Developer használata
   >> Táblák létrehozására scriptek:createDolg(hu) [vagy createEmpDept(en)]
   

   -- FELADATSOR-1:  
   - Milyen azonosítójú osztályon dolgoznak a dolgozók? (kiterjesztett vetítés)
   - Adjuk meg a dolgozók között előforduló foglalkozások neveit (vetítés,
     az eredmény halmaz legyen, vagyis minden foglalkozást csak egyszer írjuk ki!)
   - Kik azok a dolgozók, akiknek a fizetése > 2800? (kiválasztás, elemi feltétel)
   - Kik azok a dolgozók, akiknek a fizetése 2000 és 4500 között van?
     (1.mo: kiválasztás, összetett feltétel; 2.mo: where-ben: intervallum)
   - Kik azok a dolgozók, akik a 10-es vagy a 20-as osztályon dolgoznak?
     (1.mo: kiválasztás, összetett feltétel; 2.mo: where-ben: in értékek)
   - Adjuk meg azon dolgozókat, akik nevének második betűje 'A' (where: like)
   - Kik azok a dolgozók, akiknek a jutaléka ismert? (vagyis nem NULL)
 
   -- Oracle Leckék a fenti feladatokhoz (ehhez: createHRsyn)
   > SELECT utasítás SELECT, FROM, WHERE és ORDER BY záradékai
   > Oracle Példák 
      >> 1.lecke (vetítés kiterjesztése, kifejezések),
      >> 2.lecke (kiválasztás, kiválasztott sorok rendezése)
 
   -- FELADATSOR-2:  
   - Adjuk meg azon dolgozókat, akik nevében van legalább két 'L' betű.
    (Többféle megoldást is keressünk a lekérdezésre, LIKE, INSTR függvény)
   - Adjuk meg a dolgozók fizetéseinek négyzetgyökét és 3-mal vett maradékát.
   - Adjuk meg, hogy hány hete dolgozik a cégnél ADAMS és milyen hónapban
     és milyen nap (hétfő, kedd, stb) lépett be.
   - Számoljuk ki, hogy a mai nap hány naposak vagyunk, illetve azt is
     hány hónaposak vagyunk (DUAL tábla)
   - Adjuk meg a dolgozók nevét, az éves fizetését és hány hete állt munkába!
   - Adjuk meg a dolgozók éves jövedelmét, ahol a havi 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).
   
   -- Oracle Leckék is vannak a fenti feladatokhoz:
   > sorfüggvények használata a SELECT és WHERE záradékban
      >> 3.lecke 
   
   > Segédlet: Examples/Példák:  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, COALESCE, ...
             Figyelem! COALESCE 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).
   

   « | 01. | 02. | 03. | 04. | 05. | 06. | 07. | 08. | 09. | 10. | 11. | 12. | 13. | #  
   3.EA: 2016.09.27. --- Relációs algebra, több táblára vonatkozó lekérdezések 
      >>>  2.előadás.pdf   --- Minden, ami a többtáblás lekérdezéshez kell 
   --- Elkezdjük a tervezést --> Lehet gondolkodni az egyéni beadandó feladaton!
   > Tk.4.fej. Relációs adatmodellek tervezése, E/K modell alapjai (folyt.köv.)
   > Tk.2.3. folyt. Tk.7.1. Relációsémák és megszorítások definiálása SQL-ben
   > Tk.2.4. Egy algebrai lekérdező nyelv, relációs algebráról teljes áttekintés
   > Tk.6.2. Több relációra vonatkozó lekérdezések az SQL-ben, szemantika
   
    --- A 2órás előadáshoz kapcsolódó 1órás gyakorlat most az MI laborban:
   > Relációk adatainak lekérdezése relációs algebra segítségével
      Lekérdezések kifejezése természetes módon táblákkal, a táblákon
      értelmezett műveletekkel gondolkodva, majd relációs algebrában:
      Relációs algebrai feladatok: Relációs algebrai feladatok
   

   « | 01. | 02. | 03. | 04. | 05. | 06. | 07. | 08. | 09. | 10. | 11. | 12. | 13. | #  
   4.EA: 2016.10.05. --- Alkérdések az SQL-ben, relációs algebrai lekérdezések 
   --- Konzultáció: Egyéni beadandó feladatok tervezése és megvalósítása
     >>>  3.előadás.pdf   --- Alkérdések SQL-ben, Példák: Relációs algebra és SQL
   > Tk.6.3. Alkérdések az SQL lekérdezésekben
   > Tk.2.4. Példák: Relációs algebrai feladatok (Tk.2.4.1.feladat) Termékekre
      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
     

   « | 01. | 02. | 03. | 04. | 05. | 06. | 07. | 08. | 09. | 10. | 11. | 12. | 13. | #  
   5.EA: 2016.10.12. --- Relációs algebra kiterjesztése/1, csoportosítás 
    --- Köv. gépes résznél még maradunk az egytáblás lekérdezéseknél:
   > SELECT utasítás SELECT, FROM, WHERE, GROUP BY, HAVING záradékai:
      >>>  4.előadás.pdf  --- Kiterjesztett relációs algebra unér műveletei   
   > Tk.5.1. Relációs algebra kiterjesztése multihalmazokra (az SQL-hez)
   > Tk.5.2. Kiterjesztett műveletek, csoportosítás, külső összekapcsolások
   > Tk.6.4. Összesítő függvények és csoportosítás, group by és having
     
   -- FELADATSOR-3:  
   - Mekkora a minimális/maximális fizetés a dolgozók között?
   - Mennyi a dolgozók összfizetése?
   - Mennyi a 20-as osztályon az átlagfizetés?
   - Adjuk meg, hogy hány különböző foglalkozás fordul elő a dolgozók között.
   - Adjuk meg osztályonként az átlagfizetést (OAZON, ATL_FIZ).
   - Adjuk meg osztályonként a telephelyet és az átlagfizetést (OAZON, TELEPHELY, ATL_FIZ).
   - Adjuk meg, hogy az egyes osztályokon hány ember dolgozik. (OAZON, DB)
   - Adjuk meg azokra az osztályokra az átlagfizetést, ahol ez nagyobb mint 2000.
   - Kinek a legkisebb/legnagyobb a fizetése?
   

   « | 01. | 02. | 03. | 04. | 05. | 06. | 07. | 08. | 09. | 10. | 11. | 12. | 13. | #  
   6.EA: 2016.10.19. --- Relációs algebra kiterjesztése/2, összekapcsolások 
      >>>  5.előadás.pdf  --- Kiterjesztett relációs algebra binér műveletei   
   > folyt. Tk.5.1. Multihalmazok egyesítése, metszete és különbsége 
   > folyt. Tk.5.2. Kiterjesztett műveletek, külső összekapcsolások
   > folyt. Tk.6.3. Összekapcsolások az SQL-ben, külső összekapcsolások
   > Tk.6.5. SQL DML: Táblák tartalmának módosítása: insert, delete, update
   > Tk.1.fej. Az adatbázis-kezelő rendszerek (ABKR) felépítése, alapfogalmak
     

   « | 01. | 02. | 03. | 04. | 05. | 06. | 07. | 08. | 09. | 10. | 11. | 12. | 13. | #  
   7.EA: 2016.10.26. --- Tervezés: E/K modell, Megvalósítás: SQL DDL  
      >>>  6.előadás.pdf  --- Tervezés és megvalósítás, SQL DDL 
   > Tk.4.1.-4.4. Tervezés: Az egyed-kapcsolat (E/K) modell elemei
   > Tk.4.5.-4.6. E/K diagram átírása relációs modellé  
   > Tk.7.1.-7.5. SQL DDL: Táblák, megszorítások és triggerek
   > Tk.8.1-8.2. és 8.5. Nézettáblák, tárolt nézettáblák
   > folyt. Tk.6.3. Alkérdések a FROM záradékban, inline nézet
   
   Tervezési feladatok: E/K diagram felrajzolása, átalakítása relációkká   
   > Ullman/Tk. 4.fejezete E/K modell prog.inf.ea: E/K modell.pdf
      -- Tk.4.1.-4.4. Az egyed-kapcsolat (E/K) modell elemei
          E/K diagramok felrajzolása: Modellezési feladatok - E/K diagram
      -- Tk.4.5.-4.6. E/K diagram átírása relációs modellé  
          E/K diagramok átírása relációkká: E/K_pl1.pdf és E/K_pl2.pdf    
          További feladatok, lásd EKpelda.pdf (ábra: EKpelda.png)
   > További irodalom (elektronikusan is elérhető magyar nyelvű könyvek)
      --- MEK könyvtár: Halassy Béla: Adatmodellezés, elmélet és gyakorlat
      --- MEK könyvtár: Halassy Béla: Az adatbázistervezés alapjai és titkai
     

   « | 01. | 02. | 03. | 04. | 05. | 06. | 07. | 08. | 09. | 10. | 11. | 12. | 13. | #  
   8.EA: 2016.11.09.  --- Logika a lekérdezésekhez, gráfok bejárása, rekurzió 
      >>>  7.előadás.pdf  --- Logikai lekérdező nyelv: Datalog. Rekurzió.
   > Tk.5.3.-5.4. Logika a relációkhoz. A relációs algebra és a Datalog összevetése
   > Tk.10.2. Az Eljut-feladat. Rekurzió az SQL-ben: WITH RECURSIVE
   
   Gépes gyak: Az Eljut feladathoz: create_jaratok_tabla.txt -->> Példa.pdf
     -- További példák az Oracle SQL Language Reference 11.2.pdf doku-ban:
         >> Rekurzió with-utasítással: Recursive Subquery Factoring: Examples
         >> ill. egy korábbi Oracle megoldás 2/7.lecke hierarchikus lekérdezések
              >> SQL Lang.Ref: Hierarchical QueriesHierarchical Query Examples
   

   « | 01. | 02. | 03. | 04. | 05. | 06. | 07. | 08. | 09. | 10. | 11. | 12. | 13. | #  
   9.EA: 2016.11.16.  --- SQL/PSM szabvány a gyakorlatban: Oracle PL/SQL
      >>> 8.előadás.pdf illetve Oracle Junior EA: Oracle PL/SQL.pdf
   > Motiváció: Tk.10.2. Az Eljut-feladat SQL/PSM-ben (PL/SQL-ben)
   > Tk.9.3. SQL/PSM: Osztott változók, lekérdezések és kurzorok
   > Tk.9.4. Progr.alapok, tárolt eljárások és függvények, kivételkezelés  
   > Oracle PL/SQL segédanyagok: ebben az eduPLSQL mappában  
      -- Tankönyvtár: PL/SQL programozás Oracle 10g-ben (Gábor A.-Juhász I.)
   
   PL/SQL--1/4: blokk, deklaráció, utasítások, vezérlési szerkezetek, select into 

   > Oracle PL/SQL, ehhez Oracle 11gR2 doc PL/SQL Language Reference
      -- Az Oracle doksikban szereplő példák kipróbálásához: createHRtables
   > PL/SQL blokk szerkezete, változóhasználat >> 2.fej. Alapok
      [1_deklarációs_rész] 2_végrehajtható_rész [3_kivételkezelő_rész]
     
      PL/SQL alapjai
      >> példa-2-24 deklarációk-és-értékadás
      >> 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).
      >> példa6-1 DML utasítások a programban, implicit kurzor
      >> példa-6-4 implicit kurzor attribútumok
   
      Vezérlési szerkezetek a PL/SQL-ben 4.fej. Control Statements
      >> példa-4-5 if-then-elsif utasítás,
      >> példa-4-6 egyszerű case utasítás, és itt írjuk át grade := 'B' -> '&B'
            helyettesítési változóra, aminek a felhasználó adja meg az értékét!
      >> példa-4-10 alap LOOP ciklus utasítás EXIT WHEN kilépés a ciklusból
      >> példa 4-14 FOR ciklus utasítás
      >> példa 4-27 WHILE ciklus utasítás
   
      >> Oracle PL/SQL.pdf (és összefoglalók) plsql_01_bevezetes.pdf,
           02_vezerlo_utasitasok.txt02_tipusok.pdf03_dml.pdf05_valtozok.pdf
      --- Ez volt az előkészítés az Eljut feladat megoldásához: 
   
   PL/SQL--2/4: Rekurzió, az "Eljut feladat" megvalósítása PL/SQL-ben       
   > Az "Eljut feladat" megvalósítása PL/SQL-ben
     -- 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)
       

   « | 01. | 02. | 03. | 04. | 05. | 06. | 07. | 08. | 09. | 10. | 11. | 12. | 13. | #  
   10.EA: 2016.11.23.  --- SQL/PSM szabvány a gyakorlatban: Oracle PL/SQL
      >>> folyt. 8.előadás.pdf illetve Oracle Junior EA: Oracle PL/SQL.pdf
      
   PL/SQL--3/4: Több sort visszaadó lekérdezések, kurzorok használata  
   > Oracle PL/SQL, ehhez Oracle 11gR2 doc PL/SQL Language Reference
      -- Az Oracle doksikban szereplő példák kipróbálásához: createHRtables
     DML utasítások a PL/SQL-ben, kurzorok >> 6.fej. Static SQL/Cursors
      >> példa6-1 DML utasítások a programban, implicit kurzor
      >> példa-6-4 implicit kurzor attribútumok,
      >> példa-6-7 explicit kurzorok deklarálása és használata, lásd 5.feladat,
      >> példa-6-11-től 6-14 explicit kurzor attribútumok, lásd 6.feladat,
      >> példa-6-17 paraméteres kurzorok, lásd 7-8.feladat, 
      >> példa-6-43 for update kurzor módosításhoz, lásd 9-10.feladat.
      >> (összefoglaló) (volt:03_sql_dml.pdf), 13_kurzorok.pdf, pl03_cursor.txt 
                
   PL/SQL--4/4: Tárolt eljárások és függvények használata, kivételkezelés 
   > PL/SQL eljárások és függvények >> 8.fej. PL/SQL Subprograms
      >> példa2-19 Alprogramok (már itt is volt: 2.fej. Alapok)
      >> példa4-1 IF-THEN utasítás (már itt is volt: 4.fej. Utasítások)
      >> (összefoglaló) plsql_06_alprogramok.pdf, pl06_procedura_fv.txt
   > PL/SQL kivétel- és hibakezelés >> 11.fej. PL/SQL Error Handling
      >> példa-11-5 és tábla-11-2 előre definiált kivételek
      >> példa-11-8 felhasználó által definiált kivételek
      >> (összefoglaló) plsql_07_kivetelek.pdf, pl05_exception.txt
   > (összefoglalásként) plsql_13_kurzorok.pdf
     

   « | 01. | 02. | 03. | 04. | 05. | 06. | 07. | 08. | 09. | 10. | 11. | 12. | 13. | #  
   11.EA: 2016.11.30.  --- Fizikai tervezés: indexek létrehozása és használata
   Lekérdezések végrehajtása, katalógusok, optimalizálás. Indexek.
    > [Tk2.folyt.] Molina-Ullman-Widom: Adatbázisrendszerek megvalósítása 
    > AB2-előadás: Indexstruktúrák (4.fej); Lekérdezések végrehajtása (7.fej) 
       Innen részletek: Elsődleges indexek fizika.p26 és fizika.p34
       Másodlagos indexek fizika.p43  és  B-fák: fizika.pp49-58 
    > Feladatok AB2-gyakorlaton: OjektumokraAdattárolásra és Indexekre
       Innen gépes gyakorlat: Feladatok-indexekre.txt
    > Oracle Példák
       >> 1/10.lecke  SQL DDL (nézettáblák, indexek és szinonimák létrehozása)
       >>  2/1.lecke  SQL DDL (táblákhoz megszorítások, indexek létrehozása) 
       >> OracleDoc: SQL Language Reference >> innen CREATE INDEX példák
       >> OracleDoc: Concepts  >> 3 Overview of Indexes
     Hozzunk létre egy vagy több táblához több különböző indexet!
     Legyen köztük több oszlopos, csökkenő sorrendű, függvény alapú,
     fordított kulcsú (reverse), bitmap index, stb. Majd állapítsuk meg ezeknek
     az indexeknek a különböző tulajdonságait a katalógusokból. 
   DBA_INDEXES, DBA_IND_COLUMNS, DBA_IND_EXPRESSIONS
             

   « | 01. | 02. | 03. | 04. | 05. | 06. | 07. | 08. | 09. | 10. | 11. | 12. | 13. | #  
   12.EA: 2016.12.07.  --- Félig-strukturált adatmodell, XML dokumentumok
   A félig-strukturált adatmodell, XML, Xpath, XQuery
   Ullman-Widom Tankönyv 11-12.fejezetek
   Xpath-XQuery.pdf (Forrás: részlet Kiss Attila habilitációs előadásából)  
   Gépes feladatok:
   [1] XPath_feladatok.txt >> Ehhez: kolcsonzesek.xml és Xpath-Tester
   [2] XQuery_feladatok.txt  >> Ehhez: kolcsonzesek.xml és XQuery-Demo
   

   « | 01. | 02. | 03. | 04. | 05. | 06. | 07. | 08. | 09. | 10. | 11. | 12. | 13. | #  
   13.EA: 2016.12.14.  --- Adattárházak, adatbányászat áttekintés  
   Adattárházak, adatbányászat áttekintés 
   Ullman-Widom Tankönyv 10.6.-10.7. OLAP, adattárházak 
   >> Adattárházak (Kiss Attila -- Han 5.ea. előadásfóliák fordítása)
   Molina-Ullman-Widom 11.fejezet Adatbányászat 
   >> Adatbányászat: Bevezetés (Kiss Attila -- Han 1.ea fóliák fordítása)
   >> Adatbányászat: Bevezetés (Ispány Márton -- Kumar 1.ea fordítása)
   --- Adatbányászat magyar nyelven --- Digitális Tankönyvtár:
     >>> Bevezetés az adatbányászatba (Tan, Steinbach, Kumar)
     >>> Előadásfóliák (Ispány Márton -- Kumar előadásfóliák ford.) -->> Slides
   Az adatbányászati feladatok általában két fő kategóriába sorolhatók, ezek:
   - Prediktív modellezés és előrejelző feladatok: osztályozás, regresszió
   - Leíró-feltáró feladatok: klaszterezés, asszociációs elemzés, anomália keresés
            data_mining.png         
   -- -- -- -- -- -- -- --   
   ÖSSZEFOGLALÁS:    
   -- -- -- -- -- -- -- --   
   Az előadások 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)
   
-- -- -- -- -- -- -- --   
    A vizsgára a Neptunban kell jelentkezni, a dec.14-i elővizsgára e-mailben,
    ennek az eredményét a dec.21-i vizsganapra jegyezzük be a Neptunba.
 
   Tudnivalók a vizsgáról és követelmények: A szóbeli vizsga két részből áll:
   1.) Az előadásokhoz kapcsolódó saját beadandó feladat gépes bemutatása
   2.) További kérdések (alapfogalmak és feladatok megoldása)
   Beadandó feladat: Saját adatbázis tervezése és megvalósítása, lekérdezések.
    A terveket (az E/K diagramot vagy UML osztálydiagramot) papíron ceruzával
    felrajzolva elegendő a vizsgára behozni, de a feladat leírását és megvalósítását
    SQL-ben DDL (create table/view/index), DML (insert, delete, update, select) script
   és a saját táblákon alapuló lekérdezési feladatokat (SQL select, PL/SQL program)
   egyszerű szövegben e-mailben (nincs csatolás) kell beküldeni legalább 24 órával
   a vizsga kezdete előtt! Vizsgák időpontja: vizsgaidőszakban Szerda 10:00 órától 
      
            

   VIZSGATÉTELEK                                                                            
   
Adatbázisrendszerek - Alapok (ez a kötelező törzsanyag a vizsgán)
    
A1. A relációs adatmodell alapjai: Reláció, relációséma és előfordulás,
      attribútumok és sorok, kulcsok, külső kulcsok, hivatkozási épség.
       Relációsémák definiálása SQL-ben, a CREATE TABLE utasítás,
       megszorítások, kulcsmegszorítás, hivatkozási épség megadása,
       PRIMARY KEY, UNIQUE, FOREIGN KEY, REFERENCES.
       (Tankönyv 2.2-2.3. szakasz, 22-35.oldal)
 
A2. Egyszerű egytáblás lekérdezések, Relációs algebra vetítés és kiválasztás.
       SQL SELECT egy relációra: WHERE záradék feltételének megadása,
       speciális értékek, adattípusok és logikai kifejezések megadása, nullérték:  
       hiányzó értékek, műveletek nullértékekkel, az ismeretlen (unknown)
       igazságérték, logikai műveletek eredménye háromértékű logika esetén. 
       (Tankönyv 2.4. és 6.1.szakasz, 258-269.)
 
A3. Többtáblás lekérdezések, direkt szorzat, összekapcsolások és halmaz-
       műveletek a relációs algebrában és az SQL FROM záradékban.
       Attribútumok megkülönböztetése, sorváltozók. Az SQL lekérdezések
       kiértékelésének szabvány szerinti alapértelmezése. Relációs algebrai
       alapműveletek. Lekérdezések kifejezése relációs algebrában, kifejezésfa.
       Relációkra (mint multihalmazokra) vonatkozó műveletek, ismétlődések
       megszüntetése, ismétlődések kezelése halmazműveletek során.
       (Tankönyv 2.4., 5.1. és 6.2. szakasz, 273-281.)
 
A4. A relációk egészére vonatkozó műveletek, csoportosítás: GROUP BY
       záradék, összesítő függvények és nullértékek kezelése, csoportokra
       vonatkozó feltételek: HAVING  záradék. Külső összekapcsolások.
       Az eredmény rendezése: ORDER BY záradék. A záradékok sorrendje.
       (Tankönyv 5.2. és 6.4. szakasz, 300-305.)
 
A5. Alkérdések az SQL SELECT utasításban a FROM listán és a WHERE
       és HAVING záradékokban, korrelált alkérdések alakja, kiértékelése.
       (Tankönyv 6.3. szakasz, 284-290.)
 
A6. Változtatások az adatbázisban. Táblák tartalmának megváltoztatását szolgáló
       SQL DML utasítások: INSERT, DELETE, UPDATE (6.5 szakasz, 307-312.)
 
A7. Az egyed-kapcsolat (E/K) diagram. Egyedhalmazok attribútumok, kapcsolatok. 
      Alosztályok, "az-egy" ("isa") kapcsolat és jelölése. Megszorítások modellezése,
       kulcsok és a kulcsok, hivatkozási épség, megszorítások. Gyenge egyedhalmazok. 
      Az E/K diagram átírása relációs modellé. Osztályhierarchia ("isa") átalakítása
      relációkká, a három megközelítés összehasonlítása: E/K-típusú, objektumelvű,
      és nullértékek használatával való átírás. (Tankönyv 4.1-4.6. szakaszok, 133-181.)
   
A8. Megszorítások az SQL-ben: kulcsok, idegen kulcsok, hivatkozási épség
      fenntartása. A hivatkozási épség fenntartására vonatkozó lehetőségek
      megadása SQL-ben a hivatkozott táblára vonatkozó módosítások miatt. 
      Attribútumokra és sorokra vonatkozó megszorítások: NOT NULL,
      CHECK. Megszorítások elnevezése. (Tankönyv 7.fejezete, 329-347.)
   
A9. Nézettáblák létrehozása és használata az SQL-ben, adatok módosítása
      nézettáblákon keresztül. Tárolt nézettáblák. Indexek. (Tankönyv 8.fejezete)


   
Adatbázisrendszerek - Haladó kérdéskörök (ebből szabadon lehet választani vizsgán)
    
H1. Logika a relációkhoz. A relációs algebra és a Datalog összevetése. (Tk.5.3.-5.4.)
 
H2. Rekurzió az SQL-99-es szabványban: WITH RECURSIVE utasítás
      Az Eljut feladat (könyv példája, előadáson is szerepelt).
      Az SQL-99-es szabvány WITH RECURSIVE utasítása.
      Az Eljut feladat megoldása rekurzióval. (Tk.10.2. szakasz, 467-474.)
 
H3. SQL programnyelvi bővítése, sémában tárolt függvények és eljárások.
      (SQL/PSM szabvány vagy Oracle PL/SQL alapján) Sémában tárolt eljárások
       és függvények létrehozása és használata, néhány egyszerű utasítás alakja.
      (Tankönyv 9.4.1-9.4.3. szakasz, 416-421., 9.4.7-9.4.8. szakasz, 415-431.)
   
H4. SQL lekérdezések használata programozási környezetben 
      (SQL/PSM szabvány vagy Oracle PL/SQL alapján) Az SQL utasítások és
       a programozási nyelvek összekapcsolásának a típuseltérés problémája.
       Egyetlen sort eredményező lekérdezések és az osztott változók használata.
       Sorhalmazt eredményező lekérdezések és a kurzorok (CURSOR) definiálása
       és a használata, FETCH utasítás. Ciklusok használata.
      (Tankönyv 9.3-9.3.7. szakasz, 401-412., 9.4.4-9.4.6. szakasz, 421-425.)
       
H5. Adatbázisrendszerek általános felépése (Tankönyv 1.fejezete)
      Katalógustáblák, sémaobjektumok, adattárolással kapcsolatos feladatok
   
H6. Nézetek, indexek, indexstruktúrák, B-fák és hasító indexek
 
H7. Lekérdezések végrehajtása, végrehajtási tervek, tuning
 
H8. XML, Xpath, XQuery (Tankönyv 11-12.fejezetek)
 
H9. Adattárházak. OLAP. Adatkockák (Tankönyv 10.6-10.7 szakaszok)
      Adatbányászati áttekintés, klaszterezés, osztályozás feladata