Szponzorált hirdetés

2007. június 19.

OKJ vizsga rendszerinformatikus - Adatbázis-kezelés V. tétel

Fontosabb SQL parancsok bemutatása (CREATE TABLE, CREATE INDEX, INSERT INTO, UPDATE, SELECT)

Az adatbázis-műveletek többsége valamilyen lekérdezés jellegű művelet, lényégében a számunkra információt hordozó bejegyzések kiválasztása a tárolt adatok közül. Az adatlekérés elvégzésére a relációs adatbázis-kezelő rendszerek gyakran az SQL-t (Structured Query Language), a struktúrált lekérdező nyelvet használjak. Bár az SQL nyelvnek létezik szabványositott változata, a legtöbb rendszer mégis saját nyelvjárást használ, kiegészitve, módositva a szabványt.

Az első szabvány 1986-ban jelent meg az ANSI X3. 1986. röviden ANSI 86 néven, majd 1987-ben az ISO is szabványosította.

CREATE TABLE

Az SQL relációs adatmodellt kezel, így a fő obejektuma a reláció, amit SQL-ben táblának (table) nevezünk. A táblát egy erre a célra szolgáló paranccsal (CREATE TABLE) definiáljuk.

A tábla neve max. 8 karakter hosszú lehet, betűvel kell kezdődnie, betűkből, számjegyekből és aláhúzás karakterekből állhat. SQL név már foglalt, ezért ezt nyilvánvaló hogy nem adhatjuk neki, ill. különböző tábláknak nem adhatunk azonos nevet.

Oszlopait típusokkal láthatjuk el, amelyeket deklarálni kell. Az oszlop azonosító max 10 karakteres, betűvel kell kezdődnie, betűkből, számjegyekből és aláhúzás karakterekből állhat. Két különböző táblában két oszlop neve lehet ugyanaz. Az oszlopneveknél az adattípus mellé beírható a NULL, vagy NOT NULL opció. A NULL azt jelenti hogy az oszlopban lehetnek "üres értékek" is. Ha NOT NULL-t írunk akkor viszonmt az adott oszlopban nem lehetnek üres értékek.

A táblák megengedett mérete SQL realizációnkent különbözik. A dBASE V-ben egy tábla 255 oszlopot tartalmazhat, de úgy hogy egy sor mérete nem haladhatja meg a 4000 byte-ot. Az ORACLE rendszerben egy sor hossza 2 gigabyte lehet (LONG adattípus hossza).

CREATE INDEX

Indexállomány lértehozása

Az indexállomány egy adott táblából kiemelt néhány rendezett oszlopból áll. Az oszlopok fizikailag rendezett oszlopok lesznek. (csökkenő vagy növekvő)

Előnye hogy ha a táblában azon oszlopok értékei szerint keresünk, amelyek indexelve vannak a keresés gyorsabb lesz, hoszú rendezett táblában könyebb a keresés viszont hátránya is lehet ebből amikor az indexet frissíteni kell új rekord bevitelnél, illetve azon esetekben amikor egy rekordban a kulcsot (amit indexeltünk) módosítjuk.

Hatása: Az ON után adott tábla felsorolt oszlopait rendezi és belőlük eg yaz INDEX szó után megadott nevű táblát készíti. Az UNIQUE azt jelenti hogy az oszlop értékei egyediek. Tehát ha több azonos érték szerepel egy mezőben , csak az első kerül az index táblába.

INSERT INTO

Sorokat (rekordokat) a táblába az INSERT paranccsal tudunk bevinni. A parancs egyszerre egy sort visz be. A táblába helyezett új sor fizikailag a meglévő utolsó sor utaán tárolódik.

Hatása: a felsorolt oszlopok sorrendben felveszik az értéklistában szereplő értékeket. Ha az oszlopnév-lista (vesszővel elválasztott oszlopnevek) elmarad, akkor a tábla definiálásánál megadott oszlopnevek sorrendjében kell az értéklista elemeinek szerepelni.

UPDATE

A tábla rekordjait bármikor lehet módosítani.Ezt a z UPDATE paranccsal tudjuk elérni.

Hatása: a megadott táblának a SET után felsorolt oszlopait az egyenlőségjel utáni kifejezéssel módosítja ( ez lesz az oszlop értéke) de csak azokra a sorokra, amelyek eleget tesznek a WHERE-ben szereplő logikai kifejezésnek. Ha WHERE.... nem szerepel, akkor az adott oszlop minden sorára ugyanazt az értéket írja be (azt amit a kifejezés jelent).

DELETE

A rekordok törlésre a DELETE parancsot használjuk.

Hatása: törli a táblából azokat a sorokat, amelyekre teljesül a feltétel. Ha a WHERE-t elhagyjuk, akkor minden sort töröl, azaz a tábla teljes tartalmát törli ( maga a tábla megmarad, tehát nem kell újra deklarálni)

SELECT

Az adatbázikezelés egyik fontos művelete a lekérdezés.

Az SQL lekérdezési parancsa egy összetett parancs ( több alparancsból áll) ; ha ugyanazt a lekérdezést mondjuk PASCAL-ban kellene felírni, akkor az egy hosszabb program lenne.

A SELECT parancs végrehajtásának eredményeként egy újabb tábla keletkezik, a ,tivábbiakban ezt eredménytáblának (E-tábla) hívjuk. Az E-tábla csak ideiglenesen jön létre, ha nem gondoskodunka rögzítéséről vagy mentéséről akkor bármely más parancsot kiadva eltűnik.

Szerkezete kötött, vagyis az alparancsok csak olyan sorrendben írhatók ahogyan meg van adva:

pl.

SELECT oszlop kiválasztása

[INTO ...] E-tábla 1. sorának tárolása

FROM... táblák DESCARTES-szorzata

[WHERE ...] sorok kiválasztása

[GROUP BY ...] csoportosítása

[HAVING ...] csoportok közötti választás

[UNION ...] E-táblák összefűzése

[ORDER BY/FOR UPDATE OF ...] E-tábla rendezése/tábla módosítása

[SAVE TO TEMP ...]; E-tábla megőrzése, elmentése

A SELECT paranccsal kiadható lekérdezések típusát az alparancsok, valamint az alparancsok operandusai adják meg.

OKJ vizsga rendszerinformatikus - Adatbázis-kezelés IV. tétel

Interbase szerver indítása, adatbázis létrehozása, felhasználók felvétele, jogosultságok beállítása. Kliens oldal kialakítása.

Az InterBase főbb jellemzői

A Borland InterBase szoftvere SQL-alapú relációs adatbázis kezelő rendszer , amely a kliens-szerver modellen alapuló rugalmas és nagyteljesítményű adatbázis kezelő alkalmazások készítését teszi lehetővé.

Relációs

Az InterBase a Dr. Edgar Codd által 1969-ben megfogalmazott relációs adatbázis modell elvei alapján készült. Azóta a relációs modell a nagy adatbázis kezelő alkalmazások meghatározó elve lett.

A relációs azt is jelenti, hogy az InterBase a relációs adatbázis kezelő rendszerek kezelésére szolgáló szabványosított SQL - angol kiejtéssel szíkvel - (Structured Query Language - strukturált lekérdezési nyelv) program nyelvet használja. Az InterBase ragaszkodik a SQL-92 szabvány "entry" fejlesztési szintjén megfogalmazottakhoz. Emellett az InterBase számos olyan bővítéssel rendelkezik, melyek még nem részei a SQL-nek, pl. a generátorok, triggerek és tárolt eljárások kezelése. A SQL szabvány folyamatosan bővül, és ezek is várhatóan belekerülnek.

Az InterBase szerver

A szerver az InterBase lelke. Olyan szoftver szerver, amely az adatbázisokat kezeli és műveleteket hajt végre rajtuk.

Az InterBase szerver a következő részeket tartalmazza:

  • A SQL Parser fordítja le azokat a SQL utasításokat, amelyeket a kliens alkalmazás küld a szerverhez.
  • A Query Optimizer értelmezi a lekérdezéseket, és megadja a lekérdezések feldolgozásának legjobb végrehajtási stratégiáját. Az optimalizáló - elemzés közben - felhasználja a tábla méreteket, az értékek eloszlását és a rendelkezésre álló indexeket. Nevével ellentétben INSERT, UPDATE és DELETE esetén is alkalmazásra kerül.
  • Az adatbázisban eseményeket (EVENT) definiálhatunk, és meghatározhatjuk azt, hogy melyek azok a műveletek, amelyeknél ezek az események bekövetkezzenek. Az esemény bekövetkeztéről az Event Manager értesítést küld az adatbázishoz bejelentkezett klienseknek. A kliens alkalmazásban megadhatjuk, hogy mely eseményeket vegye figyelembe.
  • A Transaction Manager kezeli a tranzakciókat. Minden adatbázis művelet tranzakció része, amelyet el kell indítani, jóvá kell hagyni (commit) vagy az előző állapotot kell visszaállítani (roll back). A tranzakció kezelés az alapja az adatbázison belüli adatintegritás megtartásának.

A tranzakciónak két fajtája van: az explicit és az implicit tranzakció.

    • explicit tranzakció: megadjuk a tranzakció kezdetét, műveleteit és a végét, amely lehet commit vagy roll back
    • implicit tranzakció: csak elemi művelet esetén használható, a felhasználó nem adja meg a tranzakció kezdetét és végét, csak a műveletet, és a rendszer kezeli a háttérben automatikusan
  • A File I/O Manager alacsonyszintű műveleteket végez fájl adatbázis állományokon
  • A Lock Manager biztosítja az adatbázis következetes (konzisztens) állapotát és koordinálja az adatbázist használó tranzakciók és felhasználók közötti erőforrás megosztást.

Adatbázisok

Az InterBase az adatbázisokat speciális fájlfomátumban tárolja (ODS - On Disk Structure). Ez azért szükséges, mert az InterBase sok platformon futhat és ezek eltérő fájl rendszer jellemzőkkel rendelkeznek. Az adatbázison belül a következő objektumokat hozhatjuk létre és tarthatjuk karban (ezek összessége alkotja az adatbázis metaadatait):

Az adatbázis objektumok

Ezek az információk alkotják az adatbázis metaadatait. Ezeket az InterBase rendszertáblákban tárolja. A rendszertáblákat az InterBase Language Reference 7. fejezete ismerteti.

Hogyan készítsünk InterBase alkalmazást

InterBase alkalmazás készítésének lépései:

  1. Az alkalmazás és az adatbázis megtervezése
  2. Az adatbázis elkészítése
  3. Az adatbázis objektumok elkészítése
  4. Speciális függvények vagy szűrők megírása
  5. Az adatbázis biztonság megtervezése
  6. A kliens alkalmazás elkészítése
  7. A futó alkalmazás teljesítmény optimalizálása

1. Tervezés

Mielőtt még egyetlen sor programot is írnánk, meg kell terveznünk az alkalmazást. Az adatbázis megtervezésén, beleértve az adatbázis helyét, az operációs rendszert, méretét, konfigurációját értjük, valamint az adatbázis objektumokat, táblákat, nézeteket, elsődleges és idegen kulcsokat, kapcsolatokat és a biztonságot.

Ennek a folyamatnak szerves részét képezi az adatbázis normalizálás. A normalizálás célja az, hogy egy információt csak egy helyen tároljunk.

El kell döntenünk, hogy mely folyamatok fussanak a kliensen és melyek a szerveren. A szerver folyamatokat automatikusan indíthatják az adatbázis műveletek (pl. sor beszúrása egy táblába, sortörlés), de meghívhatók adatbázisban tárolt műveletként is.

Az alkalmazás tervezéssel nem kívánok foglalkozni, az önmagában egy könyv tárgya.

2. Adatbázis elkészítése

A következő lépés az adatbázis elkészítése. El kell dönteni, hogy egyetlen fájlként kezeljük, vagy pedig több fájlra osztva a különböző fájlrendszereken. Meg kell határoznunk az alapértelmezett karakterkészletet, és el kell döntenünk az egyes lapok méretét.

Az adatbázist parancssori vagy a Windows ISQL-ben kiadott utasításokkal is létrehozhatjuk, de SQL szkriptekkel is megadhatjuk.

3. Az adatbázis objektumok elkészítése

A következő lépés az adatbázisunk alapvető építőelemeinek, így a táblák, domainek és generátorok elkészítése. Előre megadott adatnézeteket határozunk meg. Azt is érdemes meghatároznunk, hogy milyen indexek javítják a leggyakrabban használt műveletek teljesítményét.

A triggereket és a tárolt eljárásokat azután hozzuk létre, amikor már az általuk hivatkozott objektumok léteznek.

4. Speciális függvények

Ha az adatbázis speciális műveletek végrehajtására speciális függvényeket (UDF [User Defined Function]- felhasználó által készített függvény), vagy Blob adatok kezeléséhez speciális szűrőket használunk, ezeket meg kell írni, könyvtárként le kell fordítani, és az adatbázisban kell függvényként vagy filterként rájuk hivatkozni. A hivatkozás bekerül a metaadatbázisba. A DLL-nek vagy a Shared Library-nek speciális könyvtárba kell kerülniük, vagy pedig meg kell adni az elérési utat.

5. Az adatbázis biztonság megtervezése

Hozzáférési jogosultságokat kell biztosítani a különböző objektumokhoz. Mindes egyes adatbázis objektum esetén döntenünk kell arról, hogy melyik felhasználónak és tárolt eljárásnak milyen hozzáférési jogosultságot (kiválasztás SELECT, aktualizálás UPDATE, törlés DELETE, hozzáírás INSERT) biztosítunk.

6. A kliens alkalmazás elkészítése

Ha az adatbázist létrehoztuk és a különböző objektumokat megadtuk, létrehozhatjuk a kliens alkalmazást.

A kliens alkalmazás célja az adatok bevitelének, megjelenítésének, módosításának biztosítása a relációs adatbáziskezelő rendszer segítségével.

Ennek a fázisnak fontos része annak eldöntése, hogy a kliens alkalmazás milyen módon (TCP/IP, NetBEUI, SPX) kommunikál az InterBase szerverrel. Mint az már említésre került, az InterBase számos magas és alacsonyszintű interfésszel rendelkezik (mint pl. a Borland adatbázis motor - BDE, illetve az InterBase API).

Bizonyos fejlesztő eszközök, mint pl. a Delphi, vagy a Paradox, a kapcsolatok módját előre megadott eljárások sorozataként tartalmazzák. Ezek az eljárások nagyon magas szinten lépnek kapcsolatba a BDE-vel, eltakarva ily módon ezek bonyolult voltát.

Azok a fejlesztő eszközök, amelyek nem ismerik a BDE-t, vagy nem akarnak natív módon kapcsolódni, ODBC meghajtót használhatnak.

Host nyelvű alkalmazás fejlesztésekor (így pl. C vagy C++) a forráskódba közvetlenül beágyazott SQL utasítások , vagy pedig az InterBase API segítségével kommunikálhatunk az adatbázis szerverrel.

Natív elérésnél az InterBase API-t használjuk. Ez biztosítja a leghatékonyabb alkalmazásfejlesztést, ugyanakkor nagy kihívást jelent a függvénykönyvtár teljes megismerése. Az IBExpress komponensek jelentősen megkönnyítik ezt a munkát.

Ez az ábra az alkalmazás és a szerver közötti kommunikációt mutatja be.

7. A futó alkalmazás teljesítmény optimalizálása

A futó alkalmazások optimalizálása összetett feladat, erről szól a 23. fejezet, melynek címe az InterBase optimalizálás.

A 23. fejezet nagyteljesítményű adatbázis rendszerek InterBase alapon történő megvalósítását tárgyalja. Az első részben elmondjuk, hogyan kell optimalizálni az alkalmazásokat (InterBase optimalizálás 1.: Az alkalmazások optimalizálása), a második részben ismertetjük a SQL és a metaadatok optimalizálását (InterBase optimalizálás 2.: A SQL és a metaadatok optimalizálása). Az "InterBase optimalizálás 3.: A szerver hardver kiválasztása és konfigurálása" című alfejezettel zárul a fejezet.

Az InterBase-zel kapcsolatban levő alkalmazások négy csoportra oszthatók:

  • A Borland fejlesztőeszközök, mint Delphi, Paradox, Visual dBASE, és C++ Builder a BDE-t (Borland Database Engine) használhatják a különböző adatbázisokhoz való kapcsolódáshoz. A motor használatával ezek az alkalmazások az adatforrásokhoz a következőképpen kapcsolódhatnak:
  • közvetlenül a Paradox és dBASE fájlokhoz
  • SQL Links-szel az InterBase és más adatbázis szerverhez
  • ODBC meghajtóval az InterBase-hez és más fájlformákhoz
  • Más szállítók fejlesztőeszközei, mint például a Visual Basic és a PowerBuilder az InterBase-t az InterBase szerverrel szállított ODBC meghajtón keresztül érhetik el.
  • InterBase egy sor saját natív eszközkészletet ad az adatbázisok és szerverek kezelésére. Ezek a szerszámok az adatbázissal az InterBase GDS könyvtárában található függvényeken keresztül tartanak kapcsolatot az adatbázis szerverrel.
  • A fejlesztők is készíthetnek olyan alkalmazást, amelyek az adatbázissal beágyazott SQL utasítások vagy InterBase API-függvények segítségével natív módon tartják a kapcsolatot.

Az InterBase telepítése

Az InterBase 6 megtalálható pl. a Delphi 6 Enterprise CD-n, illetve letölthető az internetről. Az InterBase aktuális változata ugyancsak letölthető próbára a Borland honlapjáról (http://www.borland.com/products/downloads/download_interbase.html), ehhez regisztrálnunk kell magunkat.

A bejelentkező ablakból (InterBase Server Setup) a licensz feltételek elfogadása után léphetünk tovább. Megadhatjuk a telepítési célkönyvtárt, és hogy mely komponenseket akarjuk telepíteni. Ezután kattintsunk az Install gombra és megtörténik a telepítés.

OKJ vizsga rendszerinformatikus - Adatbázis-kezelés III. tétel

3. tétel: Borland adatbázis-motor (BDE) bemutatása, álnevek (Aliasok) szerepe

A Delphi rendszer egyik kiemelkedő erőssége a különböző tipusú adatbázisok kezéléséhez szükséges technológiák és eszközök sokoldalú támogatása. Az adatbázis-kezelő alkalmazások fejlesztése a Delphi korábbi és a jelenlegi változataiban egy speciális programozási felületen, a BDE (Borland Database Engine) API-n (régebbi neve az IDAPI, Integrated Database Application Programming Interface) keresztül történik. A Delphi rendszer, illetve a Delphi-ben fejlesztett adatbázis-kezelő alkalmazások egyaránt a BDE alkalmazás-programozói felületet használjak.

A BDE (Borland Database Engine)

A BDE mint programozási felület sok olyan alapfeladat elvégzése alól mentesíti az adatbázis-kezelő alkalmazások programozóit, mint az adattáblák és bejegyzések lezárása, bejegyzések frissítése, alap 1/O műveletek stb. Ezért a fejlesztő több figyelmet szentelhet magának az adatnak és a vele elégezendő műveleteknek.

A BDE API közel 200 eljárást és függvényt tartalmaz (BDE modul), amelyeknek közvetlen meghívasára azonban csak igen ritkán van skség. Ehelyett a BDE-használat általában a Delphi adatelérési komponensein keresztül történik (az eszközpaletta Data Access lapja), melyek az egyszerű kezelhetőség mellett a BDE API hívásainak többségét is megvalósítják.

Mivel technikailag a BDE az adatbázis-eléréshez szükséges dinamikusan szerkeszthető könyvtárak gyűjteménye, telepitése után párhuzamosan több alkalmazás is osztozhat rajta. Ezzel együtt - mivel az adatelérésekhez szükséges kód másolata csak egyszer van jelen a memóriában - nem csak az összesített RAM-foglalás mértéke csökken, hanem a BDE-t használó alkalmazások mérete is kisebb az adatbázis-elérést végző kódot is tartalmazó alkalmazásokénál.

Ha az alkalmazásunk írásakor a BDE lehetőségeit használjuk, mind a gépünk lokális - pélul dBASE, Paradox - adattábláit, mind a távoli adátbázis-szerveren levő, illetve az ODBC (Open DataBase Connectivity) meghajtók által támogatott állományokat is könnyen elérhetjük.

A BDE egyik legfontosabb tulajdonsága, hogy alkalmazásunk írása során nem kell kötődnünk egyik adatbázis-szabványhoz sem. A fejlesztés során az adatbázis-elérő műveleteket, a Delphiben megszokott módon a vezérlőelemek kezelőfelületén keresztül végezhetjük el. Ha a későbbiekben át kell térnünk egy másik adatbázis-típusra, az esetek többségében az alkalmazás újrafordítása megspórolható. Ez azért lehetséges, mert az adatok helyére és elérésére vonatkozó beállítások az alkalmazáson kívülről is megadhatók, a BDE Administrator alkalmazás felhasználásával.

Logikai nevek (aliasok) létrehozása BDE Administrator segítségével

A BDE Administrator segítségével beállíthatjuk (Start/Beállítások/Vezérlőpult/BDE Administrator)

hogy a programunk az elérni kívánt adatokat hol találja meg, melyik megahjtóprogramot kell alkalmazni az adateléréshez.

A BDE Administrator ablakban bal oldalt található panel, Datebase lapján az un. logikai nevek (aliasok) a Configuration lapján pedig a meghajtók és a rendszerbeállítások felsorolása található. A jobb oldali panelben a kijelölt elemre vonatkozó paraméterek jelennek meg.

A logikai (alias) vagy adatbázisnév, ill. az általa takart paraméterkészlet az adathalmaz elérhetőségét és fizikai elhelyezését írja le. A BDE alkalmazásokban a logikai neveket az un külső, azaz az adott számítógépen futó összes alkalmazás számára elérhető adatbázissal való kapcsolat megteremtésére használjuk. A lokális adatbázisok esetén eldönthetjük, hogy logikai névvel, vagy közvetlenül az elérési út megjelölésével hivatkozunk az adatforrásra. Az SQL adatbázisokra való hivatkozást csak logikai név használatával oldhatjuk meg.

Az adatforrásunkhoz új logikai nevet többféleképpen is létrehozhatunk. Használhatjuk a BDE Administrator Object/New, illetve a Databases panel felbukkanó menüjének New menüpontját. Ugyanitt módosíthatjuk a neveket, ill. az adatok lezárása (Close) után átnevezhetjük (Rename), ill. törölhetjük (Delete) is őket.

OKJ vizsga rendszerinformatikus - Adatbázis-kezelés II. tétel

2. tétel: Adatbázis-kezelési komponensek csoportosítása, rövid ismertetésük, TDataModul osztály bemutatása

Delphiben az adatbázis-kezelést elősegítő komponenseket két fő kategóriába soroljuk:

Adatelérési (Data Access) komponensek: adatbázisok (TDatabase), táblák (TTable), lekérdezések (Tquery), tárolt eljárások (TstoredProc) kezelését teszik lehetővé.

Adatmegjelenítési (Data Controls) komponensek: csupán megjelenítési célokra kifejlesztett komponensek, melyek az adathozzáférést biztosító komponensekhez kapcsolódnak. Minden adatmegjelenítési komponens típusazonosítójában a DB előtag azt mutatja, hogy egy adatforrásból " táplálkozik" (MS Accessben ezeket "kötött vezérlőelemeknek" nevezzük.)

Adatmegjelenítési komponensek: szerkesztődoboz (TDBEdit), cimke (TDBText) rács (TDBGrid, egy egész adathalmaz megjelenítésére alkalmas), navigátorsor (TDBNavigator, egy adathalmaz rekordjai közötti lépegetésre), kombinált lista (TDBComboBox), kép(TDBImage)

Az adathozzáférési komponensek egymáshoz is kapcsolódnak (kapcsolódhatnak) együttesen alkotják az alkalmazás adatelérési- és alkalmazás-logikáját (business logic) építhetünk be számított mezőket, további adatellenőrzéseket, adatszűréseket.

A Delphi 32 bites verzióban ezeket az elemeket egy ún. adatmodulra (DataModule) helyezzük el. Ez tervezési időben egy külön ablakként jelenik meg, futás közben viszont láthatatlanná válik. Szerepét- az adatokhoz való hozzáférés biztosítását - a háttérből látja el.

Az adatmegjelenítési komponensek a felhasználói felület (user interface) elemei. Helyük azon az űrlapon van. Mindnyájan rendelkeznek egy ún. DataSource jellemzővel, melyen keresztül kapcsolódnak az adatmodulon valamely adatforráshoz.

Az adatmegjelenítési komponens mindig frissül, ha az adatforrásban átírunk "alatta" egy adatot.

A 16 bites Delhiben még nem létezett adatmodul, így az adathozzáférési komponenseket az űrlapokra kellett elhelyeznünk. Ez megnehezítette az alkalmazás megtervezését és implementációját. Ugyanazt a logikai funkciót ellátó adatforrást minden űrlapon el kell helyeznünk, ahol a tartalmára szükségünk volt.

A TDataModule osztály

Helye az osztályhierarchiában: TObject/Component/TDataModule

Szerepe: alkalmazásunk a futási időben láthatatlan komponenseinek gyűjteményét tartalmazza. Tervezéskor egy vizuális konténerként viselkedik (akárcsak egy űrlap) futási időben viszont az adatmodul láthatatlan.

Előnyei:

- a komponenseket az alkalmazás űrlapjait megosztva használhatják

- megvalósítja az adatelérési logika és a felhasználói felület elkülönítését

- adatmodult mintaként kimenthetjük, így ez más alkalmazások számára is elérhetővé válik

Ajánlatos, hogy az adatmodul auto-create legyen, és elsőnek jöjjön létre.

Az adatmodul használata:

Alkalmazásunkban új adatmodult a Fiel/New Data Module menüponttal hozhatunk létre. Létrehozása után rögtön nevezzük el (pl. Name=DM), majd mentsük is le állományba (pl. uDM.PAS). Az adatmodult használó űrlapok csak akkor érik el a rajta található elemeket, ha egységünknek Implementation részébe beépítjük a uses uDM sort. Ha ezek után az adatmodulon elhelyezünk pl. egy tblAnimals: TTable komponenst, akkor a táblát használó űrlapon DM.tblAnimals-ként fogunk rá hivatkozni, hiszen a tblAnimals elem most már az adatmodul objektum (DM) egy nyilvános mezője.

OKJ vizsga rendszerinformatikus - Adatbázis-kezelés I. tétel

1. tétel : Adatbázis-kezelési architektúrák a Delphi-ben (File server, Client/server, Multi-tier)

Az adatbázisokat két csoportba szokás sorolni. lokális (helyi) adatbázisról beszélünk, amikor az adattáblák a saját szamítógépünk, vagy a lokális hálózatunk állomány-kiszolgá1ójának (file server) merevlemezén helyezkednek el. Ebben az esetben az adatbázis-műveleteket közvetlenül a szamítógépünkön futó alkalmazás végzi. Nagyobb teljesitményű programrendszerek kialakitása során az adatbázis adatait egy távoli kiszolgálón helyezik el, amelyet a helyi alkalmazásunkkal párhuzamosan működő adatbázis-kiszolgaló (database server) alkalmazás kezel. A BDE bb lokális és adatbázis-szerveres megoldast ismer, tovabbá képes a Microsoft ODBC (Open. Database Conectivity - nyitott adatbázis-kapcsolat) szabvány kezelésére is, igy elvileg bármilyen adatbázistipus elérhető a Delphi alkalmazésokból.

A használt adatábázis-ügyfél, illetve az adatzis-kiszolgáló (kliens/ szerver, client/server) fogalom sajátos adatbázis-felépitést takar. A kiszolgéló alatt egy olyan központi alkalmazást értünk, amely tetszőleges számú un. ügyfél-alkalmazás számára elérhető. Az ügyfelek olyan alkalmazások, amelyek a kiszolgálóhoz intézett kéréseken keresztül férnek hozzá a kiszolgáló által elérhető, adatbázisban tárolt adatokhoz. Általában az ügyfél- és a kiszolgáló alkalmazások elkülönitett, hálózatba kapcsolt számitógépeken működnek, de akár egyetlen számitógépen is futtathatók.

Az ilyen felépités eséten, amikor a nagy mennyiségű adat tárolása és kezelése központositott, egyrészt lehetővé válik az optimalizált adatelérés kialakitása és a számitógépes hardver költségéinek csökkense (hiszen az ügyfelek kevésbé gyors számítógépeken is futhatnak), másrészt azonban meg kell oldani, például olyan egyidejű adatlekérések kezelését, amelyek ugyanarra az adatra vonatkoznak.

A több rétegű (multi-tier) adatkezelés

Ebben a technikában az alkalmazás részei kettőnél is több gépen helyezkednek el. Egy tipikus három rétegű alkalmazás szerkezetét mutatja be. A több rétegre való elosztás további előnyökkel jár (munkamegosztás, adminisztráció könnyítése) Kliens oldalon már ténylegesen csak a felhaszálói interfész található, ezért ezt az alkalmazást "sovány" (thin) kliensnek is nevezzük.

adatok->közvetlen adatfeldolgozás->alkalmazáslogika->felhasználói felület

Adatbázis szerver->középső réteg (middle-tier) ->"sovány" kliens alkalmazás.

OKJ vizsga rendszerinformatikus - Delphi V. tétel

5. A Delphi grafikai lehetőségeinek bemutatása

A Windows GDI (Graphics Device Interface) lehetőségeit kihasználva tudunk Delphi alkalmazásainkban grafikát alkalmazni.

- használhatunk grafikus vezérlőket melyek ábráit a tervezés vagy a futási idő alatt hozzuk létre

- bizonyos komponensekre csak futási időben rajzolhatunk

- nyomtathatunk

A Delphi a Graphics modulban a működési módok, színek használatához saját típusokat és konstansokat definiál. A rajzolási módok az ismert alaptípusok lehetnek: toll (Pen), ecset (Brush), betűtítus (Font), bitkép (Bitmap). A Delphi ezen eszközöket objektumként modellezi, melyek tulajdonságai tárolják az eszköz adatait.

Az Additional lapon a Delphi biztosít néhány olyan komponenst amely egyszerűsíti a grafikus megjelenítést. A TShape komponens egyszerű geometriai alakzatok megjelenítésére használható. Megadható a vezérlő pozíciója, a körvonal milyensége (TPen típusú), a kitöltés módját a TBrush határozza meg. A megjelenő alakzat lehet kör , ellipszis, téglalap, négyzet vagy lekerekített négyzet.

A TImage vezérlő alkalmazásával rajzolhatunk illetve a TPicture tulajdonságával egy kész képet is kihelyezhetünk. A kép kerete lehet a képhez igazodó de lehetőség van a kép nyújtására is a Strech tulajdonság állításával.

A Graphics unit speciális megjelenítő objektumai rendelkeznek egy a megjelenítést támogató Canvas tulajdonsággal amely maga is egy objektum. A Canvas objektumot úgy képzelhetjük el mint egy festőkészletet. Az objektum tulajdonságai a rajzeszközök, illetve meghatározzák a rajzvászon jellegzetességeit. A négy fentebb felsorol rajzolási módja a Canvas alapvető rajzeszközei. Rajzolni a Canvas objektum metódusait használva tudunk, pontokat használhatunk tollat, ecsetet, szövegeket és bitképet festhetünk.

OKJ vizsga rendszerinformatikus - Delphi IV. tétel

4. Menük építése a Borland Delphi rendszerben

A Delphi menütervezője lehetővé teszi menürendszerek könnyű kialakítását. Ugyanakkor a menüvel kapcsolatos komponenseket használva futás közben is változtathatjuk alkalmazásunk menürendszerét. A menüknek két fő fajtája van, a főmenü és a felbukkanó menü. A Delphi lehetőséget nyújt a standard Windows menük jellegzetes tulajdonságainak alkalmazására programunkban. Például a menüpontok kiválasztása többféleképp is történhet (egér, F10 + kurzormozgató billenytyűk, gyorsbillenytyű)

A Delphi oldaláról a menü olyan speciális csoportosított (TMainMenu vagy TPopupMenu típusú) vezérlő halmaz, mely halmaz TMenuItem típusú elemeinek ablakban való megjelenítése kötött (főmenü vagy felbukkanó menü). A menüelemek eseményei kezelik a felhasználó menüválasztását.

A menükben az Items (TmenuItem típusú) tulajdonság tartalmazza a menüelemeket. Az Items tulajdonságot menüelemek indexelt tömbjeként kezelhetjük.

A TForm osztály Menu és PopupMenu tulajdonságai határozzák meg, hogy az ablakhoz melyikmenü tartozik.

A menüelemek legfontosabb tulajdonságai a Name mely a komponenst azonosítja és a Caption mely a menücímet határozza meg. A menü elemei vezérlőként működnek. A menüelemeknek lehet gyorsítóbillenytyűje (ShortCut), rendelhető hozzájuk buboréksúgó (Hint), akciólista elem (Action) és speciális adatot (Tag). A menüelem lehet látható és rejtett (Visible), engedélyezett vagy tiltott (Enabled). Ki lehet őket jelölni (Checked), lehetnek választógombok (RadioItem).

A menüelemek a futásidő során megváltoztathatók. Létrehozhatunk beszúrhatunk új elemet törülhetünk régit, elválasztóvonalat szúrhatunk a menüben.

OKJ vizsga rendszerinformatikus - Delphi III. tétel

3. Kivételkezelés az Object Pascal nyelvben.

A kivétel (exception) olyan hibás állapot vagy esemény amely megszakítja az alkalmazás szabályszerű futását. Ha fellép egy kivétel, a vezérlés a futó alkalmazás aktuális pontjától a kivételkezelőhöz kerül.

Az Object Pascal a kivételkezelés támogatására olyan strukturális eszközöket tartalmaz amelyek lehetővé teszik a program-logika és a hibakezelés-logika szétválasztását. Ezzel növekszik az alkalmazás karbantarthatósága.

Az Object Pascal a kivételek megvalósítására objektumokat használ. Ezen megoldás legfontotsabb előnyei:

- a kivételekt, az öröklés felhasználásával, hierarchiákba lehet csoportosítani

- újabb kivételeket definiálhatunk, a meglévő kód megváltoztatása nélkül

- a kivételkezelés információkat ( hibaüzenet vagy hibakód ) vihet a keletkezés helyéről a kezelési pontra

A kivételek kezelését alkalmazásunkban a try..except utasításpáros segítségével végezhetjük amelynek struktúrája a következő:

try

utasítások listája

except

kivétel blokk

[else

kivétel blokk]

end;

A try..except között lévő tasítások végrehajtásra kerülnek. Amennyiben az utasítások rendben, hiba nélkül lefutnak, a vezérlés az end; kulcsszó utáni utasításra kerül. Azonban ha a az utasítások végrehajtása során hiba lép fel a vezérlés a kivétel blokkra kerül. Mivel a kivételeknek több fajtája van természetesen a kivétel blokkban több kivételfajta is felsorolható:

except

on EZeroDivide do NullavalOsztas // nullával való osztás

on EOverFlow do Tulcsordulas // túlcsordulás