ADATBÁZISOK-1 ELŐADÁS     [prog.inf: IP-08AB1E]  
  ELTE, 2015/2016-os tanév I.félévében [2015.szept]
 
 
   
   Előadás: Hétfő 12:15-tól 13:45-ig Déli ép. 0-823 Kitaibel Pál teremben.
   Tudnivalók az előadásról és a vizsgáról, követelmények, lásd itt: .pdf 
   A keresztféléves előadáson katalógus van. A 4., 7., 10. és 13.előadáson
   vizsgajegymegajánló röpzh-t írunk az előző három előadás anyagából.
   Ellenőrzésre jelenléti ív (név-> 4kar-kód) elérése hallgato/[jelszóval] .pdf 
   
   Az előadások órai diasorozata: ebben az AB1ea mappában
      I.rész: Egyszerű lekérdezések: >> 1.EA >> 2.EA >> 3.EA >>  röpzh1  
     II.rész: Összetett lekérdezések: >> 4.EA >> 5.EA >> 6.EA >>  röpzh2  
    III.rész: Modellezés és megvalósítás:>> 7.EA >> 8.EA >> 9.EA >>  röpzh3  
    IV.rész: Tervezés és programozás: >> 10.EA >> 11.EA >> 12.EA >>  röpzh4  
    -- További témakörök és kitekintés: >> 13.EA, továbbá >> a vizsgatételek
    -- További információ >> a vizsgajegymegajánlóról és >>  
    
   Tankönyv: Jeffrey D. Ullman, Jennifer Widom: Adatbázisrendszerek Alapvetés 
                                     Második átdolgozott kiadás, Panem, 2009. (a kék könyv)
   
     
   Oracle Példatár Feladatok.pdf (ehhez: cr_dept_emp v. create_dolg)
   Oracle Segédlet: ebben az eduSQL mappában (ehhez: createHRsyn)
   PL/SQL segédanyagok: ebben az eduPLSQL mappában
   Tankönyv feladatai: Termékek-feladatok.pdfCsatahajók-feladatok.pdf
   Tankönyv feladataihoz a scriptek: create Termékekcreate Csatahajók
   
   Korábbi vizsgalapok: AB1vizsga jelszavas mappában (2015.évi beugrók)   
   Vizsgajegy megajánlás: Az előadások idejében 4 db 20 perces 24 pontos
   röpzh-t írunk: 4.EA (09.28.), 7.EA (10.19.), 10.EA. (11.16.), 13.EA (12.07.)
   Témaköre: a megelőző előadások anyaga (a Tankönyv megfelelő fejezetei,
   és a HF: Oracle Példatár feladatai). Pontozás: 24 pont/zh, plusz annyi pont,
   ahány előadáson részt vett az előző három előadásból, ezzel max.27 pont/zh.
   Jegymegajánlót nem lehet pótolni, sem javítani, viszont a négy zh-ból csak
   a legjobb három zh eredményét vesszük figyelembe: max.81 pont érhető el.
   Előzetes ponthatárok: 2:45p (55%), 3:53p (65%), 4:61p (75%), 5:69p (85%).
   A vizsgajegymegajánló röpzh-ák eredménye: .pdf (ponthatárok a tábla végén)
 
   Információ a vizsgákról: A vizsgaalkalmakra a Neptunban kell jelentkezni,
   a Neptun 24 órával a vizsga kezdete előtt zárja le a vizsga-jelentkezéseket.
   A vizsgaidőszak minden hetében hetente egy vizsgaalkalom van meghirdetve,
   de az utolsó héten csak javító- illetve pótvizsga lehetőség van (akik már voltak). 
   ---
   Az írásbeli vizsga 90 perces, az első lap két oldalán nyolc beugró kérdés szerepel,
   ezt a lapot 30 perc után beszedjük, kérdésenként 4 pont érhető el, részpontok is
   szerezhetők, az elérhető 32 pontból legalább 20 pontot kell teljesíteni a vizsgán.
   ---
   A további lapokon nyolc további beugró kérdés vagy típusfeladat található, ahol
   az előadás négy fő témaköréből (vagyis a négy röpzh témaköréből) 2-2 kérdés
   vagy típusfeladat várható, ezek 6-8 pontosak, össz.58 pont/8 feladat érhető el.
   Például 3db 6pontos+5db 8pontos, vagy 2db 6pontos+2db 7pontos+4db 8pontos,
   vagy 1db 6pontos+4db 7pontos+3db 8pontos, vagy 6db 7pontos+2db 8pontos.
   ---
   A teljes vizsgán a beugró kérdésekkel együtt összesen 90 pontot lehet elérni.
   Előzetes ponthatárok: 2:30p (33%), 3:45p (50%), 4:60p (67%), 5:75p (83%)
   Vizsga-eredmények (név-nélkül 4kar-kóddal) elérése hallgato/[jelszóval] .pdf
   ---
   -- >> Vizsgaidőpontok és konzultáció -->> Elérhetőségem a vizsgaidőszakban
   -- >> Vizsgatételek  -->> Korábbi vizsgalapok: AB1vizsga jelszavas mappában   
   -- >> Ellenőrző kérdések (gyűjtése folyamatban)
    
   1.EA: 2015.09.07. --- Relációs adatmodell alapismeretek, séma-előfordulás
      >>>  1.előadás.pdf és Tudnivalók az előadásról, lásd itt: .pdf 
   > Tk.2.1. Strukturált és félig-strukturált adatmodellek áttekintése
   > Tk.2.2. A relációs modell alapjai, séma és megszorítások, előfordulás
   > Tk.2.3. SQL DDL és DML áttekintése, relációsémák definiálása SQL-ben
   > Tk.2.3.6. Kulcsok megadása és Tk.7.1.1. Idegen kulcsok megadása
   
   2.EA: 2015.09.14. --- Rel.algebrai lekérdező nyelv és az egyszerű SELECT 
      >>>  2.előadás.pdf
   > Tk.2.4. Egy algebrai lekérdező nyelv, relációs algebra áttekintés
   > Tk.6.1. Egyszerű (egy relációra vonatkozó) lekérdezések az SQL-ben
       Select-From-Where utasítás, nullérték, műveletek nullértékekkel,
       az ismeretlen igazságérték (U), háromértékű (T, F, U) logika.
   > Tk.6.4.1. Ismétlődések megszüntetése. Tk.6.1.8. Az eredmény rendezése. 
   > HF: Gyakorló feladatok: Példatár 1.fejezete (Tk.6.1. Egyszerű lekérdezések)
   
   3.EA: 2015.09.21. --- Relációs algebra kiterjesztése és a teljes SELECT 
      >>>  3.előadás.pdf
   > 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.3.-6.4.7. Relációkra vonatkozó műveletek, összesítő függvények és
       csoportosítás az SQL-ben, group by és having záradék
   > Tk.6.2. Több relációra vonatkozó lekérdezések az SQL-ben, szemantika
   > Tk.6.2.5. és Tk.6.4.2. Halmazműveletek (egyesítés, metszet és különbség)
   > HF: Gyakorlás: Példatár 2.fejezete (Tk.6.4. Egytáblás csoportosító lekérd.)
   -- -- Köv.héten vizsgajegymegajánló röpzh1: >>  röpzh1 
          az 1-3.előadások anyaga és az Oracle Példatár 1-2.fejezetek feladatai
     
   4.EA: 2015.09.28. --- Több táblára vonatkozó lekérdezések, alkérdések
      >>>  4.előadás.pdf
   > Tk.6.3. Alkérdések és összekapcsolások, külső összekapcsolások az SQL-ben
   > HF: Gyakorlás: Példatár 3.fejezete  (1/3 része: Tk.6.2. Többtáblás/összekapcs.) 
   
   5.EA: 2015.10.05. --- Rel.algebrai lekérdezések átírása SELECT-re (példák)
      >>>  5.előadás.pdf  
   > Áttekintés: Tk.2.4.14.Feladatok (Tk.54-57.o. 2.4.1.feladat) Termékek feladatai
      relációs algebrai kifejezésekkel, kifejezőfákkal és átírva SQL lekérdezésekre
   > Tankönyv feladatai: Termékek-feladatok.pdfCsatahajók-feladatok.pdf  
   > Tankönyv feladataihoz a scriptek: create Termékekcreate Csatahajók
      >>>  7.előadás.pdf ("áttekintés" témakörben a fenti példák mellett ez is volt)
   > Tk.1.fej. Az adatbázis-kezelő rendszerek (ABKR) felépítése, alapfogalmak
   > Tk.6.5. Táblák tartalmának módosítása: DML-utasítások (insert, delete, update)
   > HF: Gyakorlás: Példatár 3.fejezete  (2/3 része: Tk.6.3. Többtáblás/alkérdések) 
   
   6.EA: 2015.10.12.  --- Logika a relációkhoz. Rekurzió a Datalogban és SQL-ben
      >>>  6.előadás(Datalog).pdf
   > Tk.5.3.-5.4. Logika a relációkhoz. A relációs algebra és a Datalog összevetése
   > HF: Gyakorlás: Példatár 3.fejezete  (3/3 része: Tk.6.3. Többtáblás lekérdezések)
   -- -- Köv.héten vizsgajegymegajánló röpzh2: >>  röpzh2 
          az 4-6.előadások anyaga és az Oracle Példatár 3.fejezetek feladatai
     
   7.EA: 2015.10.19. --- Adatbázis-kezelő rendszerek felépítése, SQL DML-utasítások
      >>> (folyt) 6.előadás(Rekurzió).pdf  
   > Tk.10.2. Az Eljut-feladat. Rekurzió (csak a nem-monoton rekurzió) az SQL-ben.  
      -- Vizsgára csak az SQL-99 szabvány WITH RECURSION utasítása kell (papíron)
      -- Oracle gépes-megoldások nincs a vizsgán, csak a gyakorlaton próbáljuk ki:
      -- az Eljut-feladathoz a Jaratok táblát létrehozó script: create_jaratok_tabla.txt
      >>>  7.előadás.pdf
   > Tk.1.fej. Az adatbázis-kezelő rendszerek (ABKR) felépítése, alapfogalmak
   > Tk.6.5. Táblák tartalmának módosítása: DML-utasítások (insert, delete, update)
   > HF: Gyakorlás: Példatár 4.fejezete (innen csak a változóhasználat: &n, '&c')
      és Példatár 5.fejezete (1/2 része: Tk.6.5. DML-utasítások)
       
   -- -- o ~ o ~ o~ o ~ o ~ o ~ o ~ o ~ o ~ o ~ o ~ o ~ o ~ o ~ o ~ o ~ o ~ o -- --
   -- --    Őszi szünet : 2015. október 26-tól (hétfő) - október 30-ig (péntek)    -- --
   -- -- o ~ o ~ o~ o ~ o ~ o ~ o ~ o ~ o ~ o ~ o ~ o ~ o ~ o ~ o ~ o ~ o ~ o -- --
   
   8.EA:  2015.11.02. --- Tervezés: E/K-modell, E/K-diagram átírása relációkká 
      >>>  8.előadás.pdf  és Tudnivalók a vizsgákról, lásd itt: .pdf 
   > Tk.4.1.-4.4. Az egyed-kapcsolat (E/K) modell elemei
   > Tk.4.5.-4.6. E/K diagram átírása relációs modellé  
   > [Kieg: Tk.4.7.-4.8. Az UML osztálydiagram átírása relációkká (nincs a vizsgán)]
     
   9.EA: 2015.11.09. --- SQL DDL: Táblák, nézetek, megszorítások, triggerek 
      >>>  9.előadás.pdf  
   > Tk.7.1.-7.5. Megszorítások és triggerek
   > Tk.8.1-8.2. és 8.5. Nézettáblák, tárolt nézettáblák
   > HF: Gyakorlás: Példatár 5.fejezete (2/2 része: Tk.7.fej. DDL-utasítások)
      + Példatár 6.fejezete (Tk.8.fej. Nézettáblák létrehozása és használata)
   -- -- Köv.héten vizsgajegymegajánló röpzh3: >>  röpzh3 
          az 7-9.előadások anyaga és az Oracle Példatár 5-6.fejezetek feladatai
   
   > Tankönyv 9.fejezetét SQL-2003/PSM a gyakorlatban Oracle PL/SQL-ben vesszük
   > Adatbázisok-1 vizsgán lehet választani (és elég az egyik szerint) ismertetni:
      (1) vagy Ullman-Widom Tankönyv 9.3.-9.4. SQL/PSM fejezete alapján,
      (2) vagy a 9-12.gyakorlatokon begyakorolt Oracle PL/SQL alapján, ehhez
   > 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)
   > Gyakorlás: Oracle Példatár 8-10.fejezet feladatai --- Feladatok.pdf 
   -- -- HF: Példatár 8-10.fejezet feladatait a 13.EA-ig a röpzh4-re kell átnézni!
   
   10.EA: 2015.11.16.  --- Relációs adatbázisok tervezése, funkcionális függőségek  
       >>> 10.előadás.pdf
   > Tervezés (előadáson: Tk.3.fej.) és progr. PL/SQL (HF/gyak.: Példatár 8-10.fej.)
   > Tk.3.3.1-3.3.2. Bevezetés a relációs adatbázissémák tervezésébe
   > Tk.3.1. Funkcionális függőségek
   > Tk.3.2. Funkcionális függőségekre vonatkozó szabályok
   > HF: Gyakorlás: Példatár 8.fejezete (változóhasználat, utasítások a PL/SQL-ben)
   
   11.EA: 2015.11.23. --- Veszteségmentes Boyce-Codd normálformájú felbontás 
       >>> 11.előadás.pdf
   > Tk.3.2.8. Funkcionális függőségek vetítése
   > Tk.3.3.3. Boyce-Codd normálforma
   > Tk.3.3.4. BCNF-ra való felbontás
   > Tk.3.4. Chase-teszt a felbontás veszteségmentességének ellenőrzésére
   > HF: Gyakorlás: Példatár 9.fejezete (lekérdezések, kurzorok a PL/SQL-ben)
   
   12.EA: 2015.11.30. --- Veszteségmentes, függőségőrző 3NF-ra való felbontás 
       >>> 12.előadás.pdf
   >Tk.3.2.7. minimális fedés
   > 3.4.4. Függőségek megőrzése
   > 3.5. Harmadik normálforma definíciója, 3NF-szintetizáló algoritmus
   > HF: Gyakorlás: Példatár 10.fejezete (tárolt eljárások/függvények a PL/SQL-ben)
   -- -- Köv.héten vizsgajegymegajánló röpzh4: >>  röpzh4
          a 10-12.előadások anyaga és az Oracle Példatár 8-10.fejezetek feladatai
   
   13.EA: 2015.12.07. --- 13.EA: Összefoglalás (vizsgatételek) és kitekintés 
   > ÖSSZEFOGLALÁS
        >>> Vizsgatételek
       -- >> Vissza a lapnak az elejére: Információ a vizsgákról 
       -- >> Vizsga időpontok: Elérhetőségem a vizsgaidőszakban 
       -- >> Ellenőrző kérdések (gyűjtése folyamatban, külön lapon)
     
   > KITEKINTÉS: Adatbázisok kurzusokhoz rövid ismertető és könyvajánló:
     
                 
          -- Ullman-Widom       -- Molina-Ullman-Widom   -- Abiteboul-AlicesBook
     
     --- BSc Adatbázisok-1 témakörben (Hajas Csilla -- Adatbázisok-1 előadás)
     (1) Ullman-Widom 1.-4.fejezet Relációs adatbázisok modellezése
     (2) Ullman-Widom 5.-9.fejezet Relációs adatbázisok programozása
     (3) Ullman-Widom 10-12.fejezet Haladó témák közül csak 10.2 Rekurzió,
           (a többi haladó témakört MSc kurzusokon tanuljuk, lásd lentebb) 
   
      --- BSc Adatbázisok-2 témakörben (Kiss Attila -- Adatbázisok-2 előadása)
     (4) Molina-Ullman-Widom 1.-5.fejezet Adattárolás, Indexstruktúrák
     (5) Molina-Ullman-Widom 6.-7.fejezet Lekérdezések végrehajtása
     (6) Molina-Ullman-Widom 8.fejezet Naplózás, helyreállítás
     (7) Molina-Ullman-Widom 9.fejezet Konkurenciavezérlés. Tranzakciókezelés
     
      --- BSc Adatbázisok-1 kurzus alapvető célja az SQL és PL/SQL megismerése,
          Oracle Online Dokumentation: Az SQL és PL/SQL feladatok megoldásához
          hasznos az SQL Language Reference és a PL/SQL Language Reference
     --- BSc Adatbázisok-2 kurzuson további dokumentációknak vesszük hasznát
           >> Alapfogalmak -- Oracle Database Concepts, itt lásd például Indexek
           >> Hangolás -- Oracle Database Performance Tuning Guide
   
     --- Információs rendszerek MSc szakirány bemutatása: InfoMSc.pdf (Kiss Attila)
     --- MSc Az adatbázisrendszerek elméleti alapjai 
     (8) Relációs algebra, relációs kalkulusok és a Datalog bővebben 
     (9) Relációs sématervezés magasabb normálformák  
     (10) Molina-Ullman-Widom 10.fejezet Osztott adatbázisok
     --- MSc Korszerű adatbázisok kurzus
     (11) Ullman-Widom 11-12.fej. A félig-strukturált adatmodell 
     (12) Gráfadatbázisok
     (13) BigData, Hadoop  
     --- MSc Információs rendszerek fejlesztési módszertana kurzus
     (14) Információs rendszerek fejlesztése. Adatmodellezés
     --- MSc Térinformatikai adatbázisok kurzus
     (15) Ullman-Widom 10.4.-10.5. Objektum-relációs adatbázisok
     (16) Térinformatikai adatformátumok, térbeli elemzések
     --- MSc Adattárházak és adatbányászat kurzus
     (17) Ullman-Widom 10.6.-10.7. OLAP, adattárházak --> Adattárházak (Kiss Attila)
     (18) Molina-Ullman-Widom 11.fejezet OLAP, adatbányászat --> Adatbányászat
            -- Adatbányászat magyar nyelven -- Digitális Tankönyvtár:
            >> Bevezetés az adatbányászatba (Tan-Steinbach-Kumar könyve)
            >> Előadásfóliák (Tan-Steinbach-Kumar könyvhöz, Ispány Márton fordítása)
    !! A mai utolsó előadáson erről a témáról egy kis kitekintés --> 1.ea: Bevezetés 
        (és a fontosabb algoritmusok PL/SQL forráskódja elérhető: Oracle Data Mining)
     --- MSc Tudáskezelő rendszerek projektlabor
     --- BSc és MSc: IT technológiák és architektúrák nagyvállalati környezetben
          amely ingyenes, kredites Oracle szeminárium --> Oracle Junior Program
         
   VIZSGATÉTELEK                                                                            
                                                      //Elméleti alapok              //és az SQL
  I.rész: Egyszerű lekérdezések   //Alap relációs algebra     //Egytáblás lekérdezések
 II.rész: Összetett lekérdezések  //R.alg, Datalog, Rekurzió //Többtáblás lekérdezések
 III.: Modellezés és megvalósítás //E/K diagram->rel.mod.  //SQL DDL, DML utasítások
 IV.: Tervezés és programozás    //Függőségek, normálformák //Oracle PL/SQL (PSM)
   
   -- >> Vissza a lapnak az elejére: Információ a vizsgákról 
   -- >> Vizsga időpontok: Elérhetőségem a vizsgaidőszakban 
   -- >> Korábbi vizsgalapok: AB1vizsga jelszavas mappában 
   -- >> Ellenőrző kérdések (gyűjtése folyamatban, külön lapon)
   
-- I. RÉSZ/ELMÉLETI ALAPOK: ALAP RELÁCIÓS ALGEBRA ÉS SQL

 1. [01A] A relációs adatmodell alapjai: Reláció, séma és előfordulás,
     attribútumok és sorok, kulcsok, külső kulcsok, hivatkozási épség.
     (Tankönyv 2.2. szakasz, 22-29.oldal, illetve 2.5. szakaszból részek)
 2. [01B] Relációs algebra--1.:
     Relációs algebrai alapműveletek, kifejezések felépítése, kifejezésfa.
     (2.4. szakasz, 39-61.)
 3. [02A] Relációs algebra--2.:
     Lekérdezések kifejezése alap relációs algebrában és átírása SQL SELECT
     utasításra. Tankönyv 2.4. szakasz feladatai, Tankönyv TERMÉKES példái.
   
-- I. RÉSZ/SQL:  EGYSZERŰ (EGYTÁBLÁRA VONATKOZÓ) LEKÉRDEZÉSEK 

 4. [02B] 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, REFERENCES. (2.3. és 2.5. szakasz, 30-35.)
 5. [03A] Az SQL adatbázisnyelv 6.1. Select--1.
     Egyszerű lekérdezések, SQL SELECT egy relációra: WHERE záradék
     feltételének megadására, speciális értékekre, adattípusokra és logikai
     kifejezések megadására milyen lehetőségek vannak? 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. 
     Az eredmény rendezése: ORDER BY záradék. (6.1.szakasz, 258-271.)
 6. [03B] Az SQL adatbázisnyelv 6.4. Select--2.
    Ismétlődések megszüntetése: DISTINCT (6.4.1. szakasz 298.o.)
    Függvények használata a lekérdezésekben, sorfüggvények (típusok).
    Csoportosítás: GROUP BY záradék, összesítő függvények, nullértékek
    kezelése, csoportokra vonatkozó feltételek: HAVING  záradék.
    A záradékok sorrendje. (6.4.3-6.4.7 szakaszok, 300-305.)
  
-- II. RÉSZ/SQL: ÖSSZETETT (TÖBB TÁBLÁRA VONATKOZÓ) LEKÉRDEZÉSEK 

 7. [04B] Az SQL adatbázisnyelv 6.2. Select--3.
     Többrelációs lekérdezések, direkt szorzat és összekapcsolások a
     FROM záradékban. Attribútumok megkülönböztetése, sorváltozók.
     A lekérdezések kiértékelésének szabvány szerinti alapértelmezése. 
     (6.2.1-6.2.4. szakaszok, 273-280.)
 8. [04B] Az SQL adatbázisnyelv 6.2., 6.4. Select--4.
     Halmazműveletek az SQL-ben: UNION, INTERSECT, EXCEPT .
     Ismétlődések kezelése halmazműveletek során: UNION és UNION ALL,
     INTERSECT [ALL], EXCEPT [ALL]. (6.2.5., 280-281. és 6.4.2., 298-299.)
 9. [04C] Az SQL adatbázisnyelv 6.3. Select--5.
     Összekapcsolások és külső összekapcsolások az SQL FROM záradékban.
     (6.3.6.-6.3.8. szakaszok, 290-295.) 
10. [05A] Az SQL adatbázisnyelv 6.3. Select--6.
     Alkérdések a FROM listán, a WHERE és a HAVING záradékokban,
     korrelált alkérdések alakja, kiértékelése.
     (6.3.1.-6.3.5. szakaszok, 284-290.)
    
-- II. RÉSZ/ELMÉLETI ALAPOK: REL.ALGEBRA ÉS DATALOG, REKURZIÓ
11. [04A] A kiterjesztett relációs algebra
     Relációs algebrai műveletek kiterjesztése multihalmazokra.
     További algebrai műveletek, ismétlődések megszüntetése,
     az ismétlődések kezelése halmazműveletek során, összesítések
     (aggregáló függvények), csoportosítás, kiterjesztett vetítés,
     rendezés,  külső összekapcsolások (5.1.-5.2. szakasz, 217-236.)
12. [05B] Relációs algebra--3: komplex lekérdezések kifejezése
      az alap és kiterjesztett relációs algebrában és SQL SELECT
      utasításával,  a SELECT utasítások kiértékelése, különböző
      megoldások hatékonysági összevetése, optimalizálási kérdések 
13. [06A] Logika a relációkhoz. Datalog alapjai. Relációs algebra
      és a Datalog, példák átírásra. (5.3.-5.4. szakasz, 236-253.)
14. [06B] Rekurzió az SQL-99-es szabványban:
      Az Eljut feladat (Tankönyv példája, az előadáson is szerepelt).
      Az SQL-99-es szabvány WITH RECURSIVE utasítása (záradék).
      Az Eljut feladat megoldása SQL-ben. (10.2. szakasz, 467-474.)
      
-- III. RÉSZ/ELMÉLETI ALAPOK: E/K MODELL ÉS ÁTÍRÁSA RELÁCIÓKRA
15. [07B] Adatbázis-kezelő rendszerek áttekintése, ACID-tranzakciók
      (1.2. szakasz 5-13.oldal)
16. [08A] Az egyed-kapcsolat (E/K) modell--1.
      Egyedhalmazok attribútumok, kapcsolatok. E/K modell, séma, előfordulás,
      diagram. E/K-kapcsolatok típusai, szerepek, kapcsolatok attribútumai.
      Alosztályok, "az-egy" ("isa") kapcsolat és jelölése. (4.1. szakasz, 133-147.)
17. [08A] Az egyed-kapcsolat (E/K) modell--2.
      Megszorítások modellezése, kulcsok és a kulcsok jelölése az E/K modellben,
      hivatkozási épség, megszorítások. Gyenge egyedhalmazok fogalma, jelölése.
      (4.3.-4.4. szakaszok, 157-165.)
18. [08B] Az egyed-kapcsolat (E/K) modell--3.
      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. (4.5-4.6. szakaszok, 165-181.)
            
-- III. RÉSZ/SQL: MEGVALÓSÍTÁS -- SQL DDL és SQL DML UTASÍTÁSOK

19. [07A] Táblák tartalmának megváltoztatását szolgáló SQL DML utasítások:
      INSERT, DELETE, UPDATE (6.5 szakasz, 307-312.)
20. [09A] Megszorítások az SQL-ben: kulcsok, idegen kulcsok és hivatkozási
      épség. 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.
      Megszorítások ellenőrzésének késleltetése. (7.1. szakasz, 329-337.)
21. [09A] Attribútumokra és sorokra vonatkozó megszorítások: NOT NULL,
      CHECK. Megszorítások elnevezése. Önálló megszorítások létrehozása és
      használata. Triggerek. (7.2-7.4. szakasz, 338-360.)
22. [09B] Nézettáblák létrehozása és használata az SQL-ben, adatok módosítása
      nézettáblákon keresztül. Nézettáblákra vonatkozó "helyette" (istead-of)
      típusú triggerek. Tárolt nézettáblák. (8.1-8.2., 361-370. és 8.5., 381-388.)
         
-- IV. RÉSZ/SQL: SQL/PSM SZABVÁNY A GYAKORLATBAN: ORACLE PLSQL
23. [10A] SQL programnyelvi bővítése. Alapok, végrehajtható utasítások,
       feltételes utastások, ciklusok, SQL DML utasítások a programban.
      Az Eljut feladat (lásd 11.tétel) iterációs megoldása SQL/PSM-ben
      (az előadáson szerepelt) vagy az Oracle PL/SQL gyakorlat alapján. 
24. [10B] SQL lekérdezések használata programozási környezetben. 
      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.
      Kurzor FOR ciklus (PSM: Tankönyv 9.3-9.3.7. szakasz, 401-412.,
      9.4.4-9.4.6. szakasz, 421-425., vagy Oracle PL/SQL gyak. alapján)
25. [10C] Sémában tárolt eljárások és függvények létrehozása, használata,
      csomagok, hiba- és kivételkezelés, triggerek. (Tankönyv 9.4.1-9.4.3.
      416-421., 9.4.7-9.4.8., 415-431. vagy Oracle PL/SQL gyak. alapján) 
  
-- IV. RÉSZ/ELMÉLETI ALAPOK -- RELÁCIÓS SÉMATERVEZÉS, NORMÁLFORMÁK
26. [11A] Relációs adatbázisok tervezési elmélete--1.
      Funkcionális függőség, kulcs, szuperkulcs, függőségi rendszerek, implikáció
      (következés) és levezetés definíciója, szétvághatósági és összevonási szabály.
      Attribútumhalmaz lezárása és algoritmusa, levezetési szabályok teljes halmaza
      (az ún. Armstrong-axiómák), funkcionális függőségi rendszerek ekvivalenciája,
      függőségi halmazok lezárása, minimális bázis (vagy más néven minimális fedő).
      Függőségi rendszerek vetítése. (3.1.-3.2. szakaszok, 69-87.oldal)
27. [11B] Relációs adatbázisok tervezési elmélete--2.
      Anomáliák funkcionális függőségek miatt. Relációk felbontása, dekompozíciója.
      Boyce-Codd normálforma, BCNF dekompozíció algoritmusa, BCNF-ra
      való felbontás tulajdonságai. (3.3.szakasz, 90-97. oldal.)
28. [12A] Relációs adatbázisok tervezési elmélete--3.
      A felbontásra vonatkozó három elvárás. Veszteségmentes összekapcsolás és
      Chase-teszt a veszteségmentesség ellenőrzésére. Függőségek megőrzése.
      (3.4. szakasz, 98-106.oldal)
29. [12B] Relációs adatbázisok tervezési elmélete--4.
      Harmadik normálforma (elsődleges attribútum és 3NF definíciója),
      a minimális függőségi rendszer (minimális bázis, vagy minimális fedő),
      3NF felbontás szintetizáló algoritmus, 3NF felbontás tulajdonságai.
      (3.5. szakasz, 108-111.oldal)
[--  Az idei vizsgán az utolsó 30.tételt a 4normálformáról nem kérjük számon: ]
30. [13A] Relációs adatbázisok tervezési elmélete--5.
      Többértékű függőségek (TÉF) definíciója, TÉF-ekre vonatkozó szabályok.
      Negyedik normálforma (4NF) és 4NF-ra való bontás algoritmusa.
      Chase-algoritmus kiterjesztése TÉF-ekre. (3.6-3.7. szakasz, 112-129.)