Adatbázisok elméleti alapjai (08abaeae)

 

Célkitűzés:

 

A relációs adatbázisok és az SQL nyelv azon alapvető tulajdonságait mutatjuk be, amelyek minden relációs adatbázis-kezelő rendszer esetén azonosak. A kurzus az elméleti képzés mellett gyakorlati példákon keresztül tanítja meg a relációs adatbázisok és az Oracle 10g SQL és PL/SQL nyelvének alapszintű használatát. A kurzus során a hallgatóság megismerkedik a PL/SQL eljárások, függvények írásának módszerével. Röviden foglalkozunk az adatbázis triggerek írásával, valamint megismerkedünk a legfontosabb beépített csomagok használatával is.

Az adatmodellezés keretében megismerkedünk az egyed-kapcsolat modellel, az objektumorientált ODL modellel, az UML adatmodellező részével, illetve a relációs modellbe történő átírásokkal. A relációs adatbázisok tervezésével zárul a félév, melynek során a funkcionális és többértékű függőségeket, illetve a BCNF, 3NF és 4NF dekompozíciókat, ezek tulajdonságait (veszteségmentességet, függőségőrzést), és a tervezéshez szükséges algoritmusokat ismerjük meg. 

 

Követelmények:

 

A kurzus teljesítéséhez az előadások látogatása, a félév folyamán folyamatos tanulás, a kijelölt részek és feladatok önálló feldolgozása szükséges. A feladatok legtöbbjéhez a megoldás is rendelkezésre áll, illetve segítségül a gyakorlatokon hasonló feladatokat lehet közösen megoldani. A különböző számonkérések alapján, a félév során 100 pontot lehet szerezni. Egyes előadásokon feladatok, illetve elméleti anyagrészek lesznek kijelölve, amelyekből a megadott időpontokban a gyakorlaton lesz számonkérés. Három ilyen számonkérés lesz, mindegyiken összesen 15 pontot lehet szerezni. Ezen kívül két évfolyam zárthelyit kell írni. Ezeken lehet szerezni 25, illetve 30 pontot.

 

1. számonkérés: a március 3-ával kezdődő héten, a gyakorlat idejében (15 pont) (A példatár 1-3. fejezeteinek feladatai)

 

2. számonkérés: I. évfolyam zárthelyi, március 17-én, az előadás idejében (25 pont) Az előadáson elhangzott elméletből, és gyakorolt feladattípusokból: Relációs adatmodell, adatmodellezés, relációs algebrai feladatok, SQL utasítások, Oracle felépítése, sqlplus, isqlplus. Részletesebben lásd lent, az előadás anyagánál. Legfontosabb: Az ellenőrző kérdések + a relációs algebrai feladatok megoldása, SQL-be átalakítása. Szerepelni fog a közösen megoldott feladatok közül is néhány, meg olyan is, ami nagyon hasonló a közösen megoldottakhoz. Ezenkivül lesz kérdés, amelyben fogalmakat, definíciókat kell tudni pontosan megadni.

 

A ZH feladatai: TESZT1A március 17.doc TESZT1B március 17.doc ( Csak olyan feladat volt, ami szó szerint szerepel a diákon, így a megoldások onnan kikereshetők.)  A dolgozatokat és a pontozást majd a gyakorlaton lehet megnézni! Akik tavaly szereztek gyakorlati jegyet, azok a fogadóórámon (HÉTFŐ: 14-16) nézhetik meg a dolgozatukat.

 

3. számonkérés: az április 7-vel kezdődő héten, a gyakorlat idejében (15 pont) (A példatár 4-7. fejezeteinek feladatai)

 

4. számonkérés: II. évfolyam zárthelyi, május 5-én, az előadás idejében (30 pont) Az első évfolyam zárthelyihez hasonló stílusú lesz, az előadáson elhangzott elméletből, példákból és feladatokból: Relációs algebrai feladatok (megint lesznek), PL/SQL, kurzorok használata, eljárások, függvények, triggerek, adatmodellezés (E/K modell, ODL, UML, relációs adatmodell), funkcionális függőségek, dekompozíciók, veszteségmentesség, függőségőrzés, BCNF normálforma, 3NF normálforma, többértékű függőség, 4. normálforma, Armstrong axiómák, algoritmusok (attribútumhalmaz lezárása, veszteségmentesség ellenőrzése 2 tagú és több tagú dekompozíciókra, függőségőrzés ellenőrzése, minimális bázis készítése, BCNF veszteségmentes dekompozíció előálltása naiv és hatékony módon, 3NF veszteségmentes és függőségőrző dekompozíció előálltása, 4NF veszteségmentes dekompozíciós előálltása).  Legfontosabb: Az ellenőrző kérdésekből, illetve a diákon szereplő feladatokból, példákból fogok feladni kérdéseket, illetve ugyanazokból a relációs algebrai feladatokból, amelyek korábban szerepeltek.

 

5. számonkérés: a május 5-ével kezdődő héten, a gyakorlat idejében (15 pont) (A példatár 8-10. fejezeteinek feladatai)

 

 

ELÉRT PONTSZÁMOK:

 

Vizsgajegy:

60-69 pont: elégséges (2)

70-79 pont: közepes (3)

80-89 pont: jó (4)

90-100 pont: jeles (5)

 

Akik előző évben már gyakorlati jegyet szereztek, azoknak csak a két évfolyam zárthelyit kell megírni, és a következők alapján kapnak vizsgajegyet:

33-37 pont: elégséges (2)

38-43 pont: közepes (3)

44-49 pont: jó (4)

50-55 pont: jeles (5)

 

Akik elégtelent érnek el, azok számára két utóvizsga-időpont lesz megadva a vizsgaidőszakban. Ezek komplex írásbeli vizsgák lesznek a teljes féléves anyagból, és beugró feladatok is szerepelnek majd. Az UV-n 100 pontot lehet szerezni, a jegyhatárok változatlanok.

Hogy a féléves folyamatos munka ne vesszen kárba, még ha nem is sikerült elégségest szerezni, ezért a félév során szerzett pontokból HOZOTT PONTOKAT lehet szerezni, 6 pontonként 1-et, azaz maximum 9-et. (0-5: 0 HP, 6-11: 1 HP, …, 54-59: 9 HP) Így sok HP esetén kb. 1 jeggyel jobbat lehet kapni majd az UV-n.

 

Akik előző évben szereztek gyakorlatjegyet, azoknál a HOZOTT PONTOK a következők:  0-5: 0 HP, 6-8: 1 HP, 9-11: 2 HP, 12-14: 3 HP, 15-17: 4 HP, 18-20: 5 HP, 21-23: 6 HP , 24-26: 7 HP, 27-29: 8 HP, 30-32: 9 HP.

 

Gyakorlatjegy:

A gyakorlati jegyhez a fentiektől függetlenül két zárthelyit kell írni a gyakorlat időpontjában. A gyakorlati jegyhez szükséges követelményeket pontosan a gyakorlatvezetők fogják az első gyakorlaton meghatározni.

 

 

 

Tankönyvek:

 

    

 

 

A tervezett részletes tematika:

 

1.      Bevezetés a relációs adatbázis-kezelésbe

2.      A rendszerfejlesztés lépései, az egyed-kapcsolat modell

3.   A relációs adatbázis modell

4.   A relációs algebra műveletei

5.   Az Oracle 10g felépítése, komponensei, használata:

o       SQL*Plus, iSQL*Plus, SQL Developer

6. Az SQL nyelv

6.a) Az adatbázis adatainak lekérdezése

o       Egyszerű lekérdezések, feltételek, rendezés

o       Egysoros és csoportfüggvények

o       Lekérdezés egynél több táblából

o       Az ANSI összekapcsolási típusok

o       Lekérdezések egymásba ágyazása

o       Dátum és idő függvények az Oracle 10g –ben

o       Bonyolultabb lekérdezések

o       A halmaz operátorok használata

o       Hierarchikus lekérdezések

o       Feltételes kifejezések (CASE)

o       Korrelált és többoszlopos alkérdések

o       A lekérdezett adatok formázása

6.b) Adatkezelő utasítások

6.c) Adatdefiniáló utasítások

6.d) Kényszerek deklarálása, kezelése

6.e) Felhasználók és biztonság

7. Bevezetés a PL/SQL nyelvbe

o       Változók deklarálása

o       Végrehajtható utasítások írása

o       Kapcsolat az Oracle10g szerverrel

o       Procedurális programozás PL/SQL-ben

o       Vezérlő utasítások, ciklusok használata

o       Összetett adattípusok: rekordok, táblák

o       Explicit és implicit kurzorok használata

o       Kivételes helyzetek kezelése

8. Tárolt eljárások, függvények és csomagok

9. Adatbázis triggerek fejlesztése

10. Relációs adatbázisok tervezése

 

 

Előadáshoz kapcsolódó anyagok, linkek:

 

Oracle 10g R2 dokumentáció, angolul

iSQL*Plus (ablinux)

iSQL*Plus (medusa)

 

SQL Developer letöltése

Az SQL Developer beállításai az oradb és ablinux adatbázisokhoz:

 

I. évfolyam ZH anyaga:

Az előadás anyaga és ellenőrző kérdések (a válaszok az előadáson elhangzottak!):  (I. évfolyam ZH). A diákból egy hallgató által összeállított válaszok (Ellenőrizzétek!)

Adatbázis-kezelők, relációs adatmodell, relációs algebra, feladatok és megoldások relációs algebrában és SQL-ben  (I. évfolyam ZH: 1-90. oldalig)

SQL és PL/SQL összefoglalás (I. évfolyam ZH: 1-27. oldalig).

Bevezetés az Oracle 10g-be (I. évfolyam ZH).

Az SQL*Plus használata (I. évfolyam ZH).

Az iSQL*Plus használata, és oszlopok megadása a select utasításban (I. évfolyam ZH).

Sorok szűrésze és rendezése SQL-ben, helyettesítő változók használata (I. évfolyam ZH).

Sorfüggvények használata (I. évfolyam ZH).

Csoportosítás és aggregáció (I. évfolyam ZH).

Többtáblás lekérdezések (I. évfolyam ZH).

Az Oracle 10g fogalmai, felépítése, memóriakezelése, folyamatai (I. évfolyam ZH: 1-20. oldalig).

-------------------------------------------------------------------------------------

II. évfolyam ZH anyaga:

Ellenőrző kérdések: (Készítés alatt.)

Relációs algebrai feladatok és megoldások  (II. évfolyam ZH: 21-90. oldalig ISMÉTLÉS)

SQL és PL/SQL összefoglalás (II. évfolyam ZH: 28-48. oldalig)

Adatmodellezés, egyed-kapcsolat modell, átírás relációs modellbe, példák  (II. évfolyam ZH: 1-61. oldalig)

ODL, átírás relációs modellbe, példák  (II. évfolyam ZH: 62-86. oldalig)

UML, átírás relációs modellbe, példák  (II. évfolyam ZH: 87-111. oldalig)

Funkcionális függőségek, Armstrong axiómák, veszteségmentesség, függőségőrzés, minimális bázis, BCNF, 3NF normálformák, algoritmusok, példák  (II. évfolyam ZH: 112-158. oldalig)

Többértékű függőségek, axiómák, veszteségmentesség, 4NF normálforma, algoritmusok, példák  (II. évfolyam ZH: 159-173. oldalig)

 

 

A relációs adatbázisok tervezésénél csak azokat a bizonyításokat kell tudni, amelyek az előadáson szerepeltek. Akit érdekel vagy a megértéshez szükségesnek gondolja, a bizonyításokkal bővített anyag itt található: Bizonyítások

 

A példatár feladatai:

HR séma

A feladatokhoz szükséges táblákat előállító scriptek:

Az emp és dept táblák készítése

Az emp és dept táblák készítése megszorításokkal

Az emp1 és dept1 táblák készítése

Az emp1 és dept1 táblák készítése megszorításokkal

Az emp1 és dept1 táblák készítése emp és dept táblákból