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)
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)
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 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