Az RDBM Adatbázisok és Objektumok Kezelése

A relációs adatbázis-kezelő rendszerek (RDBM) komolyabb adatkezelési feladatok elvégzésére alkalmasak, szemben a táblázatkezelőkkel. Az RDBM adatbázis-modellek rendszerszerű adattáblák összekapcsolásával, relációkkal működnek, de léteznek gráf- és más adatbázismodellek is.

Az RDBM Szerver és Kliens Működése

Az RDBM kiváló alkalom a rendszer szabvány kiszolgáló-ügyfél (szerver-kliens) logikájának megértésére. A szerver rész fájlból betölti az adatbázist (akár több adatbázist is üzemeltethet egy időben). A kliens feladata - ez az a webes, asztali vagy más alkalmazáskomponens, amit látunk - hogy a megfelelő adatbázishoz a megfelelő jogosultsággal kapcsolódjon, írja vagy olvassa. Komoly adatbázis-kezelés esetén a szerverrész általában külön gépen fut, amelyhez a szokásos IP-módon a megfelelő porttal megszólítva tud majd kapcsolódni a kliens. Sem elvi, sem pedig gyakorlati akadálya nincs annak sem azonban, hogy a mind a szerver rész is és egy kliens ugyanazon a gépen fusson, az asztali RDBM alkalmazások, mint például a szabványos ODB/HSQLDB-ben tároló LibreOffice Base, esetleg a Microsoft Access integráltan biztosítják ezt a lehetőséget is.

Az RDBM-adatbázisok adattáblái abban is eltérnek egy számolótáblázat munkalapjaitól, hogy maguk az adattáblák alapvetően adatokat tárolnak, nem futtatnak való időben képleteket, függvényeket, ezek majd az átlag felhasználó számára legfontosabb feladatban a lekérdezésekben (Query) lesznek.

Szerver-kliens architektúra

Az SQL Nyelv és Lekérdezések

Az RDBM-alkalmazások lekérdezéseit az asztali RDBM-alkalmazásoknál, mint például tervezőnézetben illetve összetettebb esetben már a szabvány SQL nyelven kérdezhetjük le. Az SQL nyelv neve ellenére nem csak lekérdezésekre alkalmas, de legtöbbször erre használjuk a SELECT parancs mögött a táblanév.mezőnevet megadva majd a WHERE mögött a feltételt, ami lehet al-lekérdezés is.

A tervezőnézetben összekattintott egyszerű lekérdezések és az SQL nézet között lehetséges a váltás, ez segíti az lekérdezés SQL-ben írásának gyors automatizálását.

SQL lekérdezés példa

Erős Kollaboráció és Tárolás SQL-DB Formátumokban

Természetesen az asztali RDBM-alkalmazásoknál is felmerül az igény a szabványosságra, professzionálisabb SQL-szerverekbe exportálásra/importálhatóságra/szkriptelhetőségre. Az asztali RDBM-alkalmazások szerény piacán ezt az elvárást/igényt leginkább a LibreOffice Base elégíti ki. A Base kerete a szabvány ODB frontend formátum, innen akár az ODBC, akár a JDBC adatbázis kapcsolóval tud lényegében minden szabvány SQL szerverhez kapcsolódni, vagy pedig, szerény helyi adatbázisok esetén maga tárol a szabvány SQL-hez nagyon közeli formátumban, HSQLDB-ben.

Mindezen elvek miatt elmondható, hogy egyrészt maguknál a lekérdezéseknél is a lehető legnagyobb pontossággal követi az alap SQL szabványokat, másrészt még a helyi adattárolás formátuma is szabványos és jól szkriptelhető. Ez azért fontos, mert az intézményi adatkezelésben elengedhetetlen, hogy az adatok olyan formátumban álljanak rendelkezésre, hogy azt specifikáció alapján bármilyen alkalmazásba, a szabványok mentén bármilyen robusztus adatbázis-szerverbe a megfelelő szkripteléssel át lehessen vinni, technikailag is jogilag is maximálisan biztosítva az adatgazdai felelősséget. Az ODB/HSQLDB és a SQL-szabványok betartása mindenek előtt a LibreOffice Base-ben ezt lehetővé teszi akár jó támogatással, és elkerülhető a későbbi diszfunkcionalitás, vagy akár kisebb vagy nagyobb mértékű adatvesztő gyakorlat.

Adattáblák Importálása CSV Fájlokból

Használjunk a lehető legjobban kezelhető ismert adatokat 2 összekapcsolható adattáblának az RDBM adatbázis-kezelőbe való beillesztéséhez, importálásához. Elsőnek vegyünk itt egy rövid (5continents.csv) nevű CSV fájlt. Az első sorában látszanak a mezőneveink, amelyeket az RDBM adatbázis-kezelőbe való importáláskor használunk, illetve típusaikat majd értelemszerűen be fogjuk állítani.

A fenti kis CSV fájlunk az olimpiai zászló érelmében vett 5 földrészt sorolja fel előre beállított elsődleges azonosító kulcsmezőkkel (amely az adatbázisban majd számláló típusú elsődleges kulcsmezőre állítandó, ezeknek a földrészeknek a nevével, statisztikai évszámmal és a statisztikai évben vett népsűrűséggel. (Utóbbiak az adatbázisban természetesen majd a megfelelő szám típusúra állítandók.) Ezt követően vettünk egy tzas (timezone-abbreviations) nevű fájlt. Így jön létre a kapcsolat, és így kerüljük el az adatfelvételek akár hibát is okozó redundanciáját. Az igényünk szerint előállított CSV fájlt meg tudjuk nyitni egy táblázatkezelőben, majd ott vágólapra másolva importálás céljából be tudjuk illeszteni őket az adatbázisunkba.

CSV fájl importálása adatbázisba

A Helyes Adattípusok és Mezők Beállítása

Minden programnál - programozási nyelveknél is, mint például a C, a Perl vagy JavaScript - ha azt akarjuk, hogy gyorsan fusson, akkor hatékony, ha az adatok előre minél pontosabban megadott adattípusokban kezeljük: A CSV fájlokból beimportált táblák mezőinek adattípusát magától nem tudja kitalálni az asztali RDBM adatbázis-kezelő alkalmazás, ezért a mezők végleges beállítása ránk hárul. Már az importálás során felmerül, hogy tartalmaz-e a CSV kulcsmezőt, ha nem, akkor ezt már ekkor hozzáadhatjuk. Ránk vár a szám típusú, vagy Boole-mezők beállítása is, valamint a szöveges mezők maximális hosszának hatékony beállítása is fontos lehet. Különösen fontos a kulcsmezők megjelölése és a kölcsönösen megfelelő számláló adattípus megadása.

Relációk Létrehozása

Ezt követően tudjuk a relációt létrehozni. SQL parancs esetén ezt érdemes már a tábla létrehozásánál megtenni, az asztali RDBM adatbázis-kezelő használatánál a táblák importálása után tesszük meg. A fenti példánkban tehát természetesen úgy hozzuk létre az adattábláink (esetünkben két adattábla) relációba való összekapcsolását, hogy a 5continents táblázatban lévő contid mezőt, mint elsődleges kulcs, és a timezones táblázatban lévő contid mezőt, mint idegen kulcs kapcsoljuk össze egy 1 → n típusú összekapcsolással, ami nem kizárólagos, de a leggyakrabban és legáltalánosabban használt összekapcsolás az adatbázisban.

Magának a relációs adatbázis modellnek (RDBM) az egyik legfőbb értelme éppen az, hogy a nagyon heterogén adatszerkezeteket értelmesen szétbontott adattáblák összekapcsolásával hozza létre.

Adatbázis relációk diagramja

Lekérdezések Alapjai

Ezek után el is kezdhetjük a lekérdezéseinket létrehozni, a tervezőnézetben, sikeresen futtatni, majd pedig a sikeres futtatás után megnézni az SQL kódot, ami végül eljuttat minket oda, hogy az összetettebb lekérdezéseinket - amelyekhez már szükséges - könnyen meg is írjuk az SQL kódban. Az SQL nyelvű lekérdezésnek egy logikus táblázatot kell előállítania: kezdete mindig a SELECT művelet, ahol a kért mezőket választjuk ki, már itt is hivatkozhatunk a táblanévre is, és sok esetben ez praktikus, például: SELECT 5continents.contname,5continents.s,timezones.tzbna FROM klauzula ekkor is szükséges lesz, tehát: FROM 5continents,timezones

A legérdekesebb azonban maga kiválasztás, szűrés, ami miatt az egész lekérdezést csináljuk, ezt pedig a WHERE klauzula vezeti be, és ugyanezen nyelvtan szerint itt csinálhatjuk meg, amikor a feladathoz szükséges, az al‑lekérdezéseket is, ezek általában az összetettebb, többtáblás lekérdezéseknél fordulnak elő, az érettségin legalább egy ilyen feladatpont is lesz, egyszerű példa: WHERE 5continents.name LIKE 'A%' AND 5continents.popden>50

Figyeljük meg, hogy a nem-tisztán-numerikus adat nevét az SQL nyelv nem a szokásos ", hanem ' jellel szereti meghatározni. A lekérdetésekben AND vagy OR operátorral többféle feltételt is megadhatunk, a LIKE kulcsszóval mintára is illeszthetünk. Utóbbinál figyeljük meg, hogy az SQL szintaktika a szokásos regex * karakter helyett megint csak mást, a % karaktert használja.

Objektumok Kezelése az Inkscape-ben

Most nézzünk egy összetettebb példát. Láthatjuk, hogy az Inkscape alkalmazásban sokféle alap objektumot használhatunk (ellipszis, téglalap, csillag, spirál, görbe stb.), de valamikor több objektum kombinálásával kell a kívánt hatást elérnünk. Például úgy, hogy két (vagy) több egymást takaró objektum különbségét kell vennünk. Nézzük az alábbi logót! Ezt megtehetnénk például két kör felhasználásával, ha az egyik kört kivonhatnánk a másik területéből. Az alábbiakban erre mutatunk példát, a logó többi részének megvalósítását gyakorlásként az Olvasóra bízzuk, hiszen az a korábban bemutatott eszközök segítségével elvégezhető.

Két kör különbsége az Inkscape-ben

Fájl megtekintése: Holdsarló elkészítése (animáció) című háttéranyag megtekintése Információ az állományról: Az animáció segítségével bemutatjuk a logó elkészítésének lépéseit.

Szirom alak létrehozása (objektumok metszete)

Több logón is találkozhatunk levélre, virágsziromra emlékeztető grafikával. A következőkben két ellipszis metszeteként állítjuk elő ezt az objektumot.

Fájl megtekintése: Szirom elkészítése (animáció) című háttéranyag megtekintése Információ az állományról: Az animáció megmutatja, hogyan készíthetjük el két ellipszis metszeteként a szirom alakzatot.

Két ellipszis metszete Inkscape-ben

Objektumok felosztása

Bizonyos logók elkészítésénél azt a funkcióit is kihasználhatjuk, hogy egy objektumot fel tudunk darabolni a rajta lévő objektum körvonala alapján. Ezt a megoldást akár tipográfiai logók esetén is használhatjuk. Lássuk, hogyan valósíthatjuk meg a fenti képet!

Szöveg felosztása téglalap körvonala alapján

Inkscape oktató 1.

Feladat: Természetesen téglalap helyett más objektum is használható. Készítsd el a szöveg alábbi változatát is a felosztás funkció használatával.

Szöveg útvonallá alakítása

Ha egy szöveget csomópontok segítségével akarunk módosítani, akkor azt útvonallá kell alakítani. Ennek módját mutatjuk be az alábbi animációban.

Szöveg átalakítása útvonallá Inkscape-ben

Szöveg illesztése útvonalra

Ha egy szöveget egy megadott görbére akarunk illeszteni, akkor kell használnunk a Szöveg / Útvonalra való illesztés funkciót, amit az alábbiakban be is mutatunk.

Inkscape oktató 1.

Rétegek Használata

Komplexebb feladatok esetén érdemes rétegeket használnunk, ahol a logó összetevői külön rétegeken helyezkednek el. Az egyes rétegek láthatósága, sorrendje, átlátszósága a programban beállítható.

Alaplap blog logója: A korábban már megismert, Alaplap blog logóját is az InkScape alkalmazásban készítettük el. A következő animációban megnézhetjük, hogy milyen részekből áll maga a logó, és azok milyen módszerrel készültek el.

Rétegek használata komplex logó tervezésében

tags: #inkscape #retegek #egyesitese