ELTE, 2021/2022. tanév I. félév  [dr. Hajas Csilla]
  IT-13KAB ADATBÁZISOK EA+GY [oszt.info.tanár]
 
 
 
 
   Kurzus időpontja: Péntek 11:00-14:00-ig (4 x 45 perces EA+GY blokkok)
   Kurzusforma: Jelenléti D 2-218 (komp.alg.labor) és online INF-es TEAMS
   Kurzus weboldala a Canvason: https://canvas.elte.hu/courses/19952
   A kurzus célja: Adatbázis-kezelő rendszerek felépítése. Adatmodellek. 
   Relációs adatmodell, adatbázis sématervezés, függőségek, normalizálás.
   Egyed-kapcsolat modell, E/K diagram átalakítása relációs sémákká.
   Az SQL, mint a relációs adatbázis-kezelő rendszerek nyelve. Oracle SQL. 
   Tankönyv: Ullman-Widom: Adatbázisrendszerek. Alapvetés. 2.kiad., 2008.
  
   ORACLE ADATBÁZIS szerverek elérése -->> adatbazis_eleres.html
   Példa-táblák létrehozására a szkriptek -->> adatbazis_scriptek.html
    
   Adatbázisok előadás+gyakorlatok anyaga:   
   
  => I.témakör: Adatmodellezés, E/K diagram, Rel.model, SQL lekérdezések 
  [01] 09.10. 1.ea.pdf (E/K diagr, rel.modell) + 01.gyak.html (E/K diagram)
  [02] 09.17. 1.ea és 2.ea.pdf (E/K->rel, és rel.alg) +02.gyak.html (rel.alg)  
  [03] 09.24. 2.ea.pdf (Rel.alg és SELECT) +03.gyak.html (egytáblás lekérd.)
  [04] 10.01. 3.ea.pdf (SELECT, alkérdés) +04.gyak.html (többtáblás lekérd.)
  [05] 10.08. 4.ea.pdf (Össz.fv-ek, csoportosítás)+05.gyak.html (fv, group by)
  [06] 10.15. 5.ea.pdf (Lekérdezésre példák) +06.gyak.html (alkérdések)
  [07] 10.22. 6.ea.pdf (SQL DML, DDL) +07.gyak: I.ZH (rel.alg., SQL SELECT)
   
        --- 2020. október 25-től október 30-ig őszi szünet  ---
   
  =>  II.témakör: Teljes SQL, SQL DML, SQL DDL, haladó témakörök
  [08] 11.05. 07.ea.pdf (Nézetek, WITH) +08.gyak.html (SQL DML, DDL)
  [09] 11.12. 08.ea és 09.ea.pdf (ABKR, progr) +09.gyak.html (nézetek)
  [10] 11.19. 10.ea.pdf (Rel.sématerv, funk.f.) +10.gyak.html (indexek)
  [11] 10.26. 11.ea.pdf (Normálformák) +11.gyak.html (végreh.tervek)
  [12] 12.03. 12.ea.pdf (VM, FŐ, norm.) +12.gyak: II.ZH (SQL DML, DDL)
  [13] 12.10. Vizsgainfók, kérdés/válasz +13.gyak: Pót/javZH (egyik zh-t)
    
  Vizsganapok  meghirdetése, vizsgára való jelentkezés: NEPTUN 
  Szóbeli vizsga: MS TEAMS MEET-ben két db 15 perces részből áll:
  1.rész: saját készítésű tervezési feladat+megvalósítás bemutatása  
  2.rész: kiegészítő két kérdés az előadások két fő témaköréből: 
      a.) SQL: Lekérdezések (rel.algebra, SQL SELECT), SQL részei
      b.) Tervezés: E/K diagram, Relációs sématervezés, normalizálás
     
  Vizsgatételek      
  a.) SQL: Lekérdezések (rel.algebra, SQL SELECT), SQL részei [2ea-tól 9ea-ig]   
 
  A1. Egyszerű egytáblás lekérdezések.
       Az alap relációs algebra unér műveletei: vetítés és kiválasztás.  
       SQL SELECT egy relációra: WHERE záradék szűrési feltétel megadása,
       típusok, speciális értékek, műveletek nullértékekkel, az ismeretlen
      (unknown) igazságérték, logikai műveletek háromértékű logika esetén. 
       (Tankönyv 2.4.szakasz, 39-44.o. és 6.1.szakasz, 258-269.o.) 2.ea.pdf
   
  A2. Többtáblás lekérdezések.
       Az alap relációs algebra binér műveletei: természetes összekapcsolás,
       direkt szorzat és egyéb szorzás jellegű műveletek, halmazműveletek.
       SQL SELECT több relációra: FROM záradék, sorváltozók használata,
       attribútumok megkülönböztetése. Halmazműveletek az SQL-ben.
       Az SQL lekérdezések kiértékelésének szabvány szerinti alapértelmezése. 
       (Tankönyv 2.4.szakasz, 39-61.o. és 6.2.szakasz, 273-281.o.) 2.ea.pdf
 
  A3. Alkérdések.
        Alkérdések használata az SQL SELECT utasítás FROM listán (inline nézet),
       és a WHERE és HAVING záradékokban. Korrelált alkérdések kiértékelése.
       (Tankönyv 6.3.szakasz, 284-290.o.) 3.ea.pdf
   
  A4. További műveletek, összesítések, csoportosítás.
       Kiterjesztett relációs algebra. Relációkra (mint multihalmazokra) vonatkozó
       műveletek, a relációk egészére vonatkozó műveletek, csoportosítás, stb.
       ismétlődések megszüntetése, ismétlődések kezelése halmazműveletek során. 
       SQL SELECT utasítás 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. 
       (Tankönyv 5.1.-5.2.szakasz, 217-235.o., és 6.4.szakasz, 300-305.o.) 5.ea.pdf
 
  A5. Táblák tartalmának megváltoztatása.
       SQL DML utasítások: INSERT, DELETE, UPDATE. Tranzakciók az SQL-ben. 
      (Tankönyv 6.5.-6.6.szakasz, 307-312.o.) 6.ea.pdf
   
  A6. Relációsémák és megszorítások definiálása SQL-ben.
      SQL DDL utasítások, create table, kulcsok, idegen kulcsok, hivatkozási épség, 
      a hivatkozási épség fenntartására vonatkozó lehetőségek megadása a
      a hivatkozott tábla módosítása miatt. NOT NULL feltétel. Attribútumokra
      és sorokra vonatkozó CHECK (feltételek). Megszorítások módosítása.  
      (Tankönyv 2.1.-2.3.szakasz,17-39.o. és 7.1.-7.3.szakasz, 329-347.) 6.ea.pdf
   
  A7. Adatbázis-kezelés alapfogalmak.
      Adatbázis-kezelő rendszerek felépítése, fő részei és feladatai, szereplői. 
      Nézettáblák létrehozása és használata az SQL-ben. Jogosultságok.
      Tranzakció-kezelés alapjai (ACID). Indexek, lekérdezések, optimalizálás.  
      (Tankönyv 1.fejezete, 1-13.o., és 8.fejezete, 329-360.o.) 7.ea.pdf és 9.ea.pdf
   
  b.) Tervezés: E/K diagr, UML, Normalizálás, Rel.sématervezés [1.ea, és 10-12.ea]  
   
  B1. 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. 
      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.
      (Tankönyv 4.1.-4.4. szakaszok, 133-165.) 1.ea.pdf
   
  B2. Az egyed-kapcsolat (E/K) modell--2.
      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.5-4.6. szakaszok, 165-181.) 1.ea.pdf
   
  B3. 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. 
      (Tankönyv 3.1.-3.2. szakaszok, 69-87.oldal) 10.ea.pdf
   
  B4. 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.
     (Tankönyv 3.3.szakasz, 90-97. oldal.)  11.ea.pdf
   
  B5. 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.
      (Tankönyv 3.4. szakasz, 98-106.oldal)  11.ea.pdf
   
  B6. 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.
      (Tankönyv 3.5. szakasz, 108-111.oldal) 12.ea.pdf
   
  B7. 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.
     (Tankönyv 3.6-3.7. szakasz, 112-129.) 12.ea.pdf