MultiMédia az oktatásban Zsigmond Király Fıiskola Budapest, 2008. szeptember 25–26.
CZENKY MÁRTA
Grafikus eszközök az adatbázis-kezelés tanításában Szent István Egyetem, Gépészmérnöki Kar, Informatika Tanszék
[email protected] Absztrakt
Az egy féléves adatbázis-kezelési tárgyak fı témakörei az adatmodellezés és az SQL nyelv. Az adatmodellezés terén napjaink gyakorlati adatbázis-kezelıihez igazodva elsısorban a relációs, az objektum-relációs és az objektum-orientált adatmodellt, illetve az egyed-kapcsolat modell tanítjuk. Mind az adatmodellezés, mind az SQL nyelv tanításában helye van a grafikus programoknak. Az adatmodelleket a sémák megadásán túl grafikusan is ábrázolhatjuk, ezek a diagramok a vizuális szemlélető emberek számára jól áttekinthetık, könnyebben érthetık. Ilyen adatmodelleket megjelenítı diagramok: az egyed kapcsolat diagram (EK), a relációs modell táblázatai és kapcsolatai diagramon (RD), valamint az objektum-orientált adatmodellhez kapcsolódó UML osztálydiagram (UML). A relációs modellnél felrajzolható egy adott táblázatban fennálló funkcionális függıségeket megjelenítı függıségi diagram (FD). Az SQL nyelv tanulása terén kezdetben a fı gondot a szintaktikai hibák jelentik, melynek okozói elsısorban a gépelési hibák, az angol kulcsszavak helyesírási hibái. Problémát jelent a záradékok helyes sorrendő megadása, szemantikailag helyes használata. Az SQL utasítások néha nagyon összetettek és hosszúak, melyeknek megszerkesztése még az SQL-ben jártas személyek számára is megterhelı. Ezeken a nehézségeken kívánnak segíteni az SQL utasítások szerkesztését segítı grafikus programok. A cikkben az általunk használt, az oktatásába jól beilleszthetı grafikus programokat kívánom bemutatni.
MultiMédia az oktatásban Zsigmond Király Fıiskola Budapest, 2008. szeptember 25–26.
Diagramszerkesztı programok
Eddig csak a hallgatók kis része készített programmal szerkesztett diagramot, sokan a nyelvi nehézségekre hivatkoztak – nem ismerik az angol nyelvet. A másik visszatartó erı, hogy a géppel rajzolt diagramok elkészítésére fordított idı sok esetben hosszabb, mint kézzel rajzolás esetén, a hallgató pedig mindig idıhiánnyal küzd. A gépi diagramrajzolás mellett szólnak a következı érvek: • Igényesebb munkavégzésre kényszerít. • A programmal történı rajzolás arra készteti a hallgatókat, hogy jobban átgondolják a feladatot, pontosabban azonosítsák a modellezési alapelemeket, a köztük fennálló kapcsolatokat. • A rajzi elemek szerkesztés közben mozgathatók, tehát a diagram könnyen megváltoztatható, áttekinthetı diagramok készíthetık, nem úgy, mint papíron, amelynél egyre kisebb rajzelemek, egyre zsúfoltabban, egymást követhetetlenül keresztezı vonalakkal jelennek meg, és még az újrarajzolást sem tartják fontosnak a hallgatók, ha a diagram túl áttekinthetetlenre sikerült. • A géppel rajzolt diagramok könnyebben javíthatók, szemben a papíron készültekkel, melyeket javítás esetén újra kell rajzolni. • A programmal rajzolt diagramok esztétikusabbak. • A programmal rajzolt diagramok ellenırzése könnyebb (olvasható feliratok, áttekinthetıbb elrendezés). A gépészmérnök hallgatóktól már tanulmányaik elején elvárt a grafikus rajzoló programok ismerete (pl. AutoCAD), tehát az általunk javasolt egyszerő rajzoló programoknak a használata sem okoz túl nagy problémát. Ha tudunk magyar nyelvő programot is javasolni a nyelvi megértés sem akadály többé. Olyan diagramszerkesztı programokat kerestünk, melyek alkalmasak a kívánt diagramok, megszerkesztésére, valamint teljesítik az alábbi követelményeket is: • Windows operációs rendszer alatt mőködjenek, • legyenek ingyenesek, • legyenek könnyen installálhatók, • legyenek könnyen megtanulhatók és kezelhetık, • legyen hozzájuk súgó, esetleg tutorial, • az elkészített diagramot tudják valamely jól ismert képfájl formátumba exportálni.
MultiMédia az oktatásban Zsigmond Király Fıiskola Budapest, 2008. szeptember 25–26.
Program
Hozzáférés
EK
FD
UML
JPEG
X
X
Dia
freeware
X
X
Diagram Designer
open source
X
X
StarUML
open source
X
Tutorial angol
Nyelv magyar
X
angol
X
angol
1. táblázat: Az oktatásban használt ingyenes rajzoló programok tudásszintje
A Dia program fı elınye, hogy magyarosított változata is ingyen hozzáférhetı. A program alkalmas a kívánt diagramfajta közül három készítésére – egyed-kapcsolat diagram, függıségi diagram, UML osztálydiagram, de sokféle rajz és diagram készíthetı vele, többek között az informatikában használt folyamatábra, Jackson ábra, UML diagramok stb. Rétegeket kezel, a diagramok eleminek kiválasztását diagramfa megjelenítésével könnyíti meg. A program többféle fájlformátumba tudja a diagramokat exportálni. Hátránya, hogy a súgó és a tutorial is angol nyelvő.
1. ábra: Dia programmal rajzolt egyed-kapcsolat diagram
A Diagram Designer open source program, rétegeket kezel, a rajzi objektumok sablonokon keresztül érhetık el, a rajzi elemek objektumfán keresztül is kijelölhetık. A diagramok különbözı rajzi formátumokba exportálhatók. A program nyelve telepítéskor határozható meg, a nyelvi ellenırzésre különbözı szótárak állnak rendelkezésre. Sajnos a magyar nyelv nem szerepel a kezelt nyelvek között. A programmal többek között sokszögeket tartalmazó rajzokat,
MultiMédia az oktatásban Zsigmond Király Fıiskola Budapest, 2008. szeptember 25–26.
elektronikus rajzokat, folyamatábrákat lehet rajzolni, de grafikus felhasználó felület tervezésére is alkalmas. A számunkra kívánt diagramok közül az egyed-kapcsolat és a függıségi diagram készíthetı el vele. A StarUML open source program. UML tervezésre használható, elkészíthetık vele az UML 2.0 alapján az osztálydiagram, a használati eset diagram, az együttmőködési diagram, az állapot diagram, a szekvencia diagram, az aktivitás diagram, a komponens diagramok, a telepítés diagramok és az összetett struktúradiagramok. Mi a szoftvert osztálydiagramok készítésére használjuk, melyek JPEG, bitmap és metafájl formátumba exportálhatók.
2. ábra: A Diagram Designer programmal készített függıségi diagram
3. ábra: A StarUML programmal készült UML osztálydiagram
Az órai munka feszítettsége miatt ezekkel a programokkal órán nem foglalkozunk, a házi feladat készítésekor elıírjuk a használatukat. A házi feladatnak tartalmaznia kell az adatmo-
MultiMédia az oktatásban Zsigmond Király Fıiskola Budapest, 2008. szeptember 25–26.
dell tervezés módjától függıen a géppel rajzolt EK, vagy RD, vagy FD diagramot. A programok kezelését videón mutatjuk be. Az egyed-kapcsolat és a függıségi diagramok készítésekor az angolul nem tudó hallgatók a Dia programot részesítik elınyben. Bár a Dia programmal is lehet UML osztálydiagramot készíteni, annak rajzolásához magasabb tudásszintje miatt inkább a StarUML programot javasoljuk.
Adatmodell és lekérdezés szerkesztık
Számtalan ingyenes programot találtam, melyekkel különféle relációs adatbázisok objektumait és adatait lehet grafikus felületen kezelni. Ezek a programok az adatbázis objektumait általában objektumfában jelenítik meg, rendelkeznek egy egyszerő SQL editorral, és az eredmények megjelenítésére szolgáló felülettel, valamint biztosítják az SQL utasítások mentését. Az egyéb szolgáltatásaik eléggé eltérık: némelyik engedi új táblázatok és egyéb objektumok létrehozásával az adatbázist bıvíteni. Mások lehetıvé teszik az adatbázis séma grafikus megrajzolását – melyet általában ERD-nek (Entity-Relationship Diagram) neveznek, de mivel ez esetben a táblázatok oszlopainak, a kulcsoknak és a kapcsolatoknak a megjelenítésérıl van szó, és nem az elızı részben bemutatott diagramról, ezt az elnevezést én nem használom, helyette az RD rövidítéssel hivatkozom erre a diagramfajtára. Általában az RD diagramból adatleíró (DDL) SQL utasításokat tartalmazó szkriptek generálására is van lehetıség. Bizonyos szoftvereknél az RD diagram létrehozása az adatbázisból automatikus – reverse engineering. Némely szoftver a módosított diagramot szinkronizálni tudja az adatbázissal. Egyes szoftvereknél a lekérdezés-szerkesztık (Query Builder Editor - QBE) a táblázatok oszlopainak megjelenítése után rácson, vagy vezérlıelemek, esetleg a SELECT utasítás grafikus megjelenítése segítségével biztosítják a lekérdezések SQL utasításainak megszerkesztését. A lekérdezés szerkesztık elınyei: • Az SQL utasítások szintaktikai és szemantikai szabályainak kellı ismerete nélkül is eredményre vezethetnek. • Segítenek megtanulni többek között a foglalt szavakat, a záradékok sorrendjét, predikátumok és aggregátfüggvények alkalmazásának mikéntjét,
MultiMédia az oktatásban Zsigmond Király Fıiskola Budapest, 2008. szeptember 25–26.
az összekapcsolási mőveletek megvalósítását, esetleg az alkérdések írásának szabályait. A lekérdezések szerkesztéséhez rács áll rendelkezésre többek között az oktatásban használt MS SQL Server Express és Access adatbázis-kezelıkben is. Sajnos ez a megoldás az alkérdések összeállításában nem segít, az alkérdés SQL utasítását a felhasználónak önállóan kell megszerkeszteni és a feltétel sorba begépelni. Ugyancsak nem támogatja az egyesítés mőveletét, illetve a felújító utasítások szerkesztését sem. Olyan programokat kerestünk, melyek • Képesek kezelni SQL Server és/vagy a hallgatók által igen kedvelt MySQL adatbázisokat, illetve ODBC-n vagy JDBC-n keresztül más típusú adatbázisokat is. • Rendelkeznek az alábbi funkciók közül eggyel vagy többel: RD készítés. Reverse engineering. RD szinkronizálás az adatbázissal. RD alapján az adatbázist létrehozó DDL szkript létrehozása. A QBE rácsoknál jobb lekérdezés-szerkesztés. SQL editor. Természetesen itt is szempont volt az ingyenesség, a könnyő installáció és kezelhetıség. Az ingyenes programokkal fennáll az a probléma, hogy fejlesztésük nem tart lépést az adatbázis-kezelı rendszerek fejlesztésével, ez alól talán kivétel a MySQL, így magasabb tudásszintő programok bizonyos funkciói az újabb verziójú adatbázis-kezelıkkel nem használhatók. A kiválasztott programok tudásszintjét, és az általuk kezelt adatbázisokat a 2. és 3. táblázat tartalmazza. Program Toad Data Modeler freeware DBDesigner4 freeware Free Query Builder open source Open System Architect open source SQLeonardo open source
Reverse engineering
Szinkronizálás
SQL felület
Query Builder
X X
X
X
X
X X
X
X
RD
DDL szkript
X X X
X X
2. táblázat: A vizsgált, adatbázisokat kezelı programok tudásszintje
X
MultiMédia az oktatásban Zsigmond Király Fıiskola Budapest, 2008. szeptember 25–26.
Oracle X
Program Toad Data Modeler DBDesigner4 Free Query Builder Open System Architect SQLeonardo
DB2 X
MS SQL Server X
MySQL
Access
X
X
Postrgre SQL X
Sybase X
X X X X
X
X
X
X
X
X
X
X
ODBC JDBC ODBC ODBC JDBC ODBC
3. táblázat: A vizsgált programok által kezelt adatbázisok
A Toad Data Modeler programnak van ingyenes változata is, mely természetesen csökkentett tudásszintő, de kiválóan alkalmas RD és DDL szkript készítésére, a diagram ellenırzésére. Korlátja többek között, hogy maximum 25 táblázatból álló diagram készíthetı vele. Sajnos ez a változat nem tartalmazza a reverse engineering funkciót, és nem rendelkezik lekérdezésszerkesztıvel sem.
4. ábra: A Toad Data Modeler programmal készített logikai relációs adatmodell
MultiMédia az oktatásban Zsigmond Király Fıiskola Budapest, 2008. szeptember 25–26.
5. ábra: DBDesigner4 program reverse engeneering funkciójával készült grafikus relációs séma
A DBDesigner4 program ingyenesen hozzáférhetı, MySQL adatbázisokkal, ODBC kapcsolaton keresztül tudja a jelzett funkciókat végrehajtani. Sajnos nem fejlesztik tovább, a többi felkínált adatbázist vagy nem tudja megnyitni, vagy az egyes funkciókat sehogy vagy hibásan hajtja végre. Amiért mégis érdemes foglalkozni vele: a reverse engineering és a szinkronizálás funkció, illetve a grafikus lekérdezés-szerkesztı, mely a SELECT utasítások mellett az INSERT, a DELETE és az UPDATE utasítások szerkesztését is támogatja, viszont nem nyújt segítséget a predikátumok, aggregát függvények, kiválasztási feltételek és az alkérdések használatához. A programot kívánják kiváltani az SQL Workbench szintén ingyenes programmal, de sajnos e program tudásszintje kisebb. A FreeQueryBuilder program nevébıl adódóan lekérdezés-szerkesztı. Nem a szokásos rácsot alkalmazza, hanem különbözı lapokon vezérlıelemek segítségével szerkeszthetık meg a SELECT utasítás záradékai. Nem használja a BETWEEN predikátumot, nem választhatók listából az aggregátfüggvények, és sajnos nem támogatja az alkérdéseket és az egyesítést tartartalmazó lekérdezéseket. Nem rendelkezik SQL editorral, a szerkesztett SELECT utasítás megtekinthetı, de manuálisan nem szerkeszthetı. Az Open System Architect program logikai és fizikai adatmodell, valamint DDL szkript készítésére alkalmas, a fizikai adatmodell reverse engineering funkcióval az adatbázis alapján is létrehozható, az elkészített adatmodellek ellenırizhetık. A program rendelkezik SQL felü-
MultiMédia az oktatásban Zsigmond Király Fıiskola Budapest, 2008. szeptember 25–26.
lettel is. Nagy hátránya, hogy az adatbázisból készített adatmodellekben az ékezetes betők nem jelennek meg, az SQL lekérdezésekben viszont használhatók. Az SQLeonardo open source program ODBC-JDBC-n keresztül nyitja meg az adatbázisokat, illetve Oracle Thin-t kezel. Az adatbázisokat és objektumaikat objektumböngészıben jeleníti meg. Van SQL felülete, egy nagyon jó lekérdezés-szerkesztıje és egy parancs szerkesztıje, ez utóbbi a felújító parancsok szerkesztéséhez, biztosítja továbbá az adatbázis sémák összehasonlítását is.
6. ábra: SELECT utasítás grafikus megjelenítése az SQLeonardo programban
Az SQLeonardo program lekérdezés-szerkesztıje, a legjobb a vizsgált programok között, grafikusan jeleníti meg az egymásba épülı SELECT utasításokat, míg a tényleges utasítás is megtekinthetı és javítható az SQL felületen. Tudja kezelni az alkérdéseket és az uniót is. Érdekesség, hogy a BETWEEN predikátumot nem használja, a többi predikátum használatát biztosítja, az aggregát függvények listából történı kiválasztását is lehetıvé teszi.
MultiMédia az oktatásban Zsigmond Király Fıiskola Budapest, 2008. szeptember 25–26.
7. ábra: Az SQLeonardo program parancs editora
RD készítésére a Toad Data Modeler, illetve az Open System Architect programot javaslom. Mindkettı generált DDL szkriptet, az utóbbiban az végre is hajtható. Ezekkel a programokkal órán nem foglalkozunk, használatuk megtanulásához videó áll rendelkezésre. A táblázatok adatokkal való feltöltése interaktívan könnyebb. A kiválasztott szoftverek ilyen felületet nem biztosítanak, az adatbázis-kezelık viszont igen. Vagy azt használják a hallgatók, vagy SQL felületen INSERT utasításokkal töltik fel a táblázatot. Az SQL nyelv tanulásához, a lekérdezések szerkesztéséhez az SQLeonardo programot javaslom. Lekérdezés-szerkesztıjével mindenfajta lekérdezés elıállítható, nagyon nagy elınye, hogy az SQL utasítást grafikusan is megjeleníti, nem kell mindig átváltani az SQL felületre. Parancs editora támogatja a felújító utasítások szerkesztését. A program használatát órán tanulják meg a hallgatók, utána maguk döntik el, hogy ezt a programot, vagy az SQL Server Management Studio programot használják lekérdezések szerkesztésére. A DBDesigner4 és a FreeQueryBuilder programok kipróbálása a hallgatók önálló feladata. Legalább az elsı program reverse engineering és szinkronizálás funkcióinak megismerését szeretnénk elérni.
SQLite adatbázist kezelı programok
Az SQLite egy adatbázis motor, mely nem igényli adatbázis szerver használatát. A teljes adatbázist egy fájlban tárolja, közvetlenül írja és olvassa azt. Több felhasználós, tranzakció kezelı. Az adatbázisok kezelése vagy parancssorból, vagy valamilyen programmal történhet.
MultiMédia az oktatásban Zsigmond Király Fıiskola Budapest, 2008. szeptember 25–26.
Ezt a lehetıséget azoknak a hallgatóknak ajánlom a házi feladat elkészítéséhez, akik nem kívánnak adatbázis szervert és programot installálni, mert az SQLite adatbázist kezelı programok általában nem igényelnek installálást – a futtatható program, vagy annak tömörített változata tölthetı le. Számos ingyenes program kezel SQLite adatbázist. Közülük az SQLite Studio és az SQLite Database Browser használatát javasoljuk. Az SQLite Studio támogatja az adatbázis létrehozást, vagy megnyitást, adatbázisfán jeleníti meg az adatbázisok objektumait, táblázatokat, indexeket, triggereket és nézeteket kezel. Komplett adatmodell definíció - elsıdleges, és idegen kulcs, Null érték kezelés és default érték kijelölés, megszorítások megadása, oszlop és táblázat kényszerek, hivatkozási feltétel teljesülése biztosítási módjának kijelölése. Az adatbázis objektumokat elıállító DDL utasításokat is generálja. Van SQL felülete, az eredményt táblázatosan vagy őrlapon keresztül jeleníti meg, az SQL utasításokat menti, history is rendelkezésre áll. SQL nyelvjárása az SQL-92 szabványt követi. Az adatbázis adatai és a lekérdezések eredménye exportálhatók CSV, HTML, XML és SQL formában, ez utóbbi INSERT utasításokat hoz létre a kívánt adatokkal. Sajnos a jelzett formátumú adatokat importálni nem tudja. Az SQLite Database Browser egy nagyon kis tudásszintő program, de tud CSV formátumú fájlból adatokat importálni, használatát ezért javasoljuk. Az SQLite Studio program alkalmas a házi feladat elkészítésére, valamint megfelelı eszköz az SQL nyelv tanulásához is.
Összefoglalás
Összefoglalásként elmondható, hogy megfelelı grafikus eszközök állnak rendelkezésre az adatbázis-kezelés oktatásában ahhoz, hogy a hallgatók, igényesen, áttekinthetıen jelenítsék meg grafikusan a különbözı adatmodelleket, illetve kellı támogatást kapjanak az SQL nyelv utasításainak megtanulásához.
MultiMédia az oktatásban Zsigmond Király Fıiskola Budapest, 2008. szeptember 25–26.
Irodalom
[1] About SQLite, http://www.sqlite.org/about.html [2] Czenky Márta: Adatmodellezés, SQL és Access alkalmazás, SQL Server és ADO ComputerBooks Kiadó, Budapest, 2005, p. 458 [3] Dia for Windows http://dia-installer.de/index_en.html [4] Dia Tutorial http://www.gnome.org/projects/dia/diatut/all/all.html [5] Julie C. Meloni: Tanuljuk meg a MySQL használatát 24 óra alatt, Kiskapu Kiadó, Budapest, 2003, p. 400 [6] Open System Architect http://www.codebydesign.com/ [7] SQLeonardo http://sqleonardo.altervista.org/index.htm [8] StarUML http://staruml.sourceforge.net/en/modules.php [9] Stolnicki Gyula: SQL kézikönyv, ComputerBooks Kiadó, Budapest, 1995, p. 494 [10] Toad Data Modeler http://www.toadsoft.com/toaddm/toad_data_modeler.htm [11] J. D. Ullman – J. Widom: Adatbázisrendszerek alapvetés, Panem, Budapest, 1998, p. 507