Informatika a felsőoktatásban 2008
Debrecen, 2008. augusztus 27-29.
ADATBÁZISRENDSZEREK OKTATÁSA AZ ESZTERHÁZY KÁROLY FŐISKOLÁN TEACHING OF DATABASE SYSTEMS IN ESZTERHÁZY KÁROLY UNIVERSITY
Vágner Anikó Eszterházy Károly Főiskola, Információtechnológiai Tanszék Összefoglaló A cikkben az Eszterházy Károly Főiskolán oktatott, adatbázisrendszerekkel kapcsolatos tantárgyak, és az oktatásukban megszerezhető ismeretek kerülnek tárgyalásra. Ismertetem a képesítési követelményeket és az alapozó képzésben az adatbázisok oktatásának megkezdése előtt megszerzett szakmai ismereteket. Ezután az adatbázisokhoz kapcsolódó kötelező és kötelezően választható tantárgyak ismertetése jön, majd az oktatás körülményeinek és az oktatási tapasztalatoknak a leírása következik. Megemlítem az Oracle Academy programot is.
Kulcsszavak oktatás, adatbázisrendszerek
Abstract Subjects concerning to the database systems that are taught at the Eszterházy Károly Univesity and experiences gained in the education are discussed in this paper. The qualification requirements and the professional knowledge acquired in fundamentals training before training of databases are described first. Then compulsory vocational subjects and compulsory vocational subjects of choice concerning to the databases are presented together with the circumstances and experiences of education. Of course, Oracle Junior Academy is mentioned as well.
Keywords education, database systems
1
Informatika a felsőoktatásban 2008
Debrecen, 2008. augusztus 27-29.
1. Bevezetés A programtervező informatikusok alapoktatásában a fő cél az, hogy a hallgatók használható gyakorlati ismereteket sajátítsanak el. A mai információs rendszerek működése elképzelhetetlen adatbázis-kezelő, adattárház, adatbányászat nélkül. Az adatbázis-kezelés tehát a képzés egyik súlypontját alkotja. A főiskolán minden programtervező informatikus hallgató megismerkedik az adatbázisrendszerekkel. A törzsképzésen belül a hallgatók a relációs adatbázisokkal kapcsolatos alapfogalmakat tanulják, és számítógépes laborban gyakorlati tudást szereznek. Kötelező az Adatbázisrendszerek megvalósítása című tárgy is, ez a tranzakció-, és konkurenciakezelést tartalmazza. A törzsképzés után a hallgatóknak a differenciált szakmai képzés keretében három tantárgycsoportból (sávból) kell kötelezően bizonyos számú tantárgyat választaniuk. Az „A“ sávban vannak adatbázisrendszerekkel kapcsolatos tárgyak, ezek felvételével a hallgató további adatbázis ismeretekre tesz szert. A diploma megszerzéséhez a hallgatóknak a szabadon választható tárgyak közül is teljesíteniük kell néhányat. Ezeket az érdeklődésüknek megfelelően, illetve az előfeltételek szerint vehetik fel. Az Eszterházy Károly Főiskolán 2005-ben indult a Programtervező Informatikus BSc szak mind nappali mind levelező tagozaton. Az első Programtervező Informatikus hallgatók az idén végeztek. 2. A PTI BSc szak képesítési követelménye A tanulmányi kalauz szerint a hallgatók 48 kreditet szereznek az alapozó képzésben, majd a törzsképzésben a kötelező tanegységekkel további 75 kreditet. A differenciált szakmai ismeretek (sávok) a következők: Adatmodellek, Hálózatok, Komputergrafika és geometria, Matematikai módszerek az informatikában. A hallgatóknak 3 általuk választott sávból 4-4 kreditet kell megszerezniük. Illetve még 10 kreditet kell megszerezniük vagy a sávos tárgyakból vagy a szabadon választható szakmai tanegységekből. A szakdolgozat 20 kredit, 7 kredit értelmiségi modult és 8 kredit szabadon választott tanegységet kell a hallgatóknak teljesíteniük a diplomájukhoz. Ez így összesen 180 kredit. 1. táblázat: Az alapozó képzés szakmai tanegységei az első félévben
A tanegység neve Magasszintű nyelvek I. gy.
programozási
Magasszintű nyelvek I. ea.
programozási
Az
informatika
Nappali Levelezős Köv. heti féléves tanóra tanóra
Előfeltétel
Kredit
Gy
2
12
2
K
2
12
Magasszintű programozási nyelvek I. 3 gy.
logikai K
2
18
Az informatika logikai 3
2
Informatika a felsőoktatásban 2008
Debrecen, 2008. augusztus 27-29.
alapjai ea.
alapjai gy.
Az informatika alapjai gy.
logikai
2
-
Bevezetés az informatikába K ea.
2
18
Bevezetés az informatikába Gy gy.
2
-
2
Számítógép architektúrák
K
2
9
3
Automaták nyelvek ea.
K
2
9
3
és
formális
Gy
2 Bevezetés informatikába gy.
az
2
2. táblázat: Az alapozó képzés szakmai tanegységei a második félévben
A tanegység neve
Köv.
Adatszerkezetek algoritmusok ea.
és
Adatszerkezetek algoritmusok gy.
és
Levelezős féléves tanóra
Heti tanóra
Előfeltétel
Kredit
K
2
18
Adatszerkezetek algoritmusok gy.
és
Gy
2
-
Bevezetés informatikába ea.
az
Magasszintű programozási K nyelvek II. ea.
2
12
Magassz. programozási nyelvek II. gy. Magassz. programozási nyelvek I. ea.
3 2
3
Magasszintű programozási Gy nyelvek II. gy.
2
12
Magasszintű programozási nyelvek I. 2 gy.
Operációs rendszerek I. ea.
K
2
10
Operációs rendszerek I. 3 gy.
Operációs rendszerek I. gy.
Gy
2
10
Bevezetés informatikába ea.
az
2
3. táblázat: A törzsképzés adatbázisrendszerekhez kapcsolódó tanegységei
A tanegység neve
Köv.
Levelezős féléves tanóra
Heti tanóra
Előfeltétel
Kredit
Adatbázisrendszerek ea.
K
2
9
Adatbázisrendszerek gy. 3
Adatbázisrendszerek gy.
Gy
2
9
Adatszerkezetek algoritmusok ea.
Adatbázisrendszerek
K
2
9
Adatbázisrendszerek ea. 2
3
és
2
Informatika a felsőoktatásban 2008
Debrecen, 2008. augusztus 27-29.
megvalósítása I. 4. táblázat: Az adatmodellek sáv tanegységei
A tanegység neve
Levelezős féléves tanóra
Heti Köv. tanóra
Előfeltétel Adatbázisrendszerek megvalósítása I.
Kredit
Adatbázisrendszerek megvalósítása II.
K
2
9
OO adatmodellek
K
2
9
Haladó DBMS ismeretek ea. K
2
18
Haladó DBMS ism. gy.
Haladó DBMS ismeretek gy. Gy
2
-
Adatbázisrendszerek ea. 2
2 2 2
3. Az alapozó képzésben szerzett ismeretek 3.1.
Bevezetés az informatikába
Az alapozó képzésben az iskola hagyományainak megfelelően hallgatják ezt a tárgyat, melyen belül az információról tanulnak, majd a számrendszerek megismerése után a különböző típusú adatok tárolási módját, illetve a velük végezhető műveleteket ismerik meg, majd kódolási eljárásokkal ismerkednek. Gyakorlaton ezek gyakorlása mellett az alkalmazói szoftverek használatát tanulják. 3.2.
Informatika logikai alapjai
A tárgyon belül elsőrendű logikai nyelvekkel, termekkel, formulákkal ismerkednek, illetve logikai törvényekkel, ellentmondásokkal. 3.3.
Automaták és formális nyelvek
A Chomsky-féle nyelvosztályokkal ismerkednek meg, és az ehhez kapcsolódó fogalmakkal, illetve a hozzájuk kapcsolódó automatákkal. 3.4.
Számítógép architektúrák
A számítógép belső felépítését részletezik, a processzorok, memóriák működését, a háttértárak felépítését, illetve a perifériákról tanulnak. 3.5.
Magasszintű programozási nyelvek 1-2.
Elsősorban C#-pal foglalkoznak. Megismerkednek a következő kifejezésekkel: karakterkészlet, lexikális elemek (szimbolikus nevek, címke, megjegyzés, literálok), változó, nevesített konstans, adattípusok (beépített és programozói, egyszerű és összetett), deklarációk, kifejezések, végrehajtható utasítások, értékadó, ugró, feltételes utasítások, többirányú elágaztatás, ciklusszervezési lehetőségek, programegységek, paraméterkiértékelés, paraméterátadás, hatáskör és élettartam, fordítási egységek, input-output, állományok kezelése. A második félévben az objektumorientált nyelvek eszközrendszerével ismerkednek: védelmi szintek, adatrejtés és annak problémái, adattagok, mezők, metódusok, öröklődés és annak problémái, korai és késői kötés, Virtuális Metódus Tábla, konstruktorok és destruktorok, "THIS" és "SEALED", indexelők, névterek, típuskompatibilitás, IS és AS
4
Informatika a felsőoktatásban 2008
Debrecen, 2008. augusztus 27-29.
operátorok, abstract osztályok, interface, kivételkezelés, operátorok, assembly (DLL), generic típusok, Partial Class, Boxing, Unboxing, Callback függvények. 3.6.
Operációs rendszerek
Az operációs rendszer fogalmának megismerése után megvizsgálják a hardver eszközöket az operációs rendszer szemszögéből nézve. Osztályozzák az operációs rendszereket, megvizsgálják a részeit, funkcióit, szolgáltatásait. Gyakorlaton UNIX operációs rendszerrel ismerkednek meg a hallgatók. 3.7.
Adatszerkezetek és algoritmusok
Megtanulják az algoritmus fogalmát, szerkezeti egységeit, tulajdonságait. Megismerkednek az algoritmus leíró eszközökkel, és ezek segítségével illetve programozási nyelven leírják az alapvető algoritmusokat: összegzés, kiválasztás, eldöntés, kiválogatás tételei, kereső (lineáris és logaritmikus keresés) és rendező (közvetlen-kiválasztással, minimum-kiválasztással, buborék, beszóró, Shell, Quicksort) algoritmusok. Taglalják az algoritmus hatékonyságával kapcsolatos ismereteket. Megtanulják az adatszerkezetek fogalmát, osztályozzák őket, és megismerkednek az adatszerkezeten végrehajtható műveletekkel (létrehozás, bővítés, törlés, csere, rendezés, keresés, elérés, bejárás, feldolgozás). Megismerkednek az adatszerkezetek ábrázolásával és reprezentációjával. 4. A törzsképzésben az adatbázisrendszerekhez kapcsolódó tantárgyak 4.1.
Adatbázisrendszerek
Az előadáson az adatbázis és az adatbázis-kezelő rendszer forgalmát ismerik meg a hallgatók, néhány alapfogalmat tisztáznak: adatredundancia, ANSI/SPARC modell, adatfüggetlenség, adatintegritás, adatvédelem, adatbázisok megosztása. Az adatbázisok tervezéséhez kapcsolódóan megismerik az egyed-tulajdonság-kapcsolat modellt, illetve a kulcsokat. A relációs modellel, és annak tulajdonságait tanulják, megismerik a funkcionális függés fogalmát, az Amstrong-axiómákat. Normálformákról tanulnak, és az adatkezelési műveletek anomáliáiról. Megismerik a relációalgebrai műveleteket. Az SQL utasításait csoportosítják, majd részletezik. Megnézik az egyszerű, aggregáló, kiválasztó, csoportosító lekérdezéseket, rendeznek. Megvizsgálják a több táblára vonatkozó lekérdezéseket, táblákat összekapcsolnak, illetve a beágyazott lekérdezéseket. Kapnak egy kis betekintést a PL/SQL programozási nyelvbe. Az Oracle adatbázis-kezelő rendszerről hallgatnak. Gyakorlaton Oracle környezetben gyakorolják az SQL utasításokat SQL*Plus illetve SQL Worksheet segítségével. 4.2.
Adatbázisrendszerek megvalósítása 1.
Az előadássorozaton a tranzakció fogalma és tulajdonsága kerül ismertetésre. Megnézik, milyen hibák fordulhatnak elő, és ezek kezelésére adnak megoldást. Vizsgálják a különböző naplózási technikákat, semmisségi, helyrehozó, semmisségi/helyrehozó naplózás, illetve az archiválást. Megtekintik, mindez speciálisan hogyan néz ki az Oracle adatbázis-kezelő rendszerben. A tantárgy második részében konkurenciavezérléssel foglalkoznak: az ütemezés fogalmát és annak tulajdonságait tárgyalják, illetve a konfliktus-sorbarendezhetőséget és a megelőzési gráfot ismerik meg a hallgatók. A zárolási technikákon belül a kétfázisú zárolás fogalmát, a különböző zármódokat tárgyalják, megismerik a zártáblát, és bemutatják a zárolási ütemező működését, majd kitérnek a figyelmeztető protokollra. Megismerkednek a
5
Informatika a felsőoktatásban 2008
Debrecen, 2008. augusztus 27-29.
hallgatók az időbélyegzésen és az érvényesítésen alapuló ütemező működésével. A konkurenciavezérlést is megnézik az Oracle adatbázis-kezelő rendszerben. 5. Adatmodellek sáv tantárgyai 5.1.
Adatbázisrendszerek megvalósítása 2.
Az előadássorozaton Oracle adatbázis-adminisztrátori ismereteket hallgatnak a hallgatók. Megvizsgálják az Oracle architektúra összetevőit, ezen belül a példány, az adatbázis fogalmát, a felhasználói és szerver folyamatot. Az Oracle példány bővebben kerül ismertetésre, így megnézik az elindítás és a leállítás szakaszait, az inicializációs paraméter-állományt, az adatbázis-adminisztrátor felhasználókat. Az adatbázist is részletesebben elemzik: a létrehozás előfeltételeit, az adatbázis-állomány helyét, a vezérlőállományokat, a naplóállományokat, itt kitértünk a naplócsoport és naplótag fogalmára, a naplópufferre, a LGWR háttérfolyamatra, az ellenőrzési pontokra, a naplóállományok archiválására, illetve kitérnek a lehetséges LGWR hibákra. Megvizsgálják az adatbázis szerkezetét: táblaterek, szegmensek, kiterjesztések, blokkok. 5.2.
Haladó DBMS ismeretek
Az órán a PL/SQL nyelvet tárgyalják. Az alapelemek, adattípusok megismerése után a kifejezéseket, a végrehajtható utasításokat, a vezérlési szerkezeteket tanulják. Az ismert SQL utasításokat megnézik hogyan lehet használni PL/SQL-ben. Tanulják a programegységeket: blokk, alprogram, illetve a kivételkezelést. Tárolt alprogramokat írnak, majd megvizsgálják a kurzorokat, kurzorváltozókat. Foglalkoznak a triggerekkel, illetve a csomagokkal. Gyakorlaton mindezt Oracle adatbázis-kezelő rendszerben valósítják meg az SQL Developer segítségével. A tantárgyhoz tankönyvként Gábor-András – Juhász István: PL/SQL programozás 10g-ben című könyvet használják. A gyakorlati jegy szerzése gép mellett történt, a vizsgajegyet 2006/2007-es tanévben szóban a 2007/2008-as tanévben írásban szerezték meg. 5.3.
OO adatmodellek
Bemutatásra kerülnek a relációs adatmodell korlátai és ennek feloldására különböző adatmodellek: szemantikus, objektumrelációs, objektum-orientált. Megtárgyalják a generalizáció, a specializáció, az aggregáció fogalmát, a GOP rendszereket. Illetve a hallgatók különböző szabványokkal ismerkednek meg az adatmodellek területén. Ez a tantárgy eddig még nem került meghirdetésre. 6. Infrastruktúra Az adatbázis szervert egy Compaq Evo W6000-es számítógépen fut, a szervernek két 2,4 GHz-es Intel Xeon processzora van, és 1 GB-os memóriája. A számítógépre Windows Server 2003 R2 Enterprise Edition Service operációs rendszer fut. Erre került 2005/2006-os tanévben egy Oracle 10g Enterprise Edition, a 2006/2007-es tanévben Oracle 11g 11.1.0.6.0 Enterprise Edition adatbázis szerver. A matematikai és informatikai intézetnek 3 saját gépterme van, amelyekben 20 gép van, Windows XP fut rajtuk. Adatbázisrendszerek gyakorlaton csak SQL*Plus-t illetve SQL
6
Informatika a felsőoktatásban 2008
Debrecen, 2008. augusztus 27-29.
Worksheet-et használnak, azaz Oracle kliens van telepítve. Haladó DBMS órán pedig SQL*Developert használnak. Az adatbázis szervert otthonról is elérhetik a hallgatók. 7. Oracle Academy Program Az Oracle Hungary nagymértékben támogatja az Eszterházy Károly Főiskolán folyó adatbázis-oktatást. Bekapcsolódtunk az Oracle Academy Programba, mellyel megkaptuk a szükséges szoftvereket, illetve dokumentációt, tananyagot érhetünk el. Az Oracle Junior Professional képzési programban hallgatóink vettek részt, amelyben egy előadássorozatot hallgathattak a hallgatóink Nagy méretű adattárházak és BI rendszerek tervezése és üzemeltetése címmel. A program vizsgával zárult, melyen 3 hallgatónk kiváló eredménnyel teljesített. A program keretein belül az Oracle Hungary felvállalta a házigazda szerepét, és egy-egy félnapos program keretében összehozza az ország különböző egyetemein, főiskoláin adatbázisrendszerekkel foglalkozó oktatóit. 8. Oktatási tapasztalataim Az adatbázisrendszerekkel kapcsolatos tárgyak közül az Adatbázisrendszerek gyakorlatot, az Adatbázisrendszerek megvalósítása 1 és 2 előadássorozatokat illetve a Haladó DBMS ismeretek tantárgyat tartottam. 8.1.
Adatbázisrendszerek gyakorlat
A legnagyobb hangsúly a lekérdezések kapták. A hallgatók az egytáblás lekérdezésekkel még elég jól boldogulnak, de a táblák összekapcsolását már nehezen fogják fel. DDL, DML és DCL utasítások kerülnek még ismertetésre. 8.2.
Adatbázisrendszerek megvalósítása 1.
A tárgyat a hallgatók tömény elméletnek tartják. Az eddigi főiskolai tanulmányaik során ennyire elméleti tárggyal talán még nem is találkoztak. Az egyik hallgatóm megkérdezte, hogy milyen célból tanulják ezt a tárgyat és mi a gyakorlati haszna, amiből számomra az derült ki, hogy semmi értelmét nem látja. Viszont aki ráérez a tantárgy dallamára, nagyon szépen meg tudja tanulni, és logikusan átlátni az egésznek az elméletét. 8.3.
Adatbázisrendszerek megvalósítása 2.
A tantárgy már a sávos tárgyak közé tartozik. A legfontosabb célom mindenképp az volt, hogy a hallgatókat ne riasszam el a tantárgytól. A tantárgyat igyekeztem úgy formálni, hogy ha valamelyik hallgató később adatbázisrendszerekkel szeretne foglalkozni, az itt tanultaknak mindenképp hasznát vegye. 20 nappalis hallgatóból 18-an eredményesen vizsgáztak a tárgyból, illetve a 24 levelezősből 17-en, ezzel valóban nem riadtak el. Az Oracle Junior Professional képzési program Nagy méretű adattárházak és BI rendszerek tervezése és üzemeltetése előadássorozathoz tartozó vizsgán az első 4-5 kérdésre a választ a hallgatók a nálam tanultak alapján is megválaszolhatták. 8.4.
Haladó DBMS ismeretek
A tantárgyban tulajdonképp összeillesztjük az eddigi programozási ismereteiket az adatbázissal kapcsolatos ismereteikkel, és néhány új fogalmat adunk hozzá. A hallgatók a
7
Informatika a felsőoktatásban 2008
Debrecen, 2008. augusztus 27-29.
gyakorlatát a tárgynak élvezni szokták, bár a tanulmányok során sokszor tapasztalom, annak a hátrányát, hogy csak a C# nyelvet ismerik, és azt szeretnék a PL/SQL-ben is használni. Az előadással sem szokott problémájuk lenni, hisz kézzel fogható dolgokat tanulunk, amit gyakorlaton megnézünk gép mellett. A levelezős hallgatóknál a tantárgyra összesen 18 óra előadás jutott. Az órát sikerült gépterembe szervezni, így az egyes elméleti részeket meg tudtuk nézni példákon keresztül azonnal a gyakorlatban is.
8