ADATBÁZISOK-1 ELŐADÁS     [prog.inf: IP-08AB1E]  
  ELTE, 2016/2017-os tanév II.félévében [2017.febr]
 
 
 1EA2EA3EA4EA | 5EA6EA7EA8EA9EA | 10E | 11E | 12E | 13E | «    
     
   Előadás:  Kedd 8:30-10:00  |  Kedd 12:15-13:45  Déli ép. 0-821 Bolyai terem
   Gyakorlat: lásd az Adatbázisok gyakorlat oldalán [ezen a linken: AB1GY.html]
   Az előadás kötelező, 4 hiányzás lehet, katalógus van: ELTE IK Katalógus
   Tudnivalók az előadásról és a vizsgáról, követelmények, részletek [itt: .pdf]
   
   Tankönyv: Jeffrey D. Ullman, Jennifer Widom: Adatbázisrendszerek Alapvetés 
                                     Második átdolgozott kiadás, Panem, 2009. (a kék könyv)
   
    Az előadásokon olyan sorrendben szerepel a tananyag, ahogy a gyakorlatok
    ezt megkívánják. Kérem, hogy az aktuális előadás pdf-t mindig frissítse (F5)
    mert folyamatosan fejlesztem a tananyagot! Köszönöm a visszajelzéseket!  
   
   Az előadások tananyaga/diasorozata:
   top1E2E3E4E | 5E6E7E8E9E | 10E | 11E | 12E | 13E | «    
   1.EA: 2017.02.14. --- Előkészítés és egy táblára vonatkozó lekérdezések 
>>>  1.előadás.pdf  --- Minden, ami egytáblás lekérdezésekhez [Tk.6.1] kell
   > Tk.1.fej. (később) Adatbázis-kezelő rendszerre milyen elvárásaink vannak?
   > 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 (folyt.köv.)
   > 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. 
 
   top1E2E3E4E | 5E6E7E8E9E | 10E | 11E | 12E | 13E | «    
   2.EA: 2017.02.21. --- 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ésekhez [Tk.6.2] kell
   > Tk.4.fej. Relációs adatmodellek tervezése, E/K modell alapjai (folyt.köv.)
   > Tk.2.2. (folyt.) Relációs modell, kulcsok és külső kulcsok, hivatkozási épség
   > 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
   
   top1E2E3E4E | 5E6E7E8E9E | 10E | 11E | 12E | 13E | «    
   3.EA: 2017.02.28. --- Rel.algebrai lekérdezések; Alkérdések a WHERE-ben
>>>  3.előadás.pdf  --- Alkérdések [Tk.6.3]; Példák: Rel.alg.kif. és SQL SELECT
   > Tk.6.3. Alkérdések az SQL SELECT WHERE záradékában (folyt. 5.ea.pdf) 
   > Tk.2.4. Példák: Relációs algebrai feladatok (Tk.2.4.1.feladat) Termékek
       Relációs algebrai kifejezések, 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
     
   top1E2E3E4E | 5E6E7E8E9E | 10E | 11E | 12E | 13E | «    
   4.EA: 2017.03.07. --- Relációs algebra kiterjesztése, csoportosítás, külső join  
>>>  4.előadás.pdf (45.o.-ig) Kiterjesztett relációs algebra műveletei [Tk.6.4]
   > (1-35.o. Az Oracle gyakorlat anyagából: függvények használata)
   > 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
   -- folyt. köv. az 5.előadáson 46.oldaltól (külső összekapcsolásoktól)
         
   top1E2E3E4E | 5E6E7E8E9E | 10E | 11E | 12E | 13E | «    
   5.EA: 2017.03.14. --- Alkérdések FROM-ban; SQL DML és tranzakciókezelés
>>> 4.előadás.pdf (46.o.-tól) (külső összekapcsolásoktól)
   > Tk.6.3. (folyt.) Összekapcsolások az SQL-ben, külső összekapcsolások
   
>>>  5.előadás.pdf (23.o.-ig) Alkérdések a SELECT-ben, SQL DML utasítások
   > Tk.6.3. Alkérdések az SQL SELECT utasítás WHERE, HAVING és FROM
      záradékaiban (és a FROM záradék: inline nézet átírása WITH utasításra)
   > Tk.6.5. SQL DML: Táblák tartalmának módosítása: insert, delete, update
   -- folyt. 24.o-tól később folytatjuk az adatbázis-kezelés alapfogalmakkal,
      most csak a tranzakciók tulajdonságai és a COMMIT, ROLLBACK kell (36.o.)
     
   top1E2E3E4E | 5E6E7E8E9E | 10E | 11E | 12E | 13E | «    
   6.EA: 2016.03.21. --- Logika a lekérdezésekhez. Datalog/rel.algebra átírása 
>>>  6.előadás.pdf (34.o.-ig) 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ó Datalogban -- folyt. 34.o-tól köv.héten
    

   top1E2E3E4E | 5E6E7E8E9E | 10E | 11E | 12E | 13E | «    
   7.EA: 2016.03.28. --- Rekurzió Datalogban és SQL-ben. SQL DDL utasítások
>>>  6.előadás.pdf (34.o.-tól) Rekurzió Datalogban és SQL-ben (WITH utasítás)
   > Tk.10.2. Az Eljut-feladat. Rekurzió (monoton, lineáris rekurzió) Datalogban
      és az SQL új szabványában: WITH RECURSIVE záradék a SELECT utasításhoz
   
>>> 7.előadás.pdf (25.o.-ig) SQL DDL: táblák, megszorítások, nézettáblák
   > Tk.7.1.-7.3. SQL DDL Táblák, megszorítások -- folyt. 26.o-tól köv.héten
     
   top1E2E3E4E | 5E6E7E8E9E | 10E | 11E | 12E | 13E | «    
   8.EA: 2016.04.04. --- SQL DDL (folyt.) Adatbázis-kezelő rendszerek (DBMS)
>>> 7.előadás.pdf (27.o.-tól) SQL DDL: megszorítások, nézettáblák, triggerek
   > Tk.7.4.-7.5. SQL DDL (folyt.) önálló megszorítások és triggerek
   > Tk.8.1-8.2. Nézettáblák használata a lekérdezésekben
    
>>> 5.előadás.pdf  (24.o-tól az adatbázis-kezelés alapfogalmak)
   > Tk.1.fej. Az adatbázis-kezelő rendszerek (DBMS) felépítése, alapfogalmak
   
   top1E2E3E4E | 5E6E7E8E9E | 10E | 11E | 12E | 13E | «    
   9.EA: 2016.04.11. --- SQL progr.-i környezetben, SQL/PSM (Oracle PL/SQL) 
>>> 8.előadás.pdf  (64.o./56.o.-ig) SQL/PSM a gyakorlatban: Oracle PL/SQL 
   > 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 (folyt.köv.)
   > 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  
      -- Oracle Junior előadás: Oracle PL/SQL.pdf
      -- Tutorial/angol: PL/SQL Tutorial: QuickGuide.html
      -- Tankönyvtár/magyar: PL/SQL programozás Oracle 10g-ben 
    
  -- -- -- TAVASZI SZÜNET: 2017.04.12 (szerdától) - 04.18 (keddig)  -- -- -- 
   
   top1E2E3E4E | 5E6E7E8E9E | 10E | 11E | 12E | 13E | «    
   10.EA: 2016.04.25. --- SQL/PSM (Oracle PL/SQL); Tervezés: E/K modell 
>>> 8.előadás.pdf  (56.o.-tól) SQL/PSM a gyakorlatban: Oracle PL/SQL
   > 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
   
   Innentől kezdve most az előadás és a gyakorlat tematika szétválik
   - Gyakorlaton: Részletesen vesszük a PL/SQL-t sz.gépes laborban,
   - Előadáson: A relációs adatbázisok sématervezésével foglalkozunk
  
>>> 9.előadás.pdf  --- Sématervezés, adatmodellek, E/K diagram 
   > 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é  
    
   top1E2E3E4E | 5E6E7E8E9E | 10E | 11E | 12E | 13E | «    
   11.EA: 2017.05.02. --- Relációs adatbázisok tervezése, normalizálás --1. 
>>> 10.előadás.pdf  
   > 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
   
   top1E2E3E4E | 5E6E7E8E9E | 10E | 11E | 12E | 13E | «    
   12.EA: 2017.05.09. --- Relációs adatbázisok tervezése, normalizálás --2. 
>>> 11.előadás.pdf  
   > Tk.3.3.3-3.3.4. Boyce-Codd normálforma és BCNF-ra való felbontás
   > Tk.3.4.1.-3.4.3. Chase-teszt a veszteségmentesség ellenőrzésére
     
   top1E2E3E4E | 5E6E7E8E9E | 10E | 11E | 12E | 13E | «    
   13.EA: 2017.05.16. --- Relációs adatbázisok tervezése, normalizálás --3. 
>>> 12.előadás.pdf  
   > Tk.3.4.4. Függőségek megőrzése
   > Tk.3.5. Harmadik normálforma definíciója, 3NF-szintetizáló algoritmus
   > Tk.3.6. Magasabb normálformák, többértékű függőség és a 4NF
     
>> KITEKINTÉS: BSc Adatbázisok kurzusokhoz rövid ismertető és könyvajánló:
     
                 
          -- Ullman-Widom       -- Molina-Ullman-Widom   -- Abiteboul-AlicesBook
     
     --- BSc Adatbázisok-1 EA. témakörben (Hajas Csilla -- Adatbázisok-1 EA)
     (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-1 gyakorlat 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 EA. témakörben (Kiss Attila -- Adatbázisok-2 EA)
     (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-2 gyakorlaton 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
         
>> ÖSSZEFOGLALÁS
       >>  
       >> Vizsgatételek
   
   INFORMÁCIÓ A VIZSGÁKRÓL                                                             
   A vizsgaidőszak minden hetében hetente egy vizsgaalkalom van meghirdetve:
   Kedden 12 órától 14 óráig Déli ép. 0-821 Bolyai teremben, de az utolsó héten
   csak javító- illetve pótvizsga lehetőség van azoknak, akik már voltak vizsgázni.
   A vizsgákra a Neptunban kell jelentkezni, a Neptun 24 órával a vizsga kezdete
   előtt, vagyis a megelőző nap hétfő délben zárja le a jelentkezéseket.
   -- >> Vizsgatételek  -->> Korábbi vizsgalapok: AB1vizsga jelszavas mappában   
   
   Adatbázisok-1 kurzus Vizsgatételekben négy fő témakörbe osztottuk az anyagot
   és ennek megfelelően vannak csoportosítva a vizsgán is a kérdések négy lapra,
   minden lapon 3-3 kérdés szerepel. Egy kérdés lehet egyszerű típusfeladat is.
   Az írásbeli vizsgán négy lapon 12 ellenőrző kérdésre 80 perc áll rendelkezésre
   (kb. 20 perc egy lap), kérdésenként 5 pont kapható, részpontok is szerezhetők.
   Összesen kapható 60 pontból legalább 20 pontot kell elérnie a sikeres vizsgához.
   Ponthatárok: 20p-tól elégséges, 30p-tól közepes, 40p-tól jó, 50p-60p jeles.
   
  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 
   -- >> Korábbi vizsgalapok: AB1vizsga jelszavas mappában 
   
-- 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)
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.)