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.
A ZH
feladatai: TESZT2A május 5.doc TESZT2B május 5.doc .
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)
Vizsgajegy:
50-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:
27-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. Az UV-ken a két ellenőrző kérdéssorból lesznek kérdések.
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:
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ése é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: (A kérdések után szereplő diákon
talalhatók meg a helyes válaszok!) A
diákból egy hallgató által összeállított válaszok (Ellenőrizzétek!)
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 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
Oracle 10g R2 dokumentáció, angolul
iSQL*Plus (ablinux)
iSQL*Plus (medusa)
Az SQL Developer beállításai az oradb és ablinux adatbázisokhoz: